diff --git a/frontend/public/schemas/20251121/linkml/manifest.json b/frontend/public/schemas/20251121/linkml/manifest.json index 4f4ecd25f2..8bf1510d78 100644 --- a/frontend/public/schemas/20251121/linkml/manifest.json +++ b/frontend/public/schemas/20251121/linkml/manifest.json @@ -1,5 +1,5 @@ { - "generated": "2026-01-27T09:07:17.016Z", + "generated": "2026-01-27T09:29:17.532Z", "schemaRoot": "/schemas/20251121/linkml", "totalFiles": 3014, "categoryCounts": { diff --git a/frontend/src/hooks/usePersonSearch.ts b/frontend/src/hooks/usePersonSearch.ts index 3cdd15353b..2dca7e46bd 100644 --- a/frontend/src/hooks/usePersonSearch.ts +++ b/frontend/src/hooks/usePersonSearch.ts @@ -116,7 +116,10 @@ export function usePersonSearch(options: UsePersonSearchOptions = {}): UsePerson case 'email': return `email address ${trimmedQuery}`; case 'domain': - return `working at domain ${trimmedQuery}`; + // For domain searches, send the raw query so the backend heuristic + // (single word, no spaces) can detect it and apply strict email filtering. + // Prefixing with "working at domain" breaks the heuristic. + return trimmedQuery; case 'birth_year': return `born in ${trimmedQuery}`; case 'all': diff --git a/frontend/src/pages/EntityReviewPage.tsx b/frontend/src/pages/EntityReviewPage.tsx index 7b5df57199..74953822a6 100644 --- a/frontend/src/pages/EntityReviewPage.tsx +++ b/frontend/src/pages/EntityReviewPage.tsx @@ -366,6 +366,7 @@ export default function EntityReviewPage() { // Profile search - now with semantic search mode const [profileSearchQuery, setProfileSearchQuery] = useState(''); const [useSemanticSearch, setUseSemanticSearch] = useState(false); // Toggle: semantic vs local filter + const [onlyWcmsToggle, setOnlyWcmsToggle] = useState(false); // Toggle: only return WCMS profiles // Semantic search hook (searches ALL profiles in vector database) const { @@ -379,7 +380,12 @@ export default function EntityReviewPage() { queryTimeMs: semanticQueryTime, resultCount: semanticResultCount, clearSearch: clearSemanticSearch, - } = usePersonSearch({ debounceMs: 400, minQueryLength: 2, maxResults: 50 }); + } = usePersonSearch({ + debounceMs: 400, + minQueryLength: 2, + maxResults: 50, + onlyWcms: onlyWcmsToggle + }); // Linkup search state const [linkupSearching, setLinkupSearching] = useState(false); diff --git a/schemas/20251121/linkml/manifest.json b/schemas/20251121/linkml/manifest.json index 8bf1510d78..f5c30f6a1b 100644 --- a/schemas/20251121/linkml/manifest.json +++ b/schemas/20251121/linkml/manifest.json @@ -1,5 +1,5 @@ { - "generated": "2026-01-27T09:29:17.532Z", + "generated": "2026-01-27T09:46:17.621Z", "schemaRoot": "/schemas/20251121/linkml", "totalFiles": 3014, "categoryCounts": { diff --git a/schemas/20251121/linkml/modules/classes/AVEquipment.yaml b/schemas/20251121/linkml/modules/classes/AVEquipment.yaml new file mode 100644 index 0000000000..b1f84ac131 --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/AVEquipment.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/class/AVEquipment +name: AVEquipment +title: AVEquipment +description: >- + Audiovisual equipment used in heritage contexts (e.g., for playback, digitization). + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + +default_prefix: hc + +imports: + - linkml:types + - ../slots/has_or_had_name + - ../slots/has_or_had_type + +classes: + AVEquipment: + class_uri: schema:Product + description: AV Equipment. + + slots: + - has_or_had_name + - has_or_had_type diff --git a/schemas/20251121/linkml/modules/classes/AuthorityData.yaml b/schemas/20251121/linkml/modules/classes/AuthorityData.yaml index dc3fa52bb8..7f2f2e5f48 100644 --- a/schemas/20251121/linkml/modules/classes/AuthorityData.yaml +++ b/schemas/20251121/linkml/modules/classes/AuthorityData.yaml @@ -15,6 +15,7 @@ imports: - linkml:types - ../slots/has_or_had_label - ../slots/has_or_had_type + - ../slots/has_or_had_url classes: AuthorityData: @@ -24,3 +25,4 @@ classes: slots: - has_or_had_label - has_or_had_type + - has_or_had_url diff --git a/schemas/20251121/linkml/modules/classes/AuxiliaryPlace.yaml b/schemas/20251121/linkml/modules/classes/AuxiliaryPlace.yaml index e5f668bb54..0c123d2cc5 100644 --- a/schemas/20251121/linkml/modules/classes/AuxiliaryPlace.yaml +++ b/schemas/20251121/linkml/modules/classes/AuxiliaryPlace.yaml @@ -125,7 +125,8 @@ classes: - vcard:Address slots: - has_or_had_identifier - - has_auxiliary_place_type + # has_auxiliary_place_type REMOVED - migrated to has_or_had_type (Rule 53) + - has_or_had_type # REMOVED: city - migrated to is_or_was_located_in + City (2026-01-18, Rule 53) - is_or_was_located_in - country @@ -168,16 +169,24 @@ classes: description: Airport branch location - value: Reading Room Annex description: Overflow reading room - has_auxiliary_place_type: - range: AuxiliaryPlaceTypeEnum + has_or_had_type: + description: | + Type of auxiliary place (e.g., STORAGE_FACILITY, BRANCH_OFFICE). + MIGRATED from has_auxiliary_place_type per Rule 53. + Uses PlaceType class (which wraps AuxiliaryPlaceTypeEnum). + range: PlaceType required: true + inlined: true examples: - - value: STORAGE_FACILITY + - value: + has_or_had_label: STORAGE_FACILITY description: Off-site depot - - value: BRANCH_OFFICE + - value: + has_or_had_label: BRANCH_OFFICE description: Regional branch - - value: RESEARCH_CENTER - description: Digitization center - use ResearchCenter class for details + - value: + has_or_had_label: RESEARCH_CENTER + description: Digitization center specialized_place: range: ReconstructedEntity required: false @@ -378,7 +387,8 @@ classes: - value: has_or_had_identifier: https://nde.nl/ontology/hc/aux-place/rijksmuseum-depot-amersfoort place_name: Depot Amersfoort - auxiliary_place_type: STORAGE_FACILITY + has_or_had_type: + has_or_had_label: STORAGE_FACILITY place_description: Off-site storage facility for overflow collections. Climate-controlled. Staff access only. has_or_had_address: # was: street_address - migrated to Address class per Rule 53/56 (2026-01-17) - has_or_had_label: @@ -399,7 +409,8 @@ classes: - value: has_or_had_identifier: https://nde.nl/ontology/hc/aux-place/rijksmuseum-schiphol place_name: Rijksmuseum Schiphol - auxiliary_place_type: BRANCH_OFFICE + has_or_had_type: + has_or_had_label: BRANCH_OFFICE place_description: Small exhibition space at Schiphol Airport featuring rotating highlights from the collection. has_or_had_address: # was: street_address - migrated to Address class per Rule 53/56 (2026-01-17) - has_or_had_label: @@ -422,7 +433,8 @@ classes: - value: has_or_had_identifier: https://nde.nl/ontology/hc/aux-place/nha-reading-room-annex place_name: Noord-Hollands Archief Reading Room Annex - auxiliary_place_type: READING_ROOM_ANNEX + has_or_had_type: + has_or_had_label: READING_ROOM_ANNEX specialized_place: reading_room_annex_id: https://nde.nl/hc/reading-room-annex/nha-overflow annex_name: NHA Overflow Reading Room diff --git a/schemas/20251121/linkml/modules/classes/PlaceType.yaml b/schemas/20251121/linkml/modules/classes/PlaceType.yaml new file mode 100644 index 0000000000..3cd259a54a --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/PlaceType.yaml @@ -0,0 +1,24 @@ +id: https://nde.nl/ontology/hc/class/PlaceType +name: PlaceType +title: PlaceType +description: >- + Type classification for a Place (e.g., City, Region, Building). + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + +default_prefix: hc + +imports: + - linkml:types + - ../slots/has_or_had_label + +classes: + PlaceType: + class_uri: skos:Concept + description: Place type. + + slots: + - has_or_had_label diff --git a/schemas/20251121/linkml/modules/classes/Platform.yaml b/schemas/20251121/linkml/modules/classes/Platform.yaml new file mode 100644 index 0000000000..6a579fd737 --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/Platform.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/class/Platform +name: Platform +title: Platform +description: >- + A digital or physical platform. + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + +default_prefix: hc + +imports: + - linkml:types + - ../slots/has_or_had_name + - ../slots/has_or_had_type + +classes: + Platform: + class_uri: schema:DigitalDocument + description: Platform entity. + + slots: + - has_or_had_name + - has_or_had_type diff --git a/schemas/20251121/linkml/modules/classes/PlatformType.yaml b/schemas/20251121/linkml/modules/classes/PlatformType.yaml new file mode 100644 index 0000000000..f508758bed --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/PlatformType.yaml @@ -0,0 +1,24 @@ +id: https://nde.nl/ontology/hc/class/PlatformType +name: PlatformType +title: PlatformType +description: >- + Type classification for a Platform. + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + +default_prefix: hc + +imports: + - linkml:types + - ../slots/has_or_had_label + +classes: + PlatformType: + class_uri: skos:Concept + description: Platform type. + + slots: + - has_or_had_label diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_equipment.yaml b/schemas/20251121/linkml/modules/slots/has_or_had_equipment.yaml index 6531103d60..5630726f4f 100644 --- a/schemas/20251121/linkml/modules/slots/has_or_had_equipment.yaml +++ b/schemas/20251121/linkml/modules/slots/has_or_had_equipment.yaml @@ -1,12 +1,7 @@ +id: https://nde.nl/ontology/hc/slot/has_or_had_equipment name: has_or_had_equipment -description: >- - Relates an entity or facility to the equipment it has or uses. - - MIGRATED from `equipment_type` (via Equipment class). -slot_uri: sosa:hosts -range: Equipment +title: has_or_had_equipment +description: Equipment associated with a facility or process. +slot_uri: schema:instrument +range: AVEquipment multivalued: true -exact_mappings: - - sosa:hosts -close_mappings: - - schema:owns