refactor: update tax deductibility schema and migrate slots per Rule 48
This commit is contained in:
parent
2f707d224b
commit
aac0372aaa
10 changed files with 312 additions and 62 deletions
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"generated": "2026-01-17T20:10:50.954Z",
|
||||
"generated": "2026-01-17T20:11:23.675Z",
|
||||
"schemaRoot": "/schemas/20251121/linkml",
|
||||
"totalFiles": 2968,
|
||||
"categoryCounts": {
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"generated": "2026-01-17T20:11:23.675Z",
|
||||
"generated": "2026-01-17T20:45:52.691Z",
|
||||
"schemaRoot": "/schemas/20251121/linkml",
|
||||
"totalFiles": 2968,
|
||||
"categoryCounts": {
|
||||
|
|
|
|||
|
|
@ -19,7 +19,10 @@ imports:
|
|||
# REMOVED 2026-01-17: ../slots/publisher - migrated to has_or_had_publisher + Publisher (Rule 53/56)
|
||||
- ../slots/has_or_had_publisher
|
||||
- ./Publisher
|
||||
- ../slots/publication_date
|
||||
# - ../slots/publication_date # ARCHIVED 2026-01-17 - migrated per Rule 53/56
|
||||
- ../slots/is_or_was_published_at # was: publication_date - migrated per Rule 53/56 (2026-01-17)
|
||||
- ./PublicationEvent # for is_or_was_published_at range
|
||||
- ./TimeSpan # for PublicationEvent.temporal_extent
|
||||
- ../slots/isbn
|
||||
- ../slots/language
|
||||
- ../slots/price
|
||||
|
|
@ -123,7 +126,7 @@ classes:
|
|||
- page
|
||||
- pdf_url
|
||||
- price
|
||||
- publication_date
|
||||
- is_or_was_published_at # was: publication_date - migrated per Rule 53/56 (2026-01-17)
|
||||
- publication_place
|
||||
- has_or_had_publisher # was: publisher - migrated per Rule 53/56 (2026-01-17)
|
||||
- specificity_annotation
|
||||
|
|
|
|||
|
|
@ -56,7 +56,9 @@ imports:
|
|||
# REMOVED 2026-01-17: ../slots/publisher - migrated to has_or_had_publisher + Publisher (Rule 53/56)
|
||||
- ../slots/has_or_had_publisher
|
||||
- ./Publisher
|
||||
- ../slots/publication_date
|
||||
# - ../slots/publication_date # ARCHIVED 2026-01-17 - migrated per Rule 53/56
|
||||
- ../slots/is_or_was_published_at # was: publication_date - migrated per Rule 53/56 (2026-01-17)
|
||||
- ./PublicationEvent # for is_or_was_published_at range
|
||||
- ../slots/isbn
|
||||
- ../slots/has_or_had_access_condition
|
||||
- ../slots/is_or_was_access_restricted
|
||||
|
|
@ -270,7 +272,7 @@ classes:
|
|||
- note
|
||||
- has_or_had_page_section
|
||||
- provenance
|
||||
- publication_date
|
||||
- is_or_was_published_at # was: publication_date - migrated per Rule 53/56 (2026-01-17)
|
||||
- has_or_had_publisher # was: publisher - migrated per Rule 53/56 (2026-01-17)
|
||||
- has_or_had_related_archive
|
||||
- has_or_had_related_guide
|
||||
|
|
|
|||
|
|
@ -11,14 +11,15 @@ imports:
|
|||
- ../slots/has_or_had_type
|
||||
- ../slots/has_or_had_label
|
||||
- ../slots/has_or_had_description
|
||||
# Status slot - defined locally as it's specific to this class
|
||||
# Conditions slot - defined locally as it's specific to this class
|
||||
# Minimum donation slot - defined locally as it's specific to this class
|
||||
- ../slots/deductibility_status # Centralized per Rule 48 (2026-01-17)
|
||||
- ../slots/deductibility_conditions # Centralized per Rule 48 (2026-01-17)
|
||||
- ../slots/minimum_donation # Centralized per Rule 48 (2026-01-17)
|
||||
- ../slots/jurisdiction
|
||||
- ../slots/deductible_percentage
|
||||
- ../slots/effective_from
|
||||
- ../slots/effective_until
|
||||
- ./Jurisdiction
|
||||
- ../enums/DeductibilityStatusEnum # Enum moved to separate file per Rule 48 (2026-01-17)
|
||||
default_prefix: hc
|
||||
|
||||
classes:
|
||||
|
|
@ -46,11 +47,11 @@ classes:
|
|||
```
|
||||
TaxDeductibility
|
||||
│
|
||||
├── status ──→ DeductibilityStatusEnum (FULLY_DEDUCTIBLE, etc.)
|
||||
├── deductibility_status ──→ DeductibilityStatusEnum (FULLY_DEDUCTIBLE, etc.)
|
||||
│
|
||||
├── jurisdiction ──→ Jurisdiction class
|
||||
│
|
||||
├── conditions ──→ "Donation must exceed €25"
|
||||
├── deductibility_conditions ──→ "Donation must exceed €25"
|
||||
│
|
||||
└── effective_from / effective_until ──→ dates
|
||||
```
|
||||
|
|
@ -77,15 +78,15 @@ classes:
|
|||
close_mappings:
|
||||
- prov:Entity
|
||||
slots:
|
||||
- status
|
||||
- deductibility_status
|
||||
- jurisdiction
|
||||
- conditions
|
||||
- deductibility_conditions
|
||||
- deductible_percentage
|
||||
- minimum_donation
|
||||
- effective_from
|
||||
- effective_until
|
||||
slot_usage:
|
||||
status:
|
||||
deductibility_status:
|
||||
range: DeductibilityStatusEnum
|
||||
required: true
|
||||
description: The deductibility classification.
|
||||
|
|
@ -104,7 +105,7 @@ classes:
|
|||
jurisdiction_code: UK
|
||||
jurisdiction_name: United Kingdom
|
||||
description: United Kingdom
|
||||
conditions:
|
||||
deductibility_conditions:
|
||||
range: string
|
||||
description: |
|
||||
Conditions that must be met for tax deductibility.
|
||||
|
|
@ -136,35 +137,35 @@ classes:
|
|||
- https://www.gov.uk/donating-to-charity/gift-aid
|
||||
examples:
|
||||
- value:
|
||||
status: FULLY_DEDUCTIBLE
|
||||
deductibility_status: FULLY_DEDUCTIBLE
|
||||
jurisdiction:
|
||||
jurisdiction_code: NL
|
||||
jurisdiction_name: Netherlands
|
||||
conditions: Donation must exceed €25 minimum
|
||||
deductibility_conditions: Donation must exceed €25 minimum
|
||||
deductible_percentage: 100
|
||||
description: Dutch ANBI fully deductible donation
|
||||
- value:
|
||||
status: CONDITIONALLY_DEDUCTIBLE
|
||||
deductibility_status: CONDITIONALLY_DEDUCTIBLE
|
||||
jurisdiction:
|
||||
jurisdiction_code: UK
|
||||
jurisdiction_name: United Kingdom
|
||||
conditions: Donor must complete Gift Aid declaration
|
||||
deductibility_conditions: Donor must complete Gift Aid declaration
|
||||
deductible_percentage: 100
|
||||
description: UK Gift Aid conditional deductibility
|
||||
- value:
|
||||
status: PARTIALLY_DEDUCTIBLE
|
||||
deductibility_status: PARTIALLY_DEDUCTIBLE
|
||||
jurisdiction:
|
||||
jurisdiction_code: US
|
||||
jurisdiction_name: United States
|
||||
conditions: Fair market value of benefits received is subtracted
|
||||
deductibility_conditions: Fair market value of benefits received is subtracted
|
||||
deductible_percentage: 70
|
||||
description: US gala ticket with partial deductibility
|
||||
- value:
|
||||
status: NOT_DEDUCTIBLE
|
||||
deductibility_status: NOT_DEDUCTIBLE
|
||||
jurisdiction:
|
||||
jurisdiction_code: NL
|
||||
jurisdiction_name: Netherlands
|
||||
conditions: Membership benefits exceed donation value
|
||||
deductibility_conditions: Membership benefits exceed donation value
|
||||
description: Museum membership not tax-deductible
|
||||
annotations:
|
||||
specificity_score: 0.50
|
||||
|
|
@ -173,41 +174,3 @@ classes:
|
|||
donation-focused queries.
|
||||
replaces_slot: tax_deductible
|
||||
migration_date: "2026-01-16"
|
||||
|
||||
# Define local slots specific to TaxDeductibility
|
||||
slots:
|
||||
status:
|
||||
slot_uri: schema:itemCondition
|
||||
range: DeductibilityStatusEnum
|
||||
description: |
|
||||
The deductibility classification status.
|
||||
|
||||
conditions:
|
||||
slot_uri: schema:eligibleRegion
|
||||
range: string
|
||||
description: |
|
||||
Conditions or requirements for tax deductibility.
|
||||
|
||||
minimum_donation:
|
||||
slot_uri: schema:minPrice
|
||||
range: decimal
|
||||
description: |
|
||||
Minimum donation amount for tax deductibility to apply.
|
||||
|
||||
# Define the deductibility status enum
|
||||
enums:
|
||||
DeductibilityStatusEnum:
|
||||
description: Classification of tax deductibility status.
|
||||
permissible_values:
|
||||
FULLY_DEDUCTIBLE:
|
||||
description: 100% of donation is tax-deductible.
|
||||
PARTIALLY_DEDUCTIBLE:
|
||||
description: Only a portion of the donation is tax-deductible.
|
||||
NOT_DEDUCTIBLE:
|
||||
description: Donation provides no tax benefit to donor.
|
||||
CONDITIONALLY_DEDUCTIBLE:
|
||||
description: Tax-deductible only if specific conditions are met.
|
||||
JURISDICTION_DEPENDENT:
|
||||
description: Deductibility varies based on donor's tax jurisdiction.
|
||||
UNKNOWN:
|
||||
description: Deductibility status has not been determined.
|
||||
|
|
|
|||
|
|
@ -0,0 +1,34 @@
|
|||
# DeductibilityStatusEnum - Tax deductibility status classifications
|
||||
#
|
||||
# Created: 2026-01-17
|
||||
# Purpose: Centralized enum for TaxDeductibility.deductibility_status per Rule 48
|
||||
|
||||
id: https://nde.nl/ontology/hc/enum/DeductibilityStatusEnum
|
||||
name: DeductibilityStatusEnum
|
||||
title: Deductibility Status Enumeration
|
||||
|
||||
prefixes:
|
||||
linkml: https://w3id.org/linkml/
|
||||
hc: https://nde.nl/ontology/hc/
|
||||
|
||||
imports:
|
||||
- linkml:types
|
||||
|
||||
default_prefix: hc
|
||||
|
||||
enums:
|
||||
DeductibilityStatusEnum:
|
||||
description: Classification of tax deductibility status.
|
||||
permissible_values:
|
||||
FULLY_DEDUCTIBLE:
|
||||
description: 100% of donation is tax-deductible.
|
||||
PARTIALLY_DEDUCTIBLE:
|
||||
description: Only a portion of the donation is tax-deductible.
|
||||
NOT_DEDUCTIBLE:
|
||||
description: Donation provides no tax benefit to donor.
|
||||
CONDITIONALLY_DEDUCTIBLE:
|
||||
description: Tax-deductible only if specific conditions are met.
|
||||
JURISDICTION_DEPENDENT:
|
||||
description: Deductibility varies based on donor's tax jurisdiction.
|
||||
UNKNOWN:
|
||||
description: Deductibility status has not been determined.
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
# deductibility_conditions - Conditions for tax deductibility
|
||||
#
|
||||
# Created: 2026-01-17
|
||||
# Purpose: Replaces inline 'conditions' slot from TaxDeductibility class per Rule 48
|
||||
|
||||
id: https://nde.nl/ontology/hc/slot/deductibility_conditions
|
||||
name: deductibility_conditions
|
||||
title: Deductibility Conditions Slot
|
||||
|
||||
prefixes:
|
||||
linkml: https://w3id.org/linkml/
|
||||
hc: https://nde.nl/ontology/hc/
|
||||
schema: http://schema.org/
|
||||
|
||||
imports:
|
||||
- linkml:types
|
||||
|
||||
default_prefix: hc
|
||||
|
||||
slots:
|
||||
deductibility_conditions:
|
||||
slot_uri: schema:eligibleRegion
|
||||
range: string
|
||||
description: |
|
||||
Conditions or requirements for tax deductibility to apply.
|
||||
Examples: "Donation must exceed €25 minimum", "Must complete Gift Aid declaration"
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
# deductibility_status - Tax deductibility classification status
|
||||
#
|
||||
# Created: 2026-01-17
|
||||
# Purpose: Replaces inline 'status' slot from TaxDeductibility class per Rule 48
|
||||
|
||||
id: https://nde.nl/ontology/hc/slot/deductibility_status
|
||||
name: deductibility_status
|
||||
title: Deductibility Status Slot
|
||||
|
||||
prefixes:
|
||||
linkml: https://w3id.org/linkml/
|
||||
hc: https://nde.nl/ontology/hc/
|
||||
schema: http://schema.org/
|
||||
|
||||
imports:
|
||||
- linkml:types
|
||||
|
||||
default_prefix: hc
|
||||
|
||||
slots:
|
||||
deductibility_status:
|
||||
slot_uri: schema:itemCondition
|
||||
range: string # Will be narrowed to DeductibilityStatusEnum in class
|
||||
description: |
|
||||
The tax deductibility classification status.
|
||||
Values: FULLY_DEDUCTIBLE, PARTIALLY_DEDUCTIBLE, NOT_DEDUCTIBLE,
|
||||
CONDITIONALLY_DEDUCTIBLE, JURISDICTION_DEPENDENT, UNKNOWN
|
||||
26
schemas/20251121/linkml/modules/slots/minimum_donation.yaml
Normal file
26
schemas/20251121/linkml/modules/slots/minimum_donation.yaml
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
# minimum_donation - Minimum donation amount for tax deductibility
|
||||
#
|
||||
# Created: 2026-01-17
|
||||
# Purpose: Replaces inline 'minimum_donation' slot from TaxDeductibility class per Rule 48
|
||||
|
||||
id: https://nde.nl/ontology/hc/slot/minimum_donation
|
||||
name: minimum_donation
|
||||
title: Minimum Donation Slot
|
||||
|
||||
prefixes:
|
||||
linkml: https://w3id.org/linkml/
|
||||
hc: https://nde.nl/ontology/hc/
|
||||
schema: http://schema.org/
|
||||
|
||||
imports:
|
||||
- linkml:types
|
||||
|
||||
default_prefix: hc
|
||||
|
||||
slots:
|
||||
minimum_donation:
|
||||
slot_uri: schema:minPrice
|
||||
range: decimal
|
||||
description: |
|
||||
Minimum donation amount for tax deductibility to apply.
|
||||
Currency assumed to be the jurisdiction's local currency.
|
||||
|
|
@ -8704,4 +8704,173 @@ fixes:
|
|||
This is a display/serialization format derived from chapter_start_seconds.
|
||||
ISO 8601 duration strings are the standard for time representation.
|
||||
Creating TimeInterval+Timestamp classes would be OVER-ENGINEERING.
|
||||
Retaining with existing structure.
|
||||
Retaining with existing structure.
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/chapter_thumbnail_timestamp
|
||||
revision:
|
||||
- label: has_or_had_thumbnail
|
||||
type: slot
|
||||
- label: Thumbnail
|
||||
type: class
|
||||
- label: derives_or_derived_from
|
||||
type: slot
|
||||
- label: Video
|
||||
type: class
|
||||
- label: has_or_had_time_interval
|
||||
type: slot
|
||||
- label: TimeInterval
|
||||
type: class
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/chapter_thumbnail_url
|
||||
revision:
|
||||
- label: has_or_had_thumbnail
|
||||
type: slot
|
||||
- label: Thumbnail
|
||||
type: class
|
||||
- label: has_or_had_url
|
||||
type: slot
|
||||
- label: URL
|
||||
type: class
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/chapter_title
|
||||
revision:
|
||||
- label: has_or_had_label
|
||||
type: slot
|
||||
- label: Label
|
||||
type: class
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/chapters_generated_at
|
||||
revision:
|
||||
- label: is_or_was_generated
|
||||
type: slot
|
||||
- label: GenerationEvent
|
||||
type: class
|
||||
- label: has_or_had_provenance
|
||||
type: slot
|
||||
link_branch: 1
|
||||
- label: Provenance
|
||||
type: class
|
||||
link_branch: 1
|
||||
- label: temporal_extent
|
||||
type: slot
|
||||
link_branch: 2
|
||||
- label: TimeSpan
|
||||
type: class
|
||||
link_branch: 2
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/chapters_source
|
||||
revision:
|
||||
- label: has_or_had_source
|
||||
type: slot
|
||||
- label: Source
|
||||
type: class
|
||||
- orignal_slot_id: https://nde.nl/ontology/hc/slot/character_count
|
||||
revision:
|
||||
- label: has_or_had_quantity
|
||||
type: slot
|
||||
- label: Quantity
|
||||
type: class
|
||||
- label: has_or_had_unit
|
||||
type: slot
|
||||
- label: Unit
|
||||
type: class
|
||||
value: character
|
||||
- orignal_slot_id: https://nde.nl/ontology/hc/slot/circumstances_of_death
|
||||
revision:
|
||||
- label: is_deceased
|
||||
type: slot
|
||||
- label: DeceasedStatus
|
||||
type: class
|
||||
- label: is_or_was_caused_by
|
||||
type: slot
|
||||
- label: CauseOfDeath
|
||||
type: class
|
||||
- orignal_slot_id: https://nde.nl/ontology/hc/slot/cites_appendix
|
||||
revision:
|
||||
- label: is_or_was_listed_in
|
||||
type: slot
|
||||
- label: CITESAppendix
|
||||
type: class
|
||||
- orignal_slot_id: https://nde.nl/ontology/hc/slot/city
|
||||
revision:
|
||||
- label: is_or_was_located_in
|
||||
type: slot
|
||||
- label: City
|
||||
type: class
|
||||
- orignal_slot_id: https://nde.nl/ontology/hc/slot/claim
|
||||
revision:
|
||||
- label: warrants_or_warranted
|
||||
type: slot
|
||||
- label: Claim
|
||||
type: class
|
||||
- orignal_slot_id: https://nde.nl/ontology/hc/slot/claim_extraction_method
|
||||
revision:
|
||||
- label: is_or_was_extracted_using
|
||||
type: slot
|
||||
- label: ExtractionMethod
|
||||
type: class
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/claim_id
|
||||
revision:
|
||||
- label: has_or_had_identifier
|
||||
type: slot
|
||||
- label: Identifier
|
||||
type: class
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/claim_note
|
||||
revision:
|
||||
- label: has_or_had_note
|
||||
type: slot
|
||||
- label: Note
|
||||
type: class
|
||||
- orignal_slot_id: https://nde.nl/ontology/hc/slot/claim_source_url
|
||||
revision:
|
||||
- label: has_or_had_url
|
||||
type: slot
|
||||
- label: URL
|
||||
type: class
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/claim_type
|
||||
revision:
|
||||
- label: has_or_had_type
|
||||
type: slot
|
||||
- label: ClaimType
|
||||
type: class
|
||||
- label: includes_or_included
|
||||
type: slot
|
||||
- label: ClaimTypes
|
||||
type: class
|
||||
- orignal_slot_id: https://nde.nl/ontology/hc/slot/claim_value
|
||||
revision:
|
||||
- label: has_or_had_content
|
||||
type: slot
|
||||
- label: Content
|
||||
type: class
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/claims_count
|
||||
revision:
|
||||
- label: has_or_had_provenance
|
||||
type: slot
|
||||
- label: Provenance
|
||||
type: class
|
||||
- label: based_on_claim
|
||||
type: slot
|
||||
- label: Claim
|
||||
type: class
|
||||
- label: has_or_had_quantity
|
||||
type: slot
|
||||
- label: Quantity
|
||||
type: class
|
||||
- orignal_slot_id: https://nde.nl/ontology/hc/slot/classification_status
|
||||
revision:
|
||||
- label: has_or_had_status
|
||||
type: slot
|
||||
- label: ClassificationStatus
|
||||
type: class
|
||||
- label: has_or_had_type
|
||||
type: slot
|
||||
- label: ClassificationStatusType
|
||||
type: class
|
||||
- label: includes_or_included
|
||||
type: slot
|
||||
- label: ClassificationStatusTypes
|
||||
type: class
|
||||
- orignal_slot_id: https://nde.nl/ontology/hc/slot/classifies_place
|
||||
revision:
|
||||
- label: classifies_or_classified
|
||||
type: slot
|
||||
- label: CustodianPlace
|
||||
type: class
|
||||
|
||||
# https://nde.nl/ontology/hc/slot/classroom_count>
|
||||
Loading…
Reference in a new issue