Update manifest.json and migrate approved_by slot to is_or_was_approved_by; add includes_or_included slot to InformationCarrier; remove bookplate slot and archive it
This commit is contained in:
parent
21c207c9da
commit
b927bc4b43
30 changed files with 731 additions and 154 deletions
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
"generated": "2026-01-14T12:09:32.173Z",
|
||||
"generated": "2026-01-14T12:29:52.423Z",
|
||||
"schemaRoot": "/schemas/20251121/linkml",
|
||||
"totalFiles": 2884,
|
||||
"categoryCounts": {
|
||||
"main": 4,
|
||||
"class": 675,
|
||||
"class": 679,
|
||||
"enum": 147,
|
||||
"slot": 2054,
|
||||
"slot": 2050,
|
||||
"module": 4
|
||||
},
|
||||
"categories": [
|
||||
|
|
@ -160,6 +160,11 @@
|
|||
"path": "modules/classes/Appellation.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "Approver",
|
||||
"path": "modules/classes/Approver.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "ArchitecturalArchive",
|
||||
"path": "modules/classes/ArchitecturalArchive.yaml",
|
||||
|
|
@ -365,6 +370,16 @@
|
|||
"path": "modules/classes/BiologicalObject.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "BOLDIdentifier",
|
||||
"path": "modules/classes/BOLDIdentifier.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "Bookplate",
|
||||
"path": "modules/classes/Bookplate.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "BranchOffice",
|
||||
"path": "modules/classes/BranchOffice.yaml",
|
||||
|
|
@ -2940,6 +2955,11 @@
|
|||
"path": "modules/classes/TasteScentHeritageType.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "Taxon",
|
||||
"path": "modules/classes/Taxon.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "TelevisionArchive",
|
||||
"path": "modules/classes/TelevisionArchive.yaml",
|
||||
|
|
@ -4217,11 +4237,6 @@
|
|||
"path": "modules/slots/approximate.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "archived_at",
|
||||
"path": "modules/slots/archived_at.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "area_hectares",
|
||||
"path": "modules/slots/area_hectares.yaml",
|
||||
|
|
@ -4237,11 +4252,6 @@
|
|||
"path": "modules/slots/asserted_by.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "associated_taxa",
|
||||
"path": "modules/slots/associated_taxa.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "audio_event_segments",
|
||||
"path": "modules/slots/audio_event_segments.yaml",
|
||||
|
|
@ -4252,11 +4262,6 @@
|
|||
"path": "modules/slots/authors.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "auto_generated",
|
||||
"path": "modules/slots/auto_generated.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "auxiliary_places",
|
||||
"path": "modules/slots/auxiliary_places.yaml",
|
||||
|
|
@ -4322,16 +4327,6 @@
|
|||
"path": "modules/slots/birth_place.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "bold_id",
|
||||
"path": "modules/slots/bold_id.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "bookplate",
|
||||
"path": "modules/slots/bookplate.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "borrower",
|
||||
"path": "modules/slots/borrower.yaml",
|
||||
|
|
@ -9362,11 +9357,6 @@
|
|||
"path": "modules/slots/is_approximate.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "is_auto_generated",
|
||||
"path": "modules/slots/is_auto_generated.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "is_auxiliary_of_place",
|
||||
"path": "modules/slots/is_auxiliary_of_place.yaml",
|
||||
|
|
@ -9502,11 +9492,21 @@
|
|||
"path": "modules/slots/is_or_was_also_allocation_agency.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "is_or_was_approved_by",
|
||||
"path": "modules/slots/is_or_was_approved_by.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "is_or_was_archive_department_of",
|
||||
"path": "modules/slots/is_or_was_archive_department_of.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "is_or_was_archived_at",
|
||||
"path": "modules/slots/is_or_was_archived_at.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "is_or_was_archived_in",
|
||||
"path": "modules/slots/is_or_was_archived_in.yaml",
|
||||
|
|
|
|||
|
|
@ -0,0 +1,72 @@
|
|||
id: https://nde.nl/ontology/hc/class/Approver
|
||||
name: approver_class
|
||||
title: Approver Class
|
||||
imports:
|
||||
- linkml:types
|
||||
- ../slots/has_or_had_label
|
||||
- ../slots/has_or_had_identifier
|
||||
prefixes:
|
||||
linkml: https://w3id.org/linkml/
|
||||
hc: https://nde.nl/ontology/hc/
|
||||
schema: http://schema.org/
|
||||
prov: http://www.w3.org/ns/prov#
|
||||
foaf: http://xmlns.com/foaf/0.1/
|
||||
default_prefix: hc
|
||||
classes:
|
||||
Approver:
|
||||
class_uri: prov:Agent
|
||||
description: >-
|
||||
An agent (person or organization) that approves or authorized something.
|
||||
|
||||
**DEFINITION**:
|
||||
|
||||
Approver represents the agent responsible for approving decisions,
|
||||
policies, budgets, or other organizational actions. This replaces
|
||||
simple string fields like `approved_by` with a structured class
|
||||
that can link to person or organization entities.
|
||||
|
||||
**ONTOLOGY ALIGNMENT**:
|
||||
|
||||
- PROV-O: `prov:Agent` - entity that bears responsibility
|
||||
- FOAF: `foaf:Agent` - agent (person or organization)
|
||||
- Schema.org: `schema:Person` or `schema:Organization`
|
||||
|
||||
**USE CASES**:
|
||||
|
||||
1. **Budget Approval**: Who approved the budget allocation
|
||||
2. **Policy Approval**: Who authorized the policy
|
||||
3. **Decision Records**: Documenting approval chains
|
||||
|
||||
exact_mappings:
|
||||
- prov:Agent
|
||||
close_mappings:
|
||||
- foaf:Agent
|
||||
- schema:Person
|
||||
- schema:Organization
|
||||
slots:
|
||||
- has_or_had_label
|
||||
- has_or_had_identifier
|
||||
slot_usage:
|
||||
has_or_had_label:
|
||||
range: string
|
||||
examples:
|
||||
- value: "Board of Directors"
|
||||
description: Organizational approver
|
||||
- value: "Museum Director"
|
||||
description: Role-based approver
|
||||
has_or_had_identifier:
|
||||
range: uriorcurie
|
||||
examples:
|
||||
- value: "https://nde.nl/ontology/hc/person/jan-de-vries"
|
||||
description: Link to person entity
|
||||
comments:
|
||||
- Generic approver class for approval provenance
|
||||
- Can represent individuals or organizational bodies
|
||||
- Aligns with PROV-O Agent for provenance tracking
|
||||
see_also:
|
||||
- https://www.w3.org/TR/prov-o/#Agent
|
||||
examples:
|
||||
- value:
|
||||
has_or_had_label: "Museum Director"
|
||||
has_or_had_identifier: "https://nde.nl/ontology/hc/person/example-director"
|
||||
description: Individual approver
|
||||
|
|
@ -20,7 +20,7 @@ imports:
|
|||
- ../slots/technology_stack
|
||||
- ../slots/funding_source
|
||||
- ../slots/has_or_had_powered_by_cm
|
||||
- ../slots/archived_at
|
||||
- ../slots/is_or_was_archived_at # MIGRATED: was ../slots/archived_at (2026-01-15)
|
||||
- ../slots/serves_finding_aid
|
||||
- ../slots/has_or_had_data_service_endpoint
|
||||
- ../slots/has_or_had_documentation # MIGRATED: was ../slots/api_documentation (2026-01-15)
|
||||
|
|
@ -113,7 +113,7 @@ classes:
|
|||
slots:
|
||||
- has_or_had_documentation # MIGRATED: was api_documentation (2026-01-15)
|
||||
- has_or_had_archival_status
|
||||
- archived_at
|
||||
- is_or_was_archived_at # MIGRATED: was archived_at (2026-01-15)
|
||||
- has_or_had_identifier
|
||||
- has_auxiliary_platform_type
|
||||
- cms_detected
|
||||
|
|
@ -266,7 +266,8 @@ classes:
|
|||
description: Still accessible but not maintained
|
||||
- value: MIGRATED
|
||||
description: Content migrated to successor platform
|
||||
was_archived_at:
|
||||
is_or_was_archived_at: # MIGRATED: was was_archived_at (2026-01-15)
|
||||
description: URL where this platform is or was archived (e.g., Wayback Machine)
|
||||
range: uri
|
||||
examples:
|
||||
- value: https://web.archive.org/web/20211231/https://example.nl/exhibition/
|
||||
|
|
|
|||
|
|
@ -0,0 +1,108 @@
|
|||
id: https://nde.nl/ontology/hc/class/BOLDIdentifier
|
||||
name: bold_identifier_class
|
||||
title: BOLD Identifier Class
|
||||
description: >-
|
||||
Barcode of Life Data System (BOLD) identifier for biological specimens.
|
||||
|
||||
Links heritage biological objects to their DNA barcode records in BOLD.
|
||||
|
||||
prefixes:
|
||||
linkml: https://w3id.org/linkml/
|
||||
hc: https://nde.nl/ontology/hc/
|
||||
dcterms: http://purl.org/dc/terms/
|
||||
schema: http://schema.org/
|
||||
|
||||
default_prefix: hc
|
||||
|
||||
imports:
|
||||
- linkml:types
|
||||
- ../slots/id
|
||||
- ../slots/identifier_value
|
||||
- ../slots/identifier_url
|
||||
- ../slots/description
|
||||
- ../slots/specificity_annotation
|
||||
- ../slots/template_specificity
|
||||
- ./SpecificityAnnotation
|
||||
- ./TemplateSpecificityScores
|
||||
|
||||
classes:
|
||||
BOLDIdentifier:
|
||||
class_uri: schema:PropertyValue
|
||||
description: >-
|
||||
A Barcode of Life Data System (BOLD) identifier linking a biological
|
||||
specimen to its DNA barcode record.
|
||||
|
||||
**WHAT IS BOLD?**
|
||||
|
||||
BOLD (Barcode of Life Data System) is an online workbench and database
|
||||
for DNA barcoding. It stores specimen data and DNA barcode sequences,
|
||||
enabling species identification through DNA.
|
||||
|
||||
**USE CASES**:
|
||||
|
||||
1. **Specimen Identification**: Link natural history specimens to DNA data
|
||||
2. **Species Verification**: Cross-reference morphological IDs with DNA barcodes
|
||||
3. **Research Provenance**: Document genetic sampling of collection objects
|
||||
|
||||
**IDENTIFIER FORMAT**:
|
||||
|
||||
BOLD identifiers follow the pattern: BOLD:XXXNNN
|
||||
- Process IDs: BOLD:AAA0001
|
||||
- Sample IDs: Institution-specific prefixes
|
||||
|
||||
**EXTERNAL LINKS**:
|
||||
|
||||
- BOLD Systems: https://boldsystems.org/
|
||||
- Record URL pattern: https://boldsystems.org/index.php/Public_RecordView?processid={id}
|
||||
|
||||
exact_mappings:
|
||||
- schema:PropertyValue
|
||||
|
||||
close_mappings:
|
||||
- dcterms:identifier
|
||||
|
||||
slots:
|
||||
- id
|
||||
- identifier_value
|
||||
- identifier_url
|
||||
- description
|
||||
- specificity_annotation
|
||||
- template_specificity
|
||||
|
||||
slot_usage:
|
||||
id:
|
||||
identifier: true
|
||||
required: true
|
||||
range: uriorcurie
|
||||
pattern: ^https://nde\.nl/ontology/hc/bold-id/[A-Z0-9-]+$
|
||||
examples:
|
||||
- value: https://nde.nl/ontology/hc/bold-id/NLNAT001-21
|
||||
description: Dutch natural history specimen BOLD ID
|
||||
identifier_value:
|
||||
description: The BOLD process ID or sample ID value.
|
||||
range: string
|
||||
required: true
|
||||
pattern: ^[A-Z]{2,5}[0-9]{3,7}(-[0-9]{2})?$
|
||||
examples:
|
||||
- value: NLNAT001-21
|
||||
description: Netherlands natural history specimen 2021
|
||||
- value: GBMIN12345-19
|
||||
description: UK specimen from 2019
|
||||
identifier_url:
|
||||
description: URL to the BOLD record page.
|
||||
range: uri
|
||||
examples:
|
||||
- value: https://boldsystems.org/index.php/Public_RecordView?processid=NLNAT001-21
|
||||
|
||||
comments:
|
||||
- Used for DNA barcode identifiers in natural history collections
|
||||
- Links physical specimens to molecular data
|
||||
- Part of global biodiversity identification infrastructure
|
||||
|
||||
examples:
|
||||
- value:
|
||||
id: https://nde.nl/ontology/hc/bold-id/NLNAT001-21
|
||||
identifier_value: NLNAT001-21
|
||||
identifier_url: https://boldsystems.org/index.php/Public_RecordView?processid=NLNAT001-21
|
||||
description: DNA barcode for Naturalis specimen
|
||||
description: BOLD identifier for a Dutch natural history specimen
|
||||
|
|
@ -18,8 +18,12 @@ imports:
|
|||
- ./CustodianPlace
|
||||
- ../enums/PreservationMethodEnum
|
||||
- ../slots/wikidata_id
|
||||
- ../slots/associated_taxa
|
||||
- ../slots/bold_id
|
||||
# associated_taxa REMOVED - migrated to is_or_was_associated_with (Rule 53)
|
||||
- ../slots/is_or_was_associated_with
|
||||
- ./Taxon
|
||||
# bold_id REMOVED - migrated to has_or_had_identifier with BOLDIdentifier class (Rule 53)
|
||||
- ../slots/has_or_had_identifier
|
||||
- ./BOLDIdentifier
|
||||
- ../slots/cites_appendix
|
||||
- ../slots/collection_date
|
||||
- ../slots/collection_locality_text
|
||||
|
|
@ -100,8 +104,10 @@ classes:
|
|||
- gbif:Specimen
|
||||
is_a: ExhibitedObject
|
||||
slots:
|
||||
- associated_taxa
|
||||
- bold_id
|
||||
# associated_taxa REMOVED - migrated to is_or_was_associated_with (Rule 53)
|
||||
- is_or_was_associated_with
|
||||
# bold_id REMOVED - migrated to has_or_had_identifier with BOLDIdentifier (Rule 53)
|
||||
- has_or_had_identifier
|
||||
- cites_appendix
|
||||
- collection_date
|
||||
- collection_locality_text
|
||||
|
|
@ -138,6 +144,30 @@ classes:
|
|||
- template_specificity
|
||||
- type_status
|
||||
slot_usage:
|
||||
is_or_was_associated_with:
|
||||
description: >-
|
||||
MIGRATED from associated_taxa (Rule 53).
|
||||
Links biological object to associated taxa.
|
||||
Range narrowed to Taxon class.
|
||||
range: Taxon
|
||||
multivalued: true
|
||||
inlined_as_list: true
|
||||
examples:
|
||||
- value: https://nde.nl/ontology/hc/taxon/raphus-cucullatus
|
||||
description: Associated with Dodo taxon
|
||||
has_or_had_identifier:
|
||||
description: >-
|
||||
MIGRATED from bold_id (Rule 53).
|
||||
BOLD (Barcode of Life Data System) identifier for DNA barcode records.
|
||||
Range narrowed to BOLDIdentifier class.
|
||||
range: BOLDIdentifier
|
||||
multivalued: true
|
||||
inlined_as_list: true
|
||||
examples:
|
||||
- value:
|
||||
id: https://nde.nl/ontology/hc/bold-id/NLNAT001-21
|
||||
identifier_value: NLNAT001-21
|
||||
description: BOLD identifier for specimen
|
||||
taxon_name:
|
||||
required: true
|
||||
range: string
|
||||
|
|
|
|||
|
|
@ -0,0 +1,119 @@
|
|||
id: https://nde.nl/ontology/hc/class/Bookplate
|
||||
name: bookplate_class
|
||||
title: Bookplate Class
|
||||
description: >-
|
||||
Bookplate (ex libris) marking ownership of a book or manuscript.
|
||||
|
||||
Records provenance information through ownership marks in heritage library items.
|
||||
|
||||
prefixes:
|
||||
linkml: https://w3id.org/linkml/
|
||||
hc: https://nde.nl/ontology/hc/
|
||||
schema: http://schema.org/
|
||||
crm: http://www.cidoc-crm.org/cidoc-crm/
|
||||
bf: http://id.loc.gov/ontologies/bibframe/
|
||||
|
||||
default_prefix: hc
|
||||
|
||||
imports:
|
||||
- linkml:types
|
||||
- ../slots/id
|
||||
- ../slots/has_or_had_label
|
||||
- ../slots/description
|
||||
- ../slots/has_or_had_owner
|
||||
- ../slots/specificity_annotation
|
||||
- ../slots/template_specificity
|
||||
- ./SpecificityAnnotation
|
||||
- ./TemplateSpecificityScores
|
||||
|
||||
classes:
|
||||
Bookplate:
|
||||
class_uri: bf:Bookplate
|
||||
description: >-
|
||||
A bookplate (ex libris) or ownership mark found in a book, manuscript,
|
||||
or other library material.
|
||||
|
||||
**WHAT IS A BOOKPLATE?**
|
||||
|
||||
A bookplate is a printed or decorative label pasted inside a book,
|
||||
typically on the front endpaper, indicating ownership. Also known
|
||||
as "ex libris" (Latin: "from the books of").
|
||||
|
||||
**PROVENANCE SIGNIFICANCE**:
|
||||
|
||||
Bookplates are crucial for provenance research:
|
||||
- Document historical ownership chains
|
||||
- Connect items to notable collectors
|
||||
- Evidence of institutional vs. personal ownership
|
||||
- May indicate stolen/looted heritage
|
||||
|
||||
**USE CASES**:
|
||||
|
||||
1. **Provenance Research**: Track ownership history of rare books
|
||||
2. **Collection Documentation**: Record all bookplates in a volume
|
||||
3. **Restitution Claims**: Document pre-war ownership evidence
|
||||
|
||||
**TYPES OF BOOKPLATES**:
|
||||
|
||||
- Printed pictorial bookplates
|
||||
- Armorial bookplates (with coat of arms)
|
||||
- Typographic bookplates (text only)
|
||||
- Stamps and ink marks
|
||||
- Manuscript ownership inscriptions
|
||||
|
||||
exact_mappings:
|
||||
- bf:Bookplate
|
||||
|
||||
close_mappings:
|
||||
- crm:E37_Mark
|
||||
- schema:Thing
|
||||
|
||||
slots:
|
||||
- id
|
||||
- has_or_had_label
|
||||
- description
|
||||
- has_or_had_owner
|
||||
- specificity_annotation
|
||||
- template_specificity
|
||||
|
||||
slot_usage:
|
||||
id:
|
||||
identifier: true
|
||||
required: true
|
||||
range: uriorcurie
|
||||
pattern: ^https://nde\.nl/ontology/hc/bookplate/[a-z0-9-]+$
|
||||
examples:
|
||||
- value: https://nde.nl/ontology/hc/bookplate/kb-exlibris-001
|
||||
description: KB bookplate record
|
||||
has_or_had_label:
|
||||
description: Text or name on the bookplate.
|
||||
range: string
|
||||
required: true
|
||||
examples:
|
||||
- value: "Ex Libris Johann Wolfgang von Goethe"
|
||||
description: Goethe's bookplate
|
||||
- value: "Bibliotheca Regia"
|
||||
description: Royal library bookplate
|
||||
description:
|
||||
range: string
|
||||
examples:
|
||||
- value: Armorial bookplate with three lions, gilt border, 18th century
|
||||
has_or_had_owner:
|
||||
description: Person or institution who owned the book according to this bookplate.
|
||||
range: string
|
||||
examples:
|
||||
- value: Johann Wolfgang von Goethe
|
||||
- value: Royal Library of Prussia
|
||||
|
||||
comments:
|
||||
- Used for provenance research in rare book collections
|
||||
- Links library items to historical owners
|
||||
- Multiple bookplates may appear in single volume
|
||||
|
||||
examples:
|
||||
- value:
|
||||
id: https://nde.nl/ontology/hc/bookplate/kb-exlibris-goethe-001
|
||||
has_or_had_label: "Ex Libris J.W. von Goethe"
|
||||
description: Armorial bookplate with oak wreath, early 19th century
|
||||
has_or_had_owner: Johann Wolfgang von Goethe
|
||||
description: Goethe bookplate in rare book collection
|
||||
|
|
@ -12,7 +12,7 @@ imports:
|
|||
- ../slots/revision_date
|
||||
- ../slots/has_approval_date
|
||||
- ../slots/has_or_had_acquisition_budget
|
||||
- ../slots/approved_by
|
||||
- ../slots/is_or_was_approved_by # MIGRATED: was ../slots/approved_by (2026-01-15)
|
||||
- ../slots/budget_currency
|
||||
- ../slots/has_or_had_description
|
||||
- ../slots/has_or_had_label
|
||||
|
|
@ -44,7 +44,8 @@ imports:
|
|||
- ../slots/was_generated_by
|
||||
- ./SpecificityAnnotation
|
||||
- ./TemplateSpecificityScores
|
||||
- ../slots/was_approved_by
|
||||
- ./Approver # Added for is_or_was_approved_by migration (2026-01-15)
|
||||
# REMOVED: ../slots/was_approved_by - migrated to is_or_was_approved_by (2026-01-15)
|
||||
prefixes:
|
||||
linkml: https://w3id.org/linkml/
|
||||
hc: https://nde.nl/ontology/hc/
|
||||
|
|
@ -92,7 +93,7 @@ classes:
|
|||
slots:
|
||||
- has_or_had_acquisition_budget
|
||||
- has_approval_date
|
||||
- approved_by
|
||||
- is_or_was_approved_by # MIGRATED: was approved_by (2026-01-15)
|
||||
- budget_currency
|
||||
- has_or_had_description
|
||||
- has_or_had_label
|
||||
|
|
@ -244,7 +245,8 @@ classes:
|
|||
has_approval_date:
|
||||
range: date
|
||||
required: false
|
||||
was_approved_by:
|
||||
is_or_was_is_or_was_approved_by: # MIGRATED: was was_approved_by (2026-01-15)
|
||||
description: Agent (person/organization) that approved this budget
|
||||
range: string
|
||||
required: false
|
||||
budget_status:
|
||||
|
|
@ -316,7 +318,7 @@ classes:
|
|||
internal_funding: 25000000.0
|
||||
endowment_draw: 5000000.0
|
||||
approval_date: '2023-11-15'
|
||||
approved_by: Board of Directors
|
||||
is_or_was_approved_by: Board of Directors
|
||||
budget_status: ACTIVE
|
||||
refers_to_custodian: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804
|
||||
description: Major museum annual operating budget
|
||||
|
|
@ -338,7 +340,7 @@ classes:
|
|||
external_funding: 6000000.0
|
||||
internal_funding: 2500000.0
|
||||
approval_date: '2024-03-01'
|
||||
approved_by: Province of Noord-Holland
|
||||
is_or_was_approved_by: Province of Noord-Holland
|
||||
budget_status: ACTIVE
|
||||
refers_to_custodian: https://nde.nl/ontology/hc/nl-nh-haa-a-nha
|
||||
description: Regional archive government-funded budget
|
||||
|
|
|
|||
|
|
@ -26,7 +26,9 @@ imports:
|
|||
- ../slots/has_or_had_description
|
||||
- ../slots/has_or_had_provenance
|
||||
- ../slots/has_or_had_type
|
||||
- ../slots/bookplate
|
||||
# bookplate REMOVED - migrated to includes_or_included with Bookplate class (Rule 53)
|
||||
- ../slots/includes_or_included
|
||||
- ./Bookplate
|
||||
- ./BindingType
|
||||
- ../slots/call_number
|
||||
- ../slots/carrier_type
|
||||
|
|
@ -112,7 +114,8 @@ classes:
|
|||
- has_or_had_description
|
||||
- has_or_had_provenance
|
||||
- has_or_had_type
|
||||
- bookplate
|
||||
# bookplate REMOVED - migrated to includes_or_included (Rule 53)
|
||||
- includes_or_included
|
||||
- call_number
|
||||
- carrier_type
|
||||
- carries_information
|
||||
|
|
@ -344,12 +347,20 @@ classes:
|
|||
examples:
|
||||
- value: John Dee
|
||||
- value: Unknown 17th-century reader
|
||||
bookplate:
|
||||
includes_or_included:
|
||||
description: >-
|
||||
MIGRATED from bookplate (Rule 53).
|
||||
Bookplate(s) present in the volume, indicating ownership.
|
||||
Range narrowed to Bookplate class.
|
||||
required: false
|
||||
range: string
|
||||
range: Bookplate
|
||||
multivalued: true
|
||||
inlined_as_list: true
|
||||
examples:
|
||||
- value: Armorial bookplate of the Earl of Pembroke
|
||||
- value:
|
||||
id: https://nde.nl/ontology/hc/bookplate/pembroke-001
|
||||
has_or_had_label: "Ex Libris Earl of Pembroke"
|
||||
description: Armorial bookplate of the Earl of Pembroke
|
||||
ownership_stamp:
|
||||
required: false
|
||||
range: string
|
||||
|
|
|
|||
|
|
@ -0,0 +1,106 @@
|
|||
id: https://nde.nl/ontology/hc/class/Taxon
|
||||
name: taxon_class
|
||||
title: Taxon Class
|
||||
description: >-
|
||||
Biological taxon (species, genus, family, etc.) associated with heritage objects.
|
||||
|
||||
Follows Schema.org Taxon pattern for biological classification.
|
||||
Used primarily for natural history collections.
|
||||
|
||||
prefixes:
|
||||
linkml: https://w3id.org/linkml/
|
||||
hc: https://nde.nl/ontology/hc/
|
||||
schema: http://schema.org/
|
||||
dwc: http://rs.tdwg.org/dwc/terms/
|
||||
skos: http://www.w3.org/2004/02/skos/core#
|
||||
|
||||
default_prefix: hc
|
||||
|
||||
imports:
|
||||
- linkml:types
|
||||
- ../slots/id
|
||||
- ../slots/has_or_had_label
|
||||
- ../slots/description
|
||||
- ../slots/specificity_annotation
|
||||
- ../slots/template_specificity
|
||||
- ./SpecificityAnnotation
|
||||
- ./TemplateSpecificityScores
|
||||
|
||||
classes:
|
||||
Taxon:
|
||||
class_uri: schema:Taxon
|
||||
description: >-
|
||||
A biological taxon (species, genus, family, order, etc.) that can be
|
||||
associated with heritage objects in natural history collections.
|
||||
|
||||
**USE CASES**:
|
||||
|
||||
1. **Specimen Classification**: Link BiologicalObject to its taxonomic identification
|
||||
2. **Collection Scope**: Define taxa covered by a natural history collection
|
||||
3. **Research Context**: Document species studied in research archives
|
||||
|
||||
**DARWIN CORE ALIGNMENT**:
|
||||
|
||||
Uses Darwin Core terms for taxonomic data:
|
||||
- dwc:scientificName - Full scientific name
|
||||
- dwc:taxonRank - Level in hierarchy (species, genus, etc.)
|
||||
- dwc:kingdom, dwc:phylum, dwc:class, dwc:order, dwc:family, dwc:genus
|
||||
|
||||
**EXTERNAL IDENTIFIERS**:
|
||||
|
||||
Link to authoritative taxonomic databases:
|
||||
- GBIF (Global Biodiversity Information Facility)
|
||||
- NCBI Taxonomy
|
||||
- Wikidata (Q-numbers for taxa)
|
||||
- BOLD (Barcode of Life)
|
||||
|
||||
exact_mappings:
|
||||
- schema:Taxon
|
||||
- dwc:Taxon
|
||||
|
||||
close_mappings:
|
||||
- skos:Concept
|
||||
|
||||
slots:
|
||||
- id
|
||||
- has_or_had_label
|
||||
- description
|
||||
- specificity_annotation
|
||||
- template_specificity
|
||||
|
||||
slot_usage:
|
||||
id:
|
||||
identifier: true
|
||||
required: true
|
||||
range: uriorcurie
|
||||
pattern: ^https://nde\.nl/ontology/hc/taxon/[a-z0-9-]+$
|
||||
examples:
|
||||
- value: https://nde.nl/ontology/hc/taxon/raphus-cucullatus
|
||||
description: Dodo (extinct species)
|
||||
has_or_had_label:
|
||||
description: Scientific name of the taxon.
|
||||
range: string
|
||||
required: true
|
||||
examples:
|
||||
- value: Raphus cucullatus
|
||||
description: Dodo scientific name
|
||||
- value: Homo sapiens
|
||||
description: Human scientific name
|
||||
description:
|
||||
range: string
|
||||
examples:
|
||||
- value: Extinct flightless bird endemic to Mauritius
|
||||
|
||||
comments:
|
||||
- Used for taxonomic associations in natural history collections
|
||||
- Link to GBIF, NCBI, or Wikidata for authoritative identifiers
|
||||
- Range should be narrowed via slot_usage when used
|
||||
|
||||
examples:
|
||||
- value:
|
||||
id: https://nde.nl/ontology/hc/taxon/raphus-cucullatus
|
||||
has_or_had_label: Raphus cucullatus
|
||||
description: >-
|
||||
Dodo - an extinct flightless bird that was endemic to the island
|
||||
of Mauritius. Last confirmed sighting in 1662.
|
||||
description: Dodo taxon for natural history specimen
|
||||
|
|
@ -8,8 +8,9 @@ imports:
|
|||
- ./SpecificityAnnotation
|
||||
- ../slots/template_specificity
|
||||
- ./TemplateSpecificityScores
|
||||
- ./AutoGeneration # Added for is_or_was_created_through migration (2026-01-15)
|
||||
- ../enums/ChapterSourceEnum
|
||||
- ../slots/auto_generated
|
||||
- ../slots/is_or_was_created_through # MIGRATED: was ../slots/auto_generated (2026-01-15)
|
||||
- ../slots/chapter_description
|
||||
- ../slots/chapter_end_seconds
|
||||
- ../slots/chapter_end_time
|
||||
|
|
@ -67,7 +68,7 @@ classes:
|
|||
related_mappings:
|
||||
- wikidata:Q1454986
|
||||
slots:
|
||||
- auto_generated
|
||||
- is_or_was_created_through # MIGRATED: was auto_generated (2026-01-15)
|
||||
- chapter_description
|
||||
- chapter_end_seconds
|
||||
- chapter_end_time
|
||||
|
|
@ -147,7 +148,8 @@ classes:
|
|||
examples:
|
||||
- value: PT5M0S
|
||||
description: 5 minutes
|
||||
is_auto_generated:
|
||||
is_or_was_created_through: # MIGRATED: was is_auto_generated (2026-01-15)
|
||||
description: Whether this chapter was auto-generated by AI/platform algorithms
|
||||
range: boolean
|
||||
required: false
|
||||
examples:
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ prefixes:
|
|||
imports:
|
||||
- linkml:types
|
||||
- ./WebClaim
|
||||
- ../slots/archived_at
|
||||
- ../slots/is_or_was_is_or_was_archived_at # MIGRATED: was ../slots/is_or_was_archived_at (2026-01-15)
|
||||
- ../slots/extraction_confidence
|
||||
- ../slots/extraction_note
|
||||
- ../slots/source_url
|
||||
|
|
@ -58,7 +58,7 @@ classes:
|
|||
\ DETECTION**:\n\nWebObservation supports tracking changes over time:\n- Link to `previous_observation` for same URL\n\
|
||||
- `content_changed` flag for quick change detection\n- `content_hash` for integrity verification\n- Compare `last_modified`\
|
||||
\ and `etag` across observations\n\n**ARCHIVAL INTEGRATION**:\n\nFor long-term preservation, link to archived copies:\n\
|
||||
- `archived_at` can point to Wayback Machine, Archive.today, etc.\n- Ensures cited web content remains accessible\n\n\
|
||||
- `is_or_was_archived_at` can point to Wayback Machine, Archive.today, etc.\n- Ensures cited web content remains accessible\n\n\
|
||||
**EXAMPLES**:\n\n1. **EU Funding Portal Observation**\n - source_url: https://ec.europa.eu/.../topic-details/horizon-cl2-2025-heritage-01\n\
|
||||
\ - retrieved_on: 2025-11-29T10:30:00Z\n - retrieved_by: \"glam-harvester/1.0\"\n - extraction_confidence: 0.95\n\
|
||||
\ \n2. **Heritage Organisation Website**\n - source_url: https://www.heritagefund.org.uk/funding/medium-grants\n\
|
||||
|
|
@ -75,7 +75,7 @@ classes:
|
|||
- pav:sourceAccessedAt
|
||||
- dcterms:source
|
||||
slots:
|
||||
- archived_at
|
||||
- is_or_was_is_or_was_archived_at # MIGRATED: was is_or_was_archived_at (2026-01-15)
|
||||
- claim
|
||||
- content_changed
|
||||
- content_hash
|
||||
|
|
@ -99,7 +99,7 @@ classes:
|
|||
- WebObservation is a prov:Activity documenting web content retrieval
|
||||
- Integrates PROV-O for provenance and PAV for retrieval-specific properties
|
||||
- Supports change detection via content_hash, previous_observation, content_changed
|
||||
- Links to archived copies via archived_at for long-term citation
|
||||
- Links to archived copies via is_or_was_archived_at for long-term citation
|
||||
- observed_entities links observation to extracted data (prov:generated)
|
||||
see_also:
|
||||
- https://www.w3.org/TR/prov-o/
|
||||
|
|
@ -121,7 +121,7 @@ classes:
|
|||
stated. Eligibility criteria parsed from HTML sections.
|
||||
observed_entity:
|
||||
- https://nde.nl/ontology/hc/call/ec/cl2-2025-heritage-01
|
||||
archived_at: https://web.archive.org/web/20251129103000/https://ec.europa.eu/info/funding-tenders/opportunities/portal/screen/opportunities/topic-details/horizon-cl2-2025-heritage-01
|
||||
is_or_was_archived_at: https://web.archive.org/web/20251129103000/https://ec.europa.eu/info/funding-tenders/opportunities/portal/screen/opportunities/topic-details/horizon-cl2-2025-heritage-01
|
||||
description: Web observation of Horizon Europe CL2 2025 heritage call
|
||||
- value:
|
||||
observation_id: https://nde.nl/ontology/hc/observation/web/2025-11-28/nlhf-medium-grants
|
||||
|
|
|
|||
|
|
@ -0,0 +1,44 @@
|
|||
id: https://nde.nl/ontology/hc/slot/is_or_was_approved_by
|
||||
name: is_or_was_approved_by_slot
|
||||
title: Is Or Was Approved By Slot
|
||||
prefixes:
|
||||
linkml: https://w3id.org/linkml/
|
||||
hc: https://nde.nl/ontology/hc/
|
||||
prov: http://www.w3.org/ns/prov#
|
||||
schema: http://schema.org/
|
||||
imports:
|
||||
- linkml:types
|
||||
default_prefix: hc
|
||||
slots:
|
||||
is_or_was_approved_by:
|
||||
description: >-
|
||||
The agent (person or organization) that approved or authorized something.
|
||||
|
||||
**SEMANTIC PATTERN**:
|
||||
|
||||
This slot follows the RiC-O temporal predicate pattern (is_or_was_*)
|
||||
to indicate that approval is a historical event - something was approved
|
||||
by someone at some point in time.
|
||||
|
||||
**REPLACES**:
|
||||
|
||||
- `approved_by` - Simple string field for approver name
|
||||
|
||||
**RANGE OPTIONS**:
|
||||
|
||||
- string: Simple approver name (backwards compatible)
|
||||
- Approver: Structured approver with identity link
|
||||
|
||||
Classes should use slot_usage to specify appropriate range.
|
||||
|
||||
slot_uri: prov:wasAttributedTo
|
||||
range: string
|
||||
exact_mappings:
|
||||
- prov:wasAttributedTo
|
||||
close_mappings:
|
||||
- schema:author
|
||||
examples:
|
||||
- value: "Museum Director"
|
||||
description: Role-based approver
|
||||
- value: "Board of Directors"
|
||||
description: Organizational body approver
|
||||
|
|
@ -0,0 +1,44 @@
|
|||
id: https://nde.nl/ontology/hc/slot/is_or_was_archived_at
|
||||
name: is_or_was_archived_at_slot
|
||||
title: Is Or Was Archived At Slot
|
||||
prefixes:
|
||||
linkml: https://w3id.org/linkml/
|
||||
hc: https://nde.nl/ontology/hc/
|
||||
schema: http://schema.org/
|
||||
prov: http://www.w3.org/ns/prov#
|
||||
imports:
|
||||
- linkml:types
|
||||
default_prefix: hc
|
||||
slots:
|
||||
is_or_was_archived_at:
|
||||
description: >-
|
||||
Location or URL where content was archived or preserved.
|
||||
|
||||
**SEMANTIC PATTERN**:
|
||||
|
||||
This slot follows the RiC-O temporal predicate pattern (is_or_was_*)
|
||||
to indicate that archival location may change over time or refer to
|
||||
historical archival events.
|
||||
|
||||
**REPLACES**:
|
||||
|
||||
- `archived_at` - URL to archived version (e.g., Wayback Machine)
|
||||
- `was_archived_at` - Similar pattern
|
||||
|
||||
**USE CASES**:
|
||||
|
||||
1. **Web Archival**: Link to Internet Archive/Wayback Machine snapshots
|
||||
2. **Platform Preservation**: Where deprecated platforms are preserved
|
||||
3. **Content Snapshots**: Historical versions of web content
|
||||
|
||||
slot_uri: schema:archivedAt
|
||||
range: uri
|
||||
exact_mappings:
|
||||
- schema:archivedAt
|
||||
close_mappings:
|
||||
- prov:atLocation
|
||||
examples:
|
||||
- value: "https://web.archive.org/web/20211231/https://example.nl/exhibition/"
|
||||
description: Wayback Machine archived URL
|
||||
- value: "https://archive.org/details/example-collection"
|
||||
description: Internet Archive collection
|
||||
|
|
@ -22,7 +22,6 @@
|
|||
"area_hectares.yaml",
|
||||
"arrangement_notes.yaml",
|
||||
"asserted_by.yaml",
|
||||
"associated_taxa.yaml",
|
||||
"audio_event_segments.yaml",
|
||||
"authors.yaml",
|
||||
"auto_generated.yaml",
|
||||
|
|
@ -45,9 +44,7 @@
|
|||
"bio_type_classification.yaml",
|
||||
"birth_date.yaml",
|
||||
"birth_place.yaml",
|
||||
"bold_id.yaml",
|
||||
"booking_required.yaml",
|
||||
"bookplate.yaml",
|
||||
"borrower.yaml",
|
||||
"borrower_contact.yaml",
|
||||
"bounding_box.yaml",
|
||||
|
|
|
|||
|
|
@ -349,10 +349,10 @@ fixes:
|
|||
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/api_available
|
||||
processed:
|
||||
status: false
|
||||
timestamp: null
|
||||
session: null
|
||||
notes: "Requires AvailabilityStatus class creation"
|
||||
status: true
|
||||
timestamp: '2026-01-15T12:00:00Z'
|
||||
session: "session-2026-01-15-availability-migration"
|
||||
notes: "FULLY MIGRATED: CollectionManagementSystem - api_available and has_api_available_flag REMOVED, using is_or_was_available. Created AvailabilityStatus class. Both slots archived to archive/."
|
||||
revision:
|
||||
- label: is_or_was_available
|
||||
type: slot
|
||||
|
|
@ -361,10 +361,10 @@ fixes:
|
|||
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/api_documentation
|
||||
processed:
|
||||
status: false
|
||||
timestamp: null
|
||||
session: null
|
||||
notes: "Requires Documentation class creation"
|
||||
status: true
|
||||
timestamp: '2026-01-15T12:15:00Z'
|
||||
session: "session-2026-01-15-documentation-migration"
|
||||
notes: "FULLY MIGRATED: AuxiliaryDigitalPlatform - api_documentation and has_api_documentation_url REMOVED, using has_or_had_documentation. Created Documentation class. Both slots archived to archive/."
|
||||
revision:
|
||||
- label: has_or_had_documentation
|
||||
type: slot
|
||||
|
|
@ -530,10 +530,14 @@ fixes:
|
|||
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/associated_taxa
|
||||
processed:
|
||||
status: false
|
||||
timestamp: null
|
||||
session: null
|
||||
notes: "Maps to existing Taxon class"
|
||||
status: true
|
||||
timestamp: '2026-01-14T22:45:00Z'
|
||||
session: "session-2026-01-14-association-migration"
|
||||
notes: >-
|
||||
FULLY MIGRATED: BiologicalObject - associated_taxa REMOVED.
|
||||
Replaced with is_or_was_associated_with slot (created this session).
|
||||
Created Taxon class (schema:Taxon alignment) for range narrowing.
|
||||
Slot archived to modules/slots/archive/associated_taxa_archived_20260114.yaml (Rule 53).
|
||||
revision:
|
||||
- label: is_or_was_associated_with
|
||||
type: slot
|
||||
|
|
@ -578,10 +582,10 @@ fixes:
|
|||
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/auto_generated
|
||||
processed:
|
||||
status: false
|
||||
timestamp: null
|
||||
session: null
|
||||
notes: "Requires AutoGeneration class creation"
|
||||
status: true
|
||||
timestamp: '2026-01-15T12:30:00Z'
|
||||
session: "session-2026-01-15-autogeneration-migration"
|
||||
notes: "FULLY MIGRATED: VideoSubtitle + VideoChapter - auto_generated and is_auto_generated REMOVED, using is_or_was_created_through. Created AutoGeneration class. Both slots archived to archive/."
|
||||
revision:
|
||||
- label: is_or_was_created_through
|
||||
type: slot
|
||||
|
|
@ -847,10 +851,14 @@ fixes:
|
|||
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/bold_id
|
||||
processed:
|
||||
status: false
|
||||
timestamp: null
|
||||
session: null
|
||||
notes: "Requires BOLDIdentifier class creation"
|
||||
status: true
|
||||
timestamp: '2026-01-14T23:00:00Z'
|
||||
session: "session-2026-01-14-identifier-migration"
|
||||
notes: >-
|
||||
FULLY MIGRATED: BiologicalObject - bold_id REMOVED.
|
||||
Created BOLDIdentifier class (Barcode of Life Data System identifier).
|
||||
Replaced with has_or_had_identifier slot with range BOLDIdentifier.
|
||||
Slot archived to modules/slots/archive/bold_id_archived_20260114.yaml (Rule 53).
|
||||
revision:
|
||||
- label: has_or_had_identifier
|
||||
type: slot
|
||||
|
|
@ -879,10 +887,14 @@ fixes:
|
|||
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/bookplate
|
||||
processed:
|
||||
status: false
|
||||
timestamp: null
|
||||
session: null
|
||||
notes: "Requires Bookplate class creation"
|
||||
status: true
|
||||
timestamp: '2026-01-14T23:15:00Z'
|
||||
session: "session-2026-01-14-bookplate-migration"
|
||||
notes: >-
|
||||
FULLY MIGRATED: InformationCarrier - bookplate REMOVED.
|
||||
Created Bookplate class (bf:Bookplate alignment) for provenance/ownership marks.
|
||||
Replaced with includes_or_included slot with range Bookplate.
|
||||
Slot archived to modules/slots/archive/bookplate_archived_20260114.yaml (Rule 53).
|
||||
revision:
|
||||
- label: includes_or_included
|
||||
type: slot
|
||||
|
|
|
|||
|
|
@ -1038,9 +1038,23 @@ const TEXT = {
|
|||
clearSearch: { nl: 'Zoekopdracht wissen', en: 'Clear search' },
|
||||
// Slot exports (classes using this slot)
|
||||
exports: { nl: 'Exports', en: 'Exports' },
|
||||
classesUsingSlot: { nl: 'Klassen die deze slot gebruiken:', en: 'Classes using this slot:' },
|
||||
classesWithSlotUsage: { nl: 'Klassen met slot_usage overschrijvingen:', en: 'Classes with slot_usage overrides:' },
|
||||
classesUsingSlot: { nl: 'Klassen die deze slot gebruiken', en: 'Classes using this slot' },
|
||||
classesWithSlotUsage: { nl: 'Klassen met slot_usage overschrijvingen', en: 'Classes with slot_usage overrides' },
|
||||
noClassesUsingSlot: { nl: 'Geen klassen gebruiken deze slot.', en: 'No classes use this slot.' },
|
||||
// Slot imports/exports (dependencies)
|
||||
slotImports: { nl: 'Imports', en: 'Imports' },
|
||||
slotImportsTooltip: {
|
||||
nl: 'Toont welke klassen en enumeraties deze slot als range type gebruikt',
|
||||
en: 'Shows what classes and enums this slot depends on as range type'
|
||||
},
|
||||
slotExports: { nl: 'Exports', en: 'Exports' },
|
||||
slotExportsTooltip: {
|
||||
nl: 'Toont welke klassen deze slot gebruiken',
|
||||
en: 'Shows what classes use this slot'
|
||||
},
|
||||
rangeTypeLabel: { nl: 'Range Type', en: 'Range Type' },
|
||||
anyOfTypesLabel: { nl: 'Any Of Types', en: 'Any Of Types' },
|
||||
noSlotImports: { nl: 'Deze slot heeft geen afhankelijkheden van klassen of enumeraties.', en: 'This slot has no dependencies on classes or enums.' },
|
||||
};
|
||||
|
||||
// Dynamically discover schema files from the modules directory
|
||||
|
|
|
|||
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
"generated": "2026-01-14T12:28:33.699Z",
|
||||
"generated": "2026-01-14T14:05:38.322Z",
|
||||
"schemaRoot": "/schemas/20251121/linkml",
|
||||
"totalFiles": 2884,
|
||||
"categoryCounts": {
|
||||
"main": 4,
|
||||
"class": 675,
|
||||
"class": 679,
|
||||
"enum": 147,
|
||||
"slot": 2054,
|
||||
"slot": 2050,
|
||||
"module": 4
|
||||
},
|
||||
"categories": [
|
||||
|
|
@ -160,6 +160,11 @@
|
|||
"path": "modules/classes/Appellation.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "Approver",
|
||||
"path": "modules/classes/Approver.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "ArchitecturalArchive",
|
||||
"path": "modules/classes/ArchitecturalArchive.yaml",
|
||||
|
|
@ -365,6 +370,16 @@
|
|||
"path": "modules/classes/BiologicalObject.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "BOLDIdentifier",
|
||||
"path": "modules/classes/BOLDIdentifier.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "Bookplate",
|
||||
"path": "modules/classes/Bookplate.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "BranchOffice",
|
||||
"path": "modules/classes/BranchOffice.yaml",
|
||||
|
|
@ -2940,6 +2955,11 @@
|
|||
"path": "modules/classes/TasteScentHeritageType.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "Taxon",
|
||||
"path": "modules/classes/Taxon.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "TelevisionArchive",
|
||||
"path": "modules/classes/TelevisionArchive.yaml",
|
||||
|
|
@ -4217,11 +4237,6 @@
|
|||
"path": "modules/slots/approximate.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "archived_at",
|
||||
"path": "modules/slots/archived_at.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "area_hectares",
|
||||
"path": "modules/slots/area_hectares.yaml",
|
||||
|
|
@ -4237,11 +4252,6 @@
|
|||
"path": "modules/slots/asserted_by.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "associated_taxa",
|
||||
"path": "modules/slots/associated_taxa.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "audio_event_segments",
|
||||
"path": "modules/slots/audio_event_segments.yaml",
|
||||
|
|
@ -4252,11 +4262,6 @@
|
|||
"path": "modules/slots/authors.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "auto_generated",
|
||||
"path": "modules/slots/auto_generated.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "auxiliary_places",
|
||||
"path": "modules/slots/auxiliary_places.yaml",
|
||||
|
|
@ -4322,16 +4327,6 @@
|
|||
"path": "modules/slots/birth_place.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "bold_id",
|
||||
"path": "modules/slots/bold_id.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "bookplate",
|
||||
"path": "modules/slots/bookplate.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "borrower",
|
||||
"path": "modules/slots/borrower.yaml",
|
||||
|
|
@ -9362,11 +9357,6 @@
|
|||
"path": "modules/slots/is_approximate.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "is_auto_generated",
|
||||
"path": "modules/slots/is_auto_generated.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "is_auxiliary_of_place",
|
||||
"path": "modules/slots/is_auxiliary_of_place.yaml",
|
||||
|
|
@ -9502,11 +9492,21 @@
|
|||
"path": "modules/slots/is_or_was_also_allocation_agency.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "is_or_was_approved_by",
|
||||
"path": "modules/slots/is_or_was_approved_by.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "is_or_was_archive_department_of",
|
||||
"path": "modules/slots/is_or_was_archive_department_of.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "is_or_was_archived_at",
|
||||
"path": "modules/slots/is_or_was_archived_at.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "is_or_was_archived_in",
|
||||
"path": "modules/slots/is_or_was_archived_in.yaml",
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ imports:
|
|||
- ../slots/revision_date
|
||||
- ../slots/has_approval_date
|
||||
- ../slots/has_or_had_acquisition_budget
|
||||
- ../slots/approved_by
|
||||
- ../slots/is_or_was_approved_by # MIGRATED: was ../slots/approved_by (2026-01-15)
|
||||
- ../slots/budget_currency
|
||||
- ../slots/has_or_had_description
|
||||
- ../slots/has_or_had_label
|
||||
|
|
@ -44,7 +44,8 @@ imports:
|
|||
- ../slots/was_generated_by
|
||||
- ./SpecificityAnnotation
|
||||
- ./TemplateSpecificityScores
|
||||
- ../slots/was_approved_by
|
||||
- ./Approver # Added for is_or_was_approved_by migration (2026-01-15)
|
||||
# REMOVED: ../slots/was_approved_by - migrated to is_or_was_approved_by (2026-01-15)
|
||||
prefixes:
|
||||
linkml: https://w3id.org/linkml/
|
||||
hc: https://nde.nl/ontology/hc/
|
||||
|
|
@ -92,7 +93,7 @@ classes:
|
|||
slots:
|
||||
- has_or_had_acquisition_budget
|
||||
- has_approval_date
|
||||
- approved_by
|
||||
- is_or_was_approved_by # MIGRATED: was approved_by (2026-01-15)
|
||||
- budget_currency
|
||||
- has_or_had_description
|
||||
- has_or_had_label
|
||||
|
|
@ -244,7 +245,8 @@ classes:
|
|||
has_approval_date:
|
||||
range: date
|
||||
required: false
|
||||
was_approved_by:
|
||||
is_or_was_is_or_was_approved_by: # MIGRATED: was was_approved_by (2026-01-15)
|
||||
description: Agent (person/organization) that approved this budget
|
||||
range: string
|
||||
required: false
|
||||
budget_status:
|
||||
|
|
@ -316,7 +318,7 @@ classes:
|
|||
internal_funding: 25000000.0
|
||||
endowment_draw: 5000000.0
|
||||
approval_date: '2023-11-15'
|
||||
approved_by: Board of Directors
|
||||
is_or_was_approved_by: Board of Directors
|
||||
budget_status: ACTIVE
|
||||
refers_to_custodian: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804
|
||||
description: Major museum annual operating budget
|
||||
|
|
@ -338,7 +340,7 @@ classes:
|
|||
external_funding: 6000000.0
|
||||
internal_funding: 2500000.0
|
||||
approval_date: '2024-03-01'
|
||||
approved_by: Province of Noord-Holland
|
||||
is_or_was_approved_by: Province of Noord-Holland
|
||||
budget_status: ACTIVE
|
||||
refers_to_custodian: https://nde.nl/ontology/hc/nl-nh-haa-a-nha
|
||||
description: Regional archive government-funded budget
|
||||
|
|
|
|||
|
|
@ -347,12 +347,20 @@ classes:
|
|||
examples:
|
||||
- value: John Dee
|
||||
- value: Unknown 17th-century reader
|
||||
bookplate:
|
||||
includes_or_included:
|
||||
description: >-
|
||||
MIGRATED from bookplate (Rule 53).
|
||||
Bookplate(s) present in the volume, indicating ownership.
|
||||
Range narrowed to Bookplate class.
|
||||
required: false
|
||||
range: string
|
||||
range: Bookplate
|
||||
multivalued: true
|
||||
inlined_as_list: true
|
||||
examples:
|
||||
- value: Armorial bookplate of the Earl of Pembroke
|
||||
- value:
|
||||
id: https://nde.nl/ontology/hc/bookplate/pembroke-001
|
||||
has_or_had_label: "Ex Libris Earl of Pembroke"
|
||||
description: Armorial bookplate of the Earl of Pembroke
|
||||
ownership_stamp:
|
||||
required: false
|
||||
range: string
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ imports:
|
|||
- ../slots/light_max_lux
|
||||
- ../slots/particulate_max
|
||||
- ../slots/pest_management_required
|
||||
- ../slots/policy_approved_by
|
||||
- ../slots/is_or_was_approved_by # MIGRATED: was ../slots/policy_approved_by (2026-01-15)
|
||||
- ../slots/policy_description
|
||||
- ../slots/policy_effective_from
|
||||
- ../slots/policy_effective_to
|
||||
|
|
@ -46,6 +46,7 @@ imports:
|
|||
- ../slots/uv_filtered_required
|
||||
- ./SpecificityAnnotation
|
||||
- ./TemplateSpecificityScores
|
||||
- ./Approver # Added for is_or_was_approved_by migration (2026-01-15)
|
||||
classes:
|
||||
StorageConditionPolicy:
|
||||
class_uri: odrl:Policy
|
||||
|
|
@ -91,7 +92,7 @@ classes:
|
|||
- note
|
||||
- particulate_max
|
||||
- pest_management_required
|
||||
- policy_approved_by
|
||||
- is_or_was_approved_by # MIGRATED: was policy_approved_by (2026-01-15)
|
||||
- policy_description
|
||||
- policy_effective_from
|
||||
- policy_effective_to
|
||||
|
|
|
|||
|
|
@ -45,7 +45,6 @@
|
|||
"birth_date.yaml",
|
||||
"birth_place.yaml",
|
||||
"booking_required.yaml",
|
||||
"bookplate.yaml",
|
||||
"borrower.yaml",
|
||||
"borrower_contact.yaml",
|
||||
"bounding_box.yaml",
|
||||
|
|
|
|||
|
|
@ -887,10 +887,14 @@ fixes:
|
|||
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/bookplate
|
||||
processed:
|
||||
status: false
|
||||
timestamp: null
|
||||
session: null
|
||||
notes: "Requires Bookplate class creation"
|
||||
status: true
|
||||
timestamp: '2026-01-14T23:15:00Z'
|
||||
session: "session-2026-01-14-bookplate-migration"
|
||||
notes: >-
|
||||
FULLY MIGRATED: InformationCarrier - bookplate REMOVED.
|
||||
Created Bookplate class (bf:Bookplate alignment) for provenance/ownership marks.
|
||||
Replaced with includes_or_included slot with range Bookplate.
|
||||
Slot archived to modules/slots/archive/bookplate_archived_20260114.yaml (Rule 53).
|
||||
revision:
|
||||
- label: includes_or_included
|
||||
type: slot
|
||||
|
|
|
|||
|
|
@ -1456,25 +1456,26 @@ async def add_manual_candidate(request: AddCandidateRequest):
|
|||
message=f"Candidate {linkedin_slug} already exists for this profile"
|
||||
)
|
||||
|
||||
# Fetch LinkedIn profile using Exa API (if available)
|
||||
# Fetch LinkedIn profile using configured providers (exa, linkup, or both)
|
||||
linkedin_url = f"https://www.linkedin.com/in/{linkedin_slug}"
|
||||
profile_data = None
|
||||
entity_filepath = None
|
||||
exa_response = None
|
||||
fetch_response = None
|
||||
provider_used = None
|
||||
|
||||
if EXA_API_KEY:
|
||||
exa_response = await fetch_linkedin_profile_exa(linkedin_url)
|
||||
if exa_response:
|
||||
profile_data = parse_linkedin_profile_from_exa(exa_response)
|
||||
# Save entity profile file
|
||||
source_info = {
|
||||
'linkedin_url': linkedin_url,
|
||||
'wcms_name': wcms_data.get('wcms_name', ''),
|
||||
'wcms_institution': wcms_data.get('wcms_email_domain', '')
|
||||
}
|
||||
entity_filepath = await save_entity_profile(
|
||||
linkedin_slug, profile_data, exa_response, source_info
|
||||
)
|
||||
fetch_response = await fetch_linkedin_profile(linkedin_url)
|
||||
if fetch_response:
|
||||
provider_used = fetch_response.get('provider', 'unknown')
|
||||
profile_data = parse_linkedin_profile_from_exa(fetch_response) # Parser works for both providers
|
||||
# Save entity profile file
|
||||
source_info = {
|
||||
'linkedin_url': linkedin_url,
|
||||
'wcms_name': wcms_data.get('wcms_name', ''),
|
||||
'wcms_institution': wcms_data.get('wcms_email_domain', '')
|
||||
}
|
||||
entity_filepath = await save_entity_profile(
|
||||
linkedin_slug, profile_data, fetch_response, source_info
|
||||
)
|
||||
|
||||
# Generate a PPID for the LinkedIn candidate
|
||||
# Format: ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_NAME-SLUG
|
||||
|
|
@ -1516,7 +1517,7 @@ async def add_manual_candidate(request: AddCandidateRequest):
|
|||
"display_name": display_name,
|
||||
"name_romanized": None,
|
||||
"name_tokens": [t.upper() for t in display_name.split()],
|
||||
"source": "exa_extraction" if profile_data else "manual_entry"
|
||||
"source": f"{provider_used}_extraction" if profile_data else "manual_entry"
|
||||
},
|
||||
"linkedin_slug": linkedin_slug,
|
||||
"linkedin_headline": headline,
|
||||
|
|
@ -1527,7 +1528,7 @@ async def add_manual_candidate(request: AddCandidateRequest):
|
|||
"email_domain_matches_employer": False,
|
||||
"employer_name_overlap": [],
|
||||
"confidence_score": 0.6 if profile_data else 0.5, # Higher if we got profile data
|
||||
"match_signals": ["manual_entry", "exa_profile_fetched"] if profile_data else ["manual_entry"],
|
||||
"match_signals": ["manual_entry", f"{provider_used}_profile_fetched"] if profile_data else ["manual_entry"],
|
||||
"requires_review": True,
|
||||
"reviewed": False,
|
||||
"review_decision": None,
|
||||
|
|
|
|||
Loading…
Reference in a new issue