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 2f32910046..9dfc43d308 100644 --- a/frontend/public/schemas/20251121/linkml/01_custodian_name_modular.yaml +++ b/frontend/public/schemas/20251121/linkml/01_custodian_name_modular.yaml @@ -43,12 +43,15 @@ imports: - modules/slots/has_appellation_type - modules/slots/has_appellation_value - modules/slots/has_or_had_arrangement_system - - modules/slots/collection_description - - modules/slots/collection_name + - modules/slots/has_or_had_description + - modules/slots/has_or_had_label + # collection_description ARCHIVED (2026-01-18) - migrated to has_or_had_description (Rule 53) + # collection_name ARCHIVED (2026-01-18) - migrated to has_or_had_label (Rule 53) # collection_scope ARCHIVED (2026-01-18) - migrated to has_or_had_scope + CollectionScope (Rule 53) - modules/slots/has_or_had_scope - modules/slots/collection_type - - modules/slots/collections_under_responsibility + # collections_under_responsibility ARCHIVED (2026-01-19) - migrated to is_or_was_responsible_for (Rule 53) + - modules/slots/is_or_was_responsible_for - modules/slots/confidence_method - modules/slots/confidence_score - modules/slots/confidence_value @@ -599,7 +602,7 @@ imports: - modules/slots/has_or_had_area_served - modules/slots/has_or_had_member_custodian - modules/slots/membership_criteria - - modules/slots/community_engagement + # community_engagement ARCHIVED 2026-01-19 - migrated to has_or_had_activity (imported above) - modules/slots/service_offering - modules/slots/record_type - modules/slots/society_focus diff --git a/frontend/public/schemas/20251121/linkml/manifest.json b/frontend/public/schemas/20251121/linkml/manifest.json index 500c926b28..4b1e61abbf 100644 --- a/frontend/public/schemas/20251121/linkml/manifest.json +++ b/frontend/public/schemas/20251121/linkml/manifest.json @@ -1,12 +1,12 @@ { - "generated": "2026-01-22T14:51:02.979Z", + "generated": "2026-01-22T15:13:16.933Z", "schemaRoot": "/schemas/20251121/linkml", - "totalFiles": 2969, + "totalFiles": 3029, "categoryCounts": { "main": 4, - "class": 878, - "enum": 154, - "slot": 1929, + "class": 960, + "enum": 155, + "slot": 1906, "module": 4 }, "categories": [ @@ -55,11 +55,21 @@ "path": "modules/classes/AcademicArchiveRecordSetTypes.yaml", "category": "class" }, + { + "name": "Access", + "path": "modules/classes/Access.yaml", + "category": "class" + }, { "name": "AccessPolicy", "path": "modules/classes/AccessPolicy.yaml", "category": "class" }, + { + "name": "Acquisition", + "path": "modules/classes/Acquisition.yaml", + "category": "class" + }, { "name": "Activity", "path": "modules/classes/Activity.yaml", @@ -120,6 +130,11 @@ "path": "modules/classes/AdvertisingRadioArchiveRecordSetTypes.yaml", "category": "class" }, + { + "name": "Agent", + "path": "modules/classes/Agent.yaml", + "category": "class" + }, { "name": "AllocationAgency", "path": "modules/classes/AllocationAgency.yaml", @@ -175,6 +190,11 @@ "path": "modules/classes/Appointment.yaml", "category": "class" }, + { + "name": "AppreciationEvent", + "path": "modules/classes/AppreciationEvent.yaml", + "category": "class" + }, { "name": "ApprovalTimeType", "path": "modules/classes/ApprovalTimeType.yaml", @@ -310,6 +330,11 @@ "path": "modules/classes/ArticlesOfAssociation.yaml", "category": "class" }, + { + "name": "ArtSaleService", + "path": "modules/classes/ArtSaleService.yaml", + "category": "class" + }, { "name": "Asserter", "path": "modules/classes/Asserter.yaml", @@ -405,6 +430,11 @@ "path": "modules/classes/BankArchiveRecordSetTypes.yaml", "category": "class" }, + { + "name": "BaseName", + "path": "modules/classes/BaseName.yaml", + "category": "class" + }, { "name": "BayNumber", "path": "modules/classes/BayNumber.yaml", @@ -525,6 +555,11 @@ "path": "modules/classes/BusinessModel.yaml", "category": "class" }, + { + "name": "CalendarSystem", + "path": "modules/classes/CalendarSystem.yaml", + "category": "class" + }, { "name": "CallForApplication", "path": "modules/classes/CallForApplication.yaml", @@ -565,6 +600,11 @@ "path": "modules/classes/CatalogingStandard.yaml", "category": "class" }, + { + "name": "Category", + "path": "modules/classes/Category.yaml", + "category": "class" + }, { "name": "CateringPlace", "path": "modules/classes/CateringPlace.yaml", @@ -585,6 +625,16 @@ "path": "modules/classes/CathedralArchiveRecordSetTypes.yaml", "category": "class" }, + { + "name": "CauseOfDeath", + "path": "modules/classes/CauseOfDeath.yaml", + "category": "class" + }, + { + "name": "CertaintyLevel", + "path": "modules/classes/CertaintyLevel.yaml", + "category": "class" + }, { "name": "CertificationEntry", "path": "modules/classes/CertificationEntry.yaml", @@ -665,6 +715,51 @@ "path": "modules/classes/Cinematheque.yaml", "category": "class" }, + { + "name": "CITESAppendix", + "path": "modules/classes/CITESAppendix.yaml", + "category": "class" + }, + { + "name": "City", + "path": "modules/classes/City.yaml", + "category": "class" + }, + { + "name": "Claim", + "path": "modules/classes/Claim.yaml", + "category": "class" + }, + { + "name": "ClaimType", + "path": "modules/classes/ClaimType.yaml", + "category": "class" + }, + { + "name": "ClaimTypes", + "path": "modules/classes/ClaimTypes.yaml", + "category": "class" + }, + { + "name": "ClassificationStatus", + "path": "modules/classes/ClassificationStatus.yaml", + "category": "class" + }, + { + "name": "ClassificationStatusType", + "path": "modules/classes/ClassificationStatusType.yaml", + "category": "class" + }, + { + "name": "ClassificationStatusTypes", + "path": "modules/classes/ClassificationStatusTypes.yaml", + "category": "class" + }, + { + "name": "Classroom", + "path": "modules/classes/Classroom.yaml", + "category": "class" + }, { "name": "ClimateArchive", "path": "modules/classes/ClimateArchive.yaml", @@ -680,6 +775,46 @@ "path": "modules/classes/ClimateArchiveRecordSetTypes.yaml", "category": "class" }, + { + "name": "ClimateControl", + "path": "modules/classes/ClimateControl.yaml", + "category": "class" + }, + { + "name": "ClimateControlPolicy", + "path": "modules/classes/ClimateControlPolicy.yaml", + "category": "class" + }, + { + "name": "ClimateControlType", + "path": "modules/classes/ClimateControlType.yaml", + "category": "class" + }, + { + "name": "ClimateControlTypes", + "path": "modules/classes/ClimateControlTypes.yaml", + "category": "class" + }, + { + "name": "CMS", + "path": "modules/classes/CMS.yaml", + "category": "class" + }, + { + "name": "CMSType", + "path": "modules/classes/CMSType.yaml", + "category": "class" + }, + { + "name": "CMSTypes", + "path": "modules/classes/CMSTypes.yaml", + "category": "class" + }, + { + "name": "CoFunding", + "path": "modules/classes/CoFunding.yaml", + "category": "class" + }, { "name": "CollectingArchives", "path": "modules/classes/CollectingArchives.yaml", @@ -700,6 +835,31 @@ "path": "modules/classes/Collection.yaml", "category": "class" }, + { + "name": "CollectionContent", + "path": "modules/classes/CollectionContent.yaml", + "category": "class" + }, + { + "name": "CollectionContentType", + "path": "modules/classes/CollectionContentType.yaml", + "category": "class" + }, + { + "name": "CollectionContentTypes", + "path": "modules/classes/CollectionContentTypes.yaml", + "category": "class" + }, + { + "name": "CollectionDiscoveryScore", + "path": "modules/classes/CollectionDiscoveryScore.yaml", + "category": "class" + }, + { + "name": "CollectionEvent", + "path": "modules/classes/CollectionEvent.yaml", + "category": "class" + }, { "name": "CollectionManagementSystem", "path": "modules/classes/CollectionManagementSystem.yaml", @@ -715,6 +875,11 @@ "path": "modules/classes/CollectionType.yaml", "category": "class" }, + { + "name": "ColonialStatus", + "path": "modules/classes/ColonialStatus.yaml", + "category": "class" + }, { "name": "ComarcalArchive", "path": "modules/classes/ComarcalArchive.yaml", @@ -735,11 +900,26 @@ "path": "modules/classes/Comment.yaml", "category": "class" }, + { + "name": "CommentReply", + "path": "modules/classes/CommentReply.yaml", + "category": "class" + }, + { + "name": "CommercialCustodianTypes", + "path": "modules/classes/CommercialCustodianTypes.yaml", + "category": "class" + }, { "name": "CommercialOrganizationType", "path": "modules/classes/CommercialOrganizationType.yaml", "category": "class" }, + { + "name": "CommissionRate", + "path": "modules/classes/CommissionRate.yaml", + "category": "class" + }, { "name": "CommunityArchive", "path": "modules/classes/CommunityArchive.yaml", @@ -775,11 +955,41 @@ "path": "modules/classes/CompanyArchivesRecordSetType.yaml", "category": "class" }, + { + "name": "ComplianceStatus", + "path": "modules/classes/ComplianceStatus.yaml", + "category": "class" + }, + { + "name": "Component", + "path": "modules/classes/Component.yaml", + "category": "class" + }, + { + "name": "ComponentType", + "path": "modules/classes/ComponentType.yaml", + "category": "class" + }, + { + "name": "ComponentTypes", + "path": "modules/classes/ComponentTypes.yaml", + "category": "class" + }, { "name": "Condition", "path": "modules/classes/Condition.yaml", "category": "class" }, + { + "name": "ConditionPolicy", + "path": "modules/classes/ConditionPolicy.yaml", + "category": "class" + }, + { + "name": "ConditionState", + "path": "modules/classes/ConditionState.yaml", + "category": "class" + }, { "name": "ConditionType", "path": "modules/classes/ConditionType.yaml", @@ -795,6 +1005,21 @@ "path": "modules/classes/ConfidenceMeasure.yaml", "category": "class" }, + { + "name": "ConfidenceMethod", + "path": "modules/classes/ConfidenceMethod.yaml", + "category": "class" + }, + { + "name": "ConfidenceScore", + "path": "modules/classes/ConfidenceScore.yaml", + "category": "class" + }, + { + "name": "ConfidenceThreshold", + "path": "modules/classes/ConfidenceThreshold.yaml", + "category": "class" + }, { "name": "ConflictStatus", "path": "modules/classes/ConflictStatus.yaml", @@ -1030,6 +1255,11 @@ "path": "modules/classes/DataTierSummary.yaml", "category": "class" }, + { + "name": "DeceasedStatus", + "path": "modules/classes/DeceasedStatus.yaml", + "category": "class" + }, { "name": "Department", "path": "modules/classes/Department.yaml", @@ -1105,6 +1335,11 @@ "path": "modules/classes/DigitalPlatformTypes.yaml", "category": "class" }, + { + "name": "DigitalPlatformUserIdentifier", + "path": "modules/classes/DigitalPlatformUserIdentifier.yaml", + "category": "class" + }, { "name": "DigitalPlatformV2", "path": "modules/classes/DigitalPlatformV2.yaml", @@ -1185,6 +1420,11 @@ "path": "modules/classes/DiocesanArchiveRecordSetTypes.yaml", "category": "class" }, + { + "name": "Diocese", + "path": "modules/classes/Diocese.yaml", + "category": "class" + }, { "name": "DistrictArchiveGermany", "path": "modules/classes/DistrictArchiveGermany.yaml", @@ -1385,6 +1625,11 @@ "path": "modules/classes/ExtractionMetadata.yaml", "category": "class" }, + { + "name": "ExtractionMethod", + "path": "modules/classes/ExtractionMethod.yaml", + "category": "class" + }, { "name": "ExtractionSourceInfo", "path": "modules/classes/ExtractionSourceInfo.yaml", @@ -1445,11 +1690,6 @@ "path": "modules/classes/FindingAid.yaml", "category": "class" }, - { - "name": "FindingAidMetadata", - "path": "modules/classes/deprecated/FindingAidMetadata.yaml", - "category": "class" - }, { "name": "FindingAidType", "path": "modules/classes/FindingAidType.yaml", @@ -1465,6 +1705,11 @@ "path": "modules/classes/Foremalarkiv.yaml", "category": "class" }, + { + "name": "Format", + "path": "modules/classes/Format.yaml", + "category": "class" + }, { "name": "FormerName", "path": "modules/classes/FormerName.yaml", @@ -1485,6 +1730,11 @@ "path": "modules/classes/FoundationArchiveRecordSetTypes.yaml", "category": "class" }, + { + "name": "FoundingEvent", + "path": "modules/classes/FoundingEvent.yaml", + "category": "class" + }, { "name": "FreeArchive", "path": "modules/classes/FreeArchive.yaml", @@ -1550,6 +1800,11 @@ "path": "modules/classes/GenealogiewerkbalkEnrichment.yaml", "category": "class" }, + { + "name": "GenerationEvent", + "path": "modules/classes/GenerationEvent.yaml", + "category": "class" + }, { "name": "GeoSpatialPlace", "path": "modules/classes/GeoSpatialPlace.yaml", @@ -1720,6 +1975,11 @@ "path": "modules/classes/HTTPMethodTypes.yaml", "category": "class" }, + { + "name": "Hypernym", + "path": "modules/classes/Hypernym.yaml", + "category": "class" + }, { "name": "Hypothesis", "path": "modules/classes/Hypothesis.yaml", @@ -1845,6 +2105,11 @@ "path": "modules/classes/ISO639-3Identifier.yaml", "category": "class" }, + { + "name": "Item", + "path": "modules/classes/Item.yaml", + "category": "class" + }, { "name": "JointArchives", "path": "modules/classes/JointArchives.yaml", @@ -1900,6 +2165,11 @@ "path": "modules/classes/Laptop.yaml", "category": "class" }, + { + "name": "LastName", + "path": "modules/classes/LastName.yaml", + "category": "class" + }, { "name": "LayoutMetadata", "path": "modules/classes/LayoutMetadata.yaml", @@ -2040,6 +2310,11 @@ "path": "modules/classes/LocalHistoryArchiveRecordSetTypes.yaml", "category": "class" }, + { + "name": "Locality", + "path": "modules/classes/Locality.yaml", + "category": "class" + }, { "name": "Location", "path": "modules/classes/Location.yaml", @@ -2315,6 +2590,21 @@ "path": "modules/classes/Nachlass.yaml", "category": "class" }, + { + "name": "Name", + "path": "modules/classes/Name.yaml", + "category": "class" + }, + { + "name": "NameType", + "path": "modules/classes/NameType.yaml", + "category": "class" + }, + { + "name": "NameTypes", + "path": "modules/classes/NameTypes.yaml", + "category": "class" + }, { "name": "NanIsilEnrichment", "path": "modules/classes/NanIsilEnrichment.yaml", @@ -2395,6 +2685,11 @@ "path": "modules/classes/NormalizedLocation.yaml", "category": "class" }, + { + "name": "NotableExample", + "path": "modules/classes/NotableExample.yaml", + "category": "class" + }, { "name": "NotarialArchive", "path": "modules/classes/NotarialArchive.yaml", @@ -2410,6 +2705,11 @@ "path": "modules/classes/NotarialArchiveRecordSetTypes.yaml", "category": "class" }, + { + "name": "Note", + "path": "modules/classes/Note.yaml", + "category": "class" + }, { "name": "Notes", "path": "modules/classes/Notes.yaml", @@ -2505,6 +2805,16 @@ "path": "modules/classes/OrganizationUnit.yaml", "category": "class" }, + { + "name": "Organizer", + "path": "modules/classes/Organizer.yaml", + "category": "class" + }, + { + "name": "OrganizerRole", + "path": "modules/classes/OrganizerRole.yaml", + "category": "class" + }, { "name": "OriginalEntry", "path": "modules/classes/OriginalEntry.yaml", @@ -2610,6 +2920,11 @@ "path": "modules/classes/PaymentMethod.yaml", "category": "class" }, + { + "name": "Percentage", + "path": "modules/classes/Percentage.yaml", + "category": "class" + }, { "name": "PerformingArtsArchive", "path": "modules/classes/PerformingArtsArchive.yaml", @@ -2720,6 +3035,11 @@ "path": "modules/classes/PlatformSourceReference.yaml", "category": "class" }, + { + "name": "Policy", + "path": "modules/classes/Policy.yaml", + "category": "class" + }, { "name": "PoliticalArchive", "path": "modules/classes/PoliticalArchive.yaml", @@ -2780,6 +3100,11 @@ "path": "modules/classes/ProfileData.yaml", "category": "class" }, + { + "name": "Profit", + "path": "modules/classes/Profit.yaml", + "category": "class" + }, { "name": "Program", "path": "modules/classes/Program.yaml", @@ -2940,6 +3265,11 @@ "path": "modules/classes/ReadingRoomAnnex.yaml", "category": "class" }, + { + "name": "ReasoningContent", + "path": "modules/classes/ReasoningContent.yaml", + "category": "class" + }, { "name": "ReconstructedEntity", "path": "modules/classes/ReconstructedEntity.yaml", @@ -2955,6 +3285,11 @@ "path": "modules/classes/ReconstructionAgent.yaml", "category": "class" }, + { + "name": "Reference", + "path": "modules/classes/Reference.yaml", + "category": "class" + }, { "name": "ReferenceLink", "path": "modules/classes/ReferenceLink.yaml", @@ -3045,6 +3380,11 @@ "path": "modules/classes/RelatedPlace.yaml", "category": "class" }, + { + "name": "RelatedType", + "path": "modules/classes/RelatedType.yaml", + "category": "class" + }, { "name": "RelatedYoutubeVideo", "path": "modules/classes/RelatedYoutubeVideo.yaml", @@ -3140,6 +3480,11 @@ "path": "modules/classes/Restriction.yaml", "category": "class" }, + { + "name": "ReturnEvent", + "path": "modules/classes/ReturnEvent.yaml", + "category": "class" + }, { "name": "Revenue", "path": "modules/classes/Revenue.yaml", @@ -3160,6 +3505,11 @@ "path": "modules/classes/ReviewTopics.yaml", "category": "class" }, + { + "name": "RoomUnit", + "path": "modules/classes/RoomUnit.yaml", + "category": "class" + }, { "name": "SchoolArchive", "path": "modules/classes/SchoolArchive.yaml", @@ -3275,6 +3625,21 @@ "path": "modules/classes/Settlement.yaml", "category": "class" }, + { + "name": "Significance", + "path": "modules/classes/Significance.yaml", + "category": "class" + }, + { + "name": "SignificanceType", + "path": "modules/classes/SignificanceType.yaml", + "category": "class" + }, + { + "name": "SignificanceTypes", + "path": "modules/classes/SignificanceTypes.yaml", + "category": "class" + }, { "name": "SocialMediaContent", "path": "modules/classes/SocialMediaContent.yaml", @@ -3325,6 +3690,16 @@ "path": "modules/classes/SoundArchiveRecordSetTypes.yaml", "category": "class" }, + { + "name": "Source", + "path": "modules/classes/Source.yaml", + "category": "class" + }, + { + "name": "SourceCommentCount", + "path": "modules/classes/SourceCommentCount.yaml", + "category": "class" + }, { "name": "SourceCoordinates", "path": "modules/classes/SourceCoordinates.yaml", @@ -3935,6 +4310,11 @@ "path": "modules/classes/UNESCOListStatus.yaml", "category": "class" }, + { + "name": "Unit", + "path": "modules/classes/Unit.yaml", + "category": "class" + }, { "name": "UnitIdentifier", "path": "modules/classes/UnitIdentifier.yaml", @@ -3995,6 +4375,16 @@ "path": "modules/classes/ValidationStatus.yaml", "category": "class" }, + { + "name": "VariantType", + "path": "modules/classes/VariantType.yaml", + "category": "class" + }, + { + "name": "VariantTypes", + "path": "modules/classes/VariantTypes.yaml", + "category": "class" + }, { "name": "Venue", "path": "modules/classes/Venue.yaml", @@ -4040,6 +4430,11 @@ "path": "modules/classes/VerlagsarchivRecordSetType.yaml", "category": "class" }, + { + "name": "Version", + "path": "modules/classes/Version.yaml", + "category": "class" + }, { "name": "VersionNumber", "path": "modules/classes/VersionNumber.yaml", @@ -4060,6 +4455,11 @@ "path": "modules/classes/ViabilityStatus.yaml", "category": "class" }, + { + "name": "Video", + "path": "modules/classes/Video.yaml", + "category": "class" + }, { "name": "VideoAnnotation", "path": "modules/classes/VideoAnnotation.yaml", @@ -4090,6 +4490,11 @@ "path": "modules/classes/VideoChapterList.yaml", "category": "class" }, + { + "name": "VideoFrame", + "path": "modules/classes/VideoFrame.yaml", + "category": "class" + }, { "name": "VideoFrames", "path": "modules/classes/VideoFrames.yaml", @@ -4195,6 +4600,11 @@ "path": "modules/classes/WebObservation.yaml", "category": "class" }, + { + "name": "WebPage", + "path": "modules/classes/WebPage.yaml", + "category": "class" + }, { "name": "WebPortal", "path": "modules/classes/WebPortal.yaml", @@ -4532,13 +4942,13 @@ "category": "enum" }, { - "name": "ChapterSourceEnum", - "path": "modules/enums/ChapterSourceEnum.yaml", + "name": "CauseOfDeathTypeEnum", + "path": "modules/enums/CauseOfDeathTypeEnum.yaml", "category": "enum" }, { - "name": "ClaimTypeEnum", - "path": "modules/enums/ClaimTypeEnum.yaml", + "name": "ChapterSourceEnum", + "path": "modules/enums/ChapterSourceEnum.yaml", "category": "enum" }, { @@ -5051,6 +5461,11 @@ "path": "modules/enums/RoleCategoryEnum.yaml", "category": "enum" }, + { + "name": "RoomUnitTypeEnum", + "path": "modules/enums/RoomUnitTypeEnum.yaml", + "category": "enum" + }, { "name": "SceneTypeEnum", "path": "modules/enums/SceneTypeEnum.yaml", @@ -5218,8 +5633,8 @@ "category": "slot" }, { - "name": "address_formatted", - "path": "modules/slots/address_formatted.yaml", + "name": "administrative_context", + "path": "modules/slots/administrative_context.yaml", "category": "slot" }, { @@ -5242,11 +5657,6 @@ "path": "modules/slots/allows_or_allowed.yaml", "category": "slot" }, - { - "name": "amount", - "path": "modules/slots/amount.yaml", - "category": "slot" - }, { "name": "analyzes_or_analyzed", "path": "modules/slots/analyzes_or_analyzed.yaml", @@ -5257,19 +5667,14 @@ "path": "modules/slots/applies_or_applied_to.yaml", "category": "slot" }, - { - "name": "area_value", - "path": "modules/slots/area_value.yaml", - "category": "slot" - }, { "name": "asserts_or_asserted", "path": "modules/slots/asserts_or_asserted.yaml", "category": "slot" }, { - "name": "base_surname", - "path": "modules/slots/base_surname.yaml", + "name": "based_on_claim", + "path": "modules/slots/based_on_claim.yaml", "category": "slot" }, { @@ -5282,11 +5687,6 @@ "path": "modules/slots/begin_of_the_end.yaml", "category": "slot" }, - { - "name": "benefits_provided", - "path": "modules/slots/benefits_provided.yaml", - "category": "slot" - }, { "name": "birth_edtf", "path": "modules/slots/birth_edtf.yaml", @@ -5297,21 +5697,6 @@ "path": "modules/slots/birth_iso_date.yaml", "category": "slot" }, - { - "name": "birth_source_text", - "path": "modules/slots/birth_source_text.yaml", - "category": "slot" - }, - { - "name": "bold_id", - "path": "modules/slots/bold_id.yaml", - "category": "slot" - }, - { - "name": "calendar_system", - "path": "modules/slots/calendar_system.yaml", - "category": "slot" - }, { "name": "canonical_access_rule", "path": "modules/slots/canonical_access_rule.yaml", @@ -5402,11 +5787,6 @@ "path": "modules/slots/category_measurement.yaml", "category": "slot" }, - { - "name": "category_note", - "path": "modules/slots/category_note.yaml", - "category": "slot" - }, { "name": "category_status", "path": "modules/slots/category_status.yaml", @@ -5422,16 +5802,6 @@ "path": "modules/slots/catering_type.yaml", "category": "slot" }, - { - "name": "certainty_level", - "path": "modules/slots/certainty_level.yaml", - "category": "slot" - }, - { - "name": "certainty_note", - "path": "modules/slots/certainty_note.yaml", - "category": "slot" - }, { "name": "cessation_observed_in", "path": "modules/slots/cessation_observed_in.yaml", @@ -5498,308 +5868,23 @@ "category": "slot" }, { - "name": "chapter_thumbnail_timestamp", - "path": "modules/slots/chapter_thumbnail_timestamp.yaml", + "name": "characteristics", + "path": "modules/slots/characteristics.yaml", "category": "slot" }, { - "name": "chapter_thumbnail_url", - "path": "modules/slots/chapter_thumbnail_url.yaml", + "name": "class_definition", + "path": "modules/slots/class_definition.yaml", "category": "slot" }, { - "name": "chapters_generated_at", - "path": "modules/slots/chapters_generated_at.yaml", + "name": "classifies_or_classified", + "path": "modules/slots/classifies_or_classified.yaml", "category": "slot" }, { - "name": "chapters_source", - "path": "modules/slots/chapters_source.yaml", - "category": "slot" - }, - { - "name": "character_count", - "path": "modules/slots/character_count.yaml", - "category": "slot" - }, - { - "name": "circumstances_of_death", - "path": "modules/slots/circumstances_of_death.yaml", - "category": "slot" - }, - { - "name": "cites_appendix", - "path": "modules/slots/cites_appendix.yaml", - "category": "slot" - }, - { - "name": "city", - "path": "modules/slots/city.yaml", - "category": "slot" - }, - { - "name": "claim", - "path": "modules/slots/claim.yaml", - "category": "slot" - }, - { - "name": "claim_extraction_method", - "path": "modules/slots/claim_extraction_method.yaml", - "category": "slot" - }, - { - "name": "claim_note", - "path": "modules/slots/claim_note.yaml", - "category": "slot" - }, - { - "name": "claim_type", - "path": "modules/slots/claim_type.yaml", - "category": "slot" - }, - { - "name": "claim_value", - "path": "modules/slots/claim_value.yaml", - "category": "slot" - }, - { - "name": "claims_count", - "path": "modules/slots/claims_count.yaml", - "category": "slot" - }, - { - "name": "classification_status", - "path": "modules/slots/classification_status.yaml", - "category": "slot" - }, - { - "name": "classifies_place", - "path": "modules/slots/classifies_place.yaml", - "category": "slot" - }, - { - "name": "classroom_count", - "path": "modules/slots/classroom_count.yaml", - "category": "slot" - }, - { - "name": "clear_thinking", - "path": "modules/slots/clear_thinking.yaml", - "category": "slot" - }, - { - "name": "climate_control_type", - "path": "modules/slots/climate_control_type.yaml", - "category": "slot" - }, - { - "name": "cms_category", - "path": "modules/slots/cms_category.yaml", - "category": "slot" - }, - { - "name": "cms_detected", - "path": "modules/slots/cms_detected.yaml", - "category": "slot" - }, - { - "name": "cms_id", - "path": "modules/slots/cms_id.yaml", - "category": "slot" - }, - { - "name": "cms_product_version", - "path": "modules/slots/cms_product_version.yaml", - "category": "slot" - }, - { - "name": "co_funding_required", - "path": "modules/slots/co_funding_required.yaml", - "category": "slot" - }, - { - "name": "co_organized_by", - "path": "modules/slots/co_organized_by.yaml", - "category": "slot" - }, - { - "name": "collected_in", - "path": "modules/slots/collected_in.yaml", - "category": "slot" - }, - { - "name": "collecting_scope", - "path": "modules/slots/collecting_scope.yaml", - "category": "slot" - }, - { - "name": "collection_access", - "path": "modules/slots/collection_access.yaml", - "category": "slot" - }, - { - "name": "collection_broader_type", - "path": "modules/slots/collection_broader_type.yaml", - "category": "slot" - }, - { - "name": "collection_date", - "path": "modules/slots/collection_date.yaml", - "category": "slot" - }, - { - "name": "collection_discovery_score", - "path": "modules/slots/collection_discovery_score.yaml", - "category": "slot" - }, - { - "name": "collection_focus", - "path": "modules/slots/collection_focus.yaml", - "category": "slot" - }, - { - "name": "collection_id", - "path": "modules/slots/collection_id.yaml", - "category": "slot" - }, - { - "name": "collection_locality_text", - "path": "modules/slots/collection_locality_text.yaml", - "category": "slot" - }, - { - "name": "collection_location", - "path": "modules/slots/collection_location.yaml", - "category": "slot" - }, - { - "name": "collection_purpose", - "path": "modules/slots/collection_purpose.yaml", - "category": "slot" - }, - { - "name": "collection_size", - "path": "modules/slots/collection_size.yaml", - "category": "slot" - }, - { - "name": "collection_type", - "path": "modules/slots/collection_type.yaml", - "category": "slot" - }, - { - "name": "collection_type_id", - "path": "modules/slots/collection_type_id.yaml", - "category": "slot" - }, - { - "name": "collection_type_ref", - "path": "modules/slots/collection_type_ref.yaml", - "category": "slot" - }, - { - "name": "collection_web_address", - "path": "modules/slots/collection_web_address.yaml", - "category": "slot" - }, - { - "name": "collections_under_responsibility", - "path": "modules/slots/collections_under_responsibility.yaml", - "category": "slot" - }, - { - "name": "collector", - "path": "modules/slots/collector.yaml", - "category": "slot" - }, - { - "name": "colonial", - "path": "modules/slots/colonial.yaml", - "category": "slot" - }, - { - "name": "comment_author", - "path": "modules/slots/comment_author.yaml", - "category": "slot" - }, - { - "name": "comment_author_channel_id", - "path": "modules/slots/comment_author_channel_id.yaml", - "category": "slot" - }, - { - "name": "comment_count", - "path": "modules/slots/comment_count.yaml", - "category": "slot" - }, - { - "name": "comment_like_count", - "path": "modules/slots/comment_like_count.yaml", - "category": "slot" - }, - { - "name": "comment_reply_count", - "path": "modules/slots/comment_reply_count.yaml", - "category": "slot" - }, - { - "name": "comments_fetched", - "path": "modules/slots/comments_fetched.yaml", - "category": "slot" - }, - { - "name": "commercial_activity", - "path": "modules/slots/commercial_activity.yaml", - "category": "slot" - }, - { - "name": "commercial_custodian_subtype", - "path": "modules/slots/commercial_custodian_subtype.yaml", - "category": "slot" - }, - { - "name": "commercial_operation", - "path": "modules/slots/commercial_operation.yaml", - "category": "slot" - }, - { - "name": "commission_rate", - "path": "modules/slots/commission_rate.yaml", - "category": "slot" - }, - { - "name": "common_name", - "path": "modules/slots/common_name.yaml", - "category": "slot" - }, - { - "name": "common_name_language", - "path": "modules/slots/common_name_language.yaml", - "category": "slot" - }, - { - "name": "common_variant", - "path": "modules/slots/common_variant.yaml", - "category": "slot" - }, - { - "name": "community_engagement", - "path": "modules/slots/community_engagement.yaml", - "category": "slot" - }, - { - "name": "community_significance", - "path": "modules/slots/community_significance.yaml", - "category": "slot" - }, - { - "name": "completion_token", - "path": "modules/slots/completion_token.yaml", - "category": "slot" - }, - { - "name": "compliance_status", - "path": "modules/slots/compliance_status.yaml", + "name": "collects_or_collected", + "path": "modules/slots/collects_or_collected.yaml", "category": "slot" }, { @@ -5807,56 +5892,11 @@ "path": "modules/slots/complies_or_complied_with.yaml", "category": "slot" }, - { - "name": "component_type", - "path": "modules/slots/component_type.yaml", - "category": "slot" - }, - { - "name": "condition", - "path": "modules/slots/condition.yaml", - "category": "slot" - }, - { - "name": "condition_after", - "path": "modules/slots/condition_after.yaml", - "category": "slot" - }, - { - "name": "condition_before", - "path": "modules/slots/condition_before.yaml", - "category": "slot" - }, - { - "name": "condition_description", - "path": "modules/slots/condition_description.yaml", - "category": "slot" - }, - { - "name": "condition_id", - "path": "modules/slots/condition_id.yaml", - "category": "slot" - }, { "name": "condition_of_access", "path": "modules/slots/condition_of_access.yaml", "category": "slot" }, - { - "name": "condition_on_return", - "path": "modules/slots/condition_on_return.yaml", - "category": "slot" - }, - { - "name": "condition_policy", - "path": "modules/slots/condition_policy.yaml", - "category": "slot" - }, - { - "name": "condition_status", - "path": "modules/slots/condition_status.yaml", - "category": "slot" - }, { "name": "confidence", "path": "modules/slots/confidence.yaml", @@ -5872,11 +5912,6 @@ "path": "modules/slots/confidence_score.yaml", "category": "slot" }, - { - "name": "confidence_threshold", - "path": "modules/slots/confidence_threshold.yaml", - "category": "slot" - }, { "name": "confidence_value", "path": "modules/slots/confidence_value.yaml", @@ -6027,6 +6062,11 @@ "path": "modules/slots/contact_point.yaml", "category": "slot" }, + { + "name": "contains_or_contained", + "path": "modules/slots/contains_or_contained.yaml", + "category": "slot" + }, { "name": "contains_or_contained_collection", "path": "modules/slots/contains_or_contained_collection.yaml", @@ -6658,13 +6698,18 @@ "category": "slot" }, { - "name": "description", - "path": "modules/slots/description.yaml", + "name": "derives_or_derived_from", + "path": "modules/slots/derives_or_derived_from.yaml", "category": "slot" }, { - "name": "description_section", - "path": "modules/slots/description_section.yaml", + "name": "describes_or_described", + "path": "modules/slots/describes_or_described.yaml", + "category": "slot" + }, + { + "name": "description", + "path": "modules/slots/description.yaml", "category": "slot" }, { @@ -6922,6 +6967,11 @@ "path": "modules/slots/duration.yaml", "category": "slot" }, + { + "name": "dutch_context", + "path": "modules/slots/dutch_context.yaml", + "category": "slot" + }, { "name": "ead_id", "path": "modules/slots/ead_id.yaml", @@ -7317,6 +7367,21 @@ "path": "modules/slots/example_instance.yaml", "category": "slot" }, + { + "name": "example_location", + "path": "modules/slots/example_location.yaml", + "category": "slot" + }, + { + "name": "example_name", + "path": "modules/slots/example_name.yaml", + "category": "slot" + }, + { + "name": "example_note", + "path": "modules/slots/example_note.yaml", + "category": "slot" + }, { "name": "example_platform", "path": "modules/slots/example_platform.yaml", @@ -7327,6 +7392,11 @@ "path": "modules/slots/example_portal.yaml", "category": "slot" }, + { + "name": "example_wikidata_id", + "path": "modules/slots/example_wikidata_id.yaml", + "category": "slot" + }, { "name": "excluded_materials", "path": "modules/slots/excluded_materials.yaml", @@ -7657,6 +7727,11 @@ "path": "modules/slots/filing_type.yaml", "category": "slot" }, + { + "name": "final_of_the_final", + "path": "modules/slots/final_of_the_final.yaml", + "category": "slot" + }, { "name": "financial_archival_stage", "path": "modules/slots/financial_archival_stage.yaml", @@ -7777,41 +7852,6 @@ "path": "modules/slots/footnote.yaml", "category": "slot" }, - { - "name": "format", - "path": "modules/slots/format.yaml", - "category": "slot" - }, - { - "name": "founded_year", - "path": "modules/slots/founded_year.yaml", - "category": "slot" - }, - { - "name": "founding_date", - "path": "modules/slots/founding_date.yaml", - "category": "slot" - }, - { - "name": "founding_date_diocese", - "path": "modules/slots/founding_date_diocese.yaml", - "category": "slot" - }, - { - "name": "fr", - "path": "modules/slots/fr.yaml", - "category": "slot" - }, - { - "name": "frame_rate", - "path": "modules/slots/frame_rate.yaml", - "category": "slot" - }, - { - "name": "frame_sample_rate", - "path": "modules/slots/frame_sample_rate.yaml", - "category": "slot" - }, { "name": "from_location", "path": "modules/slots/from_location.yaml", @@ -8967,6 +9007,11 @@ "path": "modules/slots/has_or_had_auxiliary_entities.yaml", "category": "slot" }, + { + "name": "has_or_had_base", + "path": "modules/slots/has_or_had_base.yaml", + "category": "slot" + }, { "name": "has_or_had_based_on_observation", "path": "modules/slots/has_or_had_based_on_observation.yaml", @@ -8997,6 +9042,11 @@ "path": "modules/slots/has_or_had_capacity.yaml", "category": "slot" }, + { + "name": "has_or_had_category", + "path": "modules/slots/has_or_had_category.yaml", + "category": "slot" + }, { "name": "has_or_had_category_assessment", "path": "modules/slots/has_or_had_category_assessment.yaml", @@ -9037,6 +9087,11 @@ "path": "modules/slots/has_or_had_comment_reply.yaml", "category": "slot" }, + { + "name": "has_or_had_component", + "path": "modules/slots/has_or_had_component.yaml", + "category": "slot" + }, { "name": "has_or_had_comprehensive_overview", "path": "modules/slots/has_or_had_comprehensive_overview.yaml", @@ -9487,6 +9542,11 @@ "path": "modules/slots/has_or_had_notes.yaml", "category": "slot" }, + { + "name": "has_or_had_objective", + "path": "modules/slots/has_or_had_objective.yaml", + "category": "slot" + }, { "name": "has_or_had_open_access_endpoint", "path": "modules/slots/has_or_had_open_access_endpoint.yaml", @@ -9522,6 +9582,11 @@ "path": "modules/slots/has_or_had_organizational_structure.yaml", "category": "slot" }, + { + "name": "has_or_had_organizer", + "path": "modules/slots/has_or_had_organizer.yaml", + "category": "slot" + }, { "name": "has_or_had_owner", "path": "modules/slots/has_or_had_owner.yaml", @@ -9542,11 +9607,21 @@ "path": "modules/slots/has_or_had_participated_in_project.yaml", "category": "slot" }, + { + "name": "has_or_had_percentage", + "path": "modules/slots/has_or_had_percentage.yaml", + "category": "slot" + }, { "name": "has_or_had_period", "path": "modules/slots/has_or_had_period.yaml", "category": "slot" }, + { + "name": "has_or_had_place", + "path": "modules/slots/has_or_had_place.yaml", + "category": "slot" + }, { "name": "has_or_had_place_of_birth", "path": "modules/slots/has_or_had_place_of_birth.yaml", @@ -9647,6 +9722,11 @@ "path": "modules/slots/has_or_had_rationale.yaml", "category": "slot" }, + { + "name": "has_or_had_reference", + "path": "modules/slots/has_or_had_reference.yaml", + "category": "slot" + }, { "name": "has_or_had_registered_dataset", "path": "modules/slots/has_or_had_registered_dataset.yaml", @@ -9687,6 +9767,11 @@ "path": "modules/slots/has_or_had_related_heritage_form.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", @@ -9797,6 +9882,11 @@ "path": "modules/slots/has_or_had_short_code.yaml", "category": "slot" }, + { + "name": "has_or_had_significance", + "path": "modules/slots/has_or_had_significance.yaml", + "category": "slot" + }, { "name": "has_or_had_silence_segment", "path": "modules/slots/has_or_had_silence_segment.yaml", @@ -9812,6 +9902,11 @@ "path": "modules/slots/has_or_had_sound_event_type.yaml", "category": "slot" }, + { + "name": "has_or_had_source", + "path": "modules/slots/has_or_had_source.yaml", + "category": "slot" + }, { "name": "has_or_had_specification", "path": "modules/slots/has_or_had_specification.yaml", @@ -9927,6 +10022,11 @@ "path": "modules/slots/has_or_had_thematic_route.yaml", "category": "slot" }, + { + "name": "has_or_had_threshold", + "path": "modules/slots/has_or_had_threshold.yaml", + "category": "slot" + }, { "name": "has_or_had_thumbnail", "path": "modules/slots/has_or_had_thumbnail.yaml", @@ -10002,6 +10102,11 @@ "path": "modules/slots/has_or_had_web_claim.yaml", "category": "slot" }, + { + "name": "has_or_had_web_page", + "path": "modules/slots/has_or_had_web_page.yaml", + "category": "slot" + }, { "name": "has_or_had_writing_system", "path": "modules/slots/has_or_had_writing_system.yaml", @@ -10147,6 +10252,11 @@ "path": "modules/slots/heritage_relevant_percentage.yaml", "category": "slot" }, + { + "name": "heritage_sector_usage", + "path": "modules/slots/heritage_sector_usage.yaml", + "category": "slot" + }, { "name": "heritage_society_subtype", "path": "modules/slots/heritage_society_subtype.yaml", @@ -10202,6 +10312,11 @@ "path": "modules/slots/historical_region.yaml", "category": "slot" }, + { + "name": "historical_significance", + "path": "modules/slots/historical_significance.yaml", + "category": "slot" + }, { "name": "hold_or_held_record_set_type", "path": "modules/slots/hold_or_held_record_set_type.yaml", @@ -10457,6 +10572,11 @@ "path": "modules/slots/initial.yaml", "category": "slot" }, + { + "name": "initial_of_the_initial", + "path": "modules/slots/initial_of_the_initial.yaml", + "category": "slot" + }, { "name": "innovation_budget", "path": "modules/slots/innovation_budget.yaml", @@ -10607,6 +10727,11 @@ "path": "modules/slots/is_current_version.yaml", "category": "slot" }, + { + "name": "is_deceased", + "path": "modules/slots/is_deceased.yaml", + "category": "slot" + }, { "name": "is_embeddable", "path": "modules/slots/is_embeddable.yaml", @@ -10682,6 +10807,11 @@ "path": "modules/slots/is_or_was_access_restricted.yaml", "category": "slot" }, + { + "name": "is_or_was_acquired_by", + "path": "modules/slots/is_or_was_acquired_by.yaml", + "category": "slot" + }, { "name": "is_or_was_active_since", "path": "modules/slots/is_or_was_active_since.yaml", @@ -10732,6 +10862,11 @@ "path": "modules/slots/is_or_was_appended_with.yaml", "category": "slot" }, + { + "name": "is_or_was_appreciated", + "path": "modules/slots/is_or_was_appreciated.yaml", + "category": "slot" + }, { "name": "is_or_was_approved_by", "path": "modules/slots/is_or_was_approved_by.yaml", @@ -10772,11 +10907,21 @@ "path": "modules/slots/is_or_was_available.yaml", "category": "slot" }, + { + "name": "is_or_was_based_on", + "path": "modules/slots/is_or_was_based_on.yaml", + "category": "slot" + }, { "name": "is_or_was_categorized_as", "path": "modules/slots/is_or_was_categorized_as.yaml", "category": "slot" }, + { + "name": "is_or_was_caused_by", + "path": "modules/slots/is_or_was_caused_by.yaml", + "category": "slot" + }, { "name": "is_or_was_collection_of", "path": "modules/slots/is_or_was_collection_of.yaml", @@ -10802,11 +10947,26 @@ "path": "modules/slots/is_or_was_equivalent_to.yaml", "category": "slot" }, + { + "name": "is_or_was_extracted_using", + "path": "modules/slots/is_or_was_extracted_using.yaml", + "category": "slot" + }, + { + "name": "is_or_was_founded_through", + "path": "modules/slots/is_or_was_founded_through.yaml", + "category": "slot" + }, { "name": "is_or_was_generated_by", "path": "modules/slots/is_or_was_generated_by.yaml", "category": "slot" }, + { + "name": "is_or_was_included_in", + "path": "modules/slots/is_or_was_included_in.yaml", + "category": "slot" + }, { "name": "is_or_was_indexed", "path": "modules/slots/is_or_was_indexed.yaml", @@ -10817,6 +10977,16 @@ "path": "modules/slots/is_or_was_instance_of.yaml", "category": "slot" }, + { + "name": "is_or_was_listed_in", + "path": "modules/slots/is_or_was_listed_in.yaml", + "category": "slot" + }, + { + "name": "is_or_was_located_in", + "path": "modules/slots/is_or_was_located_in.yaml", + "category": "slot" + }, { "name": "is_or_was_located_within", "path": "modules/slots/is_or_was_located_within.yaml", @@ -10832,11 +11002,21 @@ "path": "modules/slots/is_or_was_member_of.yaml", "category": "slot" }, + { + "name": "is_or_was_part_of", + "path": "modules/slots/is_or_was_part_of.yaml", + "category": "slot" + }, { "name": "is_or_was_part_of_archive_series", "path": "modules/slots/is_or_was_part_of_archive_series.yaml", "category": "slot" }, + { + "name": "is_or_was_part_of_total", + "path": "modules/slots/is_or_was_part_of_total.yaml", + "category": "slot" + }, { "name": "is_or_was_platform_of", "path": "modules/slots/is_or_was_platform_of.yaml", @@ -10862,6 +11042,16 @@ "path": "modules/slots/is_or_was_required.yaml", "category": "slot" }, + { + "name": "is_or_was_responsible_for", + "path": "modules/slots/is_or_was_responsible_for.yaml", + "category": "slot" + }, + { + "name": "is_or_was_returned", + "path": "modules/slots/is_or_was_returned.yaml", + "category": "slot" + }, { "name": "is_or_was_revision_of", "path": "modules/slots/is_or_was_revision_of.yaml", @@ -11052,6 +11242,11 @@ "path": "modules/slots/item.yaml", "category": "slot" }, + { + "name": "item_returned", + "path": "modules/slots/item_returned.yaml", + "category": "slot" + }, { "name": "iucn_status", "path": "modules/slots/iucn_status.yaml", @@ -11092,6 +11287,11 @@ "path": "modules/slots/justification.yaml", "category": "slot" }, + { + "name": "key_distinction", + "path": "modules/slots/key_distinction.yaml", + "category": "slot" + }, { "name": "keyframe_extraction", "path": "modules/slots/keyframe_extraction.yaml", @@ -11307,6 +11507,11 @@ "path": "modules/slots/lending_policy.yaml", "category": "slot" }, + { + "name": "level_value", + "path": "modules/slots/level_value.yaml", + "category": "slot" + }, { "name": "library_catalog_url", "path": "modules/slots/library_catalog_url.yaml", @@ -12017,6 +12222,11 @@ "path": "modules/slots/nonprofit_subtype.yaml", "category": "slot" }, + { + "name": "notable_examples", + "path": "modules/slots/notable_examples.yaml", + "category": "slot" + }, { "name": "notarial_deed_number", "path": "modules/slots/notarial_deed_number.yaml", @@ -12242,6 +12452,11 @@ "path": "modules/slots/offers_donation_scheme.yaml", "category": "slot" }, + { + "name": "offers_or_offered_access", + "path": "modules/slots/offers_or_offered_access.yaml", + "category": "slot" + }, { "name": "official_institution_subtype", "path": "modules/slots/official_institution_subtype.yaml", @@ -12667,11 +12882,6 @@ "path": "modules/slots/person_claim_id.yaml", "category": "slot" }, - { - "name": "person_claim_note", - "path": "modules/slots/person_claim_note.yaml", - "category": "slot" - }, { "name": "person_claim_type", "path": "modules/slots/person_claim_type.yaml", @@ -12952,6 +13162,11 @@ "path": "modules/slots/portal_url.yaml", "category": "slot" }, + { + "name": "poses_or_posed_condition", + "path": "modules/slots/poses_or_posed_condition.yaml", + "category": "slot" + }, { "name": "post_count", "path": "modules/slots/post_count.yaml", @@ -13122,6 +13337,11 @@ "path": "modules/slots/preservative_detail.yaml", "category": "slot" }, + { + "name": "preserves_or_preserved", + "path": "modules/slots/preserves_or_preserved.yaml", + "category": "slot" + }, { "name": "previous_observation", "path": "modules/slots/previous_observation.yaml", @@ -13612,6 +13832,11 @@ "path": "modules/slots/regulated_by_scheme.yaml", "category": "slot" }, + { + "name": "regulates_or_regulated", + "path": "modules/slots/regulates_or_regulated.yaml", + "category": "slot" + }, { "name": "regulatory_authority", "path": "modules/slots/regulatory_authority.yaml", @@ -13652,6 +13877,31 @@ "path": "modules/slots/related_project.yaml", "category": "slot" }, + { + "name": "related_type_name", + "path": "modules/slots/related_type_name.yaml", + "category": "slot" + }, + { + "name": "related_type_note", + "path": "modules/slots/related_type_note.yaml", + "category": "slot" + }, + { + "name": "related_type_relationship", + "path": "modules/slots/related_type_relationship.yaml", + "category": "slot" + }, + { + "name": "related_type_wikidata", + "path": "modules/slots/related_type_wikidata.yaml", + "category": "slot" + }, + { + "name": "related_types", + "path": "modules/slots/related_types.yaml", + "category": "slot" + }, { "name": "relationship", "path": "modules/slots/relationship.yaml", @@ -13862,6 +14112,11 @@ "path": "modules/slots/research_project.yaml", "category": "slot" }, + { + "name": "research_value", + "path": "modules/slots/research_value.yaml", + "category": "slot" + }, { "name": "reservation_required", "path": "modules/slots/reservation_required.yaml", @@ -14127,6 +14382,11 @@ "path": "modules/slots/scope.yaml", "category": "slot" }, + { + "name": "scope_description", + "path": "modules/slots/scope_description.yaml", + "category": "slot" + }, { "name": "scope_exclude", "path": "modules/slots/scope_exclude.yaml", @@ -14692,6 +14952,11 @@ "path": "modules/slots/start_date.yaml", "category": "slot" }, + { + "name": "start_of_the_start", + "path": "modules/slots/start_of_the_start.yaml", + "category": "slot" + }, { "name": "start_seconds", "path": "modules/slots/start_seconds.yaml", @@ -14792,6 +15057,11 @@ "path": "modules/slots/supersedes_or_superseded.yaml", "category": "slot" }, + { + "name": "takes_or_took_comission", + "path": "modules/slots/takes_or_took_comission.yaml", + "category": "slot" + }, { "name": "takes_or_took_place_at", "path": "modules/slots/takes_or_took_place_at.yaml", @@ -14802,6 +15072,11 @@ "path": "modules/slots/temperature_target.yaml", "category": "slot" }, + { + "name": "temporal_dynamics", + "path": "modules/slots/temporal_dynamics.yaml", + "category": "slot" + }, { "name": "temporal_extent", "path": "modules/slots/temporal_extent.yaml", @@ -14817,11 +15092,31 @@ "path": "modules/slots/track_id.yaml", "category": "slot" }, + { + "name": "typical_contents", + "path": "modules/slots/typical_contents.yaml", + "category": "slot" + }, + { + "name": "use_cases", + "path": "modules/slots/use_cases.yaml", + "category": "slot" + }, { "name": "uses_or_used_technique", "path": "modules/slots/uses_or_used_technique.yaml", "category": "slot" }, + { + "name": "warrants_or_warranted", + "path": "modules/slots/warrants_or_warranted.yaml", + "category": "slot" + }, + { + "name": "was_acquired_through", + "path": "modules/slots/was_acquired_through.yaml", + "category": "slot" + }, { "name": "was_archived_at", "path": "modules/slots/was_archived_at.yaml", @@ -14832,6 +15127,11 @@ "path": "modules/slots/was_derived_from.yaml", "category": "slot" }, + { + "name": "was_fetched_at", + "path": "modules/slots/was_fetched_at.yaml", + "category": "slot" + }, { "name": "was_generated_by", "path": "modules/slots/was_generated_by.yaml", diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Access.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Access.yaml new file mode 100644 index 0000000000..18611b3d9b --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Access.yaml @@ -0,0 +1,254 @@ +# Access class +# Structured access information for heritage collections and services +# +# Created per slot_fixes.yaml revision for collection_access migration +# Generation date: 2026-01-19 +# Rule compliance: 53 (slot_fixes.yaml), 39 (RiC-O naming) + +id: https://nde.nl/ontology/hc/class/Access +name: Access +title: Access Class + +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 + - ../metadata + - ./TimeSpan + +classes: + Access: + class_uri: dcterms:RightsStatement + description: | + Structured access information for heritage collections, services, or facilities. + + **Purpose**: + Replaces simple string descriptions of access conditions with structured + data capturing access types, eligible users, conditions, and restrictions. + + **Key Properties**: + - `access_type`: Type of access (PUBLIC, BY_APPOINTMENT, RESTRICTED, etc.) + - `eligible_users`: Who can access (public, students, faculty, researchers) + - `access_conditions`: Conditions or requirements for access + - `access_restrictions`: Specific restrictions that apply + - `temporal_extent`: When this access policy applies + + **Access Types**: + - PUBLIC: Open to general public + - BY_APPOINTMENT: Requires advance appointment + - ACADEMIC: Restricted to academic community + - RESEARCHER: Restricted to credentialed researchers + - MEMBER: Requires membership + - RESTRICTED: Limited access with specific conditions + - CLOSED: Not currently accessible + - DIGITAL_ONLY: Available only in digital form + + **Ontological Alignment**: + - **Primary**: `dcterms:RightsStatement` - Dublin Core rights statement + - **Close**: `schema:publicAccess` - Schema.org access indicator + - **Related**: `crm:E30_Right` - CIDOC-CRM rights + + exact_mappings: + - dcterms:RightsStatement + + close_mappings: + - schema:publicAccess + + related_mappings: + - crm:E30_Right + + slots: + - access_type + - eligible_users + - access_conditions + - access_restrictions + - access_description + - temporal_extent + - is_digital_access + + slot_usage: + access_type: + required: true + range: AccessTypeEnum + description: Type of access offered + examples: + - value: PUBLIC + - value: BY_APPOINTMENT + - value: ACADEMIC + + eligible_users: + required: false + range: string + multivalued: true + description: | + Categories of users eligible for this access. + Examples: "enrolled students", "faculty", "visiting scholars", + "credentialed researchers", "general public" + examples: + - value: "enrolled students" + - value: "faculty and staff" + - value: "visiting researchers with credentials" + + access_conditions: + required: false + range: string + multivalued: true + description: | + Conditions that must be met for access. + Examples: "valid university ID", "advance booking required", + "handling training completed" + examples: + - value: "valid university ID required" + - value: "24-hour advance booking required" + + access_restrictions: + required: false + range: string + multivalued: true + description: | + Specific restrictions on access. + Examples: "conservation concerns limit handling", + "donor restrictions apply", "high-value items in secure storage" + examples: + - value: "fragile materials limited to supervised viewing" + - value: "donor bequest restricts reproduction" + + access_description: + required: false + range: string + description: | + Free-text description of access policy. + For backward compatibility with string-based collection_access. + examples: + - value: "Open to enrolled students and faculty; public by appointment" + + temporal_extent: + required: false + range: TimeSpan + inlined: true + description: | + Time period during which this access policy applies. + Useful for temporary restrictions or seasonal access. + + is_digital_access: + required: false + range: boolean + description: Whether this access is for digital materials + + annotations: + specificity_score: 0.50 + specificity_rationale: "Moderately specific - applies to collection and service access contexts" + custodian_types: '["*"]' + custodian_types_rationale: "All institution types offer some form of access" + + comments: + - "Created per slot_fixes.yaml revision for collection_access migration" + - "Replaces string-based collection_access with structured access data" + - "RULE 53: Part of collection_access → offers_or_offered_access + Access migration" + + examples: + - value: + access_type: PUBLIC + access_description: "Open to general public during gallery hours" + eligible_users: + - "general public" + access_conditions: + - "during posted gallery hours" + description: "Public access during gallery hours" + + - value: + access_type: BY_APPOINTMENT + eligible_users: + - "credentialed researchers" + - "graduate students with faculty sponsor" + access_conditions: + - "48-hour advance booking required" + - "handling training required for original materials" + access_restrictions: + - "fragile materials limited to supervised viewing only" + description: "Research access by appointment with conditions" + + - value: + access_type: ACADEMIC + access_description: "Open to enrolled students and faculty; public by appointment" + eligible_users: + - "enrolled students" + - "faculty" + - "research staff" + access_conditions: + - "valid university ID" + is_digital_access: false + description: "Academic community access with public by appointment" + + - value: + access_type: DIGITAL_ONLY + access_description: "Collection accessible only through online database" + eligible_users: + - "anyone with internet access" + is_digital_access: true + description: "Digital-only access" + +slots: + access_type: + slot_uri: dcterms:accessRights + description: Type of access offered + range: string + required: true + + eligible_users: + slot_uri: schema:eligibleRegion + description: Categories of users eligible for access + range: string + multivalued: true + + access_conditions: + slot_uri: schema:termsOfService + description: Conditions for access + range: string + multivalued: true + + access_restrictions: + slot_uri: schema:usageInfo + description: Restrictions on access + range: string + multivalued: true + + access_description: + slot_uri: schema:description + description: Free-text description of access policy + range: string + + is_digital_access: + slot_uri: schema:isAccessibleForFree + description: Whether this is digital access + range: boolean + +enums: + AccessTypeEnum: + description: Types of access to collections or services + permissible_values: + PUBLIC: + description: Open to general public + BY_APPOINTMENT: + description: Requires advance appointment + ACADEMIC: + description: Restricted to academic community + RESEARCHER: + description: Restricted to credentialed researchers + MEMBER: + description: Requires membership + RESTRICTED: + description: Limited access with specific conditions + CLOSED: + description: Not currently accessible + DIGITAL_ONLY: + description: Available only in digital form + MIXED: + description: Multiple access types apply diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AccessPolicy.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AccessPolicy.yaml index 4101592f35..fc08f749c0 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AccessPolicy.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AccessPolicy.yaml @@ -27,7 +27,9 @@ imports: # The is_or_was_required slot was incorrectly using schema:isRequired which is for form field validation # KEPT for backward compatibility - simple boolean for basic use cases - ../slots/requires_appointment - - ../slots/condition + # MIGRATED 2026-01-22: condition → poses_or_posed_condition + Condition (Rule 53) + - ../slots/poses_or_posed_condition + - ./Condition - ../slots/credentials_required - ../slots/cultural_protocol_url - ../slots/embargo_reason @@ -101,7 +103,8 @@ classes: # RESTORED 2026-01-15: requires_appointment - correct semantics (schema:reservationRequired) # KEPT for backward compatibility as simple boolean flag - requires_appointment - - condition + # MIGRATED 2026-01-22: condition → poses_or_posed_condition + Condition (Rule 53) + - poses_or_posed_condition # ADDED 2026-01-17: Rich access condition modeling per slot_fixes.yaml revision - condition_of_access - requires_or_required @@ -154,15 +157,24 @@ classes: description: Archive public access - value: Access restricted to academic researchers with institutional has_or_had_affiliation description: University special collections - condition: - range: string + # MIGRATED 2026-01-22: condition → poses_or_posed_condition + Condition (Rule 53) + poses_or_posed_condition: + range: Condition multivalued: true + inlined: true + inlined_as_list: true + description: | + Access conditions or requirements using structured Condition class. + MIGRATED from condition string slot per slot_fixes.yaml (Rule 53, 2026-01-22). examples: - value: - - Valid government-issued ID required - - Registration form must be completed - - Bags and coats must be stored in lockers - description: Archive access conditions + - has_or_had_type: AccessCondition + has_or_had_description: + description_text: "Valid government-issued ID required" + - has_or_had_type: AccessCondition + has_or_had_description: + description_text: "Registration form must be completed" + description: Archive access conditions using Condition class rights_statement: range: string examples: @@ -306,15 +318,22 @@ classes: - https://localcontexts.org/ - https://www.ica.org/standards/RiC/ontology#Rule examples: + # MIGRATED 2026-01-22: condition → poses_or_posed_condition + Condition (Rule 53) - value: policy_id: https://nde.nl/ontology/hc/access-policy/nationaal-archief-open policy_name: Nationaal Archief Public Access access_level: PUBLIC_OPEN access_description: Open to all visitors during reading room hours - condition: - - Valid government-issued ID required - - Registration form must be completed - - Original materials handled with gloves + poses_or_posed_condition: + - has_or_had_type: AccessCondition + has_or_had_description: + description_text: "Valid government-issued ID required" + - has_or_had_type: AccessCondition + has_or_had_description: + description_text: "Registration form must be completed" + - has_or_had_type: HandlingCondition + has_or_had_description: + description_text: "Original materials handled with gloves" registration_required: true requires_appointment: false # Walk-in access allowed fee_required: false @@ -335,9 +354,13 @@ classes: policy_name: DIM Archive - Preservation Only access_level: TEMPORARILY_CLOSED access_description: Materials in preservation storage, not currently accessible - condition: - - Awaiting processing and cataloging - - Access may be arranged for urgent research needs + poses_or_posed_condition: + - has_or_had_type: ProcessingCondition + has_or_had_description: + description_text: "Awaiting processing and cataloging" + - has_or_had_type: AccessCondition + has_or_had_description: + description_text: "Access may be arranged for urgent research needs" requires_appointment: true # Appointment required for DIM archive access credentials_required: PROFESSIONAL contact_email: preservation@archive.org diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Acquisition.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Acquisition.yaml new file mode 100644 index 0000000000..ddea0faa45 --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Acquisition.yaml @@ -0,0 +1,168 @@ +id: https://nde.nl/ontology/hc/class/Acquisition +name: acquisition_class +title: Acquisition Class +# Created per slot_fixes.yaml revision for collection_date migration +# RULE 53: Structured acquisition event with temporal extent +# CIDOC-CRM E8 Acquisition pattern + +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# + schema: http://schema.org/ + dwc: http://rs.tdwg.org/dwc/terms/ + rico: https://www.ica.org/standards/RiC/ontology# + +imports: + - linkml:types + - ../slots/temporal_extent + - ./TimeSpan + - ../slots/specificity_annotation + - ../slots/has_or_had_score + - ./SpecificityAnnotation + - ./TemplateSpecificityScore + - ./TemplateSpecificityType + - ./TemplateSpecificityTypes + +default_range: string + +enums: + AcquisitionMethodEnum: + description: Methods by which items are acquired for collections. + permissible_values: + FIELD_COLLECTION: + description: Collected in the field (biological, geological specimens) + meaning: dwc:Occurrence + PURCHASE: + description: Acquired through purchase + meaning: schema:BuyAction + DONATION: + description: Given as a gift or donation + meaning: schema:DonateAction + BEQUEST: + description: Received through will or estate + TRANSFER: + description: Transferred from another institution + meaning: crm:E10_Transfer_of_Custody + EXCHANGE: + description: Exchanged with another institution (specimen exchange) + EXCAVATION: + description: Recovered through archaeological excavation + LOAN: + description: On long-term loan (not owned) + CONFISCATION: + description: Seized or confiscated (legal action) + FOUND: + description: Found object (no prior owner) + COMMISSION: + description: Commissioned work (created for the collection) + UNKNOWN: + description: Acquisition method unknown + +classes: + Acquisition: + class_uri: crm:E8_Acquisition + description: >- + Represents an acquisition event - how and when an object or specimen was obtained for a collection. + + CIDOC-CRM E8 Acquisition models the transfer of legal ownership rights. + + **Key properties**: + - `temporal_extent`: When the acquisition occurred (TimeSpan with fuzzy boundaries for historical items) + - `acquisition_method`: How the item was acquired (field collection, purchase, donation, etc.) + - `acquisition_source`: From whom/where acquired (collector, dealer, previous owner, field location) + - `acquisition_agent`: Who performed the acquisition (collector, curator, institution) + + **Darwin Core alignment**: For biological specimens: + - `temporal_extent` replaces `dwc:eventDate` (collection date) + - `acquisition_source` can capture `dwc:locality` and `dwc:recordedBy` + + **Use cases**: + - Museum object provenance (purchase from dealer, 1923) + - Biological specimen collection (field collection, Amazon basin, 1750s) + - Archival transfer (transferred from ministry archives, 2001) + - Art donation (donated by artist's estate, 2015) + exact_mappings: + - crm:E8_Acquisition + close_mappings: + - prov:Activity + - schema:AcquireAction + related_mappings: + - rico:Event + - dwc:Event + slots: + - temporal_extent + - specificity_annotation + - has_or_had_score + attributes: + acquisition_method: + range: AcquisitionMethodEnum + description: >- + Method by which the item was acquired (field collection, purchase, donation, etc.). + acquisition_source: + range: string + description: >- + Source from which item was acquired. Can be: + - Person name (collector, donor, seller) + - Institution name (transferring institution) + - Location (field collection locality) + - Dealer or auction house + acquisition_agent: + range: string + description: >- + Agent who performed the acquisition (collector name, curator, institution). + For biological specimens, maps to dwc:recordedBy. + acquisition_location: + range: string + description: >- + Location where acquisition occurred (field collection site, auction house location). + For biological specimens, can capture field locality. + acquisition_reference: + range: string + description: >- + Reference number or identifier for the acquisition (accession number, lot number). + acquisition_notes: + range: string + description: >- + Additional notes about the acquisition event. + acquisition_date_text: + range: string + description: >- + Original date text as recorded (e.g., "1750s", "pre-1662", "circa 1900"). + For backward compatibility with string-based collection_date. + The structured date should be in temporal_extent. + comments: + - "Created per slot_fixes.yaml revision for collection_date migration" + - "Replaces simple collection_date string with structured acquisition event" + - "RULE 53: Part of collection_date → was_acquired_through + Acquisition migration" + annotations: + specificity_score: 0.70 + specificity_rationale: "Fairly specific - applies to items with acquisition provenance" + examples: + - value: | + # Biological specimen collected in the field + acquisition_method: FIELD_COLLECTION + temporal_extent: + begin_of_the_begin: "1750-01-01" + end_of_the_end: "1759-12-31" + notes: "Collected sometime in the 1750s" + acquisition_source: "Amazon basin, Brazil" + acquisition_agent: "Unknown Dutch collector" + acquisition_date_text: "1750s" + - value: | + # Museum object purchased from dealer + acquisition_method: PURCHASE + temporal_extent: + begin_of_the_begin: "1923-03-15" + end_of_the_end: "1923-03-15" + acquisition_source: "Sotheby's London" + acquisition_reference: "Lot 245, Sale of March 1923" + - value: | + # Historical specimen with uncertain date + acquisition_method: FIELD_COLLECTION + temporal_extent: + begin_of_the_begin: "1600-01-01" + end_of_the_end: "1662-12-31" + notes: "Pre-1662 (before Great Fire of London)" + acquisition_date_text: "pre-1662" diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ActivityTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ActivityTypes.yaml index e2473114cb..001fdaac13 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ActivityTypes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ActivityTypes.yaml @@ -373,3 +373,50 @@ classes: annotations: activity_category: LOAN spectrum_procedures: "loans-out, loans-in" + + # =========================================================================== + # COMMUNITY ENGAGEMENT ACTIVITY TYPES + # =========================================================================== + + CommunityEngagementActivityType: + is_a: ActivityType + class_uri: schema:InteractAction + description: | + Activity type for community outreach, public programming, and engagement activities. + + **Definition**: + Activities that connect heritage custodians with broader communities through + advocacy, public programs, and participatory engagement. + + **Subtypes**: + - Membership Meetings: Monthly, quarterly, annual gatherings + - Lecture Series: Guest speakers on heritage topics + - Field Trips: Site visits, museum tours, heritage walks + - Workshops: Skill-building sessions (genealogy, conservation, identification) + - Public Events: Open houses, exhibitions, school programs + - Community Events: Heritage days, festivals, memorial events + - Digital Engagement: Websites, social media, online forums, virtual meetings + - Advocacy: Historic preservation, heritage education, policy engagement + - Partnerships: Collaborations with local government, museums, libraries, universities + + **Typical Use Cases**: + - Heritage societies (heemkundekringen) connecting with local communities + - Archive associations conducting public outreach + - Museums hosting community events + + **Schema.org**: Maps to InteractAction for community interaction activities + + **Migration Note**: Created 2026-01-19 per slot_fixes.yaml revision. + Replaces community_engagement slot (string) with structured Activity class. + exact_mappings: + - schema:InteractAction + - wd:Q1069284 # Wikidata: community engagement + close_mappings: + - schema:CommunicateAction + - aat:300054552 # education (activity) - overlaps with educational engagement + related_mappings: + - schema:Event + annotations: + activity_category: COMMUNITY_ENGAGEMENT + migration_date: "2026-01-19" + replaces_slot: "community_engagement" diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Address.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Address.yaml index 120b355b41..712cb8bfaa 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Address.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Address.yaml @@ -20,7 +20,7 @@ prefixes: imports: - linkml:types - - ../slots/address_formatted + # REMOVED 2026-01-22: ../slots/address_formatted - migrated to has_or_had_label + Label (Rule 53, Feedback F1) # REMOVED: ../slots/address_type - migrated to has_or_had_type (2026-01-17, Rule 53/56) # Address component slots - ../slots/house_number @@ -29,7 +29,8 @@ imports: # street_address was a redundant string slot; full Address class captures street data via components - ../slots/postal_code - ../slots/locality - - ../slots/city + # REMOVED: ../slots/city - migrated to is_or_was_located_in + City (2026-01-18, Rule 53) + - ../slots/is_or_was_located_in - ../slots/region - ../slots/country_name # Shared slots (replacing address_formatted, address_type) @@ -46,6 +47,7 @@ imports: - ./Country - ./Subregion - ./Settlement + - ./City # Added for is_or_was_located_in range (2026-01-18, Rule 53) - ./CustodianObservation - ./ReconstructionActivity - ./AddressType @@ -154,7 +156,8 @@ classes: - postal_code # Locality/geographic hierarchy - locality - - city + # REMOVED: city - migrated to is_or_was_located_in + City (2026-01-18, Rule 53) + - is_or_was_located_in - region - country_name # Formatted representation (MIGRATED: address_formatted → has_or_had_label) @@ -196,10 +199,25 @@ classes: examples: - value: "Amsterdam" description: City name - city: - range: string + # REMOVED: city slot_usage - migrated to is_or_was_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: + range: City required: false - description: Alternative slot for locality (schema:addressLocality) + inlined: true + description: | + The city where this address is located, as a structured City entity. + MIGRATED from city (string) slot (2026-01-18, Rule 53). + Provides GeoNames ID, coordinates, and subregion linkage. + examples: + - value: + settlement_name: "Amsterdam" + geonames_id: 2759794 + country: "NL" + description: Address located in Amsterdam region: range: string required: false @@ -218,29 +236,32 @@ classes: description: Full name - value: "NL" description: ISO 3166-1 alpha-2 code - address_formatted: - range: string + # 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) + range: Label + multivalued: true + inlined: true + inlined_as_list: true required: false description: | - Full formatted address string. - DEPRECATED: Use has_or_had_label instead. - MIGRATION: 2026-01-13 - Replaced by has_or_had_label slot. - deprecated: "Use has_or_had_label instead" + Labels for this address, including: + 1. **Street name** as Label with language tag + 2. **Formatted address** as Label with language tag + + MIGRATED from: + - address_formatted (2026-01-22, Feedback F1) - formatted address strings + - street_name (2026-01-17, Rule 53/56) - street name component + + Use Label class with language_code for multilingual support. examples: - - value: "Museumstraat 1, 1071 XX Amsterdam, Netherlands" - description: Complete formatted address - # REMOVED: address_type slot_usage - migrated to has_or_had_type (2026-01-17, Rule 53/56) - # address_type: - # range: string - # required: false - # description: | - # Classification of address purpose. - # DEPRECATED: Use has_or_had_type with AddressType class instead. - # MIGRATION: 2026-01-13 - Replaced by has_or_had_type slot. - # deprecated: "Use has_or_had_type with AddressType class instead" - # examples: - # - value: "HEADQUARTERS" - # description: Main organizational address + - value: + - has_or_had_label: "Museumstraat" + language: "nl" + - has_or_had_label: "Museumstraat 1, 1071 XX Amsterdam, Netherlands" + language: "nl" + description: Street name and formatted address as labels has_or_had_type: # was: address_type - migrated per Rule 53/56 (2026-01-17) range: AddressType required: false diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AddressComponent.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AddressComponent.yaml index 10f197c944..00d30dcafd 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AddressComponent.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AddressComponent.yaml @@ -19,7 +19,10 @@ imports: # Centralized slots (Rule 38 compliant) - ../slots/long_name - ../slots/short_name - - ../slots/component_type + # REMOVED 2026-01-22: ../slots/component_type - migrated to has_or_had_type + ComponentType (Rule 53) + - ../slots/has_or_had_type + - ./ComponentType + - ./ComponentTypes default_range: string @@ -42,7 +45,7 @@ classes: Each AddressComponent has: - `long_name`: Full form of the value (e.g., "Netherlands", "Noord-Holland") - `short_name`: Abbreviated form (e.g., "NL", "NH") - may equal long_name - - `component_type`: Semantic type(s) of this component (e.g., "country", "locality") + - `has_or_had_type`: Semantic type(s) via ComponentType (e.g., Country, Locality) **STANDARD COMPONENT TYPES**: @@ -79,20 +82,20 @@ classes: **USAGE EXAMPLES**: ```yaml - # Street number component + # Street number component (MIGRATED 2026-01-22: Rule 53) - long_name: "1" short_name: "1" - component_type: ["street_number"] + has_or_had_type: [StreetNumber] # Province with abbreviation - long_name: "Noord-Holland" short_name: "NH" - component_type: ["region"] + has_or_had_type: [Region] # Country with ISO code - long_name: "Netherlands" short_name: "NL" - component_type: ["country"] + has_or_had_type: [Country] ``` **SOURCE-AGNOSTIC DESIGN**: @@ -115,7 +118,8 @@ classes: slots: - long_name - short_name - - component_type + # REMOVED 2026-01-22: component_type - migrated to has_or_had_type + ComponentType (Rule 53) + - has_or_had_type attributes: types: @@ -147,20 +151,25 @@ classes: description: Province abbreviation - value: "Museumstraat" description: Same as long_name when no abbreviation exists - component_type: - range: string + # MIGRATED 2026-01-22: component_type → has_or_had_type + ComponentType (Rule 53) + has_or_had_type: + description: | + Semantic type(s) of this address component. + MIGRATED from component_type per slot_fixes.yaml (Rule 53, 2026-01-22). + + Uses ComponentType class hierarchy for structured classification. + range: ComponentType multivalued: true inlined_as_list: true required: false - description: Semantic type(s) of this address component examples: - - value: ["street_number"] + - value: StreetNumber description: House/building number - - value: ["locality"] + - value: Locality description: City or town - - value: ["region"] + - value: Region description: State or province - - value: ["country"] + - value: Country description: Country comments: @@ -174,40 +183,41 @@ classes: - https://www.w3.org/ns/locn#Address examples: + # MIGRATED 2026-01-22: component_type → has_or_had_type + ComponentType (Rule 53) - value: long_name: "1" short_name: "1" - component_type: ["street_number"] + has_or_had_type: [StreetNumber] description: Street number component - value: long_name: "Museumstraat" short_name: "Museumstraat" - component_type: ["route"] + has_or_had_type: [Route] description: Street name component - value: long_name: "Amsterdam" short_name: "Amsterdam" - component_type: ["locality"] + has_or_had_type: [Locality] description: City component - value: long_name: "Noord-Holland" short_name: "NH" - component_type: ["region"] + has_or_had_type: [Region] description: Province component with abbreviation - value: long_name: "Netherlands" short_name: "NL" - component_type: ["country"] + has_or_had_type: [Country] description: Country component with ISO code - value: long_name: "1071 XX" short_name: "1071 XX" - component_type: ["postal_code"] + has_or_had_type: [PostalCode] description: Dutch postal code component annotations: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Agent.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Agent.yaml new file mode 100644 index 0000000000..c2e2fad611 --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Agent.yaml @@ -0,0 +1,149 @@ +# Agent class +# Represents a person or organization that performs actions +# +# Created per slot_fixes.yaml migration for: collector +# Creation date: 2026-01-22 +# +# Rule 53 (No Bespoke Slots): collector → is_or_was_acquired_by + Agent + +id: https://nde.nl/ontology/hc/class/Agent +name: Agent +title: Agent + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + foaf: http://xmlns.com/foaf/0.1/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + +default_prefix: hc + +imports: + - linkml:types + - ../slots/has_or_had_name + - ../slots/has_or_had_type + - ../slots/has_or_had_identifier + +classes: + Agent: + class_uri: prov:Agent + description: | + An agent (person, organization, or software) that performs actions. + + **RULE 53 MIGRATION**: + Replaces simple string slots with a structured agent model: + - `is_or_was_acquired_by` → Agent (this class) + - Supports typed agents (person, organization, software) + + **USAGE**: + ```yaml + is_or_was_acquired_by: + - agent_name: "Dr. Jane Smith" + agent_type: person + has_or_had_identifier: + - identifier_scheme: ORCID + identifier_value: "0000-0001-2345-6789" + ``` + + **Ontological Alignment**: + - **Primary** (`class_uri`): `prov:Agent` - PROV-O agent + - **Close**: `foaf:Agent` - FOAF agent + - **Close**: `schema:Person` / `schema:Organization` - Schema.org agents + - **Close**: `dcterms:Agent` - Dublin Core agent + + **Use Cases**: + - Specimen collectors (field biologists) + - Artwork donors/sellers + - Archive depositors + - Record creators + + exact_mappings: + - prov:Agent + + close_mappings: + - foaf:Agent + - dcterms:Agent + + related_mappings: + - schema:Person + - schema:Organization + + slots: + - has_or_had_name + - has_or_had_type + - has_or_had_identifier + + attributes: + agent_name: + range: string + description: Name of the agent (person or organization name) + required: true + + agent_type: + range: string + description: | + Type of agent: person, organization, software, group + required: false + examples: + - value: person + - value: organization + - value: software + - value: group + + agent_role: + range: string + description: | + Role of the agent in the action (collector, donor, creator, etc.) + required: false + + slot_usage: + has_or_had_name: + description: | + Structured name for the agent. + range: uriorcurie + required: false + has_or_had_type: + description: | + Classification of the agent type. + range: uriorcurie + required: false + has_or_had_identifier: + description: | + Identifiers for the agent (ORCID, ISNI, etc.). + range: uriorcurie + multivalued: true + required: false + + annotations: + specificity_score: "0.25" + specificity_rationale: "Broadly applicable - agents appear across all heritage contexts." + template_specificity: '{"archive_search": 0.30, "museum_search": 0.30, "library_search": 0.30, "collection_discovery": 0.40, "person_research": 0.60, "location_browse": 0.15, "identifier_lookup": 0.35, "organizational_change": 0.25, "digital_platform": 0.20, "general_heritage": 0.25}' + + examples: + - value: + agent_name: "Dr. Jane Smith" + agent_type: person + agent_role: collector + description: Field biologist who collected specimens + + - value: + agent_name: "Rijksmuseum Foundation" + agent_type: organization + agent_role: donor + description: Organization that donated artwork + + - value: + agent_name: "National Archives of the Netherlands" + agent_type: organization + agent_role: transferring_agency + has_or_had_identifier: + - identifier_scheme: ISIL + identifier_value: "NL-HaNA" + description: Archive transferring records + + comments: + - "Created per slot_fixes.yaml migration (2026-01-22)" + - "RULE 53: Replaces collector string slot with structured model" + - "Generic agent class for persons, organizations, and software" diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AppreciationEvent.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AppreciationEvent.yaml new file mode 100644 index 0000000000..e97690979a --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AppreciationEvent.yaml @@ -0,0 +1,195 @@ +# AppreciationEvent class +# Created per slot_fixes.yaml revision for: comment_like_count +# +# Represents appreciation/engagement events on digital content +# MIGRATION NOTE (2026-01-22): Created as part of comment_like_count migration per Rule 53. + +id: https://nde.nl/ontology/hc/class/AppreciationEvent +name: appreciation_event_class +title: Appreciation Event Class + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + 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 + - ./Unit + - ./TimeSpan + +default_prefix: hc + +classes: + AppreciationEvent: + class_uri: as:Like + description: | + Appreciation or engagement event for digital content. + + **PURPOSE**: + + Structured representation of appreciation metrics (likes, favorites, + upvotes, reactions) for digital content such as videos, comments, and posts. + Replaces simple integer counts with rich event data. + + **DESIGN RATIONALE**: + + Created per slot_fixes.yaml migration from `comment_like_count` integer + to structured `is_or_was_appreciated` + `AppreciationEvent` with + `has_or_had_quantity` + `Quantity` for metric representation. + + **APPRECIATION TYPES**: + + | Type | Description | Platforms | + |------|-------------|-----------| + | like | Standard like/thumbs up | YouTube, Facebook, Instagram | + | favorite | Favorite/bookmark | Twitter, YouTube | + | upvote | Upvote/positive rating | Reddit, StackOverflow | + | reaction | Emoji reaction | Facebook, Slack | + | share | Share/repost | All platforms | + + **ONTOLOGY ALIGNMENT**: + + | Ontology | Class/Property | Usage | + |----------|----------------|-------| + | **Activity Streams** | `as:Like` | Social appreciation activity | + | **Schema.org** | `schema:InteractionCounter` | Engagement metrics | + | **PROV-O** | `prov:Activity` | Event modeling | + + **EXAMPLE**: + + ```yaml + is_or_was_appreciated: + - appreciation_type: like + has_or_had_quantity: + numeric_value: 42 + has_or_had_unit: + unit_label: "likes" + temporal_extent: + begin_of_the_begin: "2025-01-14T10:00:00Z" + ``` + + exact_mappings: + - as:Like + + close_mappings: + - schema:InteractionCounter + - prov:Activity + + slots: + - has_or_had_quantity + - has_or_had_unit + - temporal_extent + + attributes: + appreciation_type: + description: | + Type of appreciation (like, favorite, upvote, reaction, share). + range: string + required: true + examples: + - value: "like" + description: Standard like/thumbs up + - value: "favorite" + description: Favorite/bookmark + - value: "upvote" + description: Upvote rating + - value: "reaction" + description: Emoji reaction + - value: "share" + description: Share/repost + + appreciation_count: + description: | + Simple count of appreciations (shorthand for has_or_had_quantity.numeric_value). + Use has_or_had_quantity for structured representation with unit. + range: integer + required: false + minimum_value: 0 + examples: + - value: 42 + description: 42 likes + + slot_usage: + has_or_had_quantity: + description: | + Structured quantity for the appreciation count. + Use Quantity class with numeric_value and has_or_had_unit. + range: Quantity + inlined: true + required: false + examples: + - value: + numeric_value: 42 + has_or_had_unit: + unit_label: "likes" + description: 42 likes using Quantity class + + has_or_had_unit: + description: | + Unit for the appreciation type (likes, favorites, etc.). + Can be specified directly or via has_or_had_quantity.has_or_had_unit. + range: Unit + inlined: true + required: false + examples: + - value: + unit_label: "likes" + description: Likes unit + + temporal_extent: + description: | + Time when the appreciation count was observed/recorded. + range: TimeSpan + inlined: true + required: false + examples: + - value: + begin_of_the_begin: "2025-01-14T10:00:00Z" + description: Observation timestamp + + examples: + - value: + appreciation_type: "like" + appreciation_count: 42 + description: Simple like count (minimal) + + - value: + appreciation_type: "like" + has_or_had_quantity: + numeric_value: 42 + has_or_had_unit: + unit_label: "likes" + temporal_extent: + begin_of_the_begin: "2025-01-14T10:00:00Z" + description: Full structured like count with timestamp + + - value: + appreciation_type: "favorite" + appreciation_count: 15 + description: Favorite count + + comments: + - Created 2026-01-22 from comment_like_count migration (Rule 53) + - Models appreciation metrics as structured events + - Supports multiple appreciation types (likes, favorites, etc.) + - Includes temporal observation tracking + + see_also: + - https://www.w3.org/ns/activitystreams#Like + - https://schema.org/InteractionCounter + + annotations: + custodian_types: '["*"]' + custodian_types_rationale: >- + Universal - any custodian with digital content may track appreciation. + specificity_score: "0.60" + specificity_rationale: >- + Moderately specific - primarily for digital content engagement contexts. diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ArchiveAssociation.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ArchiveAssociation.yaml index 4eb2a3336e..40951bde71 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ArchiveAssociation.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ArchiveAssociation.yaml @@ -33,7 +33,7 @@ classes: - Publication of newsletters and journals\n- Support for acquisitions and preservation\n\n**Organizational Role**:\n\ These 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**:\n\ - Use `society_focus` slot to describe the archive(s) supported.\nUse `community_engagement` to document advocacy and\ + Use `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\ diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Area.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Area.yaml index d0cd851377..7b09345fe3 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Area.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Area.yaml @@ -31,7 +31,8 @@ imports: - ./MeasureUnit - ../slots/has_or_had_unit - ../slots/has_or_had_label - - ../slots/area_value + # MIGRATED 2026-01-22: area_value → quantity_value per slot_fixes.yaml feedback F4 + - ../slots/quantity_value - ../slots/is_estimate - ../slots/measurement_date - ../slots/measurement_method @@ -59,17 +60,19 @@ classes: - schema:QuantitativeValue - geosparql:hasArea slots: - - area_value + - quantity_value # was: area_value (migrated 2026-01-22) - has_or_had_unit - measurement_date - is_estimate - measurement_method - has_or_had_label slot_usage: - area_value: + quantity_value: description: >- The numeric value of the area measurement. - MIGRATED from area_hectares, building_floor_area_sqm (Rule 53). + MIGRATED from area_value (2026-01-22) which was migrated from + area_hectares, building_floor_area_sqm (Rule 53). + Using generic quantity_value aligns Area semantics with Quantity class. range: float required: true examples: @@ -136,14 +139,14 @@ classes: description: Label for building examples: - value: - area_value: 25.0 + quantity_value: 25.0 has_or_had_unit: has_or_had_type: HECTARE has_or_had_symbol: "ha" has_or_had_label: "Sculpture garden area" description: Outdoor site area in hectares (replaces area_hectares) - value: - area_value: 5000.0 + quantity_value: 5000.0 has_or_had_unit: has_or_had_type: SQUARE_METER has_or_had_symbol: "m²" @@ -153,7 +156,7 @@ classes: has_or_had_label: "Total floor area" description: Building floor area in square meters (replaces building_floor_area_sqm) - value: - area_value: 650.0 + quantity_value: 650.0 has_or_had_unit: has_or_had_type: HECTARE has_or_had_symbol: "ha" diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ArtSaleService.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ArtSaleService.yaml new file mode 100644 index 0000000000..b26b738525 --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ArtSaleService.yaml @@ -0,0 +1,148 @@ +# ArtSaleService class +# Created per slot_fixes.yaml revision for: commission_rate +# +# Represents art sales service with commission structure +# MIGRATION NOTE (2026-01-22): Created as part of commission_rate migration per Rule 53. + +id: https://nde.nl/ontology/hc/class/ArtSaleService +name: art_sale_service_class +title: Art Sale Service Class + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + +imports: + - linkml:types + - ../metadata + - ./Service + - ../slots/takes_or_took_comission + - ./CommissionRate + +default_prefix: hc + +classes: + ArtSaleService: + is_a: Service + class_uri: hc:ArtSaleService + description: | + Service for selling artworks, typically offered by commercial galleries. + + **PURPOSE**: + + Models art sales activities including commission structures, + market type (primary/secondary), and artist representation. + + **DESIGN RATIONALE**: + + Created per slot_fixes.yaml migration from `commission_rate` string + to structured `has_or_had_service` + `ArtSaleService` with nested + commission details. + + **USE CASES**: + + - Commercial gallery primary market sales (representing artists) + - Secondary market resales (consignment) + - Auction house sales (different commission model) + + **MARKET TYPES**: + + - **Primary market**: First sale of artwork by artist (40-50% commission) + - **Secondary market**: Resale of previously sold works (10-20% commission) + + close_mappings: + - schema:SellAction + - schema:Service + + slots: + - takes_or_took_comission + + attributes: + market_type: + description: | + Type of art market (primary or secondary). + range: string + required: false + examples: + - value: "primary" + description: First sale by artist + - value: "secondary" + description: Resale of previously sold work + + artist_representation: + description: | + Whether this service involves exclusive artist representation. + range: boolean + required: false + examples: + - value: true + description: Gallery exclusively represents the artist + - value: false + description: Consignment or non-exclusive arrangement + + sales_activity: + description: | + Whether active sales are conducted (vs exhibition-only). + range: boolean + required: true + examples: + - value: true + description: Active artwork sales + - value: false + description: Exhibition only, no sales + + slot_usage: + takes_or_took_comission: + description: | + Commission structure for this art sales service. + range: CommissionRate + inlined: true + required: false + examples: + - value: + rate_type: "primary_market" + has_or_had_percentage: + percentage_value: 50 + description: Standard 50% primary market commission + + examples: + - value: + service_name: "Primary Market Sales" + market_type: "primary" + artist_representation: true + sales_activity: true + takes_or_took_comission: + rate_type: "primary_market" + has_or_had_percentage: + percentage_value: 50 + percentage_display: "50%" + description: Commercial gallery with 50% primary market commission + + - value: + service_name: "Consignment Sales" + market_type: "secondary" + artist_representation: false + sales_activity: true + takes_or_took_comission: + rate_type: "secondary_market" + has_or_had_percentage: + percentage_value: 15 + percentage_display: "10-20%" + description: Secondary market consignment with variable commission + + comments: + - Created 2026-01-22 from commission_rate migration (Rule 53) + - Extends Service class for art sales context + - Supports primary and secondary market distinctions + + see_also: + - https://schema.org/SellAction + + annotations: + custodian_types: '["G", "C"]' + custodian_types_rationale: >- + Primarily for galleries (G) and commercial organizations (C). + specificity_score: "0.75" + specificity_rationale: >- + Specific to commercial art sales context. diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ArticlesOfAssociation.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ArticlesOfAssociation.yaml index 0e4c36bbf5..0b45b05a43 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ArticlesOfAssociation.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ArticlesOfAssociation.yaml @@ -21,7 +21,7 @@ imports: - ../slots/has_articles_archival_stage - ../slots/has_articles_document_format - ../slots/has_articles_document_url - - ../slots/collected_in + - ../slots/is_or_was_included_in # was: collected_in - migrated per Rule 53 (2026-01-19) - ../slots/document_description - ../slots/document_title - ../slots/document_type @@ -129,7 +129,7 @@ classes: - has_articles_archival_stage - has_articles_document_format - has_articles_document_url - - collected_in + - is_or_was_included_in # was: collected_in - migrated per Rule 53 (2026-01-19) - document_description - document_title - document_type @@ -271,9 +271,16 @@ classes: is_or_was_archived_in: range: CustodianArchive required: false - collected_in: + is_or_was_included_in: # was: collected_in - migrated per Rule 53 (2026-01-19) + description: | + CustodianCollection where heritage articles are preserved. + Only applicable when has_articles_archival_stage = HERITAGE. + MIGRATED from collected_in per slot_fixes.yaml (Rule 53). range: CustodianCollection required: false + examples: + - value: https://nde.nl/ontology/hc/collection/rm/institutional-archive + description: Rijksmuseum institutional archive collection requires_articles_at_registration: range: boolean required: false @@ -346,7 +353,7 @@ classes: registered_office_clause: De stichting heeft haar zetel in de gemeente Amsterdam. language: nl articles_archival_stage: HERITAGE - collected_in: https://nde.nl/ontology/hc/collection/rm/institutional-archive + is_or_was_included_in: https://nde.nl/ontology/hc/collection/rm/institutional-archive # was: collected_in 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 diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AudioEventSegment.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AudioEventSegment.yaml index f09864f360..c9227aa6de 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AudioEventSegment.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AudioEventSegment.yaml @@ -14,7 +14,10 @@ imports: - ../slots/end_time - ../slots/segment_index - ../slots/segment_text - - ../slots/confidence + # MIGRATED 2026-01-19: confidence → is_or_was_generated_by + GenerationEvent + ConfidenceScore + - ../slots/is_or_was_generated_by + - ./GenerationEvent + - ./ConfidenceScore - ../slots/specificity_annotation - ../slots/has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) - ./SpecificityAnnotation @@ -96,7 +99,8 @@ classes: - end_time - segment_index - segment_text - - confidence + # MIGRATED 2026-01-19: confidence → is_or_was_generated_by (structured ConfidenceScore) + - is_or_was_generated_by - specificity_annotation - has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) attributes: @@ -155,17 +159,19 @@ classes: description: Speech transcript text - value: "Classical background music" description: Music segment description - confidence: - range: float + is_or_was_generated_by: + range: GenerationEvent required: false - minimum_value: 0.0 - maximum_value: 1.0 - description: Confidence score (0.0-1.0) for the audio event detection. + inlined: true + description: >- + Generation event containing confidence score for audio event detection. + MIGRATED 2026-01-19: Replaces confidence slot with structured pattern. examples: - - value: 0.95 - description: High confidence detection - - value: 0.72 - description: Medium confidence detection + - value: + has_or_had_score: + has_or_had_score: 0.95 + has_or_had_method: "audio_classification" + description: High confidence audio event detection 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/frontend/public/schemas/20251121/linkml/modules/classes/AuxiliaryDigitalPlatform.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AuxiliaryDigitalPlatform.yaml index 7e6ddb1d16..f25384106e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AuxiliaryDigitalPlatform.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AuxiliaryDigitalPlatform.yaml @@ -30,7 +30,10 @@ imports: - ../slots/has_or_had_archival_status - ../slots/has_or_had_identifier - ../slots/has_auxiliary_platform_type - - ../slots/cms_detected + # REMOVED 2026-01-19: ../slots/cms_detected - migrated to is_or_was_based_on + CMS (Rule 53) + - ../slots/is_or_was_based_on # was: cms_detected - migrated per Rule 53 (2026-01-19) + - ./CMS + - ./CMSType - ../slots/fixity_info - ../slots/iiif_support - ../slots/is_auxiliary_of_platform @@ -122,7 +125,7 @@ classes: - is_or_was_archived_at # MIGRATED: was archived_at (2026-01-15) - has_or_had_identifier - has_auxiliary_platform_type - - cms_detected + - is_or_was_based_on # was: cms_detected - migrated per Rule 53 (2026-01-19) - has_or_had_data_service_endpoint - fixity_info - funding_source @@ -299,14 +302,36 @@ classes: examples: - value: sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 description: SHA-256 checksum of archived content - cms_detected: - range: boolean + # DEPRECATED 2026-01-19: cms_detected - migrated to is_or_was_based_on + CMS + # Old: cms_detected: true/false (boolean flag) + # New: is_or_was_based_on: CMS instance with name, version, detection method + is_or_was_based_on: # was: cms_detected - migrated per Rule 53 (2026-01-19) + description: | + CMS detected on this platform (replaces boolean cms_detected). + MIGRATED from boolean flag to structured CMS reference. + If present, a CMS was detected; if absent, no CMS detected. + + **Migration**: + - Old: cms_detected: true + - New: is_or_was_based_on: {cms_name: WordPress, cms_version: "6.4"} + range: CMS + multivalued: true + inlined_as_list: true required: false examples: - - value: true - description: CMS backend detected - - value: false - description: No CMS detected (static site) + - value: + cms_name: WordPress + cms_version: "6.4.2" + has_or_had_type: CustomCMS + detected_at: "2026-01-19T12:00:00Z" + detection_method: HTTP_HEADER + description: CMS detected via HTTP header + - value: + cms_name: Omeka S + cms_version: "4.0.1" + has_or_had_type: MuseumCMS + detection_method: URL_PATTERN + description: Omeka S detected via URL pattern has_or_had_powered_by_cm: range: CollectionManagementSystem multivalued: true diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/AuxiliaryPlace.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/AuxiliaryPlace.yaml index 819b5a5423..73f70ed006 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/AuxiliaryPlace.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/AuxiliaryPlace.yaml @@ -11,6 +11,7 @@ imports: - ./GeoSpatialPlace - ./Country - ./Subregion + - ./City # Added for is_or_was_located_in range (2026-01-18, Rule 53) - ./Settlement - ./TimeSpan - ./Address # Added for has_or_had_address range (2026-01-17, Rule 53/56 migration) @@ -39,7 +40,8 @@ imports: - ../slots/longitude - ../slots/has_or_had_address # was: street_address - migrated to Address class per Rule 53/56 (2026-01-17) - ../slots/postal_code - - ../slots/city + # REMOVED: ../slots/city - migrated to is_or_was_located_in + City (2026-01-18, Rule 53) + - ../slots/is_or_was_located_in - ../slots/has_or_had_identifier - ../slots/has_auxiliary_place_type - ../slots/country @@ -124,7 +126,8 @@ classes: slots: - has_or_had_identifier - has_auxiliary_place_type - - city + # REMOVED: city - migrated to is_or_was_located_in + City (2026-01-18, Rule 53) + - is_or_was_located_in - country - geonames_id - has_feature_type @@ -227,11 +230,26 @@ classes: examples: - value: 3824 BK description: Dutch postal code - city: - range: string + # REMOVED: city slot_usage - migrated to is_or_was_located_in + City (2026-01-18, Rule 53) + # city: + # range: string + # examples: + # - value: Amersfoort + # description: City name + is_or_was_located_in: + range: City + required: false + inlined: true + description: | + The city where this auxiliary place is located, as a structured City entity. + MIGRATED from city (string) slot (2026-01-18, Rule 53). + Provides GeoNames ID, coordinates, and subregion linkage. examples: - - value: Amersfoort - description: City name + - value: + settlement_name: "Amersfoort" + geonames_id: 2759633 + country: "NL" + description: Auxiliary place located in Amersfoort country: range: Country examples: @@ -383,7 +401,10 @@ classes: language: "en" locality: "Schiphol" country_name: "NL" - city: Schiphol + is_or_was_located_in: # was: city - migrated per Rule 53/56 (2026-01-18) + settlement_name: Hoofddorp # Schiphol Airport is located in Hoofddorp municipality + geonames_id: 2753801 + country: NL country: https://nde.nl/ontology/hc/country/NL valid_from: '2002-10-01' hosts_branch: @@ -410,7 +431,10 @@ classes: postal_code: "2012 CH" locality: "Haarlem" country_name: "NL" - city: Haarlem + is_or_was_located_in: # was: city - migrated per Rule 53/56 (2026-01-18) + settlement_name: Haarlem + geonames_id: 2755003 + country: NL valid_from: '2010-01-15' valid_to: '2018-06-30' is_auxiliary_of_place: https://nde.nl/ontology/hc/place/noord-hollands-archief-main diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/BaseName.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/BaseName.yaml new file mode 100644 index 0000000000..9be1029523 --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/classes/BaseName.yaml @@ -0,0 +1,48 @@ +id: https://nde.nl/ontology/hc/class/BaseName +name: BaseName +title: Base Name Class +description: >- + Represents the base/root form of a name component used for sorting. + + **PNV ALIGNMENT**: Supports Dutch naming convention where surnames with + prefixes are sorted by their base form. + + **EXAMPLE**: + - Full surname: "van der Berg" + - Base name: "Berg" (used for alphabetical sorting under "B") + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + pnv: https://w3id.org/pnv# + +default_prefix: hc + +imports: + - linkml:types + +classes: + BaseName: + class_uri: hc:BaseName + description: >- + Base/root form of a name component, primarily used for sorting. + close_mappings: + - pnv:baseSurname + attributes: + base_value: + range: string + required: true + description: >- + The base name value (e.g., "Berg" from "van der Berg"). + examples: + - value: + base_value: "Berg" + description: Base surname for Dutch "van der Berg" + - value: + base_value: "Vries" + description: Base surname for Dutch "de Vries" + annotations: + custodian_types: '["*"]' + specificity_score: 0.6 + specificity_rationale: >- + Moderately specific - name sorting component. diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/BioCustodianType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/BioCustodianType.yaml index af28f267a1..b153891d00 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/BioCustodianType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/BioCustodianType.yaml @@ -4,7 +4,10 @@ title: Biological and Zoological Custodian Type Classification imports: - linkml:types - ./CustodianType - - ../slots/collection_size + # REMOVED 2026-01-19: ../slots/collection_size - migrated to has_or_had_quantity + Quantity (Rule 53) + - ../slots/has_or_had_quantity + - ./Quantity + - ./Unit - ./BioCustodianSubtype # Type/Types class hierarchy (was BioCustodianTypeEnum) - ./BioCustodianSubtypes # 20 concrete subclasses - ../slots/has_or_had_hyponym # was: bio_custodian_subtype - migrated per Rule 53/56 (2026-01-17) @@ -245,7 +248,8 @@ classes: - Schema.org Garden: `schema:Garden`\n- Darwin Core: `dwc:PreservedSpecimen`\n- TDWG Standards: https://www.tdwg.org/standards/\n" slots: - has_or_had_hyponym # was: bio_custodian_subtype - migrated per Rule 53/56 (2026-01-17) - - collection_size + # REMOVED 2026-01-19: collection_size - migrated to has_or_had_quantity + Quantity (Rule 53) + - has_or_had_quantity - conservation_breeding - has_or_had_custodian_type - living_collection @@ -259,9 +263,30 @@ classes: range: string multivalued: true required: false - collection_size: - range: string + has_or_had_quantity: # was: collection_size - migrated per Rule 53 (2026-01-19) + description: | + MIGRATED from collection_size per slot_fixes.yaml (Rule 53, 2026-01-19). + Quantitative description of the living collection size using Quantity class. + Can express species count, individual organisms, or both. + Default unit is "item" (species count) or "specimen" (individual count). + range: Quantity + inlined: true + multivalued: true required: false + examples: + - value: + quantity_value: 900 + quantity_type: COLLECTION_SIZE + has_or_had_unit: + unit_value: "species" + description: Zoo species count + - value: + quantity_value: 50000 + quantity_type: COLLECTION_SIZE + has_or_had_unit: + unit_value: "specimen" + is_estimate: true + description: Botanical garden specimen count living_collection: range: boolean required: true diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/BiologicalObject.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/BiologicalObject.yaml index ef98e91aea..a8406f6ca8 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/BiologicalObject.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/BiologicalObject.yaml @@ -25,13 +25,27 @@ imports: # bold_id REMOVED - migrated to has_or_had_identifier with BOLDIdentifier class (Rule 53) - ../slots/has_or_had_identifier - ./BOLDIdentifier - - ../slots/cites_appendix - - ../slots/collection_date - - ../slots/collection_locality_text - - ../slots/collection_location - - ../slots/collector - - ../slots/common_name - - ../slots/common_name_language + # cites_appendix REMOVED - migrated to is_or_was_listed_in with CITESAppendix class (Rule 53, 2026-01-19) + - ../slots/is_or_was_listed_in + - ./CITESAppendix + # REMOVED 2026-01-19: collection_date - migrated to was_acquired_through + Acquisition (Rule 53) + - ../slots/was_acquired_through + - ./Acquisition + # REMOVED 2026-01-19: collection_locality_text - migrated to describes_or_described + Locality (Rule 53) + - ../slots/describes_or_described + - ./Locality + # REMOVED 2026-01-19: collection_location - migrated to has_or_had_place + CollectionEvent (Rule 53) + - ../slots/has_or_had_place + - ./CollectionEvent + # REMOVED 2026-01-22: ../slots/collector - migrated to is_or_was_acquired_by + Agent (Rule 53) + - ../slots/is_or_was_acquired_by + - ./Agent + # REMOVED 2026-01-22: ../slots/common_name - migrated to has_or_had_name + Name + has_or_had_type + NameType (Rule 53) + # REMOVED 2026-01-22: ../slots/common_name_language - migrated to Name.has_or_had_language (Rule 53) + - ../slots/has_or_had_name + - ./Name + - ./NameType + - ./NameTypes - ../slots/has_or_had_custodian_type - ../slots/date_identified - ../slots/field_number @@ -86,10 +100,10 @@ classes: - 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- `taxon_name` → dwc:scientificName\n- `collection_date`\ - \ → dwc:eventDate\n- `collector` → dwc:recordedBy\n- `preservation_method` → dwc:preparations\n- `gbif_id` → dwc:occurrenceID\ - \ (GBIF)\n\n**Taxonomic Data Model**:\n\n```\nBiologicalObject\n │\n ├── taxon_name (scientific name: \"Raphus\ - \ cucullatus\")\n │ │\n │ ├── common_name (\"Dodo\")\n │ ├── has_or_had_rank (SPECIES)\n \ + \ aligns with Darwin Core (TDWG) occurrence/specimen standards:\n- `has_or_had_label` (TaxonName) → dwc:scientificName\n- `was_acquired_through` (Acquisition) → dwc:eventDate\ + \n- `is_or_was_acquired_by` (Agent) → dwc:recordedBy\n- `preservation_method` → dwc:preparations\n- `gbif_id` → dwc:occurrenceID\ + \ (GBIF)\n\n**Taxonomic Data Model**:\n\n```\nBiologicalObject\n │\n ├── has_or_had_label (TaxonName: \"Raphus\ + \ cucullatus\")\n │ │\n │ ├── has_or_had_name (Name with type=CommonName: \"Dodo\")\n │ ├── has_or_had_rank (SPECIES)\n \ \ │ ├── has_or_had_authority (\"Linnaeus, 1758\")\n │ └── higher_classification (Aves → Columbiformes\ \ → Columbidae)\n │\n ├── specimen_data\n │ │\n │ ├── specimen_type (HOLOTYPE, PARATYPE, etc.)\n\ \ │ ├── is_type_specimen (boolean)\n │ ├── sex (MALE, FEMALE, UNKNOWN)\n │ ├── life_stage\ @@ -118,13 +132,18 @@ classes: - is_or_was_associated_with # bold_id REMOVED - migrated to has_or_had_identifier with BOLDIdentifier (Rule 53) - has_or_had_identifier - - cites_appendix - - collection_date - - collection_locality_text - - collection_location - - collector - - common_name - - common_name_language + # cites_appendix REMOVED - migrated to is_or_was_listed_in with CITESAppendix (Rule 53, 2026-01-19) + - is_or_was_listed_in + # collection_date REMOVED - migrated to was_acquired_through + Acquisition (Rule 53, 2026-01-19) + - was_acquired_through + # collection_locality_text REMOVED - migrated to describes_or_described + Locality (Rule 53, 2026-01-19) + - describes_or_described + # collection_location REMOVED - migrated to has_or_had_place + CollectionEvent (Rule 53, 2026-01-19) + - has_or_had_place + # REMOVED 2026-01-22: collector - migrated to is_or_was_acquired_by + Agent (Rule 53) + - is_or_was_acquired_by + # REMOVED 2026-01-22: common_name, common_name_language - migrated to has_or_had_name + Name (Rule 53) + - has_or_had_name - has_or_had_custodian_type - date_identified - field_number @@ -208,21 +227,40 @@ classes: scientific_name: "Panthera leo" taxonomic_rank: SPECIES description: Lion (authority omitted) - common_name: + # MIGRATED 2026-01-22: common_name, common_name_language → has_or_had_name + Name (Rule 53) + has_or_had_name: + description: | + Common/vernacular names for this biological object. + MIGRATED from common_name and common_name_language per slot_fixes.yaml (Rule 53, 2026-01-22). + + Uses Name class for structured representation including: + - Name value (has_or_had_label) + - Name type (has_or_had_type → NameType, e.g., CommonName) + - Language (has_or_had_language) required: false - range: string + range: Name multivalued: true + inlined: true + inlined_as_list: true examples: - - value: Dodo - - value: Lion - - value: Coast Redwood - common_name_language: - required: false - range: string - multivalued: true - examples: - - value: en - - value: nl + - value: + has_or_had_label: "Dodo" + has_or_had_type: CommonName + has_or_had_language: "en" + description: English common name + - value: + has_or_had_label: "Dronte" + has_or_had_type: CommonName + has_or_had_language: "nl" + description: Dutch common name + - value: + has_or_had_label: "Lion" + has_or_had_type: CommonName + has_or_had_language: "en" + - value: + has_or_had_label: "Coast Redwood" + has_or_had_type: CommonName + has_or_had_language: "en" has_or_had_rank: # was: taxonomic_rank - migrated per Rule 53/56 (2026-01-17) required: false range: string @@ -371,38 +409,95 @@ classes: examples: - value: Natural History Museum Preparation Lab - value: J. van der Berg - collection_date: + # MIGRATED 2026-01-19: collection_date → was_acquired_through + Acquisition (Rule 53) + was_acquired_through: required: false - range: string + range: Acquisition + inlined: true + inlined_as_list: true + description: >- + Acquisition event capturing when and how specimen was collected. + Replaces simple collection_date with structured acquisition data. examples: - - value: '2020-06-15' - - value: 2020-06/2020-07 - description: Collected sometime in June-July 2020 - - value: 1870s - description: Historical specimen with approximate date - collection_location: + - value: | + acquisition_method: FIELD_COLLECTION + temporal_extent: + begin_of_the_begin: "2020-06-15" + end_of_the_end: "2020-06-15" + acquisition_date_text: "2020-06-15" + - value: | + acquisition_method: FIELD_COLLECTION + temporal_extent: + begin_of_the_begin: "2020-06-01" + end_of_the_end: "2020-07-31" + acquisition_date_text: "2020-06/2020-07" + acquisition_notes: "Collected sometime in June-July 2020" + - value: | + acquisition_method: FIELD_COLLECTION + temporal_extent: + begin_of_the_begin: "1870-01-01" + end_of_the_end: "1879-12-31" + acquisition_date_text: "1870s" + acquisition_notes: "Historical specimen with approximate date" + # MIGRATED 2026-01-19: collection_location → has_or_had_place + CollectionEvent (Rule 53) + has_or_had_place: required: false range: CustodianPlace inlined: true + description: >- + Structured location where specimen was collected. + MIGRATED from collection_location per slot_fixes.yaml (Rule 53, 2026-01-19). + + Uses CustodianPlace for detailed location including coordinates. examples: - value: place_name: Mauritius country: MU latitude: -20.2 longitude: 57.5 - collection_locality_text: + # MIGRATED 2026-01-19: collection_locality_text → describes_or_described + Locality (Rule 53) + describes_or_described: required: false - range: string + range: Locality + inlined: true + inlined_as_list: true + description: >- + Verbatim locality description as recorded on specimen label. + MIGRATED from collection_locality_text per slot_fixes.yaml (Rule 53, 2026-01-19). + + Uses Locality class for structured representation including + original text, language, and provenance. examples: - - value: Mauritius, near Port Louis, in forest - - value: 'Indonesia: Java: Mt. Gede, 1500m' - collector: + - value: + verbatim_text: "Mauritius, near Port Louis, in forest" + original_language: "en" + description: Locality for Dodo specimen + - value: + verbatim_text: "Indonesia: Java: Mt. Gede, 1500m" + original_language: "en" + interpretation_notes: "Mt. Gede is Gunung Gede volcano" + description: Indonesian specimen with elevation + # MIGRATED 2026-01-22: collector → is_or_was_acquired_by + Agent (Rule 53) + is_or_was_acquired_by: + description: | + The person(s) or organization(s) who collected this specimen. + Migrated from collector per slot_fixes.yaml revision. required: false - range: string + range: Agent multivalued: true + inlined: true + inlined_as_list: true examples: - - value: Alfred Russel Wallace - - value: Charles Darwin + - value: + agent_name: "Alfred Russel Wallace" + agent_type: person + agent_role: collector + description: Victorian naturalist collector + - value: + agent_name: "Charles Darwin" + agent_type: person + agent_role: collector + description: HMS Beagle expedition collector field_number: required: false range: string @@ -431,12 +526,32 @@ classes: description: Extinct (e.g., Dodo) - value: CR description: Critically Endangered - cites_appendix: + # cites_appendix REMOVED - migrated to is_or_was_listed_in with CITESAppendix (Rule 53, 2026-01-19) + is_or_was_listed_in: + description: >- + CITES (Convention on International Trade in Endangered Species) listing. + MIGRATED from cites_appendix per slot_fixes.yaml (Rule 53, 2026-01-19). + + Uses CITESAppendix class for structured representation including + appendix level, listing date, and exemption notes. + + Important for legal compliance in specimen transfers between institutions. + range: CITESAppendix + inlined: true required: false - range: string examples: - - value: APPENDIX_I - description: Most endangered, trade prohibited + - value: + has_or_had_type: APPENDIX_I + has_or_had_label: "CITES Appendix I - Most Endangered" + listing_effective_date: "1975-07-01" + species_covered: "Loxodonta africana" + description: African elephant - highest CITES protection + - value: + has_or_had_type: NOT_LISTED + has_or_had_label: "Not regulated under CITES" + species_covered: "Raphus cucullatus" + exemption_note: "Extinct species - historical specimens pre-date CITES" + description: Dodo - extinct, not subject to CITES restrictions legal_provenance_note: required: false range: string @@ -482,17 +597,30 @@ classes: scientific_name: "Raphus cucullatus (Linnaeus, 1758)" authorship: "Linnaeus, 1758" taxonomic_rank: SPECIES - common_name: - - Dodo - - Dronte + # MIGRATED 2026-01-22: common_name → has_or_had_name + Name (Rule 53) + 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 # was: taxonomic_rank - migrated per Rule 53/56 (2026-01-17) higher_classification: Animalia|Chordata|Aves|Columbiformes|Columbidae|Raphus part_type: - HEAD - FOOT preservation_method: DRIED_WHOLE - collection_date: pre-1662 - collection_location: + # MIGRATED 2026-01-19: collection_date → was_acquired_through (Rule 53) + was_acquired_through: + - acquisition_method: FIELD_COLLECTION + acquisition_date_text: "pre-1662" + temporal_extent: + begin_of_the_begin: "1600-01-01" + end_of_the_end: "1662-12-31" + notes: "Pre-1662 (before Great Fire of London destroyed records)" + # MIGRATED 2026-01-19: collection_location → has_or_had_place (Rule 53) + has_or_had_place: place_name: Mauritius country: MU iucn_status: EX @@ -516,13 +644,19 @@ classes: scientific_name: "Megatherium americanum Cuvier, 1796" authorship: "Cuvier, 1796" taxonomic_rank: SPECIES - common_name: - - Giant Ground Sloth + # MIGRATED 2026-01-22: common_name → has_or_had_name + Name (Rule 53) + 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 # was: taxonomic_rank - migrated per Rule 53/56 (2026-01-17) part_type: - SKELETON preservation_method: FOSSIL_PREPARED - collection_locality_text: Argentina, Buenos Aires Province + # MIGRATED 2026-01-19: collection_locality_text → describes_or_described (Rule 53) + describes_or_described: + - verbatim_text: "Argentina, Buenos Aires Province" + original_language: "en" iucn_status: EX current_keeper: https://nde.nl/ontology/hc/custodian/nl/naturalis description: Megatherium skeleton at Naturalis Biodiversity Center @@ -537,9 +671,14 @@ classes: scientific_name: "Quercus robur L." authorship: "L." taxonomic_rank: SPECIES - common_name: - - English Oak - - Pedunculate Oak + # MIGRATED 2026-01-22: common_name → has_or_had_name + Name (Rule 53) + 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 # was: taxonomic_rank - migrated per Rule 53/56 (2026-01-17) has_or_had_authority: # was: taxonomic_authority - migrated per Rule 53/56 (2026-01-16) has_or_had_label: "Linnaeus, 1753" @@ -555,8 +694,18 @@ classes: - LEAF - FLOWER preservation_method: DRIED_PRESSED - collection_date: 1750s - collector: - - Carl Linnaeus + # MIGRATED 2026-01-19: collection_date → was_acquired_through (Rule 53) + was_acquired_through: + - acquisition_method: FIELD_COLLECTION + acquisition_date_text: "1750s" + temporal_extent: + begin_of_the_begin: "1750-01-01" + end_of_the_end: "1759-12-31" + notes: "Collected by Linnaeus in the 1750s" + # MIGRATED 2026-01-22: collector → is_or_was_acquired_by + Agent (Rule 53) + is_or_was_acquired_by: + - agent_name: "Carl Linnaeus" + agent_type: person + agent_role: collector current_keeper: https://nde.nl/ontology/hc/custodian/uk/royal-botanic-gardens-kew description: Oak type specimen at Royal Botanic Gardens, Kew diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/BirthDate.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/BirthDate.yaml index ee8ba5b273..802508f724 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/BirthDate.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/BirthDate.yaml @@ -21,12 +21,20 @@ imports: - ./TemplateSpecificityType - ./TemplateSpecificityTypes - - ../slots/confidence + # MIGRATED 2026-01-19: confidence → is_or_was_generated_by + GenerationEvent + ConfidenceScore + - ../slots/is_or_was_generated_by + - ./GenerationEvent + - ./ConfidenceScore - ../slots/birth_edtf - ../slots/birth_iso_date - - ../slots/birth_source_text + # MIGRATED 2026-01-22: birth_source_text → has_or_had_reference + Reference per slot_fixes.yaml feedback + - ../slots/has_or_had_reference + - ./Reference - ../slots/inference_provenance - ../slots/is_inferred + # MIGRATED 2026-01-22: Added temporal_extent for semantic interoperability per slot_fixes.yaml feedback + - ../slots/temporal_extent + - ./TimeSpan default_prefix: hc classes: BirthDate: @@ -91,12 +99,16 @@ classes: slots: - birth_edtf - birth_iso_date - - birth_source_text + # MIGRATED 2026-01-22: birth_source_text → has_or_had_reference + Reference + - has_or_had_reference - is_inferred - inference_provenance - - confidence + # MIGRATED 2026-01-19: confidence → is_or_was_generated_by (structured ConfidenceScore) + - is_or_was_generated_by - specificity_annotation - has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) + # MIGRATED 2026-01-22: Added for semantic interoperability (keeps birth_edtf for EDTF fidelity) + - temporal_extent slot_usage: birth_edtf: range: string @@ -125,16 +137,25 @@ classes: Optional - use birth_edtf for partial/uncertain dates. examples: - value: "1970-08-15" - birth_source_text: - range: string + has_or_had_reference: + range: Reference required: false + inlined: true + multivalued: true description: >- - Original date text from source document, preserved verbatim. - Useful for archival/historical sources with non-standard notation. + 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. examples: - - value: "born in the year of our Lord 1823" - - value: "ca. 1750" - - value: "late 18th century" + - value: + citation_text: "born in the year of our Lord 1823" + source_type: "parish_register" + source_location: "Amsterdam Stadsarchief, DTB 456" + description: Parish register reference + - value: + citation_text: "ca. 1750" + source_type: "biography" + description: Biographical reference with approximate date is_inferred: range: boolean required: false @@ -150,11 +171,51 @@ classes: Required when is_inferred is true. examples: - value: '{"method": "earliest_education_heuristic", "inference_chain": [...]}' - confidence: - range: BirthDateConfidenceEnum + is_or_was_generated_by: + range: GenerationEvent required: false + inlined: true description: >- - Confidence level in the birth date value. + 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" + description: High confidence date extraction + - value: + has_or_had_score: + has_or_had_score: 0.50 + has_or_had_method: "education_inference" + has_or_had_description: "Inferred from education start year" + description: Low confidence inferred date + temporal_extent: + range: TimeSpan + required: false + inlined: true + description: >- + CIDOC-CRM TimeSpan representation for semantic interoperability. + MIGRATED 2026-01-22: Added per slot_fixes.yaml feedback. + + For a full date (e.g., birth_edtf: "1970-08-15"): + - begin_of_the_begin: "1970-08-15T00:00:00Z" + - end_of_the_end: "1970-08-15T23:59:59Z" + + For a decade (e.g., birth_edtf: "197X"): + - begin_of_the_begin: "1970-01-01T00:00:00Z" + - end_of_the_end: "1979-12-31T23:59:59Z" + + The birth_edtf slot retains the original EDTF notation for fidelity. + examples: + - value: + begin_of_the_begin: "1970-08-15T00:00:00Z" + end_of_the_end: "1970-08-15T23:59:59Z" + description: Full date known - point in time + - value: + begin_of_the_begin: "1970-01-01T00:00:00Z" + end_of_the_end: "1979-12-31T23:59:59Z" + description: Decade known (1970s) - 10-year range comments: - "Replaces simple birth_date string slot (Rule 53)" - "EDTF notation enables uncertain/incomplete date representation" @@ -167,21 +228,42 @@ classes: - value: birth_edtf: "1970-08-15" birth_iso_date: "1970-08-15" + temporal_extent: + begin_of_the_begin: "1970-08-15T00:00:00Z" + end_of_the_end: "1970-08-15T23:59:59Z" is_inferred: false - confidence: HIGH - description: Full date known with high confidence + is_or_was_generated_by: + has_or_had_score: + has_or_had_score: 0.95 + has_or_had_method: "birth_certificate_extraction" + description: Full date known with high confidence (EDTF + TimeSpan) - value: birth_edtf: "197X" + temporal_extent: + 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"}' - confidence: LOW - description: Decade inferred from education start year + is_or_was_generated_by: + has_or_had_score: + has_or_had_score: 0.40 + has_or_had_method: "education_inference" + description: Decade inferred from education start year (EDTF + TimeSpan range) - value: birth_edtf: "1823" - birth_source_text: "born in the year of our Lord 1823" + temporal_extent: + begin_of_the_begin: "1823-01-01T00:00:00Z" + end_of_the_end: "1823-12-31T23:59:59Z" + has_or_had_reference: + - citation_text: "born in the year of our Lord 1823" + source_type: "parish_register" + source_location: "Amsterdam Stadsarchief, DTB 456, folio 23r" is_inferred: false - confidence: MEDIUM - description: Year extracted from historical document + is_or_was_generated_by: + has_or_had_score: + has_or_had_score: 0.75 + has_or_had_method: "document_extraction" + description: Year extracted from historical document with structured reference annotations: specificity_score: 0.45 specificity_rationale: >- diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CITESAppendix.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CITESAppendix.yaml new file mode 100644 index 0000000000..f895ac57bd --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CITESAppendix.yaml @@ -0,0 +1,159 @@ +id: https://nde.nl/ontology/hc/class/CITESAppendix +name: CITESAppendix +title: CITES Appendix Class +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/ +imports: + - linkml:types + - ../metadata + - ../slots/has_or_had_type + - ../slots/has_or_had_label +default_prefix: hc +classes: + CITESAppendix: + class_uri: hc:CITESAppendix + description: >- + CITES (Convention on International Trade in Endangered Species) appendix listing + for biological specimens. + + CITES regulates international trade in specimens of wild animals and plants to + ensure their survival. Species are listed in one of three appendices based on + the degree of protection needed. + + **Appendix Levels**: + + | Appendix | Protection Level | Trade Status | + |----------|------------------|--------------| + | APPENDIX_I | Highest | Trade prohibited (except non-commercial) | + | APPENDIX_II | Moderate | Trade regulated with permits | + | APPENDIX_III | Lowest | Trade monitored by request of a Party | + | NOT_LISTED | None | Not regulated under CITES | + + **Temporal Considerations**: + + Species may move between appendices as their conservation status changes. + The listing date is important for determining legal status at time of + specimen acquisition. + + **Legal Significance**: + + For heritage collections, CITES status affects: + - Loan agreements between institutions + - Specimen transfers and acquisitions + - Import/export permit requirements + - Documentation and provenance requirements + + **Example**: + ```yaml + is_or_was_listed_in: + has_or_had_type: APPENDIX_I + has_or_had_label: "CITES Appendix I - Most Endangered" + listing_effective_date: "1975-07-01" + listing_authority: "CITES Secretariat" + species_covered: "Raphus cucullatus" + ``` + slots: + - has_or_had_type + - has_or_had_label + slot_usage: + has_or_had_type: + description: >- + The CITES appendix level (APPENDIX_I, APPENDIX_II, APPENDIX_III, or NOT_LISTED). + range: string + required: true + pattern: "^(APPENDIX_I|APPENDIX_II|APPENDIX_III|NOT_LISTED)$" + examples: + - value: APPENDIX_I + description: Highest protection - species threatened with extinction + - value: APPENDIX_II + description: Moderate protection - trade must be controlled + - value: APPENDIX_III + description: Protected in at least one country requesting cooperation + - value: NOT_LISTED + description: Species not regulated under CITES + has_or_had_label: + description: >- + Human-readable description of the CITES listing status. + range: string + required: false + examples: + - value: "CITES Appendix I - Trade Prohibited" + - value: "CITES Appendix II - Trade Regulated" + attributes: + listing_effective_date: + description: >- + Date when the species was added to this CITES appendix. + Important for determining legal status at time of specimen acquisition. + range: date + required: false + examples: + - value: "1975-07-01" + description: Original CITES listing (Convention entered into force) + - value: "2019-08-28" + description: Added at CoP18 (Geneva) + listing_authority: + description: >- + Authority responsible for the listing (typically CITES Secretariat or + a specific Conference of the Parties decision). + range: string + required: false + examples: + - value: "CITES Secretariat" + - value: "CoP18 Decision 18.219" + species_covered: + description: >- + Scientific name of the species covered by this listing. + May be at species, genus, or family level. + range: string + required: false + examples: + - value: "Raphus cucullatus" + description: Extinct dodo (historical listing) + - value: "Elephantidae" + description: All elephant species (family-level listing) + population_specific: + description: >- + Indicates if the listing applies to a specific population rather than + the entire species. Some CITES listings are population-specific. + range: boolean + required: false + examples: + - value: true + description: Population-specific listing (e.g., African elephant populations) + - value: false + description: Applies to all populations of the species + exemption_note: + description: >- + Notes on any exemptions or special provisions that apply. + range: string + required: false + examples: + - value: "Pre-Convention specimens exempt with documentation" + - value: "Captive-bred specimens listed as Appendix II" + exact_mappings: + - hc:CITESAppendix + close_mappings: + - schema:PropertyValue + see_also: + - https://cites.org/eng/app/appendices.php + - https://speciesplus.net/ + examples: + - value: + has_or_had_type: APPENDIX_I + has_or_had_label: "CITES Appendix I - Most Endangered" + listing_effective_date: "1975-07-01" + listing_authority: "CITES Secretariat" + species_covered: "Loxodonta africana" + population_specific: true + exemption_note: "Some populations listed in Appendix II" + description: African elephant CITES listing + - value: + has_or_had_type: NOT_LISTED + has_or_had_label: "Not regulated under CITES" + species_covered: "Raphus cucullatus" + exemption_note: "Extinct species - historical specimens pre-date CITES" + description: Dodo - extinct, not subject to CITES trade restrictions diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CMS.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CMS.yaml new file mode 100644 index 0000000000..c3369fd4b5 --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CMS.yaml @@ -0,0 +1,142 @@ +id: https://nde.nl/ontology/hc/class/CMS +name: cms_class +title: CMS Class +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + 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_version + - ../slots/has_or_had_type + - ./CMSType +default_prefix: hc +classes: + CMS: + class_uri: schema:SoftwareApplication + 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. + + **Distinction from CollectionManagementSystem**: + - **CMS**: Lightweight detection record (what CMS was found) + - **CollectionManagementSystem**: Full institutional CMS deployment profile + (configuration, collections managed, custodian relationships) + + **Detection Methods** (from original cms_detected documentation): + - HTTP response headers (X-Powered-By, Server) + - HTML meta tags (generator) + - URL patterns (e.g., /providence/, /omeka/) + - JavaScript libraries or framework signatures + - Admin panel detection + + **Use Cases**: + 1. "What CMS powers this auxiliary platform?" → Check is_or_was_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: + - cms_name: WordPress + cms_version: "6.4.2" + cms_type: CustomCMS + detected_at: "2026-01-19T12:00:00Z" + detection_method: HTTP_HEADER + ``` + + **Migration Note**: Created 2026-01-19 per slot_fixes.yaml (Rule 53). + Supports migration from boolean cms_detected to structured CMS reference. + exact_mappings: + - schema:SoftwareApplication + close_mappings: + - doap:Project + slots: + - cms_name + - has_or_had_version + - has_or_had_type + - detected_at + - detection_method + slot_usage: + cms_name: + description: Name of the detected CMS (e.g., WordPress, Drupal, Omeka) + range: string + required: true + examples: + - value: WordPress + description: WordPress CMS + - value: Omeka S + description: Omeka S digital collections platform + - value: CollectiveAccess + description: CollectiveAccess museum CMS + has_or_had_version: + description: Detected version of the CMS + range: string + required: false + examples: + - value: "6.4.2" + description: WordPress version + - value: "4.0.1" + description: Omeka S version + has_or_had_type: + description: CMS type classification (maps to CMSType hierarchy) + range: CMSType + required: false + examples: + - value: MuseumCMS + description: Museum-focused CMS + - value: ArchiveCMS + description: Archive-focused CMS + detected_at: + description: ISO 8601 timestamp when CMS was detected + range: datetime + required: false + examples: + - value: "2026-01-19T12:00:00Z" + description: Detection timestamp + detection_method: + description: Method used to detect the CMS + range: string + required: false + examples: + - value: HTTP_HEADER + description: Detected via X-Powered-By header + - value: META_TAG + description: Detected via HTML generator meta tag + - value: URL_PATTERN + description: Detected via URL structure + - value: MANUAL + description: Manually identified + annotations: + custodian_types: '["D"]' + custodian_types_rationale: Digital platforms (D) are the primary users of CMS detection + specificity_score: 0.70 + specificity_rationale: Specific to digital platform CMS detection context + +slots: + cms_name: + slot_uri: schema:name + description: Name of the Content Management System + range: string + exact_mappings: + - schema:name + - doap:name + + detected_at: + slot_uri: prov:generatedAtTime + description: Timestamp when the CMS was detected + range: datetime + exact_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 diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CMSType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CMSType.yaml new file mode 100644 index 0000000000..123a3afd52 --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CMSType.yaml @@ -0,0 +1,120 @@ +# CMSType class +# Abstract base class for CMS type taxonomy +# +# Generation date: 2026-01-19 +# Rule compliance: 0b (Type/Types pattern), 53 (slot_fixes.yaml), 39 (RiC-O naming) +# +# This is the SINGULAR "Type" class - abstract base for the type hierarchy +# Concrete types are in CMSTypes.yaml (plural) + +id: https://nde.nl/ontology/hc/class/cms_type +name: cms_type_class +title: CMS Type Class + +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 + - ../slots/has_or_had_description + - ../slots/includes_or_included + +classes: + CMSType: + class_uri: skos:Concept + abstract: true + description: | + Abstract base class for Collection Management System type taxonomy. + + **DESIGN PATTERN** (Rule 0b - Type/Types Naming): + + This file (`CMSType.yaml`) defines the **singular abstract base class**. + Concrete subclasses are defined in `CMSTypes.yaml` (plural). + + **TYPE HIERARCHY**: + + ``` + CMSType (abstract base) + │ + ├── MUSEUM_CMS - Museum collection management (MuseumPlus, TMS, CollectiveAccess) + ├── ARCHIVE_CMS - Archival description (ArchivesSpace, MAIS, Calm) + ├── LIBRARY_CMS - Library management (Koha, Alma, WorldShare) + ├── DAM - Digital asset management (ResourceSpace, DAMsimple) + ├── REPOSITORY - Digital repository (DSpace, Fedora, EPrints) + ├── MIXED - Multi-domain (Omeka S, CollectiveAccess) + └── CUSTOM - Institution-specific/custom-built + ``` + + **ONTOLOGICAL ALIGNMENT**: + + - **Primary** (`class_uri`): `skos:Concept` - SKOS concept scheme + - **Related**: `schema:applicationCategory` - Schema.org software categorization + + **USE CASES**: + + The CMSType is used as the range for the `has_or_had_type` + slot in the CollectionManagementSystem class: + + ```yaml + CollectionManagementSystem: + has_or_had_identifier: + identifier_scheme: CMS_URI + identifier_value: "https://nde.nl/ontology/hc/cms/rijksmuseum-adlib" + has_or_had_type: MUSEUM_CMS # ← CMSType + ``` + + exact_mappings: + - skos:Concept + related_mappings: + - schema:applicationCategory + + slots: + - has_or_had_label + - has_or_had_description + - includes_or_included + + slot_usage: + has_or_had_label: + description: | + Display label for this CMS type. + range: string + required: true + examples: + - value: "MUSEUM_CMS" + description: Museum collection management system + has_or_had_description: + description: | + Description of what this CMS type covers. + examples: + - value: + description_text: "Collection management systems designed for museum collections, including object cataloging, provenance tracking, and exhibition management." + description_type: definition + description: Museum CMS type definition + includes_or_included: + description: | + Subtypes included in this CMS type (for hierarchical types). + range: CMSType + multivalued: true + + annotations: + type_types_pattern: | + This is the SINGULAR "Type" class per Rule 0b. + Concrete subclasses in CMSTypes.yaml (plural). + custodian_types: '["*"]' + custodian_types_rationale: CMS types apply to all heritage custodian contexts. + specificity_score: 0.55 + specificity_rationale: Type taxonomy - moderately specific to software categorization. + replaces_slots: "cms_category (the old string-valued slot)" + migration_date: "2026-01-19" + + comments: + - "Abstract base class for CMS type hierarchy" + - "Follows Rule 0b Type/Types naming pattern" + - "Concrete types: MUSEUM_CMS, ARCHIVE_CMS, LIBRARY_CMS, DAM, REPOSITORY, MIXED, CUSTOM" + - "See CMSTypes.yaml for subclass definitions" diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CMSTypes.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CMSTypes.yaml new file mode 100644 index 0000000000..85b62b779d --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CMSTypes.yaml @@ -0,0 +1,258 @@ +# CMSTypes class +# Concrete subclasses for CMS type taxonomy +# +# Generation date: 2026-01-19 +# Rule compliance: 0b (Type/Types pattern), 53 (slot_fixes.yaml), 39 (RiC-O naming) +# +# This is the PLURAL "Types" file - contains all concrete subclasses +# Abstract base is in CMSType.yaml (singular) + +id: https://nde.nl/ontology/hc/class/cms_types +name: cms_types_class +title: CMS Types Classes + +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 + - ./CMSType + +classes: + # ======================================================================== + # MUSEUM_CMS - Museum collection management + # ======================================================================== + MuseumCMS: + is_a: CMSType + class_uri: hc:MuseumCMS + description: | + Collection management systems designed for museum collections. + + **TYPICAL FEATURES**: + - Object cataloging and registration + - Provenance tracking + - Exhibition management + - Loan management + - Conservation records + - SPECTRUM workflow support + + **EXAMPLES**: + - MuseumPlus (Zetcom) + - TMS - The Museum System (Gallery Systems) + - CollectiveAccess + - Adlib (Axiell) + - EMu (Axiell) + - PastPerfect + + annotations: + cms_type_code: "MUSEUM_CMS" + primary_domain: "museums" + examples: + - value: + has_or_had_label: "MUSEUM_CMS" + has_or_had_description: + description_text: "Collection management systems designed for museum collections, including object cataloging, provenance tracking, and exhibition management." + description: Museum CMS type + + # ======================================================================== + # ARCHIVE_CMS - Archival description systems + # ======================================================================== + ArchiveCMS: + is_a: CMSType + class_uri: hc:ArchiveCMS + description: | + Systems for archival description and records management. + + **TYPICAL FEATURES**: + - Hierarchical description (fonds, series, files, items) + - ISAD(G) compliance + - EAD export + - Access restrictions management + - Finding aid generation + + **EXAMPLES**: + - ArchivesSpace + - MAIS-Flexis (De Ree) + - Calm (Axiell) + - AtoM (Access to Memory) + - Archivist's Toolkit (legacy) + + annotations: + cms_type_code: "ARCHIVE_CMS" + primary_domain: "archives" + examples: + - value: + has_or_had_label: "ARCHIVE_CMS" + has_or_had_description: + description_text: "Archival description systems supporting hierarchical arrangement, ISAD(G) compliance, and EAD export." + description: Archive CMS type + + # ======================================================================== + # LIBRARY_CMS - Library management systems + # ======================================================================== + LibraryCMS: + is_a: CMSType + class_uri: hc:LibraryCMS + description: | + Integrated library systems (ILS) and library service platforms. + + **TYPICAL FEATURES**: + - Cataloging (MARC21, RDA) + - Circulation management + - Acquisitions + - Serials management + - OPAC (public catalog) + - Interlibrary loan + + **EXAMPLES**: + - Alma (Ex Libris) + - Koha (open-source) + - WorldShare (OCLC) + - Folio (open-source) + - Sierra (III) + - Symphony (SirsiDynix) + + annotations: + cms_type_code: "LIBRARY_CMS" + primary_domain: "libraries" + examples: + - value: + has_or_had_label: "LIBRARY_CMS" + has_or_had_description: + description_text: "Integrated library systems supporting MARC21 cataloging, circulation, acquisitions, and OPAC functionality." + description: Library CMS type + + # ======================================================================== + # DAM - Digital Asset Management + # ======================================================================== + 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 + + # ======================================================================== + # REPOSITORY - Digital repository systems + # ======================================================================== + DigitalRepository: + is_a: CMSType + class_uri: hc:DigitalRepository + description: | + Digital repository systems for long-term preservation and access. + + **TYPICAL FEATURES**: + - Long-term preservation + - OAI-PMH harvesting + - DOI/Handle assignment + - Bitstream management + - OAIS compliance + + **EXAMPLES**: + - DSpace + - Fedora (Flexible Extensible Digital Object Repository Architecture) + - EPrints + - Islandora (Drupal + Fedora) + - Samvera (formerly Hydra) + - Preservica + + annotations: + cms_type_code: "REPOSITORY" + primary_domain: "digital_preservation" + examples: + - value: + has_or_had_label: "REPOSITORY" + has_or_had_description: + description_text: "Digital repository systems for long-term preservation, OAI-PMH harvesting, and OAIS-compliant storage." + description: Digital repository type + + # ======================================================================== + # MIXED - Multi-domain systems + # ======================================================================== + MixedCMS: + is_a: CMSType + class_uri: hc:MixedCMS + description: | + Multi-domain systems that serve museums, archives, and/or libraries. + + **TYPICAL FEATURES**: + - Flexible data models + - Multiple metadata standards + - Cross-domain searching + - Configurable workflows + + **EXAMPLES**: + - Omeka S (museums, archives, libraries) + - CollectiveAccess (museums, archives) + - ArchivesSpace + plugins + - ResourceSpace with customization + + annotations: + cms_type_code: "MIXED" + primary_domain: "multi-domain" + examples: + - value: + has_or_had_label: "MIXED" + has_or_had_description: + description_text: "Multi-domain collection management systems that can serve museums, archives, and/or libraries with flexible data models." + description: Mixed CMS type + + # ======================================================================== + # CUSTOM - Institution-specific/custom-built + # ======================================================================== + CustomCMS: + is_a: CMSType + class_uri: hc:CustomCMS + description: | + Institution-specific or custom-built collection management systems. + + **TYPICAL FEATURES**: + - Tailored to institutional needs + - May be legacy systems + - Often lack standard API/export + - Proprietary data models + + **EXAMPLES**: + - In-house developed systems + - Heavily customized commercial systems + - Legacy database applications + - Spreadsheet-based systems (transitional) + + annotations: + cms_type_code: "CUSTOM" + primary_domain: "custom" + examples: + - value: + has_or_had_label: "CUSTOM" + has_or_had_description: + description_text: "Institution-specific or custom-built collection management systems, often legacy or heavily customized." + description: Custom CMS type diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CalendarSystem.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CalendarSystem.yaml new file mode 100644 index 0000000000..e2900a9465 --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CalendarSystem.yaml @@ -0,0 +1,94 @@ +id: https://nde.nl/ontology/hc/class/CalendarSystem +name: CalendarSystem +title: Calendar System Class +description: >- + Represents a temporal reference system (calendar) for dating events. + + **OWL TIME ALIGNMENT**: Maps to time:TRS (Temporal Reference System). + + **SUPPORTED SYSTEMS**: + - gregorian: Gregorian calendar (ISO 8601 default) + - julian: Julian calendar (pre-1582 dates) + - hebrew: Hebrew calendar + - islamic: Islamic (Hijri) calendar + - chinese: Chinese traditional calendar + - japanese: Japanese imperial calendar + + **USE CASES**: + - Historical dates using Julian calendar + - Religious dates in Hebrew or Islamic calendars + - East Asian historical dates + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + time: http://www.w3.org/2006/time# + schema: http://schema.org/ + +default_prefix: hc + +imports: + - linkml:types + - ../slots/has_or_had_label + - ./Label + +classes: + CalendarSystem: + class_uri: time:TRS + description: >- + A temporal reference system (calendar) used for dating. + exact_mappings: + - time:TRS + close_mappings: + - schema:Thing + attributes: + system_code: + range: string + required: true + description: >- + Code for the calendar system (e.g., gregorian, julian, hebrew, islamic). + examples: + - value: "gregorian" + - value: "julian" + - value: "hebrew" + - value: "islamic" + system_name: + range: string + description: >- + Full name of the calendar system. + examples: + - value: "Gregorian Calendar" + - value: "Julian Calendar" + - value: "Hebrew Calendar" + system_uri: + range: uriorcurie + description: >- + URI identifying the calendar system standard. + examples: + - value: "http://www.opengis.net/def/trs/BIPM/0/Gregorian" + slots: + - has_or_had_label + slot_usage: + has_or_had_label: + range: Label + inlined: true + description: Human-readable label for the calendar system. + examples: + - value: + system_code: "gregorian" + system_name: "Gregorian Calendar" + system_uri: "http://www.opengis.net/def/trs/BIPM/0/Gregorian" + description: Standard Gregorian calendar (ISO 8601) + - value: + system_code: "julian" + system_name: "Julian Calendar" + description: Julian calendar for pre-1582 dates + - value: + system_code: "hebrew" + system_name: "Hebrew Calendar" + description: Hebrew calendar for Jewish dates + annotations: + custodian_types: '["*"]' + specificity_score: 0.5 + specificity_rationale: >- + Moderately specific - calendar systems used in temporal context across heritage. diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CallForApplication.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CallForApplication.yaml index e9ce51e0dd..2a5b6fc5d5 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CallForApplication.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CallForApplication.yaml @@ -32,7 +32,9 @@ imports: - ./URL # for has_or_had_url range - ./Identifier # for has_or_had_identifier range # NOTE: has_or_had_status uses CallForApplicationStatusEnum (imported above), not a CallStatus class - - ../slots/co_funding_required + # REMOVED 2026-01-19: co_funding_required - migrated to requires_or_required + CoFunding (Rule 53) + - ../slots/requires_or_required # was: co_funding_required - migrated per Rule 53 (2026-01-19) + - ./CoFunding # for requires_or_required range (co-funding requirements) - ../slots/eligible_applicant - ../slots/eligible_country - ../slots/funded_project @@ -115,7 +117,8 @@ classes: - has_or_had_label # was: call_short_name, call_title - migrated per Rule 53 (2026-01-17) - has_or_had_status # was: call_status - migrated per Rule 53 (2026-01-17) - has_or_had_url # was: call_url - migrated per Rule 53 (2026-01-17) - - co_funding_required + # REMOVED 2026-01-19: co_funding_required - migrated to requires_or_required + CoFunding (Rule 53) + - requires_or_required # was: co_funding_required - migrated per Rule 53 (2026-01-19) - contact_email - eligible_applicant - eligible_country @@ -317,6 +320,27 @@ classes: description: Project funded by this call - value: https://nde.nl/ontology/hc/project/europeana/common-culture-2024 description: Europeana project funded through Horizon Europe + requires_or_required: # was: co_funding_required - migrated per Rule 53 (2026-01-19) + range: CoFunding + multivalued: false + inlined: true + description: | + Co-funding/match funding requirement for this call. + MIGRATED from co_funding_required (boolean) to structured CoFunding class per Rule 53 (2026-01-19). + Now captures whether co-funding is required, percentage/amount requirements, and human-readable descriptions. + examples: + - value: + is_or_was_required: true + has_or_had_description: "Partnership funding 5-50% depending on grant size" + description: NLHF co-funding requirement with percentage range + - value: + is_or_was_required: true + has_or_had_quantity: + - quantity_value: 20 + has_or_had_measurement_unit: + unit_label: "%" + has_or_had_description: "Minimum 20% co-funding from applicant organization" + description: Co-funding with specific percentage requirement comments: - CallForApplication links FundingOrganisation to heritage custodian funding opportunities - Lifecycle tracked via CallForApplicationStatusEnum (ANNOUNCED through RESULTS_PUBLISHED) @@ -466,7 +490,9 @@ classes: - Natural heritage - Intangible heritage - Industrial heritage - co_funding_required: true + requires_or_required: # was: co_funding_required - migrated per Rule 53 (2026-01-19) + is_or_was_required: true + has_or_had_description: "Partnership funding 5-50% depending on grant size" partnership_required: false issuing_organisation: https://nde.nl/ontology/hc/encompassing-body/funding/nlhf parent_programme: National Lottery Heritage Fund diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Category.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Category.yaml new file mode 100644 index 0000000000..d6824d5170 --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Category.yaml @@ -0,0 +1,135 @@ +id: https://nde.nl/ontology/hc/class/Category +name: category_class +title: Category Class +# Created per slot_fixes.yaml revision for collection_focus migration +# RULE 53: Structured category class based on SKOS Concept + +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/ + +imports: + - linkml:types + - ../slots/specificity_annotation + - ../slots/has_or_had_score + - ./SpecificityAnnotation + - ./TemplateSpecificityScore + - ./TemplateSpecificityType + - ./TemplateSpecificityTypes + +default_range: string + +enums: + CategoryTypeEnum: + description: Types of categories for classification. + permissible_values: + SUBJECT: + description: Subject or topic category (art, science, history) + meaning: skos:Concept + THEME: + description: Thematic category (Dutch Golden Age, WWII, Islamic art) + MATERIAL: + description: Material or medium category (paintings, manuscripts, specimens) + GEOGRAPHIC: + description: Geographic category (European, Asian, African) + TEMPORAL: + description: Temporal/period category (Medieval, Renaissance, Contemporary) + CREATOR: + description: Creator-focused category (single artist, school, movement) + TYPOLOGY: + description: Typological category (portraits, landscapes, genre scenes) + FORMAT: + description: Format category (books, photographs, digital) + GENRE: + description: Genre category (fiction, documentary, liturgical) + +classes: + Category: + class_uri: skos:Concept + description: >- + A category or classification term, based on SKOS Concept model. + + Categories represent hierarchical or faceted classifications used to + describe the focus, subject, or scope of collections and items. + + **Use cases**: + - Collection focus (thematic specialization) + - Subject classification (AAT, LCSH, custom vocabularies) + - Material classification (medium, format) + - Geographic scope (regions, countries) + - Temporal scope (periods, eras) + + **Examples**: + - "Dutch Golden Age paintings" (THEME + TEMPORAL + MATERIAL) + - "Lepidoptera" (SUBJECT, scientific classification) + - "First edition literature" (FORMAT + TYPOLOGY) + exact_mappings: + - skos:Concept + close_mappings: + - schema:DefinedTerm + - dcterms:subject + slots: + - specificity_annotation + - has_or_had_score + attributes: + category_name: + range: string + required: true + description: Name of the category. + slot_uri: skos:prefLabel + category_type: + range: CategoryTypeEnum + description: Type of category (subject, theme, material, geographic, etc.). + category_description: + range: string + description: Description of what this category encompasses. + slot_uri: skos:definition + broader_category: + range: string + description: >- + Broader (parent) category in hierarchy. + E.g., "Paintings" is broader than "Oil paintings" + slot_uri: skos:broader + narrower_category: + range: string + multivalued: true + description: >- + Narrower (child) categories. + E.g., "Oil paintings", "Watercolors" are narrower than "Paintings" + slot_uri: skos:narrower + vocabulary_source: + range: string + description: >- + Source vocabulary or thesaurus (AAT, LCSH, custom). + vocabulary_id: + range: string + description: >- + Identifier in the source vocabulary (e.g., AAT term ID). + 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" + annotations: + specificity_score: 0.45 + specificity_rationale: "Broadly useful - applies to many collection contexts" + examples: + - value: | + category_name: "Dutch Golden Age paintings" + category_type: THEME + category_description: "Paintings from the Dutch Golden Age (17th century)" + broader_category: "European paintings" + vocabulary_source: "AAT" + - value: | + category_name: "Lepidoptera" + category_type: SUBJECT + category_description: "Butterflies and moths" + broader_category: "Insects" + vocabulary_source: "ITIS" + - value: | + category_name: "First edition literature" + category_type: FORMAT + category_description: "First printings of literary works" + broader_category: "Rare books" diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CateringPlace.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CateringPlace.yaml index 10fdd8fae9..ca7e4e3664 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CateringPlace.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CateringPlace.yaml @@ -30,7 +30,9 @@ imports: - ../slots/catering_price_range - ../slots/has_or_had_accessibility_feature - ../slots/operator - - ../slots/founded_year + # MIGRATED 2026-01-22: founded_year → is_or_was_founded_through + FoundingEvent (Rule 53) + - ../slots/is_or_was_founded_through + - ./FoundingEvent - ../slots/specificity_annotation - ../slots/has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) - ../slots/is_or_was_derived_from # was: was_derived_from - migrated per Rule 53 @@ -92,7 +94,7 @@ classes: - catering_price_range - catering_type - cuisine_type - - founded_year + - is_or_was_founded_through # was: founded_year - migrated per Rule 53 (2026-01-22) - has_michelin_star - has_outdoor_seating - heritage_type_classification @@ -238,11 +240,20 @@ classes: description: Dutch catering company - value: In-house description: Museum-operated - founded_year: - range: integer + # MIGRATED 2026-01-22: founded_year → is_or_was_founded_through + FoundingEvent (Rule 53) + is_or_was_founded_through: + description: | + The founding event for this catering place. + Migrated from founded_year per slot_fixes.yaml revision. + range: FoundingEvent + inlined: true examples: - - value: 1902 - description: Historic café founding year + - value: + temporal_extent: + begin_of_the_begin: "1902-01-01" + end_of_the_begin: "1902-12-31" + founding_description: "Established as historic café" + description: Historic café founding event (1902) is_or_was_derived_from: # was: was_derived_from - migrated per Rule 53 range: CustodianObservation multivalued: true @@ -308,6 +319,11 @@ classes: seating_capacity: 150 has_outdoor_seating: true opening_hour: Daily 07:00-23:00 - founded_year: 1902 + # MIGRATED 2026-01-22: founded_year → is_or_was_founded_through + FoundingEvent (Rule 53) + is_or_was_founded_through: + temporal_extent: + begin_of_the_begin: "1902-01-01" + end_of_the_begin: "1902-12-31" + founding_description: "Historic art deco café established in 1902" catering_price_range: €€€ description: Historic heritage café diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CauseOfDeath.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CauseOfDeath.yaml new file mode 100644 index 0000000000..452747a994 --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CauseOfDeath.yaml @@ -0,0 +1,110 @@ +# CauseOfDeath class +# Structured representation of the cause and circumstances of death +# +# Migration: Created per slot_fixes.yaml revision for circumstances_of_death (line 9369) +# +# Generation date: 2026-01-19 +# Rule compliance: 38 (slot centralization), 39 (RiC-O naming), 53 (slot_fixes.yaml) + +id: https://nde.nl/ontology/hc/class/CauseOfDeath +name: cause_of_death_class +title: Cause Of Death Class + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + wd: http://www.wikidata.org/entity/ + +default_prefix: hc + +imports: + - linkml:types + - ../metadata + - ../slots/has_or_had_type + - ../slots/has_or_had_description + - ../slots/has_or_had_location + - ./Location + - ../enums/CauseOfDeathTypeEnum + +classes: + CauseOfDeath: + class_uri: hc:CauseOfDeath + description: | + Structured representation of the cause and circumstances of a person's death. + + **Purpose**: + Captures structured information about how and why a person died: + - **Type**: Category of death (natural, conflict, accident, etc.) + - **Location**: Where the death occurred + - **Description**: Narrative details and context + + **Ontological Alignment**: + - **Primary** (`class_uri`): `hc:CauseOfDeath` - Heritage Custodian class + - **Related**: Wikidata P1196 (manner of death) - semantic equivalent + - **Related**: `schema:causeOfDeath` - Schema.org (MedicalCause context) + + **Heritage Sector Context**: + Particularly important for documenting deaths of heritage workers due to: + - **CONFLICT**: Armed conflict, airstrikes, military operations + - **TARGETED_ATTACK**: Violence specifically targeting cultural workers + - **OCCUPATIONAL**: Hazards from heritage work (conservation chemicals, etc.) + - **NATURAL**: Age, illness, medical conditions + - **ACCIDENT**: Non-occupational accidents + - **PERSECUTION**: Targeting due to identity or beliefs + + **Example - Conflict Death**: + ```yaml + is_or_was_caused_by: + cause_type: CONFLICT + has_or_had_description: | + Killed in Israeli airstrike on residential building in Gaza City. + The attack occurred during the 2023-2024 Israeli military operations. + has_or_had_location: + city: Gaza City + country: PS + ``` + + **Sensitivity Guidelines**: + - Handle with respect and dignity + - Verify facts from authoritative sources before documenting + - Consult with family or institution when possible + - Follow journalistic standards for reporting deaths + - Link to source documentation (news reports, institutional records) + + exact_mappings: + - wd:P1196 # Wikidata: manner of death + + slots: + - has_or_had_type + - has_or_had_description + - has_or_had_location + + slot_usage: + has_or_had_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: + range: string + description: | + Detailed narrative description of the death circumstances. + Include source documentation and context. + Handle with respect and verify facts before documenting. + has_or_had_location: + range: Location + inlined: true + description: | + The location where the death occurred. + Important for conflict deaths to document the specific location. + + comments: + - "Structured cause of death for heritage workers" + - "Wikidata P1196 (manner of death) is semantically equivalent" + - "Important for documenting conflict-related deaths" + - "Handle with respect and verify facts before documenting" + - "Include source documentation for verification" + + see_also: + - https://www.wikidata.org/wiki/Property:P1196 diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CertaintyLevel.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CertaintyLevel.yaml new file mode 100644 index 0000000000..6f06308f03 --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CertaintyLevel.yaml @@ -0,0 +1,150 @@ +# CertaintyLevel class +# Structured class for expressing certainty/confidence levels with notes +# +# Generation date: 2026-01-18 +# Rule compliance: 0 (LinkML single source of truth), 38 (slot centralization), 53 (slot_fixes.yaml) +# Migration: Replaces certainty_level + certainty_note bespoke slots +# +# Created per slot_fixes.yaml revisions: +# - certainty_level → has_or_had_level + CertaintyLevel +# - certainty_note → has_or_had_note + Note (within CertaintyLevel) + +id: https://nde.nl/ontology/hc/class/CertaintyLevel +name: certainty_level_class +title: Certainty Level Class + +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# + skos: http://www.w3.org/2004/02/skos/core# + prov: http://www.w3.org/ns/prov# + +default_prefix: hc + +imports: + - linkml:types + - ../metadata + - ../slots/level_value + - ../slots/has_or_had_note + - ./Note + - ../slots/specificity_annotation + - ../slots/has_or_had_score + - ./SpecificityAnnotation + - ./TemplateSpecificityScore + - ./TemplateSpecificityType + - ./TemplateSpecificityTypes + +classes: + CertaintyLevel: + class_uri: rico:ConfidenceLevel + description: | + A structured representation of certainty/confidence level with explanatory notes. + + **Purpose**: + CertaintyLevel encapsulates both the level of certainty (CERTAIN, PROBABLE, + POSSIBLE, UNCERTAIN) and any notes explaining the certainty assessment. + Used primarily in provenance research to document confidence in ownership + transfer claims. + + **Ontological Alignment**: + - **Primary**: `rico:ConfidenceLevel` - RiC-O confidence level + - **Close**: `crm:P141_assigned` - CIDOC-CRM attribute assignment + + **Standard Values for level_value**: + - CERTAIN: Documentary evidence confirms the claim + - PROBABLE: Strong circumstantial evidence supports the claim + - POSSIBLE: Reasonable inference from available context + - UNCERTAIN: Speculative or unverified claim + + **Use Cases**: + - Provenance event certainty (ProvenanceEvent) + - Attribution confidence (artwork authorship) + - Dating confidence (temporal assertions) + - 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) + + exact_mappings: + - rico:ConfidenceLevel + + close_mappings: + - crm:P141_assigned + - prov:qualifiedAssociation + + slots: + - level_value + - has_or_had_note + - specificity_annotation + - has_or_had_score + + slot_usage: + level_value: + description: | + The certainty/confidence level value. + Standard values: CERTAIN, PROBABLE, POSSIBLE, UNCERTAIN. + range: string + required: true + examples: + - value: CERTAIN + description: Documentary evidence confirms claim + - value: PROBABLE + description: Strong circumstantial evidence + - value: POSSIBLE + description: Reasonable inference + - value: UNCERTAIN + description: Speculative/unverified + has_or_had_note: + description: | + Notes explaining the certainty assessment. + Use Note class with note_type: "certainty" for certainty-specific notes. + range: Note + multivalued: true + inlined: true + required: false + examples: + - value: + note_type: certainty + note_content: "Confirmed by sale catalogue and receipt" + description: Documentary evidence note + - value: + note_type: certainty + note_content: "Inferred from stylistic analysis and collection history" + description: Circumstantial evidence note + - value: + note_type: certainty + note_content: "Provenance gap 1933-1945 requires further research" + description: Research gap note + + annotations: + custodian_types: '["*"]' + custodian_types_rationale: Certainty documentation applicable to all custodian types. + custodian_types_primary: null + specificity_score: 0.4 + specificity_rationale: Moderately specific class for provenance and attribution certainty. + + examples: + - value: | + level_value: CERTAIN + has_or_had_note: + - note_type: certainty + note_content: "Confirmed by sale catalogue and receipt" + note_date: "2025-06-15" + description: "Certain provenance event with documentary evidence" + - value: | + level_value: PROBABLE + has_or_had_note: + - note_type: certainty + note_content: "Van Ruijven was Vermeer's patron; likely acquired directly from artist" + description: "Probable ownership based on historical relationship" + - value: | + level_value: UNCERTAIN + has_or_had_note: + - note_type: certainty + note_content: "Provenance gap 1933-1945 requires further research" + - note_type: certainty + note_content: "Documentation incomplete; collector fled Vienna 1938" + description: "Uncertain Nazi-era provenance requiring research" diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ChAnnotatorAnnotationMetadata.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ChAnnotatorAnnotationMetadata.yaml index b2cbdcbd7c..a6aa748db1 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ChAnnotatorAnnotationMetadata.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ChAnnotatorAnnotationMetadata.yaml @@ -1,6 +1,7 @@ # ChAnnotatorAnnotationMetadata - Metadata about the annotation # Extracted from custodian_source.yaml per Rule 38 (modular schema files) # Extraction date: 2026-01-08 +# MIGRATED 2026-01-19: confidence_score → is_or_was_generated_by + GenerationEvent + ConfidenceScore id: https://nde.nl/ontology/hc/classes/ChAnnotatorAnnotationMetadata name: ChAnnotatorAnnotationMetadata @@ -17,7 +18,10 @@ prefixes: imports: - linkml:types - - ../slots/confidence_score + # MIGRATED 2026-01-19: confidence_score → is_or_was_generated_by + GenerationEvent + ConfidenceScore + - ../slots/is_or_was_generated_by + - ./GenerationEvent + - ./ConfidenceScore default_range: string @@ -42,7 +46,22 @@ classes: - prov:Entity - schema:Rating slots: - - confidence_score + # MIGRATED 2026-01-19: confidence_score → is_or_was_generated_by + - is_or_was_generated_by + slot_usage: + is_or_was_generated_by: + range: GenerationEvent + required: false + inlined: true + description: >- + Generation event containing confidence score for annotation. + 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" + description: High confidence annotation attributes: verified: range: boolean @@ -53,3 +72,6 @@ classes: verified_by: range: string description: Who verified the annotation + + comments: + - "MIGRATED 2026-01-19: confidence_score → is_or_was_generated_by + ConfidenceScore" diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ChAnnotatorEntityClaim.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ChAnnotatorEntityClaim.yaml index fe0bb11980..0e3c25099c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/ChAnnotatorEntityClaim.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ChAnnotatorEntityClaim.yaml @@ -1,6 +1,7 @@ # ChAnnotatorEntityClaim - Individual claim about an entity # Extracted from custodian_source.yaml per Rule 38 (modular schema files) # Extraction date: 2026-01-08 +# MIGRATION 2026-01-19: claim_type → has_or_had_type + ClaimType (Rule 53/56) id: https://nde.nl/ontology/hc/classes/ChAnnotatorEntityClaim name: ChAnnotatorEntityClaim @@ -17,10 +18,12 @@ prefixes: imports: - linkml:types - - - ./ChAnnotatorProvenance - ./ExtractionSourceInfo + # ADDED 2026-01-19: claim_type migration (Rule 53/56) + - ../slots/has_or_had_type + - ./ClaimType + - ./ClaimTypes default_range: string classes: @@ -43,11 +46,19 @@ classes: related_mappings: - prov:Entity - schema:PropertyValue - attributes: - claim_type: - range: string + slots: + - has_or_had_type + slot_usage: + has_or_had_type: + range: ClaimType + inlined: true required: true - description: Type of claim (full_name, institution_type, etc.) + description: | + MIGRATED from claim_type per slot_fixes.yaml (Rule 53/56, 2026-01-19). + Type of claim (full_name, institution_type, etc.). + Uses ClaimType class hierarchy with 507 concrete subtypes. + attributes: + # REMOVED 2026-01-19: claim_type - migrated to has_or_had_type slot (Rule 53/56) claim_value: range: string required: true diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/City.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/City.yaml new file mode 100644 index 0000000000..38d7f70634 --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/classes/City.yaml @@ -0,0 +1,122 @@ +# City - A city/town settlement entity +# Created: 2026-01-18 +# Migration from city (string) slot per slot_fixes.yaml revision +# City is_a Settlement per established pattern + +id: https://nde.nl/ontology/hc/class/City +name: city_class +title: City Class + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + gn: http://www.geonames.org/ontology# + wikidata: http://www.wikidata.org/entity/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + +imports: + - linkml:types + - ./Settlement + +default_prefix: hc + +classes: + City: + is_a: Settlement + class_uri: schema:City + description: | + A city or large town settlement. + + **RELATIONSHIP TO SETTLEMENT**: + + City is a subclass of Settlement representing urban areas that are + typically larger and more administratively significant than villages + or small towns. + + **GeoNames Feature Codes**: + + Cities typically correspond to GeoNames feature codes: + - PPL: Populated place (general) + - PPLA: Seat of first-order administrative division + - PPLA2: Seat of second-order administrative division + - PPLC: Capital of a political entity + - PPLS: Populated places (urban agglomerations) + + **USAGE**: + + Use City class when: + - The settlement is known to be a city (not village/hamlet) + - You need to express city-specific semantics + - Schema.org City alignment is important + + Use Settlement class when: + - The settlement type is unknown or mixed + - You want the most general geographic entity + + **EXAMPLES**: + + ```yaml + is_or_was_located_in: + - settlement_name: "Amsterdam" + geonames_id: 2759794 + country: "NL" + ``` + + exact_mappings: + - schema:City + close_mappings: + - gn:P.PPLA + - gn:P.PPLC + - wikidata:Q515 + related_mappings: + - crm:E53_Place + + # Inherits all slots from Settlement: + # - settlement_name + # - geonames_id + # - latitude + # - longitude + # - country + # - has_or_had_geographic_subdivision (subregion) + # - specificity_annotation + # - has_or_had_score + + annotations: + specificity_score: 0.35 + specificity_rationale: | + Slightly more specific than Settlement (0.30) as it indicates + urban status, but still broadly applicable across heritage contexts. + custodian_types: '["*"]' + custodian_types_rationale: | + All heritage custodians are located in cities or settlements. + custodian_types_primary: "*" + + examples: + - value: + settlement_name: "Amsterdam" + geonames_id: 2759794 + country: "NL" + has_or_had_geographic_subdivision: + subregion_code: "NL-NH" + description: Amsterdam - capital and largest city of the Netherlands + + - value: + settlement_name: "Haarlem" + geonames_id: 2755420 + country: "NL" + latitude: 52.3873 + longitude: 4.6462 + description: Haarlem - city in Noord-Holland province + + - value: + settlement_name: "Tokyo" + geonames_id: 1850147 + country: "JP" + description: Tokyo - capital of Japan + + comments: + - City is_a Settlement following semantic hierarchy + - Inherits all Settlement slots including GeoNames ID + - Use for explicit urban classification + - Created per slot_fixes.yaml migration for city slot (2026-01-18) diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Claim.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Claim.yaml new file mode 100644 index 0000000000..5c7144907e --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Claim.yaml @@ -0,0 +1,51 @@ +id: https://nde.nl/ontology/hc/class/Claim +name: Claim +title: Claim Class - Base Class for Assertions +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + arg: http://www.w3.org/ns/argument# +imports: + - linkml:types +default_prefix: hc +classes: + Claim: + class_uri: prov:Entity + description: | + Base class for assertions or claims made about heritage entities. + + A claim represents a statement that warrants (supports or justifies) + other statements or conclusions. Claims can come from various sources: + - Web pages (WebClaim subclass) + - Wikidata (WikidataClaim) + - Research sources + - Human annotations + + **Argumentation Semantics**: + The term "warrants" comes from argumentation theory (Toulmin model): + - Claims provide evidence that WARRANTS (justifies) conclusions + - A claim can be warranted BY other supporting claims + + This bidirectional relationship is captured by the `warrants_or_warranted` slot. + + **Subclasses**: + - WebClaim: Claims extracted from web pages with XPath provenance + - WikidataClaim: Claims from Wikidata with property/value structure + - PersonWebClaim: Claims about persons from web sources + - CustodianLegalNameClaim: Claims about custodian legal names + + **MIGRATION NOTE (2026-01-19)**: + Created as base class for claim type hierarchy per slot_fixes.yaml (Rule 53/56). + Replaces generic `claim` slot with `warrants_or_warranted` slot. + exact_mappings: + - prov:Entity + close_mappings: + - schema:Claim + - schema:PropertyValue + slots: [] # Base class - slots defined in subclasses + comments: + - Base class for claim type hierarchy + - Subclasses add specific provenance mechanisms + - 'CREATED 2026-01-19: Per slot_fixes.yaml revision (Rule 53/56)' diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/ClaimType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/ClaimType.yaml new file mode 100644 index 0000000000..f70614783f --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/classes/ClaimType.yaml @@ -0,0 +1,80 @@ +id: https://nde.nl/ontology/hc/class/ClaimType +name: ClaimType +title: ClaimType Class - Base class for web claim types +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# +imports: + - linkml:types + - ../slots/has_or_had_label + - ../slots/has_or_had_description +default_prefix: hc + +classes: + ClaimType: + class_uri: skos:Concept + description: | + Abstract base class for types of claims that can be extracted from web pages. + + Each claim type has expected source locations in HTML: + - full_name: