Refactor Access schema and related components
- Updated Access.yaml to replace properties with new slots: has_or_had_type, has_or_had_user_category, condition_of_access, and has_or_had_description. - Introduced AccessTypeEnum for standardized access types. - Migrated eligible_users to has_or_had_user_category slot. - Adjusted examples in Access.yaml to reflect new slot structure. - Modified AuxiliaryPlace, CustodianPlace, GeoSpatialPlace, ServiceArea schemas to use has_or_had_format for geometry representation. - Added new slots and enums for better categorization and access control.
This commit is contained in:
parent
4a518f587c
commit
7b4e113a5a
9 changed files with 103 additions and 88 deletions
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"generated": "2026-01-28T14:04:12.253Z",
|
"generated": "2026-01-28T14:11:21.183Z",
|
||||||
"schemaRoot": "/schemas/20251121/linkml",
|
"schemaRoot": "/schemas/20251121/linkml",
|
||||||
"totalFiles": 3000,
|
"totalFiles": 3000,
|
||||||
"categoryCounts": {
|
"categoryCounts": {
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,11 @@ imports:
|
||||||
- ./TimeSpan
|
- ./TimeSpan
|
||||||
- ../slots/has_or_had_frequency
|
- ../slots/has_or_had_frequency
|
||||||
- ./Frequency
|
- ./Frequency
|
||||||
|
- ../slots/condition_of_access
|
||||||
|
- ../slots/has_or_had_type
|
||||||
|
- ../slots/has_or_had_description
|
||||||
|
- ../slots/has_or_had_user_category
|
||||||
|
- ../enums/AccessTypeEnum
|
||||||
|
|
||||||
classes:
|
classes:
|
||||||
Access:
|
Access:
|
||||||
|
|
@ -36,10 +41,10 @@ classes:
|
||||||
data capturing access types, eligible users, conditions, and restrictions.
|
data capturing access types, eligible users, conditions, and restrictions.
|
||||||
|
|
||||||
**Key Properties**:
|
**Key Properties**:
|
||||||
- `access_type`: Type of access (PUBLIC, BY_APPOINTMENT, RESTRICTED, etc.)
|
- `has_or_had_type`: Type of access (PUBLIC, BY_APPOINTMENT, RESTRICTED, etc.)
|
||||||
- `eligible_users`: Who can access (public, students, faculty, researchers)
|
- `has_or_had_user_category`: Who can access (public, students, faculty, researchers)
|
||||||
- `access_conditions`: Conditions or requirements for access
|
- `condition_of_access`: Conditions or requirements for access
|
||||||
- `access_restrictions`: Specific restrictions that apply
|
- `has_or_had_description`: Free-text description
|
||||||
- `temporal_extent`: When this access policy applies
|
- `temporal_extent`: When this access policy applies
|
||||||
|
|
||||||
**Access Types**:
|
**Access Types**:
|
||||||
|
|
@ -67,16 +72,22 @@ classes:
|
||||||
- crm:E30_Right
|
- crm:E30_Right
|
||||||
|
|
||||||
slots:
|
slots:
|
||||||
- eligible_users
|
- has_or_had_type
|
||||||
|
- has_or_had_user_category
|
||||||
|
- condition_of_access
|
||||||
|
- has_or_had_description
|
||||||
- temporal_extent
|
- temporal_extent
|
||||||
- is_digital_access
|
- is_digital_access
|
||||||
- has_or_had_frequency
|
- has_or_had_frequency
|
||||||
|
|
||||||
slot_usage:
|
slot_usage:
|
||||||
eligible_users:
|
has_or_had_type:
|
||||||
|
range: AccessTypeEnum
|
||||||
|
required: true
|
||||||
|
description: Type of access offered
|
||||||
|
|
||||||
|
has_or_had_user_category:
|
||||||
required: false
|
required: false
|
||||||
range: string
|
|
||||||
multivalued: true
|
|
||||||
description: |
|
description: |
|
||||||
Categories of users eligible for this access.
|
Categories of users eligible for this access.
|
||||||
Examples: "enrolled students", "faculty", "visiting scholars",
|
Examples: "enrolled students", "faculty", "visiting scholars",
|
||||||
|
|
@ -97,7 +108,7 @@ classes:
|
||||||
is_digital_access:
|
is_digital_access:
|
||||||
required: false
|
required: false
|
||||||
range: boolean
|
range: boolean
|
||||||
description: Whether this access is for digital materials
|
description: Whether this is digital access
|
||||||
has_or_had_frequency:
|
has_or_had_frequency:
|
||||||
required: false
|
required: false
|
||||||
range: Frequency
|
range: Frequency
|
||||||
|
|
@ -121,100 +132,42 @@ classes:
|
||||||
|
|
||||||
examples:
|
examples:
|
||||||
- value:
|
- value:
|
||||||
access_type: PUBLIC
|
has_or_had_type: PUBLIC
|
||||||
access_description: "Open to general public during gallery hours"
|
has_or_had_description: "Open to general public during gallery hours"
|
||||||
eligible_users:
|
has_or_had_user_category:
|
||||||
- "general public"
|
- "general public"
|
||||||
access_conditions:
|
condition_of_access:
|
||||||
- "during posted gallery hours"
|
- "during posted gallery hours"
|
||||||
description: "Public access during gallery hours"
|
description: "Public access during gallery hours"
|
||||||
|
|
||||||
- value:
|
- value:
|
||||||
access_type: BY_APPOINTMENT
|
has_or_had_type: BY_APPOINTMENT
|
||||||
eligible_users:
|
has_or_had_user_category:
|
||||||
- "credentialed researchers"
|
- "credentialed researchers"
|
||||||
- "graduate students with faculty sponsor"
|
- "graduate students with faculty sponsor"
|
||||||
access_conditions:
|
condition_of_access:
|
||||||
- "48-hour advance booking required"
|
- "48-hour advance booking required"
|
||||||
- "handling training required for original materials"
|
- "handling training required for original materials"
|
||||||
access_restrictions:
|
|
||||||
- "fragile materials limited to supervised viewing only"
|
- "fragile materials limited to supervised viewing only"
|
||||||
description: "Research access by appointment with conditions"
|
description: "Research access by appointment with conditions"
|
||||||
|
|
||||||
- value:
|
- value:
|
||||||
access_type: ACADEMIC
|
has_or_had_type: ACADEMIC
|
||||||
access_description: "Open to enrolled students and faculty; public by appointment"
|
has_or_had_description: "Open to enrolled students and faculty; public by appointment"
|
||||||
eligible_users:
|
has_or_had_user_category:
|
||||||
- "enrolled students"
|
- "enrolled students"
|
||||||
- "faculty"
|
- "faculty"
|
||||||
- "research staff"
|
- "research staff"
|
||||||
access_conditions:
|
condition_of_access:
|
||||||
- "valid university ID"
|
- "valid university ID"
|
||||||
is_digital_access: false
|
is_digital_access: false
|
||||||
description: "Academic community access with public by appointment"
|
description: "Academic community access with public by appointment"
|
||||||
|
|
||||||
- value:
|
- value:
|
||||||
access_type: DIGITAL_ONLY
|
has_or_had_type: DIGITAL_ONLY
|
||||||
access_description: "Collection accessible only through online database"
|
has_or_had_description: "Collection accessible only through online database"
|
||||||
eligible_users:
|
has_or_had_user_category:
|
||||||
- "anyone with internet access"
|
- "anyone with internet access"
|
||||||
is_digital_access: true
|
is_digital_access: true
|
||||||
description: "Digital-only access"
|
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
|
|
||||||
|
|
|
||||||
|
|
@ -282,7 +282,8 @@ classes:
|
||||||
latitude: 52.1561
|
latitude: 52.1561
|
||||||
longitude: 5.3878
|
longitude: 5.3878
|
||||||
has_or_had_geometry:
|
has_or_had_geometry:
|
||||||
- as_wkt: POLYGON((5.385 52.154, 5.390 52.154, 5.390 52.158, 5.385 52.158, 5.385 52.154))
|
- has_or_had_format:
|
||||||
|
has_or_had_value: POLYGON((5.385 52.154, 5.390 52.154, 5.390 52.158, 5.385 52.158, 5.385 52.154))
|
||||||
has_or_had_type:
|
has_or_had_type:
|
||||||
has_or_had_label: POLYGON
|
has_or_had_label: POLYGON
|
||||||
osm_id: way/234567890
|
osm_id: way/234567890
|
||||||
|
|
@ -296,7 +297,8 @@ classes:
|
||||||
latitude: 52.3086
|
latitude: 52.3086
|
||||||
longitude: 4.7639
|
longitude: 4.7639
|
||||||
has_or_had_geometry:
|
has_or_had_geometry:
|
||||||
- as_wkt: POINT(4.7639 52.3086)
|
- has_or_had_format:
|
||||||
|
has_or_had_value: POINT(4.7639 52.3086)
|
||||||
has_or_had_type:
|
has_or_had_type:
|
||||||
has_or_had_label: POINT
|
has_or_had_label: POINT
|
||||||
geonames_id: 2747891
|
geonames_id: 2747891
|
||||||
|
|
|
||||||
|
|
@ -284,7 +284,8 @@ classes:
|
||||||
latitude: 52.36
|
latitude: 52.36
|
||||||
longitude: 4.8852
|
longitude: 4.8852
|
||||||
has_or_had_geometry:
|
has_or_had_geometry:
|
||||||
- as_wkt: POLYGON((4.8830 52.3590, 4.8870 52.3590, 4.8870 52.3610, 4.8830 52.3610, 4.8830 52.3590))
|
- has_or_had_format:
|
||||||
|
has_or_had_value: POLYGON((4.8830 52.3590, 4.8870 52.3590, 4.8870 52.3610, 4.8830 52.3610, 4.8830 52.3590))
|
||||||
has_or_had_type:
|
has_or_had_type:
|
||||||
has_or_had_label: POLYGON
|
has_or_had_label: POLYGON
|
||||||
geonames_id: 6930126
|
geonames_id: 6930126
|
||||||
|
|
|
||||||
|
|
@ -10,12 +10,17 @@ default_prefix: hc
|
||||||
imports:
|
imports:
|
||||||
- linkml:types
|
- linkml:types
|
||||||
- ../slots/has_or_had_label
|
- ../slots/has_or_had_label
|
||||||
|
- ../slots/is_or_was_generated_by
|
||||||
|
- ./GenerationEvent
|
||||||
|
- ./ConfidenceScore
|
||||||
classes:
|
classes:
|
||||||
DetectedLandmark:
|
DetectedLandmark:
|
||||||
class_uri: schema:LandmarksOrHistoricalBuildings
|
class_uri: schema:LandmarksOrHistoricalBuildings
|
||||||
description: Detected landmark.
|
description: Detected landmark.
|
||||||
slots:
|
slots:
|
||||||
- has_or_had_label
|
- has_or_had_label
|
||||||
|
- is_or_was_generated_by
|
||||||
|
|
||||||
annotations:
|
annotations:
|
||||||
specificity_score: 0.1
|
specificity_score: 0.1
|
||||||
specificity_rationale: Generic utility class/slot created during migration
|
specificity_rationale: Generic utility class/slot created during migration
|
||||||
|
|
|
||||||
|
|
@ -158,7 +158,8 @@ classes:
|
||||||
precision: 1.0
|
precision: 1.0
|
||||||
altitude: 0.0
|
altitude: 0.0
|
||||||
has_or_had_geometry:
|
has_or_had_geometry:
|
||||||
- as_wkt: POLYGON((4.8830 52.3590, 4.8870 52.3590, 4.8870 52.3610, 4.8830 52.3610, 4.8830 52.3590))
|
- has_or_had_format:
|
||||||
|
has_or_had_value: POLYGON((4.8830 52.3590, 4.8870 52.3590, 4.8870 52.3610, 4.8830 52.3610, 4.8830 52.3590))
|
||||||
has_or_had_type:
|
has_or_had_type:
|
||||||
has_or_had_label: POLYGON
|
has_or_had_label: POLYGON
|
||||||
coordinate_reference_system: EPSG:4326
|
coordinate_reference_system: EPSG:4326
|
||||||
|
|
@ -196,7 +197,8 @@ classes:
|
||||||
longitude: 4.8
|
longitude: 4.8
|
||||||
precision: 1000.0
|
precision: 1000.0
|
||||||
has_or_had_geometry:
|
has_or_had_geometry:
|
||||||
- as_wkt: MULTIPOLYGON(((4.5 52.2, 5.2 52.2, 5.2 52.8, 4.5 52.8, 4.5 52.2)))
|
- has_or_had_format:
|
||||||
|
has_or_had_value: MULTIPOLYGON(((4.5 52.2, 5.2 52.2, 5.2 52.8, 4.5 52.8, 4.5 52.2)))
|
||||||
has_or_had_type:
|
has_or_had_type:
|
||||||
has_or_had_label: MULTIPOLYGON
|
has_or_had_label: MULTIPOLYGON
|
||||||
coordinate_reference_system: EPSG:4326
|
coordinate_reference_system: EPSG:4326
|
||||||
|
|
|
||||||
|
|
@ -162,7 +162,8 @@ classes:
|
||||||
has_boundary:
|
has_boundary:
|
||||||
- geospatial_id: https://nde.nl/ontology/hc/geo/nha-boundary
|
- geospatial_id: https://nde.nl/ontology/hc/geo/nha-boundary
|
||||||
has_or_had_geometry:
|
has_or_had_geometry:
|
||||||
- as_wkt: MULTIPOLYGON(((4.5 52.2, 5.0 52.2, 5.0 52.5, 4.5 52.5, 4.5 52.2)))
|
- has_or_had_format:
|
||||||
|
has_or_had_value: MULTIPOLYGON(((4.5 52.2, 5.0 52.2, 5.0 52.5, 4.5 52.5, 4.5 52.2)))
|
||||||
has_or_had_type:
|
has_or_had_type:
|
||||||
has_or_had_label: MULTIPOLYGON
|
has_or_had_label: MULTIPOLYGON
|
||||||
temporal_extent:
|
temporal_extent:
|
||||||
|
|
|
||||||
28
schemas/20251121/linkml/modules/enums/AccessTypeEnum.yaml
Normal file
28
schemas/20251121/linkml/modules/enums/AccessTypeEnum.yaml
Normal file
|
|
@ -0,0 +1,28 @@
|
||||||
|
id: https://nde.nl/ontology/hc/enum/AccessTypeEnum
|
||||||
|
name: AccessTypeEnum
|
||||||
|
title: Access Type Enum
|
||||||
|
description: Types of access to collections or services.
|
||||||
|
prefixes:
|
||||||
|
linkml: https://w3id.org/linkml/
|
||||||
|
enums:
|
||||||
|
AccessTypeEnum:
|
||||||
|
description: Types of access to collections or services
|
||||||
|
permissible_values:
|
||||||
|
ACADEMIC:
|
||||||
|
description: Restricted to academic community
|
||||||
|
BY_APPOINTMENT:
|
||||||
|
description: Requires advance appointment
|
||||||
|
CLOSED:
|
||||||
|
description: Not currently accessible
|
||||||
|
DIGITAL_ONLY:
|
||||||
|
description: Available only in digital form
|
||||||
|
MEMBER:
|
||||||
|
description: Requires membership
|
||||||
|
MIXED:
|
||||||
|
description: Multiple access types apply
|
||||||
|
PUBLIC:
|
||||||
|
description: Open to general public
|
||||||
|
RESEARCHER:
|
||||||
|
description: Restricted to credentialed researchers
|
||||||
|
RESTRICTED:
|
||||||
|
description: Limited access with specific conditions
|
||||||
|
|
@ -0,0 +1,23 @@
|
||||||
|
id: https://nde.nl/ontology/hc/slot/has_or_had_user_category
|
||||||
|
name: has_or_had_user_category
|
||||||
|
title: Has or Had User Category
|
||||||
|
description: >-
|
||||||
|
Categories of users eligible for access.
|
||||||
|
MIGRATED from eligible_users.
|
||||||
|
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_user_category:
|
||||||
|
slot_uri: schema:eligibleRegion
|
||||||
|
description: Categories of users eligible for access.
|
||||||
|
range: string
|
||||||
|
multivalued: true
|
||||||
|
inlined: true
|
||||||
|
annotations:
|
||||||
|
custodian_types: ["*"]
|
||||||
|
custodian_types_rationale: "Universal utility concept"
|
||||||
Loading…
Reference in a new issue