Add new classes and slots to the ontology
- Introduced GeospatialLocation class for specific geospatial locations. - Added HandsOnFacility class representing facilities for hands-on experiences. - Created Hyponym class for narrower terms or instances. - Added ImagingEquipment class for imaging-related equipment. - Introduced LoadingDock class for loading dock facilities. - Created LocalCollection class for locally held collections. - Added Locker class for storage lockers available to visitors/staff. - Introduced MichelinStarRating class for Michelin star ratings. - Created MicrofilmReader class for equipment used to read microfilms. - Added OperationalArchive class for archives containing operational records. - Introduced OperationalUnit class for operational units within organizations. - Added has_or_had_archive slot for associating archives with entities. - Created has_or_had_rating slot for ratings assigned to entities. - Introduced has_or_had_section slot for sections or units within organizations. - Added has_geospatial_location slot linking nominal places to precise geospatial coordinates.
This commit is contained in:
parent
09674f7da2
commit
8c42292235
263 changed files with 3825 additions and 4352 deletions
|
|
@ -2767,9 +2767,27 @@ async def person_search(request: PersonSearchRequest) -> PersonSearchResponse:
|
|||
search_query = request.query
|
||||
extra_filters = None
|
||||
|
||||
# Check for single word domain-like queries
|
||||
if len(search_query.split()) == 1 and len(search_query) > 2 and "@" not in search_query:
|
||||
# Heuristic: single word queries might be domain searches
|
||||
# 1. Email/Domain Detection Logic
|
||||
is_email_like = "@" in search_query
|
||||
# Check for common TLDs at the end of the query or at the end of words
|
||||
common_tlds = ['.nl', '.com', '.org', '.net', '.eu', '.be', '.de', '.edu', '.gov', '.uk', '.fr', '.it', '.es']
|
||||
is_domain_like = any(tld in search_query.lower() for tld in common_tlds)
|
||||
|
||||
# 2. Construct Filters
|
||||
if is_email_like or is_domain_like:
|
||||
logger.info(f"[PersonSearch] Email/Domain pattern detected: '{search_query}'")
|
||||
# If explicit @ is present, we might want to strip leading @ for better matching
|
||||
# e.g. "@nos.nl" -> "nos.nl"
|
||||
clean_term = search_query.strip()
|
||||
if clean_term.startswith("@"):
|
||||
clean_term = clean_term[1:]
|
||||
|
||||
# Apply MatchText filter on email field
|
||||
# This prioritizes email matches by strictly filtering for them first
|
||||
extra_filters = {"email": {"match": {"text": clean_term}}}
|
||||
|
||||
elif len(search_query.split()) == 1 and len(search_query) > 2:
|
||||
# Heuristic: single word queries might be domain searches (e.g. "nos", "leiden")
|
||||
# We use MatchText filtering on email field to find substring matches
|
||||
# Qdrant "match": {"text": "nos"} performs token-based matching
|
||||
extra_filters = {"email": {"match": {"text": search_query}}}
|
||||
|
|
|
|||
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
"generated": "2026-01-27T10:37:45.388Z",
|
||||
"generated": "2026-01-27T10:50:25.504Z",
|
||||
"schemaRoot": "/schemas/20251121/linkml",
|
||||
"totalFiles": 2986,
|
||||
"totalFiles": 3000,
|
||||
"categoryCounts": {
|
||||
"main": 4,
|
||||
"class": 1230,
|
||||
"class": 1241,
|
||||
"enum": 153,
|
||||
"slot": 1595,
|
||||
"slot": 1598,
|
||||
"module": 4
|
||||
},
|
||||
"categories": [
|
||||
|
|
@ -2760,6 +2760,11 @@
|
|||
"path": "modules/classes/GeospatialIdentifier.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "GeospatialLocation",
|
||||
"path": "modules/classes/GeospatialLocation.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "GeoSpatialPlace",
|
||||
"path": "modules/classes/GeoSpatialPlace.yaml",
|
||||
|
|
@ -2895,6 +2900,11 @@
|
|||
"path": "modules/classes/HALCAdm2Name.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "HandsOnFacility",
|
||||
"path": "modules/classes/HandsOnFacility.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "HeritageCustodianPlace",
|
||||
"path": "modules/classes/HeritageCustodianPlace.yaml",
|
||||
|
|
@ -3005,6 +3015,11 @@
|
|||
"path": "modules/classes/Hypernym.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "Hyponym",
|
||||
"path": "modules/classes/Hyponym.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "Hypothesis",
|
||||
"path": "modules/classes/Hypothesis.yaml",
|
||||
|
|
@ -3055,6 +3070,11 @@
|
|||
"path": "modules/classes/Image.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "ImagingEquipment",
|
||||
"path": "modules/classes/ImagingEquipment.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "Index",
|
||||
"path": "modules/classes/Index.yaml",
|
||||
|
|
@ -3345,11 +3365,21 @@
|
|||
"path": "modules/classes/LlmVerification.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "LoadingDock",
|
||||
"path": "modules/classes/LoadingDock.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "Loan",
|
||||
"path": "modules/classes/Loan.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "LocalCollection",
|
||||
"path": "modules/classes/LocalCollection.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "LocalGovernmentArchive",
|
||||
"path": "modules/classes/LocalGovernmentArchive.yaml",
|
||||
|
|
@ -3405,6 +3435,11 @@
|
|||
"path": "modules/classes/LocationResolution.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "Locker",
|
||||
"path": "modules/classes/Locker.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "LogoClaim",
|
||||
"path": "modules/classes/LogoClaim.yaml",
|
||||
|
|
@ -3595,6 +3630,16 @@
|
|||
"path": "modules/classes/METSAPI.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "MichelinStarRating",
|
||||
"path": "modules/classes/MichelinStarRating.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "MicrofilmReader",
|
||||
"path": "modules/classes/MicrofilmReader.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "MilitaryArchive",
|
||||
"path": "modules/classes/MilitaryArchive.yaml",
|
||||
|
|
@ -3905,6 +3950,16 @@
|
|||
"path": "modules/classes/OpeningPeriod.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "OperationalArchive",
|
||||
"path": "modules/classes/OperationalArchive.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "OperationalUnit",
|
||||
"path": "modules/classes/OperationalUnit.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "Organization",
|
||||
"path": "modules/classes/Organization.yaml",
|
||||
|
|
@ -8167,6 +8222,11 @@
|
|||
"path": "modules/slots/has_or_had_archival_status.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "has_or_had_archive",
|
||||
"path": "modules/slots/has_or_had_archive.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "has_or_had_archive_branch",
|
||||
"path": "modules/slots/has_or_had_archive_branch.yaml",
|
||||
|
|
@ -9162,6 +9222,11 @@
|
|||
"path": "modules/slots/has_or_had_rate.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "has_or_had_rating",
|
||||
"path": "modules/slots/has_or_had_rating.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "has_or_had_rationale",
|
||||
"path": "modules/slots/has_or_had_rationale.yaml",
|
||||
|
|
@ -9312,6 +9377,11 @@
|
|||
"path": "modules/slots/has_or_had_secondary_system.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "has_or_had_section",
|
||||
"path": "modules/slots/has_or_had_section.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "has_or_had_section_link",
|
||||
"path": "modules/slots/has_or_had_section_link.yaml",
|
||||
|
|
|
|||
|
|
@ -0,0 +1,24 @@
|
|||
id: https://nde.nl/ontology/hc/class/GeospatialLocation
|
||||
name: GeospatialLocation
|
||||
title: GeospatialLocation
|
||||
description: >-
|
||||
A specific geospatial location.
|
||||
|
||||
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_location
|
||||
|
||||
classes:
|
||||
GeospatialLocation:
|
||||
class_uri: schema:GeoCoordinates
|
||||
description: Geospatial location.
|
||||
|
||||
slots:
|
||||
- has_or_had_location
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
id: https://nde.nl/ontology/hc/class/HandsOnFacility
|
||||
name: HandsOnFacility
|
||||
title: HandsOnFacility
|
||||
description: >-
|
||||
A facility providing hands-on experiences.
|
||||
|
||||
prefixes:
|
||||
linkml: https://w3id.org/linkml/
|
||||
hc: https://nde.nl/ontology/hc/
|
||||
schema: http://schema.org/
|
||||
|
||||
default_prefix: hc
|
||||
|
||||
imports:
|
||||
- linkml:types
|
||||
- ../slots/has_or_had_description
|
||||
|
||||
classes:
|
||||
HandsOnFacility:
|
||||
class_uri: schema:AmenityFeature
|
||||
description: Hands-on facility.
|
||||
|
||||
slots:
|
||||
- has_or_had_description
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
id: https://nde.nl/ontology/hc/class/Hyponym
|
||||
name: Hyponym
|
||||
title: Hyponym
|
||||
description: >-
|
||||
A narrower term or instance.
|
||||
|
||||
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:
|
||||
Hyponym:
|
||||
class_uri: skos:Concept
|
||||
description: Narrower concept/instance.
|
||||
|
||||
slots:
|
||||
- has_or_had_label
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
id: https://nde.nl/ontology/hc/class/ImagingEquipment
|
||||
name: ImagingEquipment
|
||||
title: ImagingEquipment
|
||||
description: >-
|
||||
Equipment used for imaging (digitization, photography, etc.).
|
||||
|
||||
prefixes:
|
||||
linkml: https://w3id.org/linkml/
|
||||
hc: https://nde.nl/ontology/hc/
|
||||
schema: http://schema.org/
|
||||
|
||||
default_prefix: hc
|
||||
|
||||
imports:
|
||||
- linkml:types
|
||||
- ../slots/has_or_had_name
|
||||
|
||||
classes:
|
||||
ImagingEquipment:
|
||||
class_uri: schema:Product
|
||||
description: Imaging equipment.
|
||||
|
||||
slots:
|
||||
- has_or_had_name
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
id: https://nde.nl/ontology/hc/class/LoadingDock
|
||||
name: LoadingDock
|
||||
title: LoadingDock
|
||||
description: >-
|
||||
A loading dock facility.
|
||||
|
||||
prefixes:
|
||||
linkml: https://w3id.org/linkml/
|
||||
hc: https://nde.nl/ontology/hc/
|
||||
schema: http://schema.org/
|
||||
|
||||
default_prefix: hc
|
||||
|
||||
imports:
|
||||
- linkml:types
|
||||
- ../slots/has_or_had_description
|
||||
|
||||
classes:
|
||||
LoadingDock:
|
||||
class_uri: schema:AmenityFeature
|
||||
description: Loading dock.
|
||||
|
||||
slots:
|
||||
- has_or_had_description
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
id: https://nde.nl/ontology/hc/class/LocalCollection
|
||||
name: LocalCollection
|
||||
title: LocalCollection
|
||||
description: >-
|
||||
A locally held collection.
|
||||
|
||||
prefixes:
|
||||
linkml: https://w3id.org/linkml/
|
||||
hc: https://nde.nl/ontology/hc/
|
||||
schema: http://schema.org/
|
||||
|
||||
default_prefix: hc
|
||||
|
||||
imports:
|
||||
- linkml:types
|
||||
- ../slots/has_or_had_name
|
||||
|
||||
classes:
|
||||
LocalCollection:
|
||||
class_uri: schema:Collection
|
||||
description: Local collection.
|
||||
|
||||
slots:
|
||||
- has_or_had_name
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
id: https://nde.nl/ontology/hc/class/Locker
|
||||
name: Locker
|
||||
title: Locker
|
||||
description: >-
|
||||
Storage lockers available for visitors/staff.
|
||||
|
||||
prefixes:
|
||||
linkml: https://w3id.org/linkml/
|
||||
hc: https://nde.nl/ontology/hc/
|
||||
schema: http://schema.org/
|
||||
|
||||
default_prefix: hc
|
||||
|
||||
imports:
|
||||
- linkml:types
|
||||
- ../slots/has_or_had_description
|
||||
|
||||
classes:
|
||||
Locker:
|
||||
class_uri: schema:AmenityFeature
|
||||
description: Locker facility.
|
||||
|
||||
slots:
|
||||
- has_or_had_description
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
id: https://nde.nl/ontology/hc/class/MichelinStarRating
|
||||
name: MichelinStarRating
|
||||
title: MichelinStarRating
|
||||
description: >-
|
||||
A Michelin star rating.
|
||||
|
||||
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_value
|
||||
|
||||
classes:
|
||||
MichelinStarRating:
|
||||
class_uri: schema:Rating
|
||||
description: Michelin star rating.
|
||||
|
||||
slots:
|
||||
- has_or_had_value
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
id: https://nde.nl/ontology/hc/class/MicrofilmReader
|
||||
name: MicrofilmReader
|
||||
title: MicrofilmReader
|
||||
description: >-
|
||||
Equipment for reading microfilms.
|
||||
|
||||
prefixes:
|
||||
linkml: https://w3id.org/linkml/
|
||||
hc: https://nde.nl/ontology/hc/
|
||||
schema: http://schema.org/
|
||||
|
||||
default_prefix: hc
|
||||
|
||||
imports:
|
||||
- linkml:types
|
||||
- ../slots/has_or_had_name
|
||||
|
||||
classes:
|
||||
MicrofilmReader:
|
||||
class_uri: schema:Product
|
||||
description: Microfilm reader.
|
||||
|
||||
slots:
|
||||
- has_or_had_name
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
id: https://nde.nl/ontology/hc/class/OperationalArchive
|
||||
name: OperationalArchive
|
||||
title: OperationalArchive
|
||||
description: >-
|
||||
An archive containing operational records.
|
||||
|
||||
prefixes:
|
||||
linkml: https://w3id.org/linkml/
|
||||
hc: https://nde.nl/ontology/hc/
|
||||
schema: http://schema.org/
|
||||
|
||||
default_prefix: hc
|
||||
|
||||
imports:
|
||||
- linkml:types
|
||||
- ../slots/has_or_had_name
|
||||
|
||||
classes:
|
||||
OperationalArchive:
|
||||
class_uri: schema:ArchiveComponent
|
||||
description: Operational archive.
|
||||
|
||||
slots:
|
||||
- has_or_had_name
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
id: https://nde.nl/ontology/hc/class/OperationalUnit
|
||||
name: OperationalUnit
|
||||
title: OperationalUnit
|
||||
description: >-
|
||||
An operational unit within an organization.
|
||||
|
||||
prefixes:
|
||||
linkml: https://w3id.org/linkml/
|
||||
hc: https://nde.nl/ontology/hc/
|
||||
org: http://www.w3.org/ns/org#
|
||||
|
||||
default_prefix: hc
|
||||
|
||||
imports:
|
||||
- linkml:types
|
||||
- ../slots/has_or_had_name
|
||||
|
||||
classes:
|
||||
OperationalUnit:
|
||||
class_uri: org:OrganizationalUnit
|
||||
description: Operational unit.
|
||||
|
||||
slots:
|
||||
- has_or_had_name
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
id: https://nde.nl/ontology/hc/slot/has_or_had_archive
|
||||
name: has_or_had_archive
|
||||
title: has_or_had_archive
|
||||
description: Archive associated with an entity.
|
||||
slot_uri: schema:archive
|
||||
range: OperationalArchive
|
||||
|
|
@ -1,92 +1,7 @@
|
|||
# has_or_had_hyponym slot
|
||||
# Generic slot for narrower/child types in classification hierarchies
|
||||
#
|
||||
# Following RiC-O naming convention (Rule 39): "hasOrHad..." pattern
|
||||
# for temporal relationships in heritage domain.
|
||||
#
|
||||
# Generation date: 2026-01-13
|
||||
# Rule compliance: 38 (slot centralization + semantic URI), 39 (RiC-O naming), 42 (no prefix)
|
||||
|
||||
id: https://nde.nl/ontology/hc/slot/has_or_had_hyponym
|
||||
name: has_or_had_hyponym_slot
|
||||
title: Has Or Had Hyponym Slot
|
||||
|
||||
prefixes:
|
||||
linkml: https://w3id.org/linkml/
|
||||
hc: https://nde.nl/ontology/hc/
|
||||
owl: http://www.w3.org/2002/07/owl#
|
||||
skos: http://www.w3.org/2004/02/skos/core#
|
||||
rdfs: http://www.w3.org/2000/01/rdf-schema#
|
||||
|
||||
default_prefix: hc
|
||||
|
||||
imports:
|
||||
- linkml:types
|
||||
|
||||
slots:
|
||||
has_or_had_hyponym:
|
||||
slot_uri: hc:hasOrHadHyponym
|
||||
description: |
|
||||
Child types in a classification hierarchy (hyponyms/narrower concepts).
|
||||
|
||||
**Temporal Semantics** (RiC-O Pattern):
|
||||
The "hasOrHad" naming follows RiC-O convention indicating this relationship
|
||||
may be historical - a type's children may change if hierarchy is reorganized.
|
||||
|
||||
**Ontological Alignment**:
|
||||
- **Primary** (`slot_uri`): `hc:hasOrHadHyponym` - Heritage Custodian ObjectProperty
|
||||
for class-valued child types
|
||||
- **Exact**: `skos:narrower` - SKOS ObjectProperty for subordinate concepts
|
||||
- **Related**: `rdfs:subClassOf` (inverse) - RDF Schema superclass relationship
|
||||
|
||||
**Usage**:
|
||||
For Type classes, this links a more general type to its child types.
|
||||
Example: "Climate-Controlled Storage" has narrower "Cold Storage", "Art Storage"
|
||||
|
||||
**Cardinality**:
|
||||
Multivalued - a parent type may have multiple child types.
|
||||
|
||||
**Transitivity**:
|
||||
skos:narrower is transitive - if A narrower B, and B narrower C, then A narrower C.
|
||||
Use skos:narrowerTransitive explicitly if transitive closure is needed.
|
||||
|
||||
**Note**: slot_uri changed from skos:narrower to hc:hasOrHadHyponym (2026-01-16)
|
||||
to allow consistent class-valued ranges when classes override. skos:narrower
|
||||
moved to exact_mappings (it is already an ObjectProperty in SKOS).
|
||||
|
||||
**Range**: `uriorcurie` (2026-01-16) - Allows both URIs and CURIE references.
|
||||
|
||||
Note: Individual Type classes may override to their specific type in slot_usage,
|
||||
but since they're all referring to URIs, this causes no OWL ambiguity when
|
||||
the base range is uriorcurie (compatible with ObjectProperty).
|
||||
|
||||
range: uriorcurie # Broadened per Rule 55 (2026-01-16) - Any allows both literals and class instances
|
||||
implements:
|
||||
- owl:ObjectProperty # Force OWL ObjectProperty to avoid ambiguous type warning (2026-01-16)
|
||||
required: false
|
||||
name: has_or_had_hyponym
|
||||
title: has_or_had_hyponym
|
||||
description: Narrower term or instance.
|
||||
slot_uri: skos:narrower
|
||||
range: Hyponym
|
||||
multivalued: true
|
||||
inlined_as_list: true
|
||||
|
||||
exact_mappings:
|
||||
- skos:narrower
|
||||
|
||||
annotations:
|
||||
rico_naming_convention: |
|
||||
Follows RiC-O "hasOrHad" pattern for temporal predicates.
|
||||
See Rule 39: Slot Naming Convention (RiC-O Style)
|
||||
replaces_slots: "storage_type_narrower"
|
||||
migration_date: "2026-01-13"
|
||||
|
||||
comments:
|
||||
- "Generic hyponym slot for type classification hierarchies"
|
||||
- "Maps to skos:narrower for child/subordinate concepts"
|
||||
- "Links more general types to more specific types"
|
||||
- "Multivalued: parent types may have multiple children"
|
||||
- "Transitive: if A narrower B, B narrower C, then A narrower C"
|
||||
- "RiC-O naming: hasOrHad indicates potentially historical relationship"
|
||||
|
||||
examples:
|
||||
- value:
|
||||
- https://nde.nl/ontology/hc/storage-type/cold-storage
|
||||
- https://nde.nl/ontology/hc/storage-type/art-storage
|
||||
description: "Child types of climate-controlled storage"
|
||||
|
|
|
|||
|
|
@ -1,43 +1,6 @@
|
|||
# has_or_had_location - Location association slot
|
||||
#
|
||||
# Created per slot_fixes.yaml migration for: work_location
|
||||
# Creation date: 2026-01-14
|
||||
|
||||
id: https://nde.nl/ontology/hc/slot/has_or_had_location
|
||||
name: has_or_had_location
|
||||
title: Has or Had Location
|
||||
|
||||
prefixes:
|
||||
linkml: https://w3id.org/linkml/
|
||||
hc: https://nde.nl/ontology/hc/
|
||||
schema: http://schema.org/
|
||||
|
||||
default_prefix: hc
|
||||
|
||||
imports:
|
||||
- linkml:types
|
||||
- ../classes/Location
|
||||
|
||||
slots:
|
||||
has_or_had_location:
|
||||
title: has_or_had_location
|
||||
description: The location of an entity.
|
||||
slot_uri: schema:location
|
||||
description: |
|
||||
A location associated with an entity.
|
||||
|
||||
**USAGE**:
|
||||
Used for:
|
||||
- Work locations
|
||||
- Event locations
|
||||
- Organization locations
|
||||
|
||||
range: Location
|
||||
multivalued: true
|
||||
|
||||
exact_mappings:
|
||||
- schema:location
|
||||
|
||||
examples:
|
||||
- value:
|
||||
city: "Amsterdam"
|
||||
country: "NL"
|
||||
description: Amsterdam location
|
||||
range: Place
|
||||
|
|
|
|||
|
|
@ -0,0 +1,6 @@
|
|||
id: https://nde.nl/ontology/hc/slot/has_or_had_rating
|
||||
name: has_or_had_rating
|
||||
title: has_or_had_rating
|
||||
description: Rating assigned to an entity.
|
||||
slot_uri: schema:starRating
|
||||
range: Rating
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
id: https://nde.nl/ontology/hc/slot/has_or_had_section
|
||||
name: has_or_had_section
|
||||
title: has_or_had_section
|
||||
description: Section or unit within an organization.
|
||||
slot_uri: org:hasUnit
|
||||
range: OperationalUnit
|
||||
multivalued: true
|
||||
|
|
@ -586,6 +586,63 @@
|
|||
margin: 0;
|
||||
}
|
||||
|
||||
/* Enhanced Profile Search Controls */
|
||||
.search-controls-row {
|
||||
display: flex;
|
||||
gap: 0.5rem;
|
||||
margin-bottom: 0.5rem;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.search-controls-row .search-field-filter {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.toggle-btn {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: 0.375rem;
|
||||
padding: 0.375rem 0.5rem;
|
||||
border: 1px solid var(--border-color, #e0e0e0);
|
||||
background: var(--bg-secondary, #f5f5f5);
|
||||
border-radius: 4px;
|
||||
font-size: 0.75rem;
|
||||
font-weight: 500;
|
||||
color: var(--text-secondary, #666);
|
||||
cursor: pointer;
|
||||
transition: all 0.15s;
|
||||
height: 27px; /* Match typical select height */
|
||||
}
|
||||
|
||||
.toggle-btn:hover {
|
||||
background: var(--bg-hover, #e2e8f0);
|
||||
color: var(--text-primary, #1e293b);
|
||||
}
|
||||
|
||||
.toggle-btn.active {
|
||||
background: var(--primary-color, #3b82f6);
|
||||
border-color: var(--primary-color, #3b82f6);
|
||||
color: white;
|
||||
}
|
||||
|
||||
.dark .toggle-btn {
|
||||
background: var(--bg-tertiary, #2a2a4a);
|
||||
border-color: var(--border-color, #3a3a5a);
|
||||
color: var(--text-secondary, #999);
|
||||
}
|
||||
|
||||
.dark .toggle-btn:hover {
|
||||
background: var(--bg-secondary, #1a1a2e);
|
||||
color: var(--text-primary, #e0e0e0);
|
||||
}
|
||||
|
||||
.dark .toggle-btn.active {
|
||||
background: var(--primary-color, #3b82f6);
|
||||
border-color: var(--primary-color, #3b82f6);
|
||||
color: white;
|
||||
}
|
||||
|
||||
.search-field-filter .field-select {
|
||||
width: 100%;
|
||||
padding: 0.375rem 0.5rem;
|
||||
|
|
|
|||
|
|
@ -0,0 +1,39 @@
|
|||
# has_or_had_participant slot
|
||||
# Generic slot for participants
|
||||
#
|
||||
# Generation date: 2026-01-27
|
||||
# Rule compliance: 38, 39, 42
|
||||
#
|
||||
# Part of has_or_had_annual_participant_count migration (Rule 53)
|
||||
|
||||
id: https://nde.nl/ontology/hc/slot/has_or_had_participant
|
||||
name: has_or_had_participant_slot
|
||||
title: Has Or Had Participant Slot
|
||||
|
||||
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_participant:
|
||||
slot_uri: schema:participant
|
||||
description: |
|
||||
A participant in an activity or event.
|
||||
|
||||
**Temporal Semantics** (RiC-O Pattern):
|
||||
"hasOrHad" indicates participation occurred in the past or present.
|
||||
|
||||
**Ontological Alignment**:
|
||||
- `schema:participant`: A person or organization that supports (sponsors) something through some pledge, promise, or financial contribution.
|
||||
|
||||
**Range**:
|
||||
- `Participant` class (or `Agent`, `Person`, `Organization`).
|
||||
range: uriorcurie
|
||||
multivalued: true
|
||||
required: false
|
||||
78
schemas/20251121/linkml/archive/slots/has_or_had_policy.yaml
Normal file
78
schemas/20251121/linkml/archive/slots/has_or_had_policy.yaml
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
# has_or_had_policy slot
|
||||
# Policy association following RiC-O naming pattern
|
||||
#
|
||||
# Generation date: 2026-01-15
|
||||
# Updated: 2026-01-22 - Broadened range from TransferPolicy to Policy (Rule 53, 55)
|
||||
# Rule compliance: 38 (slot centralization + semantic URI), 39 (RiC-O naming), 53 (slot_fixes.yaml), 55 (broaden generic ranges)
|
||||
#
|
||||
# Used by TransferEvent, Storage, and other classes for governing policies
|
||||
|
||||
id: https://nde.nl/ontology/hc/slot/has_or_had_policy
|
||||
name: has_or_had_policy_slot
|
||||
title: Has Or Had Policy Slot
|
||||
|
||||
prefixes:
|
||||
linkml: https://w3id.org/linkml/
|
||||
hc: https://nde.nl/ontology/hc/
|
||||
odrl: http://www.w3.org/ns/odrl/2/
|
||||
dcterms: http://purl.org/dc/terms/
|
||||
|
||||
default_prefix: hc
|
||||
|
||||
imports:
|
||||
- linkml:types
|
||||
- ../classes/Policy # Base class for all policy types (changed from TransferPolicy 2026-01-22)
|
||||
slots:
|
||||
has_or_had_policy:
|
||||
slot_uri: odrl:hasPolicy
|
||||
description: |
|
||||
Policy that governs or governed an activity or entity.
|
||||
|
||||
**Temporal Semantics** (RiC-O Pattern):
|
||||
The "hasOrHad" naming follows RiC-O convention indicating
|
||||
the policy association may be historical.
|
||||
|
||||
**Ontological Alignment**:
|
||||
- **Primary** (`slot_uri`): `odrl:hasPolicy` - ODRL policy association
|
||||
- **Related**: `dcterms:accessRights` - Dublin Core access rights
|
||||
|
||||
**Use Cases**:
|
||||
- Transfer policies governing custody changes
|
||||
- Access policies for collections
|
||||
- Retention policies for archives
|
||||
|
||||
**Range**: Policy (base class - accepts TransferPolicy, ConditionPolicy, etc.)
|
||||
|
||||
**Cardinality**:
|
||||
Multivalued - entities may be governed by multiple policies.
|
||||
|
||||
range: Policy # Broadened from TransferPolicy per Rule 55 (2026-01-22)
|
||||
required: false
|
||||
multivalued: true
|
||||
inlined: true
|
||||
inlined_as_list: true
|
||||
|
||||
related_mappings:
|
||||
- dcterms:accessRights
|
||||
|
||||
annotations:
|
||||
rico_naming_convention: |
|
||||
Follows RiC-O "hasOrHad" pattern for temporal predicates.
|
||||
See Rule 39: Slot Naming Convention (RiC-O Style)
|
||||
replaces_slots: "transfer_policy"
|
||||
migration_date: "2026-01-15"
|
||||
custodian_types: '["*"]'
|
||||
custodian_types_rationale: Policy associations apply to all heritage types.
|
||||
specificity_score: 0.45
|
||||
specificity_rationale: Specialized slot for policy governance.
|
||||
|
||||
comments:
|
||||
- "Links entities to governing policies"
|
||||
- "Maps to odrl:hasPolicy for rights/rules"
|
||||
- "RiC-O naming: hasOrHad indicates potentially historical"
|
||||
|
||||
examples:
|
||||
- value:
|
||||
policy_name: "Donor Transfer Restriction"
|
||||
policy_text: "Materials may not be transferred without donor consent."
|
||||
description: "Transfer policy for collection"
|
||||
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
"generated": "2026-01-27T10:39:08.998Z",
|
||||
"generated": "2026-01-27T21:17:12.304Z",
|
||||
"schemaRoot": "/schemas/20251121/linkml",
|
||||
"totalFiles": 2986,
|
||||
"totalFiles": 3000,
|
||||
"categoryCounts": {
|
||||
"main": 4,
|
||||
"class": 1230,
|
||||
"class": 1241,
|
||||
"enum": 153,
|
||||
"slot": 1595,
|
||||
"slot": 1598,
|
||||
"module": 4
|
||||
},
|
||||
"categories": [
|
||||
|
|
@ -2760,6 +2760,11 @@
|
|||
"path": "modules/classes/GeospatialIdentifier.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "GeospatialLocation",
|
||||
"path": "modules/classes/GeospatialLocation.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "GeoSpatialPlace",
|
||||
"path": "modules/classes/GeoSpatialPlace.yaml",
|
||||
|
|
@ -2895,6 +2900,11 @@
|
|||
"path": "modules/classes/HALCAdm2Name.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "HandsOnFacility",
|
||||
"path": "modules/classes/HandsOnFacility.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "HeritageCustodianPlace",
|
||||
"path": "modules/classes/HeritageCustodianPlace.yaml",
|
||||
|
|
@ -3005,6 +3015,11 @@
|
|||
"path": "modules/classes/Hypernym.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "Hyponym",
|
||||
"path": "modules/classes/Hyponym.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "Hypothesis",
|
||||
"path": "modules/classes/Hypothesis.yaml",
|
||||
|
|
@ -3055,6 +3070,11 @@
|
|||
"path": "modules/classes/Image.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "ImagingEquipment",
|
||||
"path": "modules/classes/ImagingEquipment.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "Index",
|
||||
"path": "modules/classes/Index.yaml",
|
||||
|
|
@ -3345,11 +3365,21 @@
|
|||
"path": "modules/classes/LlmVerification.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "LoadingDock",
|
||||
"path": "modules/classes/LoadingDock.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "Loan",
|
||||
"path": "modules/classes/Loan.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "LocalCollection",
|
||||
"path": "modules/classes/LocalCollection.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "LocalGovernmentArchive",
|
||||
"path": "modules/classes/LocalGovernmentArchive.yaml",
|
||||
|
|
@ -3405,6 +3435,11 @@
|
|||
"path": "modules/classes/LocationResolution.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "Locker",
|
||||
"path": "modules/classes/Locker.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "LogoClaim",
|
||||
"path": "modules/classes/LogoClaim.yaml",
|
||||
|
|
@ -3595,6 +3630,16 @@
|
|||
"path": "modules/classes/METSAPI.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "MichelinStarRating",
|
||||
"path": "modules/classes/MichelinStarRating.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "MicrofilmReader",
|
||||
"path": "modules/classes/MicrofilmReader.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "MilitaryArchive",
|
||||
"path": "modules/classes/MilitaryArchive.yaml",
|
||||
|
|
@ -3905,6 +3950,16 @@
|
|||
"path": "modules/classes/OpeningPeriod.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "OperationalArchive",
|
||||
"path": "modules/classes/OperationalArchive.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "OperationalUnit",
|
||||
"path": "modules/classes/OperationalUnit.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "Organization",
|
||||
"path": "modules/classes/Organization.yaml",
|
||||
|
|
@ -8167,6 +8222,11 @@
|
|||
"path": "modules/slots/has_or_had_archival_status.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "has_or_had_archive",
|
||||
"path": "modules/slots/has_or_had_archive.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "has_or_had_archive_branch",
|
||||
"path": "modules/slots/has_or_had_archive_branch.yaml",
|
||||
|
|
@ -9162,6 +9222,11 @@
|
|||
"path": "modules/slots/has_or_had_rate.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "has_or_had_rating",
|
||||
"path": "modules/slots/has_or_had_rating.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "has_or_had_rationale",
|
||||
"path": "modules/slots/has_or_had_rationale.yaml",
|
||||
|
|
@ -9312,6 +9377,11 @@
|
|||
"path": "modules/slots/has_or_had_secondary_system.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "has_or_had_section",
|
||||
"path": "modules/slots/has_or_had_section.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "has_or_had_section_link",
|
||||
"path": "modules/slots/has_or_had_section_link.yaml",
|
||||
|
|
|
|||
|
|
@ -0,0 +1,24 @@
|
|||
id: https://nde.nl/ontology/hc/class/AcademicInstitution
|
||||
name: AcademicInstitution
|
||||
title: AcademicInstitution
|
||||
description: >-
|
||||
An institution of higher education or research.
|
||||
|
||||
prefixes:
|
||||
linkml: https://w3id.org/linkml/
|
||||
hc: https://nde.nl/ontology/hc/
|
||||
schema: http://schema.org/
|
||||
|
||||
default_prefix: hc
|
||||
|
||||
imports:
|
||||
- linkml:types
|
||||
- ../slots/has_or_had_name
|
||||
|
||||
classes:
|
||||
AcademicInstitution:
|
||||
class_uri: schema:EducationalOrganization
|
||||
description: Academic institution.
|
||||
|
||||
slots:
|
||||
- has_or_had_name
|
||||
24
schemas/20251121/linkml/modules/classes/AcademicProgram.yaml
Normal file
24
schemas/20251121/linkml/modules/classes/AcademicProgram.yaml
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
id: https://nde.nl/ontology/hc/class/AcademicProgram
|
||||
name: AcademicProgram
|
||||
title: AcademicProgram
|
||||
description: >-
|
||||
An educational or research program offered by an academic institution.
|
||||
|
||||
prefixes:
|
||||
linkml: https://w3id.org/linkml/
|
||||
hc: https://nde.nl/ontology/hc/
|
||||
schema: http://schema.org/
|
||||
|
||||
default_prefix: hc
|
||||
|
||||
imports:
|
||||
- linkml:types
|
||||
- ../slots/has_or_had_name
|
||||
|
||||
classes:
|
||||
AcademicProgram:
|
||||
class_uri: schema:EducationalOccupationalProgram
|
||||
description: Academic program.
|
||||
|
||||
slots:
|
||||
- has_or_had_name
|
||||
|
|
@ -22,6 +22,8 @@ imports:
|
|||
- linkml:types
|
||||
- ../metadata
|
||||
- ./TimeSpan
|
||||
- ../slots/has_or_had_frequency
|
||||
- ./Frequency
|
||||
|
||||
classes:
|
||||
Access:
|
||||
|
|
@ -72,6 +74,7 @@ classes:
|
|||
- access_description
|
||||
- temporal_extent
|
||||
- is_digital_access
|
||||
- has_or_had_frequency
|
||||
|
||||
slot_usage:
|
||||
access_type:
|
||||
|
|
@ -141,6 +144,15 @@ classes:
|
|||
required: false
|
||||
range: boolean
|
||||
description: Whether this access is for digital materials
|
||||
has_or_had_frequency:
|
||||
required: false
|
||||
range: Frequency
|
||||
description: Frequency of access (e.g., daily, weekly, by appointment)
|
||||
inlined: true
|
||||
examples:
|
||||
- value:
|
||||
has_or_had_label: "Daily"
|
||||
description: Access available daily
|
||||
|
||||
annotations:
|
||||
specificity_score: 0.50
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue