Refactor expense slots: remove program_expense slot, migrate administrative_expenses, and archive related slots

- Deleted the program_expense slot from the schema.
- Updated slot_fixes.yaml to reflect the migration of administrative_expenses, marking it as fully migrated and archiving related bespoke slots.
- Created archived YAML files for administrative_expenses, fundraising_expense, has_or_had_administrative_expense, innovation_expense, and program_expense, documenting their structure and descriptions.
- All expense types now utilize the Expenses class with ExpenseTypeEnum classification for better organization and clarity.
This commit is contained in:
kempersc 2026-01-14 09:15:17 +01:00
parent 1133749de8
commit c807487a51
10 changed files with 2287 additions and 2113 deletions

View file

@ -1,5 +1,5 @@
{
"generated": "2026-01-14T08:06:36.818Z",
"generated": "2026-01-14T08:07:11.151Z",
"schemaRoot": "/schemas/20251121/linkml",
"totalFiles": 2923,
"categoryCounts": {

View file

@ -1,5 +1,5 @@
{
"generated": "2026-01-14T08:07:11.151Z",
"generated": "2026-01-14T08:15:17.717Z",
"schemaRoot": "/schemas/20251121/linkml",
"totalFiles": 2923,
"categoryCounts": {

View file

@ -0,0 +1,173 @@
id: https://nde.nl/ontology/hc/class/FunctionType
name: function_type_class
title: FunctionType Class
description: >-
Abstract base class for organizational functions performed by heritage custodians.
Provides structured function categorization for administrative offices, departments,
and organizational units.
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
schema: http://schema.org/
org: http://www.w3.org/ns/org#
dcterms: http://purl.org/dc/terms/
imports:
- linkml:types
- ../slots/id
- ../slots/description
- ../slots/valid_from
- ../slots/valid_to
default_prefix: hc
enums:
FunctionTypeEnum:
description: >-
Classification of organizational functions for heritage custodians.
Based on W3C ORG org:purpose patterns and nonprofit organizational structure.
permissible_values:
ADMINISTRATIVE:
description: >-
Administrative/management functions: finance, HR, legal, executive management,
facilities, procurement, governance.
PROGRAM:
description: >-
Program/mission functions: exhibitions, conservation, education, research,
public programming, collection management.
SUPPORT:
description: >-
Support/operational functions: IT, security, maintenance, visitor services,
retail, catering.
DEVELOPMENT:
description: >-
Development/fundraising functions: donor relations, grants, membership,
corporate partnerships, planned giving.
COMMUNICATIONS:
description: >-
Communications/marketing functions: public relations, marketing, social media,
publications, branding.
OTHER:
description: >-
Other functions not classified above.
classes:
FunctionType:
class_uri: hc:FunctionType
abstract: true
description: >-
Abstract base class representing a type of organizational function.
**DESIGN RATIONALE**:
This is an ABSTRACT class following the Type/Types naming convention (Rule 0b).
Concrete function types are defined in FunctionTypes.yaml as subclasses.
**FUNCTION CLASSIFICATION**:
Heritage custodians organize work into functional areas:
| Category | Examples |
|----------|----------|
| ADMINISTRATIVE | Finance, HR, Legal, Executive |
| PROGRAM | Exhibitions, Conservation, Education |
| SUPPORT | IT, Security, Maintenance, Visitor Services |
| DEVELOPMENT | Fundraising, Grants, Membership |
| COMMUNICATIONS | PR, Marketing, Publications |
**USAGE**:
The `has_or_had_function` slot links entities to FunctionType instances:
```yaml
administrative_office:
has_or_had_function:
- function_category: ADMINISTRATIVE
function_name: "Finance and Accounting"
description: "Financial operations and reporting"
- function_category: ADMINISTRATIVE
function_name: "Human Resources"
description: "Staff management and recruitment"
```
**ONTOLOGY ALIGNMENT**:
- Primary: `org:purpose` - "Indicates the purpose of this Organization"
- Related: `schema:roleName` - The role associated with an organizational function
exact_mappings:
- org:purpose
close_mappings:
- schema:Role
related_mappings:
- org:OrganizationalUnit
slots:
- id
- function_category
- function_name
- description
- valid_from
- valid_to
slot_usage:
id:
identifier: true
required: false
function_category:
range: FunctionTypeEnum
required: true
description: High-level function classification.
function_name:
range: string
required: true
description: Specific name of the function (e.g., "Finance and Accounting").
description:
range: string
required: false
description: Human-readable description of the function.
valid_from:
range: date
required: false
description: Start date when this function was established.
valid_to:
range: date
required: false
description: End date when this function was discontinued.
annotations:
custodian_types: '["*"]'
custodian_types_rationale: Organizational functions applicable to all heritage custodian types.
custodian_types_primary: M
specificity_score: 0.50
specificity_rationale: >-
Moderately specific - organizational function classification is applicable
across institution types but specialized for organizational modeling.
examples:
- value:
function_category: ADMINISTRATIVE
function_name: Finance and Accounting
description: "Financial operations, budgeting, and reporting"
description: Administrative function - Finance
- value:
function_category: PROGRAM
function_name: Conservation
description: "Object conservation and preservation activities"
description: Program function - Conservation
- value:
function_category: SUPPORT
function_name: Information Technology
description: "IT infrastructure and support services"
description: Support function - IT
slots:
function_category:
description: High-level classification of organizational function.
range: FunctionTypeEnum
slot_uri: org:classification
exact_mappings:
- org:classification
function_name:
description: Specific name of the organizational function.
range: string
slot_uri: schema:roleName
exact_mappings:
- schema:roleName

File diff suppressed because it is too large Load diff

View file

@ -91,10 +91,15 @@ fixes:
- original_slot_id: https://nde.nl/ontology/hc/slot/administrative_expenses
processed:
status: false
timestamp: null
session: null
notes: "Requires Expenses class creation"
status: true
timestamp: '2026-01-14T19:30:00Z'
session: "session-2026-01-14-expenses-migration"
notes: >-
FULLY MIGRATED: FinancialStatement - administrative_expenses REMOVED.
Created has_or_had_expenses slot and Expenses class per slot_fixes.yaml revision.
Also archived related bespoke slots: has_or_had_administrative_expense,
program_expense, fundraising_expense, innovation_expense.
All expense types now use Expenses class with ExpenseTypeEnum classification.
revision:
- label: has_or_had_expenses
type: slot