chore: trigger DSPy eval workflow
All checks were successful
Deploy Frontend / build-and-deploy (push) Successful in 4m13s

This commit is contained in:
kempersc 2026-01-11 22:40:23 +01:00
parent 75d53a006e
commit 5d3d8530b0
50 changed files with 1988 additions and 4777 deletions

View file

@ -1,5 +1,5 @@
{
"generated": "2026-01-11T20:42:55.546Z",
"generated": "2026-01-11T21:26:38.219Z",
"schemaRoot": "/schemas/20251121/linkml",
"totalFiles": 2869,
"categoryCounts": {
@ -3952,41 +3952,6 @@
"path": "modules/slots/accepts_or_accepted_visiting_scholar.yaml",
"category": "slot"
},
{
"name": "access_rights",
"path": "modules/slots/access_rights.yaml",
"category": "slot"
},
{
"name": "access_trigger_events",
"path": "modules/slots/access_trigger_events.yaml",
"category": "slot"
},
{
"name": "account_id",
"path": "modules/slots/account_id.yaml",
"category": "slot"
},
{
"name": "accumulation_date_end",
"path": "modules/slots/accumulation_date_end.yaml",
"category": "slot"
},
{
"name": "accumulation_date_start",
"path": "modules/slots/accumulation_date_start.yaml",
"category": "slot"
},
{
"name": "accuracy_meters",
"path": "modules/slots/accuracy_meters.yaml",
"category": "slot"
},
{
"name": "active_since",
"path": "modules/slots/active_since.yaml",
"category": "slot"
},
{
"name": "activities_societies",
"path": "modules/slots/activities_societies.yaml",
@ -5672,6 +5637,21 @@
"path": "modules/slots/custodian_only.yaml",
"category": "slot"
},
{
"name": "custodian_type_broader",
"path": "modules/slots/custodian_type_broader.yaml",
"category": "slot"
},
{
"name": "custodian_type_narrower",
"path": "modules/slots/custodian_type_narrower.yaml",
"category": "slot"
},
{
"name": "custodian_type_related",
"path": "modules/slots/custodian_type_related.yaml",
"category": "slot"
},
{
"name": "custody_history",
"path": "modules/slots/custody_history.yaml",
@ -5812,6 +5792,11 @@
"path": "modules/slots/defined_by_standard.yaml",
"category": "slot"
},
{
"name": "definition",
"path": "modules/slots/definition.yaml",
"category": "slot"
},
{
"name": "degree_name",
"path": "modules/slots/degree_name.yaml",
@ -6877,6 +6862,16 @@
"path": "modules/slots/financial_document_url.yaml",
"category": "slot"
},
{
"name": "finding_aid_access_restriction",
"path": "modules/slots/finding_aid_access_restriction.yaml",
"category": "slot"
},
{
"name": "finding_aid_description",
"path": "modules/slots/finding_aid_description.yaml",
"category": "slot"
},
{
"name": "finding_aid_note",
"path": "modules/slots/finding_aid_note.yaml",
@ -6887,6 +6882,11 @@
"path": "modules/slots/finding_aid_scope_note.yaml",
"category": "slot"
},
{
"name": "finding_aid_temporal_coverage",
"path": "modules/slots/finding_aid_temporal_coverage.yaml",
"category": "slot"
},
{
"name": "finding_aid_type",
"path": "modules/slots/finding_aid_type.yaml",
@ -7292,11 +7292,6 @@
"path": "modules/slots/has_accession_number.yaml",
"category": "slot"
},
{
"name": "has_account_identifier",
"path": "modules/slots/has_account_identifier.yaml",
"category": "slot"
},
{
"name": "has_accumulation_end_date",
"path": "modules/slots/has_accumulation_end_date.yaml",
@ -7332,11 +7327,6 @@
"path": "modules/slots/has_acquisition_source.yaml",
"category": "slot"
},
{
"name": "has_active_since_date",
"path": "modules/slots/has_active_since_date.yaml",
"category": "slot"
},
{
"name": "has_activity_description",
"path": "modules/slots/has_activity_description.yaml",
@ -8067,6 +8057,11 @@
"path": "modules/slots/has_or_had_accessibility_feature.yaml",
"category": "slot"
},
{
"name": "has_or_had_account_identifier",
"path": "modules/slots/has_or_had_account_identifier.yaml",
"category": "slot"
},
{
"name": "has_or_had_account_name",
"path": "modules/slots/has_or_had_account_name.yaml",
@ -9477,6 +9472,11 @@
"path": "modules/slots/is_or_was_access_restricted.yaml",
"category": "slot"
},
{
"name": "is_or_was_active_since",
"path": "modules/slots/is_or_was_active_since.yaml",
"category": "slot"
},
{
"name": "is_or_was_affected_by_event",
"path": "modules/slots/is_or_was_affected_by_event.yaml",

View file

@ -1,5 +1,5 @@
{
"generated": "2026-01-11T21:26:38.219Z",
"generated": "2026-01-11T21:40:23.628Z",
"schemaRoot": "/schemas/20251121/linkml",
"totalFiles": 2869,
"categoryCounts": {

View file

@ -20,33 +20,26 @@ imports:
- ../slots/template_specificity
- ./SpecificityAnnotation
- ./TemplateSpecificityScores
- ../enums/AllocationDomainEnum
classes:
AllocationAgency:
class_uri: org:FormalOrganization
description: "An organization that allocates identifiers within a specific geographic\
\ area \nand/or domain of heritage institutions.\n\n**Key Distinction from RegistrationAuthority:**\n\
\n- **RegistrationAuthority**: Maintains the GLOBAL registry for a standard\n\
\ - Example: Danish Agency for Culture and Palaces maintains global ISIL registry\n\
\ - Example: ISNI International Agency (WIPO) maintains global ISNI database\n\
\n- **AllocationAgency**: Allocates identifiers LOCALLY within constraints\n\
\ - Example: Koninklijke Bibliotheek allocates ISIL for Dutch public libraries\n\
\ - Example: OCLC allocates ISIL for Dutch academic libraries\n - Example:\
\ Nationaal Archief allocates ISIL for Dutch archives\n\n**Multi-Dimensional\
\ Scope:**\n\nAllocationAgencies have both:\n1. **Geographic scope**: Which\
\ country/region they serve\n2. **Domain scope**: Which types of institutions\
\ they serve\n\nThis allows multiple agencies per country, each serving different\
\ domains:\n- NL public libraries → KB\n- NL academic libraries → OCLC\n- NL\
\ archives → Nationaal Archief\n\n**Relationship to Standard:**\n\nAn AllocationAgency\
\ allocates for one or more Standards:\n- AllocationAgency.allocates_for → Standard[]\n\
- Standard can have multiple AllocationAgencies (one per country/domain)\n\n\
**Examples:**\n\n| Agency | Country | Domain | Standard |\n|--------|---------|--------|----------|\n\
| Koninklijke Bibliotheek | NL | Public libraries | ISIL |\n| OCLC | NL | Academic\
\ libraries | ISIL |\n| Nationaal Archief | NL | Archives | ISIL |\n| British\
\ Library | GB | All | ISIL |\n| Library of Congress | US | All | ISIL |\n|\
\ OCLC | Global | Academic | VIAF |\n| Deutsche Nationalbibliothek | DE | All\
\ | ISNI |\n\n**Ontology Alignment:**\n\n- org:FormalOrganization - W3C Organization\
\ Ontology\n- Extends gleif_base:RegistrationAuthority concept (but for allocation,\
\ not registration)\n"
description: "An organization that allocates identifiers within a specific geographic area \nand/or domain of heritage\
\ institutions.\n\n**Key Distinction from RegistrationAuthority:**\n\n- **RegistrationAuthority**: Maintains the GLOBAL\
\ registry for a standard\n - Example: Danish Agency for Culture and Palaces maintains global ISIL registry\n - Example:\
\ ISNI International Agency (WIPO) maintains global ISNI database\n\n- **AllocationAgency**: Allocates identifiers LOCALLY\
\ within constraints\n - Example: Koninklijke Bibliotheek allocates ISIL for Dutch public libraries\n - Example: OCLC\
\ allocates ISIL for Dutch academic libraries\n - Example: Nationaal Archief allocates ISIL for Dutch archives\n\n\
**Multi-Dimensional Scope:**\n\nAllocationAgencies have both:\n1. **Geographic scope**: Which country/region they serve\n\
2. **Domain scope**: Which types of institutions they serve\n\nThis allows multiple agencies per country, each serving\
\ different domains:\n- NL public libraries → KB\n- NL academic libraries → OCLC\n- NL archives → Nationaal Archief\n\
\n**Relationship to Standard:**\n\nAn AllocationAgency allocates for one or more Standards:\n- AllocationAgency.allocates_for\
\ → Standard[]\n- Standard can have multiple AllocationAgencies (one per country/domain)\n\n**Examples:**\n\n| Agency\
\ | Country | Domain | Standard |\n|--------|---------|--------|----------|\n| Koninklijke Bibliotheek | NL | Public\
\ libraries | ISIL |\n| OCLC | NL | Academic libraries | ISIL |\n| Nationaal Archief | NL | Archives | ISIL |\n| British\
\ Library | GB | All | ISIL |\n| Library of Congress | US | All | ISIL |\n| OCLC | Global | Academic | VIAF |\n| Deutsche\
\ Nationalbibliothek | DE | All | ISNI |\n\n**Ontology Alignment:**\n\n- org:FormalOrganization - W3C Organization Ontology\n\
- Extends gleif_base:RegistrationAuthority concept (but for allocation, not registration)\n"
exact_mappings:
- org:FormalOrganization
close_mappings:
@ -56,138 +49,193 @@ classes:
id:
identifier: true
slot_uri: schema:identifier
description: |
Unique identifier for this allocation agency.
description: 'Unique identifier for this allocation agency.
Recommended format: {country}-{abbreviation} or {abbreviation}
Examples: "nl-kb", "nl-oclc", "nl-na", "gb-bl", "us-loc"
'
range: uriorcurie
required: true
name:
slot_uri: schema:name
description: |
Official full name of the allocation agency.
description: 'Official full name of the allocation agency.
Examples:
- "Koninklijke Bibliotheek"
- "Nationaal Archief"
- "British Library"
- "Library of Congress"
'
range: string
required: true
name_local:
slot_uri: schema:alternateName
description: |
Name in local language (if different from English name).
description: 'Name in local language (if different from English name).
Examples:
- "Koninklijke Bibliotheek" (Dutch)
- "Deutsche Nationalbibliothek" (German)
- "Bibliothèque nationale de France" (French)
'
range: string
has_or_had_abbreviation:
slot_uri: schema:alternateName
description: |
Common abbreviation.
description: 'Common abbreviation.
Examples: "KB", "NA", "BL", "LOC", "BnF", "DNB"
'
range: string
country_scope:
slot_uri: gleif_base:hasCoverageArea
description: |
Geographic area(s) where this agency allocates identifiers.
description: 'Geographic area(s) where this agency allocates identifiers.
Usually a single country, but can be multiple countries or subregions.
Examples:
- [NL] for Koninklijke Bibliotheek
- [GB] for British Library
- [US] for Library of Congress
- [DE-BY, DE-BW] for regional German agency
'
range: Country
multivalued: true
required: true
inlined: false
subregion_scope:
slot_uri: schema:areaServed
description: |
Subregion-level geographic scope (if more specific than country).
description: 'Subregion-level geographic scope (if more specific than country).
For agencies that only serve specific regions within a country.
Examples:
- Staatsarchiv München: [DE-BY] (Bavaria only)
'
range: Subregion
multivalued: true
inlined: false
allocation_domain:
slot_uri: schema:audienceType
description: |
Types of institutions this agency allocates identifiers for.
description: 'Types of institutions this agency allocates identifiers for.
Multiple values allowed for agencies serving multiple domains.
Examples:
- KB: [LIBRARY_PUBLIC]
- OCLC: [LIBRARY_ACADEMIC, LIBRARY_RESEARCH]
- Nationaal Archief: [ARCHIVE]
- British Library: [LIBRARY_PUBLIC, LIBRARY_ACADEMIC, ARCHIVE] (all types)
'
range: AllocationDomainEnum
multivalued: true
required: true
allocates_for:
slot_uri: schema:serviceOutput
description: |
Standards for which this agency allocates identifiers.
description: 'Standards for which this agency allocates identifiers.
Most agencies allocate for a single standard, but some handle multiple.
Examples:
- KB: [ISIL]
- DNB: [ISIL, ISNI]
- OCLC: [ISIL, VIAF]
'
range: Standard
multivalued: true
required: true
inlined: false
allocation_prefix:
slot_uri: schema:identifier
description: |
Prefix used by this agency when allocating identifiers.
description: 'Prefix used by this agency when allocating identifiers.
For ISIL, this is typically the country code.
Examples:
- Netherlands ISIL: "NL-"
- Germany ISIL: "DE-"
- UK ISIL: "UK-" or "GB-" (both used historically)
'
range: string
parent_registration_authority:
slot_uri: schema:parentOrganization
description: |
The registration authority to which this agency reports allocations.
description: 'The registration authority to which this agency reports allocations.
AllocationAgencies report their allocations to the global RegistrationAuthority.
Examples:
- KB (NL ISIL) → Danish Agency for Culture and Palaces
- DNB (DE ISNI) → ISNI International Agency
'
range: RegistrationAuthority
inlined: false
allocation_start_date:
slot_uri: schema:startDate
description: |
Date when this agency started allocating identifiers.
description: 'Date when this agency started allocating identifiers.
Format: ISO 8601 date
'
range: date
allocation_end_date:
slot_uri: schema:endDate
description: |
Date when this agency stopped allocating (if no longer active).
description: 'Date when this agency stopped allocating (if no longer active).
Null if still active.
'
range: date
is_active:
slot_uri: schema:status
@ -196,24 +244,30 @@ classes:
required: true
website:
slot_uri: schema:url
description: |
Official website of the allocation agency.
description: 'Official website of the allocation agency.
Preferably the page about identifier allocation services.
'
range: uri
contact_email:
slot_uri: schema:email
description: |
Contact email for identifier allocation requests.
description: 'Contact email for identifier allocation requests.
Examples: "isil@kb.nl", "isni@dnb.de"
'
range: string
allocation_policy_url:
slot_uri: schema:usageInfo
description: |
URL to the allocation policy documentation.
description: 'URL to the allocation policy documentation.
Describes eligibility, process, requirements for obtaining identifiers.
'
range: uri
agency_description:
slot_uri: schema:description
@ -229,62 +283,3 @@ classes:
template_specificity:
range: TemplateSpecificityScores
inlined: true
enums:
AllocationDomainEnum:
description: |
Types of heritage institutions that an AllocationAgency can serve.
Based on GLAMORCUBESFIXPHDNT taxonomy but focused on allocation domains.
permissible_values:
LIBRARY_PUBLIC:
description: |
Public libraries (openbare bibliotheken).
Examples: Municipal libraries, regional libraries
LIBRARY_ACADEMIC:
description: |
Academic and university libraries.
Examples: University libraries, polytechnic libraries
LIBRARY_RESEARCH:
description: |
Research and special libraries.
Examples: Corporate libraries, government agency libraries
LIBRARY_NATIONAL:
description: |
National libraries.
Examples: Koninklijke Bibliotheek, Library of Congress
ARCHIVE:
description: |
Archives of all types.
Examples: National archives, regional archives, municipal archives
MUSEUM:
description: |
Museums of all types.
Examples: Art museums, history museums, science museums
GALLERY:
description: |
Art galleries and exhibition spaces.
Examples: Commercial galleries, kunsthallen
HERITAGE_SOCIETY:
description: |
Heritage and historical societies.
Examples: Heemkundige kringen, genealogical societies
RESEARCH_ORGANIZATION:
description: |
Research organizations and documentation centers.
Examples: Research institutes, knowledge centers
EDUCATION_PROVIDER:
description: |
Educational institutions with heritage collections.
Examples: Universities, academies
RELIGIOUS_INSTITUTION:
description: |
Religious institutions with collections.
Examples: Church archives, monastery libraries
GOVERNMENT_AGENCY:
description: |
Government agencies and official institutions.
Examples: Ministries, provincial heritage services
ALL:
description: |
Agency allocates for all institution types.
Used when there's a single national agency for all domains.

View file

@ -15,33 +15,28 @@ imports:
- ../slots/template_specificity
- ./SpecificityAnnotation
- ./TemplateSpecificityScores
- ../enums/DataLicenseTypeEnum
- ../enums/DataOpennessLevelEnum
- ../enums/OpennessStanceEnum
default_prefix: hc
classes:
DataLicensePolicy:
class_uri: odrl:Policy
description: "An organization's policy regarding data licensing and openness,\
\ representing\nthe principles and practices the organization strives for in\
\ sharing data.\n\n**APPLICABLE TO BOTH**:\n\n1. **EncompassingBody** (Cooperative,\
\ SocialMovement, Network, Consortium, Umbrella)\n - OCLC (Cooperative): Mixed\
\ policy - WorldCat proprietary, VIAF open\n - Wikimedia Foundation (SocialMovement):\
\ Strong open advocate - CC0 for Wikidata\n \n2. **Custodian** (Museums, Archives,\
\ Libraries, etc.)\n - Rijksmuseum: Open policy - CC0 for high-res images\n\
\ - Some private collections: Proprietary - no reuse allowed\n\n**POLICY vs\
\ LICENSE**:\n\n- **DataLicensePolicy**: The ASPIRATIONAL stance - what the\
\ organization strives for\n- **DataLicense**: The LEGAL instrument - specific\
\ license terms (CC0, CC-BY, etc.)\n\nAn organization's policy may include:\n\
- Default license for all data/content\n- Service-specific licenses (different\
\ licenses for different services)\n- Advocacy activities (promoting open data\
\ beyond their own data)\n- Endorsement of open data principles (FAIR, Open\
\ Definition)\n\n**CRITICAL DISTINCTION: OPEN vs CLOSED**\n\nThis class is essential\
\ for understanding the fundamental difference between:\n\n- **OCLC (Cooperative)**:\
\ MIXED_POLICY\n - WorldCat: Proprietary (subscription-based)\n - VIAF: ODC-BY\
\ (open with attribution)\n - Members pay for services\n \n- **Wikimedia Foundation\
\ (Social Movement)**: STRONG_OPEN_ADVOCATE\n - Wikidata: CC0 (public domain)\n\
\ - Wikipedia: CC-BY-SA (copyleft)\n - All contributions openly licensed\n\
\ - Free access for all\n\n**Ontology Alignment:**\n\n- odrl:Policy (ODRL -\
\ Open Digital Rights Language)\n- dcterms:Policy (Dublin Core)\n- schema:DigitalDocument\
\ (for policy documents)\n"
description: "An organization's policy regarding data licensing and openness, representing\nthe principles and practices\
\ the organization strives for in sharing data.\n\n**APPLICABLE TO BOTH**:\n\n1. **EncompassingBody** (Cooperative,\
\ SocialMovement, Network, Consortium, Umbrella)\n - OCLC (Cooperative): Mixed policy - WorldCat proprietary, VIAF\
\ open\n - Wikimedia Foundation (SocialMovement): Strong open advocate - CC0 for Wikidata\n \n2. **Custodian** (Museums,\
\ Archives, Libraries, etc.)\n - Rijksmuseum: Open policy - CC0 for high-res images\n - Some private collections:\
\ Proprietary - no reuse allowed\n\n**POLICY vs LICENSE**:\n\n- **DataLicensePolicy**: The ASPIRATIONAL stance - what\
\ the organization strives for\n- **DataLicense**: The LEGAL instrument - specific license terms (CC0, CC-BY, etc.)\n\
\nAn organization's policy may include:\n- Default license for all data/content\n- Service-specific licenses (different\
\ licenses for different services)\n- Advocacy activities (promoting open data beyond their own data)\n- Endorsement\
\ of open data principles (FAIR, Open Definition)\n\n**CRITICAL DISTINCTION: OPEN vs CLOSED**\n\nThis class is essential\
\ for understanding the fundamental difference between:\n\n- **OCLC (Cooperative)**: MIXED_POLICY\n - WorldCat: Proprietary\
\ (subscription-based)\n - VIAF: ODC-BY (open with attribution)\n - Members pay for services\n \n- **Wikimedia Foundation\
\ (Social Movement)**: STRONG_OPEN_ADVOCATE\n - Wikidata: CC0 (public domain)\n - Wikipedia: CC-BY-SA (copyleft)\n\
\ - All contributions openly licensed\n - Free access for all\n\n**Ontology Alignment:**\n\n- odrl:Policy (ODRL -\
\ Open Digital Rights Language)\n- dcterms:Policy (Dublin Core)\n- schema:DigitalDocument (for policy documents)\n"
exact_mappings:
- odrl:Policy
close_mappings:
@ -51,142 +46,177 @@ classes:
id:
identifier: true
slot_uri: schema:identifier
description: |
Unique identifier for this data license policy.
description: 'Unique identifier for this data license policy.
Format: https://nde.nl/ontology/hc/policy/{organization-slug}
Examples:
- "https://nde.nl/ontology/hc/policy/oclc"
- "https://nde.nl/ontology/hc/policy/wikimedia"
- "https://nde.nl/ontology/hc/policy/rijksmuseum"
'
range: uriorcurie
required: true
policy_name:
slot_uri: schema:name
description: |
Name of the data license policy.
description: 'Name of the data license policy.
Examples:
- "OCLC Data Usage Policy"
- "Wikimedia Foundation Open Data Policy"
- "Europeana Licensing Framework"
- "Rijksmuseum Open Access Policy"
'
range: string
required: true
default_license:
slot_uri: schema:license
description: |
The default license applied to data/content unless otherwise specified.
description: 'The default license applied to data/content unless otherwise specified.
Links to a DataLicense instance representing the specific legal instrument.
Examples:
- Wikimedia Foundation: CC0 (for Wikidata)
- Europeana: CC0 (for metadata)
- OCLC: Proprietary (for WorldCat)
- Rijksmuseum: CC0 (for high-res images)
'
range: DataLicense
inlined: false
required: true
service_specific_licenses:
slot_uri: schema:hasPart
description: |
Licenses for specific services that differ from the default.
Allows modeling organizations with mixed policies where different
services or data types have different licenses.
**Example - OCLC (Cooperative with mixed policy):**
```yaml
default_license: proprietary-worldcat
service_specific_licenses:
- service_name: "VIAF"
license: odc-by-1.0
- service_name: "WorldCat Identities"
license: odc-by-1.0
```
**Example - Wikimedia (Movement with unified open policy):**
```yaml
default_license: cc0-1.0
service_specific_licenses:
- service_name: "Wikipedia"
license: cc-by-sa-4.0 # Different from default
- service_name: "Wikidata"
license: cc0-1.0 # Same as default
```
description: "Licenses for specific services that differ from the default.\n\nAllows modeling organizations with mixed\
\ policies where different\nservices or data types have different licenses.\n\n**Example - OCLC (Cooperative with\
\ mixed policy):**\n```yaml\ndefault_license: proprietary-worldcat\nservice_specific_licenses:\n - service_name:\
\ \"VIAF\"\n license: odc-by-1.0\n - service_name: \"WorldCat Identities\"\n license: odc-by-1.0\n```\n\n\
**Example - Wikimedia (Movement with unified open policy):**\n```yaml\ndefault_license: cc0-1.0\nservice_specific_licenses:\n\
\ - service_name: \"Wikipedia\"\n license: cc-by-sa-4.0 # Different from default\n - service_name: \"Wikidata\"\
\n license: cc0-1.0 # Same as default\n```\n"
range: ServiceLicense
multivalued: true
inlined_as_list: true
openness_stance:
slot_uri: schema:position
description: |
Organization's overall philosophical stance on data openness.
description: 'Organization''s overall philosophical stance on data openness.
This captures the ADVOCACY dimension beyond just licensing:
- **STRONG_OPEN_ADVOCATE**: Actively promotes open data (Wikimedia, CC, OKFN)
- **OPEN_BY_DEFAULT**: Generally open but practical exceptions (Europeana)
- **MIXED_POLICY**: Some open, some closed (OCLC)
- **CLOSED_BY_DEFAULT**: Generally closed with some open offerings
- **FULLY_PROPRIETARY**: All data proprietary
This is the PRIMARY indicator for comparing organizations.
'
range: OpennessStanceEnum
required: true
open_data_principles:
slot_uri: schema:valueReference
description: |
Open data principles or frameworks the organization formally endorses.
description: 'Open data principles or frameworks the organization formally endorses.
Examples:
- "FAIR Principles" (Findable, Accessible, Interoperable, Reusable)
- "Open Definition" (Open Knowledge Foundation)
- "Sunlight Foundation Open Data Principles"
- "G8 Open Data Charter"
- "Budapest Open Access Initiative"
- "Berlin Declaration on Open Access"
'
range: string
multivalued: true
policy_url:
slot_uri: schema:url
description: |
URL to the organization's official data policy documentation.
description: 'URL to the organization''s official data policy documentation.
Examples:
- https://www.oclc.org/en/worldcat/community/data-strategy.html
- https://foundation.wikimedia.org/wiki/Policy:Terms_of_Use
- https://www.rijksmuseum.nl/en/research/image-requests
'
range: uri
policy_effective_date:
slot_uri: schema:datePublished
description: |
Date when this policy became effective.
description: 'Date when this policy became effective.
Useful for tracking policy evolution over time.
'
range: date
advocacy_activities:
slot_uri: schema:potentialAction
description: |
Open data advocacy activities the organization engages in.
description: 'Open data advocacy activities the organization engages in.
These activities go BEYOND just licensing their own data - they
represent active promotion of open data practices in the broader community.
Examples:
- "Open Data Day sponsorship"
- "Creative Commons affiliate network membership"
- "Open Knowledge Foundation partnership"
- "FAIR data training programs"
- "Open GLAM initiative participation"
- "Linked Open Data evangelism"
'
range: string
multivalued: true
policy_description:
slot_uri: schema:description
description: |
Narrative description of the organization's data policy philosophy.
description: 'Narrative description of the organization''s data policy philosophy.
'
range: string
slots:
- specificity_annotation
@ -200,21 +230,16 @@ classes:
inlined: true
DataLicense:
class_uri: cc:License
description: "A specific data license - the legal instrument that defines how\
\ data may be\nused, shared, and redistributed.\n\n**License Categories:**\n\
\n1. **Creative Commons (CC)** - For creative works and data\n - CC0: Public\
\ domain dedication (no rights reserved)\n - CC-BY: Attribution required\n\
\ - CC-BY-SA: Attribution + ShareAlike (copyleft)\n - CC-BY-NC: Attribution\
\ + Non-Commercial\n - CC-BY-ND: Attribution + No Derivatives\n \n2. **Open\
\ Data Commons (ODC)** - Specifically for databases\n - PDDL: Public Domain\
\ Dedication and License\n - ODC-BY: Attribution License for databases\n \
\ - ODbL: Open Database License (Attribution + ShareAlike)\n \n3. **Government\
\ Open Licenses**\n - UK OGL: UK Open Government Licence\n - French Licence\
\ Ouverte\n - US Public Domain (government works)\n \n4. **Proprietary**\
\ - Closed/restricted access\n - Subscription required\n - Terms of service\
\ restrictions\n - No redistribution rights\n\n**Reference**: https://creativecommons.org/licenses/\n\
\n**Ontology Alignment:**\n\n- cc:License (Creative Commons namespace)\n- dcterms:LicenseDocument\
\ (Dublin Core)\n- schema:CreativeWork (for license documents)\n"
description: "A specific data license - the legal instrument that defines how data may be\nused, shared, and redistributed.\n\
\n**License Categories:**\n\n1. **Creative Commons (CC)** - For creative works and data\n - CC0: Public domain dedication\
\ (no rights reserved)\n - CC-BY: Attribution required\n - CC-BY-SA: Attribution + ShareAlike (copyleft)\n - CC-BY-NC:\
\ Attribution + Non-Commercial\n - CC-BY-ND: Attribution + No Derivatives\n \n2. **Open Data Commons (ODC)** - Specifically\
\ for databases\n - PDDL: Public Domain Dedication and License\n - ODC-BY: Attribution License for databases\n \
\ - ODbL: Open Database License (Attribution + ShareAlike)\n \n3. **Government Open Licenses**\n - UK OGL: UK Open\
\ Government Licence\n - French Licence Ouverte\n - US Public Domain (government works)\n \n4. **Proprietary**\
\ - Closed/restricted access\n - Subscription required\n - Terms of service restrictions\n - No redistribution\
\ rights\n\n**Reference**: https://creativecommons.org/licenses/\n\n**Ontology Alignment:**\n\n- cc:License (Creative\
\ Commons namespace)\n- dcterms:LicenseDocument (Dublin Core)\n- schema:CreativeWork (for license documents)\n"
exact_mappings:
- cc:License
close_mappings:
@ -224,167 +249,239 @@ classes:
id:
identifier: true
slot_uri: schema:identifier
description: |
Unique identifier for this license.
description: 'Unique identifier for this license.
Recommended: Use standard SPDX-style identifiers.
Examples:
- "cc0-1.0" (Creative Commons Zero 1.0)
- "cc-by-4.0" (Creative Commons Attribution 4.0)
- "odc-by-1.0" (Open Data Commons Attribution 1.0)
- "proprietary-oclc" (OCLC proprietary terms)
'
range: uriorcurie
required: true
name:
slot_uri: schema:name
description: |
Full official name of the license.
description: 'Full official name of the license.
Examples:
- "Creative Commons Zero 1.0 Universal"
- "Creative Commons Attribution 4.0 International"
- "Open Data Commons Attribution License 1.0"
- "Open Database License (ODbL) 1.0"
'
range: string
required: true
has_or_had_abbreviation:
slot_uri: schema:alternateName
description: |
Common has_or_had_abbreviation for the license.
description: 'Common has_or_had_abbreviation for the license.
Examples: "CC0", "CC-BY", "CC-BY-SA", "ODC-BY", "ODbL"
'
range: string
license_type:
slot_uri: schema:additionalType
description: |
Classification of this license by its framework/family.
description: 'Classification of this license by its framework/family.
'
range: DataLicenseTypeEnum
required: true
openness_level:
slot_uri: schema:accessMode
description: |
Degree of openness on a spectrum from fully open to fully closed.
description: 'Degree of openness on a spectrum from fully open to fully closed.
This is the PRIMARY indicator for data accessibility:
- **FULLY_OPEN**: No restrictions (CC0, PDDL)
- **OPEN_WITH_ATTRIBUTION**: Attribution required (CC-BY, ODC-BY)
- **OPEN_SHAREALIKE**: Copyleft requirement (CC-BY-SA, ODbL)
- **RESTRICTED_NONCOMMERCIAL**: Non-commercial only (CC-BY-NC)
- **RESTRICTED_NO_DERIVATIVES**: No modifications (CC-BY-ND)
- **CLOSED_SUBSCRIPTION**: Paid access required
- **CLOSED_PROPRIETARY**: No reuse rights
'
range: DataOpennessLevelEnum
required: true
license_url:
slot_uri: cc:legalcode
description: |
URL to the official legal text of the license.
description: 'URL to the official legal text of the license.
Examples:
- https://creativecommons.org/publicdomain/zero/1.0/legalcode
- https://creativecommons.org/licenses/by/4.0/legalcode
- https://opendatacommons.org/licenses/by/1-0/
'
range: uri
required: true
deed_url:
slot_uri: schema:url
description: |
URL to the human-readable license summary (the "deed").
description: 'URL to the human-readable license summary (the "deed").
Examples:
- https://creativecommons.org/publicdomain/zero/1.0/
- https://creativecommons.org/licenses/by/4.0/
'
range: uri
version:
slot_uri: schema:version
description: |
Version number of the license.
description: 'Version number of the license.
Examples:
- "1.0" (CC0 1.0, ODC-BY 1.0)
- "4.0" (CC-BY 4.0 - current version)
- "3.0" (legacy CC licenses)
'
range: string
allows_commercial_use:
slot_uri: cc:commercialUse
description: |
Whether the license permits commercial use of the data.
description: 'Whether the license permits commercial use of the data.
- true: Commercial use allowed (CC0, CC-BY, ODC-BY, ODbL)
- false: Non-commercial only (CC-BY-NC, CC-BY-NC-SA)
'
range: boolean
required: true
requires_attribution:
slot_uri: cc:attributionRequired
description: |
Whether the license requires attribution to the source.
description: 'Whether the license requires attribution to the source.
- true: Attribution required (CC-BY, ODC-BY, ODbL)
- false: No attribution needed (CC0, PDDL)
'
range: boolean
required: true
requires_sharealike:
slot_uri: cc:shareAlike
description: |
Whether derivatives must be shared under the same or compatible license.
description: 'Whether derivatives must be shared under the same or compatible license.
- true: ShareAlike/copyleft required (CC-BY-SA, ODbL)
- false: No ShareAlike requirement (CC0, CC-BY, ODC-BY)
'
range: boolean
required: true
allows_derivatives:
slot_uri: cc:DerivativeWorks
description: |
Whether the license permits creating derivative works.
description: 'Whether the license permits creating derivative works.
- true: Derivatives allowed (most open licenses)
- false: No derivatives allowed (CC-BY-ND, CC-BY-NC-ND)
'
range: boolean
required: true
license_jurisdiction:
slot_uri: cc:jurisdiction
description: |
Legal jurisdiction of the license (if jurisdiction-specific).
description: 'Legal jurisdiction of the license (if jurisdiction-specific).
Most modern licenses (CC 4.0+) are "international" (jurisdiction-agnostic).
Earlier versions (CC 3.0, 2.x) had jurisdiction-specific "ports".
Examples:
- null: International/universal (CC 4.0 licenses)
- "NL": Netherlands-specific ported license
- "US": United States-specific
'
range: string
steward_organization:
slot_uri: schema:maintainer
description: |
Organization that maintains and stewards this license.
description: 'Organization that maintains and stewards this license.
Examples:
- "Creative Commons" (for CC licenses)
- "Open Knowledge Foundation" (for ODC licenses)
- "UK National Archives" (for UK OGL)
'
range: string
spdx_identifier:
slot_uri: dcterms:identifier
description: |
SPDX License Identifier for software license compatibility.
description: 'SPDX License Identifier for software license compatibility.
SPDX (Software Package Data Exchange) provides standardized
identifiers for licenses used in software and data.
Examples:
- "CC0-1.0"
- "CC-BY-4.0"
- "ODbL-1.0"
Reference: https://spdx.org/licenses/
'
range: string
license_description:
slot_uri: schema:description
description: |
Human-readable description of what this license permits and requires.
description: 'Human-readable description of what this license permits and requires.
'
range: string
slots:
- specificity_annotation
@ -398,58 +495,83 @@ classes:
inlined: true
ServiceLicense:
class_uri: odrl:Agreement
description: |
A license assignment for a specific service within an organization's policy.
description: 'A license assignment for a specific service within an organization''s policy.
Used when an organization has different licenses for different services,
allowing for nuanced modeling of mixed open/closed policies.
**Example - OCLC (Cooperative with mixed policy):**
- WorldCat: Proprietary (default)
- VIAF: ODC-BY (open for linked data)
- WorldCat Identities: ODC-BY
**Example - Wikimedia (Movement with mostly unified policy):**
- Wikidata: CC0 (default)
- Wikipedia: CC-BY-SA (different - copyleft for text)
- Commons: Varies by upload (contributor choice)
'
attributes:
service_name:
slot_uri: schema:name
description: |
Name of the service this license applies to.
description: 'Name of the service this license applies to.
Examples: "VIAF", "WorldCat", "Wikidata", "Wikipedia", "Rijksstudio"
'
range: string
required: true
service_url:
slot_uri: schema:url
description: |
URL of the service.
description: 'URL of the service.
Examples:
- https://viaf.org/
- https://www.worldcat.org/
- https://www.wikidata.org/
'
range: uri
service_license:
slot_uri: schema:license
description: |
The specific license that applies to this service.
description: 'The specific license that applies to this service.
Links to a DataLicense instance.
'
range: DataLicense
inlined: false
required: true
license_notes:
slot_uri: schema:description
description: |
Additional notes about how the license applies to this service.
description: 'Additional notes about how the license applies to this service.
Examples:
- "VIAF data is available under ODC-BY via OCLC Research"
- "API access requires registration but data is freely reusable"
- "High-resolution images require separate agreement"
'
range: string
slots:
- specificity_annotation
@ -461,242 +583,3 @@ classes:
template_specificity:
range: TemplateSpecificityScores
inlined: true
enums:
DataLicenseTypeEnum:
description: |
Classification of license types by their framework/family.
Different license families are designed for different purposes:
- Creative Commons: General creative works and data
- Open Data Commons: Specifically for databases
- Government: Public sector data
permissible_values:
CREATIVE_COMMONS:
description: |
Creative Commons license family (CC0, CC-BY, CC-BY-SA, etc.).
The most widely used open content licenses globally.
Reference: https://creativecommons.org/licenses/
meaning: cc:License
OPEN_DATA_COMMONS:
description: |
Open Data Commons license family (PDDL, ODC-BY, ODbL).
Specifically designed for databases and structured data.
Addresses sui generis database rights in EU law.
Reference: https://opendatacommons.org/licenses/
PUBLIC_DOMAIN:
description: |
Explicit public domain dedication (not technically a license).
Represents waiver of all rights to the fullest extent possible.
Examples:
- CC0 (Creative Commons public domain dedication)
- PDDL (Open Data Commons Public Domain Dedication)
- Unlicense (for software)
OPEN_SOURCE:
description: |
Open source licenses approved by Open Source Initiative (OSI).
Primarily for software but sometimes applied to data.
Examples: MIT, Apache 2.0, GPL, BSD
Reference: https://opensource.org/licenses
GOVERNMENT_OPEN:
description: |
Government open data licenses.
National licenses for public sector information.
Examples:
- UK Open Government Licence (OGL)
- French Licence Ouverte / Open Licence
- US works: Public domain by default (17 U.S.C. § 105)
PROPRIETARY:
description: |
Proprietary/closed licenses with restricted rights.
Typically requires subscription, payment, or specific agreements.
No redistribution or derivative rights without permission.
TERMS_OF_SERVICE:
description: |
Terms of service that govern data access without being a formal license.
Often more restrictive than licenses, may change without notice.
Common for commercial platforms and APIs.
DataOpennessLevelEnum:
description: |
Spectrum of data openness from fully open to fully closed.
This is the PRIMARY indicator for comparing data accessibility:
- Wikimedia Wikidata: FULLY_OPEN (CC0)
- OCLC VIAF: OPEN_WITH_ATTRIBUTION (ODC-BY)
- OCLC WorldCat: CLOSED_SUBSCRIPTION
permissible_values:
FULLY_OPEN:
description: "No restrictions on use, redistribution, or modification.\nPublic\
\ domain or equivalent dedication.\n\n**Rights**: No attribution required,\
\ commercial use allowed, \nderivatives allowed, no ShareAlike requirement.\n\
\nExamples:\n- Wikidata (CC0)\n- Europeana metadata (CC0)\n- US Government\
\ works (public domain by law)\n- Open Library metadata (PDDL)\n"
OPEN_WITH_ATTRIBUTION:
description: |
Open for any use, but attribution/credit to source required.
**Rights**: Commercial use allowed, derivatives allowed,
no ShareAlike requirement. MUST credit source.
Examples:
- VIAF (ODC-BY)
- Many government datasets (UK OGL)
- Some museum collections (CC-BY)
OPEN_SHAREALIKE:
description: |
Open for any use, but derivatives must use same/compatible license.
Also known as "copyleft" for data.
**Rights**: Commercial use allowed, derivatives allowed,
attribution required. MUST share derivatives under same terms.
Examples:
- Wikipedia text (CC-BY-SA)
- OpenStreetMap (ODbL)
- Wikibooks (CC-BY-SA)
RESTRICTED_NONCOMMERCIAL:
description: |
Open for non-commercial use only. Commercial use prohibited.
**Rights**: Attribution usually required, derivatives may be allowed.
NO commercial use without separate agreement.
Examples:
- Some academic research datasets (CC-BY-NC)
- Some museum image collections (CC-BY-NC)
- Educational resources (CC-BY-NC-SA)
RESTRICTED_NO_DERIVATIVES:
description: |
Can share/redistribute but cannot modify or create derivatives.
**Rights**: Attribution required, redistribution allowed.
NO modifications, adaptations, or derivative works.
Examples:
- Some archival materials (CC-BY-ND)
- Marketing materials
- Certain scholarly publications
CLOSED_SUBSCRIPTION:
description: |
Requires paid subscription or membership for access.
Limited or no redistribution rights.
**Rights**: Access requires payment. Redistribution typically prohibited.
May allow limited use under subscription terms.
Examples:
- OCLC WorldCat (subscription database)
- JSTOR (academic subscription)
- ProQuest (commercial database)
CLOSED_PROPRIETARY:
description: |
Fully proprietary with no reuse rights.
Data cannot be redistributed, repurposed, or derived without explicit agreement.
**Rights**: No access or reuse without explicit permission.
All rights reserved.
Examples:
- Internal corporate databases
- Classified government data
- Trade secrets and confidential business information
OpennessStanceEnum:
description: |
Organization's overall philosophical stance on data openness.
This captures the ADVOCACY and ASPIRATION dimension beyond just
the specific licenses applied. It represents what the organization
strives for and promotes in the broader community.
permissible_values:
STRONG_OPEN_ADVOCATE:
description: |
Organization actively promotes and advocates for open data.
Goes BEYOND just licensing own data openly - actively works
to influence others and advance open data movement.
**Characteristics:**
- All/most own data under open licenses
- Participates in open data advocacy organizations
- Provides funding/resources for open data initiatives
- Influences policy toward openness
- Trains others in open data practices
- May be part of a broader social movement
**Examples:**
- Wikimedia Foundation (social movement for free knowledge)
- Creative Commons (license steward and advocate)
- Open Knowledge Foundation (open data advocacy)
- Mozilla Foundation (open web advocacy)
- Internet Archive (preservation and access)
OPEN_BY_DEFAULT:
description: |
Organization prefers open data as default but may have practical exceptions.
**Characteristics:**
- Default license is open
- May have some restricted data for practical/legal reasons
- Generally supportive of open data movement
- Not necessarily active in advocacy
**Examples:**
- Many government open data programs
- Europeana (open metadata aggregator)
- Library of Congress (public domain by default)
- Rijksmuseum (open access to images)
MIXED_POLICY:
description: |
Organization has mix of open and closed data offerings.
**Characteristics:**
- Some services open, some proprietary
- May be transitioning toward openness
- Business model partially depends on closed data
- Pragmatic rather than ideological approach
**Examples:**
- OCLC (VIAF open, WorldCat closed)
- Some academic publishers (some open access journals)
- Hybrid open access publishers
- Museums with partial open access programs
CLOSED_BY_DEFAULT:
description: |
Organization generally keeps data closed but has some open offerings.
**Characteristics:**
- Default is proprietary/closed
- Some data released for specific purposes or requirements
- May participate in limited open data initiatives
- Open offerings are exceptions, not the rule
**Examples:**
- Traditional commercial publishers with some OA
- Some corporate data providers with limited free tiers
- Organizations transitioning slowly toward openness
FULLY_PROPRIETARY:
description: |
Organization maintains fully closed/proprietary data model.
**Characteristics:**
- All data proprietary
- No open data initiatives
- Business model depends on data exclusivity
- May view open data as threat to business
**Examples:**
- Commercial data vendors
- Some subscription databases
- Private corporate archives
- Trade secret repositories

View file

@ -20,6 +20,9 @@ imports:
- ../slots/template_specificity
- ./SpecificityAnnotation
- ./TemplateSpecificityScores
- ../enums/DataServiceProtocolEnum
- ../enums/AuthenticationMethodEnum
- ../enums/EndpointStatusEnum
classes:
DataServiceEndpoint:
abstract: true
@ -30,31 +33,22 @@ classes:
- response_format
- specificity_annotation
- template_specificity
description: "Abstract base class for API service endpoints exposed by heritage\
\ digital platforms.\n\n**Purpose:**\n\nModels the technical API endpoints discovered\
\ at heritage institutions, enabling:\n- Machine-readable discovery of available\
\ APIs\n- Integration with aggregation platforms\n- Automated harvesting and\
\ synchronization\n- Developer documentation\n\n**DCAT 3 Alignment:**\n\nMaps\
\ to `dcat:DataService` which represents:\n- \"A collection of operations that\
\ provides access to one or more datasets or data processing functions\"\n-\
\ Has endpoint URL (dcat:endpointURL)\n- Has endpoint description/documentation\
\ (dcat:endpointDescription)\n- May serve one or more datasets (dcat:servesDataset)\n\
\n**Subclasses:**\n\n| Class | Protocol | Purpose |\n|-------|----------|---------|\n\
| OAIPMHEndpoint | OAI-PMH | Metadata harvesting |\n| SearchAPI | REST/JSON\
\ | Search and discovery |\n| METSAPI | REST/XML | METS document retrieval |\n\
| FileAPI | REST | File/asset download |\n| IIPImageServer | IIP/IIIF | Image\
\ serving |\n| EADDownload | HTTP | EAD finding aid export |\n\n**Example -\
\ Nationaal Archief APIs:**\n\n```yaml\ndigital_platform:\n platform_name:\
\ \"Nationaal Archief Website\"\n data_service_endpoints:\n - endpoint_type:\
\ OAIPMHEndpoint\n endpoint_url: \"https://www.nationaalarchief.nl/onderzoeken/oai-pmh\"\
\n protocol: OAI-PMH\n \n - endpoint_type: SearchAPI\n endpoint_url:\
\ \"https://www.nationaalarchief.nl/onderzoeken/api/zoeken\"\n protocol:\
\ REST\n response_formats: [\"application/json\"]\n \n - endpoint_type:\
\ IIPImageServer\n endpoint_url: \"https://service.archief.nl/iipsrv\"\n\
\ protocol: IIP\n```\n\n**Provenance:**\n\nDataServiceEndpoint instances\
\ MUST include discovery provenance:\n- When the endpoint was discovered\n-\
\ How it was discovered (web scrape, documentation, API testing)\n- Verification\
\ status\n"
description: "Abstract base class for API service endpoints exposed by heritage digital platforms.\n\n**Purpose:**\n\n\
Models the technical API endpoints discovered at heritage institutions, enabling:\n- Machine-readable discovery of available\
\ APIs\n- Integration with aggregation platforms\n- Automated harvesting and synchronization\n- Developer documentation\n\
\n**DCAT 3 Alignment:**\n\nMaps to `dcat:DataService` which represents:\n- \"A collection of operations that provides\
\ access to one or more datasets or data processing functions\"\n- Has endpoint URL (dcat:endpointURL)\n- Has endpoint\
\ description/documentation (dcat:endpointDescription)\n- May serve one or more datasets (dcat:servesDataset)\n\n**Subclasses:**\n\
\n| Class | Protocol | Purpose |\n|-------|----------|---------|\n| OAIPMHEndpoint | OAI-PMH | Metadata harvesting |\n\
| SearchAPI | REST/JSON | Search and discovery |\n| METSAPI | REST/XML | METS document retrieval |\n| FileAPI | REST\
\ | File/asset download |\n| IIPImageServer | IIP/IIIF | Image serving |\n| EADDownload | HTTP | EAD finding aid export\
\ |\n\n**Example - Nationaal Archief APIs:**\n\n```yaml\ndigital_platform:\n platform_name: \"Nationaal Archief Website\"\
\n data_service_endpoints:\n - endpoint_type: OAIPMHEndpoint\n endpoint_url: \"https://www.nationaalarchief.nl/onderzoeken/oai-pmh\"\
\n protocol: OAI-PMH\n \n - endpoint_type: SearchAPI\n endpoint_url: \"https://www.nationaalarchief.nl/onderzoeken/api/zoeken\"\
\n protocol: REST\n response_formats: [\"application/json\"]\n \n - endpoint_type: IIPImageServer\n\
\ endpoint_url: \"https://service.archief.nl/iipsrv\"\n protocol: IIP\n```\n\n**Provenance:**\n\nDataServiceEndpoint\
\ instances MUST include discovery provenance:\n- When the endpoint was discovered\n- How it was discovered (web scrape,\
\ documentation, API testing)\n- Verification status\n"
exact_mappings:
- dcat:DataService
close_mappings:
@ -64,195 +58,245 @@ classes:
endpoint_id:
identifier: true
slot_uri: dcterms:identifier
description: |
Unique identifier for this data service endpoint.
description: 'Unique identifier for this data service endpoint.
Recommended format: URI combining platform ID and service type.
Example: "https://nde.nl/ontology/hc/endpoint/nationaalarchief-oai-pmh"
'
range: uriorcurie
required: true
endpoint_name:
slot_uri: schema:name
description: |
Human-readable name for this endpoint.
description: 'Human-readable name for this endpoint.
Examples:
- "Nationaal Archief OAI-PMH Endpoint"
- "Heritage Search API"
- "Image Server (IIP)"
'
range: string
required: true
endpoint_url:
slot_uri: dcat:endpointURL
description: |
Base URL of the service endpoint.
description: 'Base URL of the service endpoint.
DCAT: dcat:endpointURL - "The root location or primary endpoint of the service"
This is the URL that clients use to access the service.
Examples:
- "https://www.nationaalarchief.nl/onderzoeken/oai-pmh"
- "https://api.europeana.eu/record/v2/"
- "https://service.archief.nl/iipsrv"
'
range: uri
required: true
endpoint_description_url:
slot_uri: dcat:endpointDescription
description: |
URL to machine-readable API documentation.
description: 'URL to machine-readable API documentation.
DCAT: dcat:endpointDescription - "A description of the service end-point"
May be:
- OpenAPI/Swagger specification (JSON/YAML)
- OAI-PMH Identify response
- WSDL document
- Human-readable documentation page
Examples:
- "https://api.example.org/openapi.json"
- "https://www.nationaalarchief.nl/onderzoeken/oai-pmh?verb=Identify"
'
range: uri
authentication_method:
slot_uri: schema:potentialAction
description: |
Authentication method required (if authentication_required is true).
description: 'Authentication method required (if authentication_required is true).
Values from AuthenticationMethodEnum:
- NONE: No authentication
- API_KEY: API key in header or query parameter
- OAUTH2: OAuth 2.0
- BASIC: HTTP Basic Authentication
- IP_WHITELIST: IP address whitelist
- INSTITUTIONAL: Institutional login (Shibboleth, etc.)
'
range: AuthenticationMethodEnum
cors_enabled:
slot_uri: schema:additionalProperty
description: |
Whether CORS (Cross-Origin Resource Sharing) is enabled.
description: 'Whether CORS (Cross-Origin Resource Sharing) is enabled.
Important for browser-based JavaScript applications:
- true: Cross-origin requests allowed
- false: Same-origin only
- null: Unknown
'
range: boolean
rate_limit:
slot_uri: schema:rateValue
description: |
Rate limit description if applicable.
description: 'Rate limit description if applicable.
Free-text description of rate limiting policy.
Examples:
- "100 requests per minute"
- "1000 requests per day per API key"
- "No limit"
- "Unknown"
'
range: string
documentation_url:
slot_uri: schema:documentation
description: |
URL to human-readable documentation.
description: 'URL to human-readable documentation.
This is separate from endpoint_description_url which is machine-readable.
Examples:
- "https://pro.europeana.eu/resources/apis/record"
- "https://www.nationaalarchief.nl/onderzoeken/handleiding/api"
'
range: uri
status:
slot_uri: schema:serverStatus
description: |
Operational status of the endpoint.
description: 'Operational status of the endpoint.
Values from EndpointStatusEnum:
- ACTIVE: Endpoint is operational
- DEPRECATED: Endpoint works but will be removed
- BETA: Endpoint in testing/beta
- OFFLINE: Endpoint currently unavailable
- UNKNOWN: Status not verified
'
range: EndpointStatusEnum
last_verified:
slot_uri: schema:dateModified
description: |
Date when this endpoint was last verified to be operational.
description: 'Date when this endpoint was last verified to be operational.
ISO 8601 date format.
Example: "2025-12-14"
'
range: date
serves_dataset:
slot_uri: dcat:servesDataset
description: |
Dataset(s) that this service provides access to.
description: 'Dataset(s) that this service provides access to.
DCAT: dcat:servesDataset - "A collection of data that this data service can distribute"
References to DCAT Dataset identifiers or descriptions.
'
range: uriorcurie
multivalued: true
version:
slot_uri: schema:version
description: |
Version of the API or service.
description: 'Version of the API or service.
Examples:
- "v2"
- "1.0.0"
- "2023-01"
'
range: string
discovery_provenance:
slot_uri: dcterms:provenance
description: |
Provenance information about how this endpoint was discovered.
description: 'Provenance information about how this endpoint was discovered.
Should include:
- Discovery date
- Discovery method (documentation, web scrape, API testing)
- Verification status
Free-text or structured provenance note.
'
range: string
endpoint_type:
slot_uri: dcterms:type
description: |
Classification of this endpoint from the DataServiceEndpointType taxonomy.
**Instance vs Type Architecture:**
This slot links an INSTANCE (DataServiceEndpoint) to its TYPE classification
(DataServiceEndpointType), following the same architectural pattern as
Custodian/CustodianType.
```
DataServiceEndpoint (INSTANCE) DataServiceEndpointType (TYPE)
├── endpoint_url ├── protocol_name
├── status ├── protocol_version
├── authentication_required ├── specification_url
└── endpoint_type ────────────────►└── typical_response_formats
```
**Why Both `protocol` and `endpoint_type`?**
- `protocol` (enum): Simple string classification for quick filtering
- `endpoint_type` (class reference): Rich type metadata with SKOS hierarchy,
specification URLs, and semantic relationships
**Example:**
```yaml
data_service_endpoint:
endpoint_id: "https://nde.nl/hc/endpoint/na-oai-pmh"
endpoint_url: "https://www.nationaalarchief.nl/onderzoeken/oai-pmh"
protocol: OAI_PMH # Simple enum (DataServiceProtocolEnum)
endpoint_type: OAIPMHEndpointType # Rich type (DataServiceEndpointType subclass)
```
This pattern mirrors:
- `custodian_type` enum + `CustodianType` class on `Custodian`
- `platform_type` enum + `DigitalPlatformType` class on `DigitalPlatform`
description: "Classification of this endpoint from the DataServiceEndpointType taxonomy.\n\n**Instance vs Type Architecture:**\n\
\nThis slot links an INSTANCE (DataServiceEndpoint) to its TYPE classification\n(DataServiceEndpointType), following\
\ the same architectural pattern as\nCustodian/CustodianType.\n\n```\nDataServiceEndpoint (INSTANCE) DataServiceEndpointType\
\ (TYPE)\n├── endpoint_url ├── protocol_name\n├── status ├── protocol_version\n\
├── authentication_required ├── specification_url\n└── endpoint_type ────────────────►└── typical_response_formats\n\
```\n\n**Why Both `protocol` and `endpoint_type`?**\n\n- `protocol` (enum): Simple string classification for quick\
\ filtering\n- `endpoint_type` (class reference): Rich type metadata with SKOS hierarchy,\n specification URLs,\
\ and semantic relationships\n\n**Example:**\n\n```yaml\ndata_service_endpoint:\n endpoint_id: \"https://nde.nl/hc/endpoint/na-oai-pmh\"\
\n endpoint_url: \"https://www.nationaalarchief.nl/onderzoeken/oai-pmh\"\n protocol: OAI_PMH \
\ # Simple enum (DataServiceProtocolEnum)\n endpoint_type: OAIPMHEndpointType # Rich type (DataServiceEndpointType\
\ subclass)\n```\n\nThis pattern mirrors:\n- `custodian_type` enum + `CustodianType` class on `Custodian`\n- `platform_type`\
\ enum + `DigitalPlatformType` class on `DigitalPlatform`\n"
range: DataServiceEndpointType
required: false
comments:
@ -274,195 +318,3 @@ classes:
template_specificity:
range: TemplateSpecificityScores
inlined: true
enums:
DataServiceProtocolEnum:
description: |
Protocols and standards implemented by data service endpoints.
permissible_values:
OAI_PMH:
description: |
Open Archives Initiative Protocol for Metadata Harvesting.
Standard for harvesting metadata from repositories.
Specification: http://www.openarchives.org/OAI/openarchivesprotocol.html
REST:
description: |
RESTful HTTP API.
Uses HTTP methods (GET, POST, etc.) with JSON/XML responses.
SOAP:
description: |
SOAP web services.
XML-based protocol with WSDL service description.
GRAPHQL:
description: |
GraphQL API.
Query language for APIs.
SPARQL:
description: |
SPARQL Protocol and RDF Query Language.
For querying RDF triple stores.
IIIF_IMAGE:
description: |
IIIF Image API.
International Image Interoperability Framework Image API.
Specification: https://iiif.io/api/image/
IIIF_PRESENTATION:
description: |
IIIF Presentation API.
For describing structure and layout of compound digital objects.
Specification: https://iiif.io/api/presentation/
IIIF_CONTENT_SEARCH:
description: |
IIIF Content Search API.
For searching within annotations.
Specification: https://iiif.io/api/search/
IIIF_CHANGE_DISCOVERY:
description: |
IIIF Change Discovery API.
For discovering changes in IIIF resources.
Specification: https://iiif.io/api/discovery/
IIP:
description: |
Internet Imaging Protocol.
Tile-based image delivery protocol.
Common implementations: IIPImage server.
ZOOMIFY:
description: |
Zoomify tile protocol.
Proprietary but widely-supported tiling format.
DEEPZOOM:
description: |
Microsoft Deep Zoom.
Tile-based image format for Seadragon viewers.
SRU:
description: |
Search/Retrieve via URL.
Standard search protocol from Library of Congress.
Specification: http://www.loc.gov/standards/sru/
Z39_50:
description: |
ANSI/NISO Z39.50 protocol.
Library search and retrieval protocol.
ATOM:
description: |
Atom Syndication Format.
XML-based feed format for content syndication.
RSS:
description: |
RSS (Really Simple Syndication).
XML-based feed format.
OPENSEARCH:
description: |
OpenSearch protocol.
Collection of simple formats for sharing search results.
Specification: https://opensearch.org/
WEBDAV:
description: |
WebDAV (Web Distributed Authoring and Versioning).
HTTP extension for collaborative editing.
FTP:
description: |
File Transfer Protocol.
For bulk file downloads.
AuthenticationMethodEnum:
description: |
Authentication methods for accessing API endpoints.
permissible_values:
NONE:
description: No authentication required (public access)
API_KEY:
description: |
API key authentication.
Key provided in HTTP header (e.g., X-API-Key) or query parameter.
API_KEY_HEADER:
description: API key in HTTP header
API_KEY_QUERY:
description: API key in URL query parameter
OAUTH2:
description: |
OAuth 2.0 authentication.
Token-based authentication with authorization flow.
OAUTH1:
description: OAuth 1.0a authentication
BASIC:
description: |
HTTP Basic Authentication.
Username/password in Authorization header.
BEARER_TOKEN:
description: |
Bearer token authentication.
JWT or opaque token in Authorization header.
IP_WHITELIST:
description: |
IP address whitelist.
Access restricted to specific IP ranges.
INSTITUTIONAL:
description: |
Institutional login.
Shibboleth, SAML, or similar federated authentication.
CLIENT_CERTIFICATE:
description: |
Client certificate authentication.
TLS/SSL client certificates.
DIGEST:
description: HTTP Digest Authentication
EndpointStatusEnum:
description: |
Operational status of an API endpoint.
permissible_values:
ACTIVE:
description: |
Endpoint is operational and accepting requests.
DEPRECATED:
description: |
Endpoint works but is deprecated.
Will be removed in future - migrate to new endpoint.
BETA:
description: |
Endpoint in testing/beta phase.
May change without notice.
ALPHA:
description: |
Endpoint in early alpha testing.
Not recommended for production use.
OFFLINE:
description: |
Endpoint currently unavailable.
May be temporary maintenance or permanent shutdown.
MAINTENANCE:
description: |
Endpoint temporarily offline for maintenance.
UNKNOWN:
description: |
Status not verified.
Needs testing to determine current status.

View file

@ -14,6 +14,11 @@ imports:
- ../metadata
- ../slots/specificity_annotation
- ../slots/template_specificity
- ../slots/protocol_name
- ../slots/protocol_version
- ../slots/specification_url
- ../slots/typical_response_formats
- ../slots/typical_http_methods
- ./SpecificityAnnotation
- ./TemplateSpecificityScores
classes:
@ -253,6 +258,11 @@ classes:
slots:
- specificity_annotation
- template_specificity
- protocol_name
- protocol_version
- specification_url
- typical_response_formats
- typical_http_methods
slot_usage:
specificity_annotation:
range: SpecificityAnnotation

View file

@ -18,89 +18,10 @@ imports:
- ./SpecificityAnnotation
- ./TemplateSpecificityScores
classes:
OAIPMHEndpoint:
is_a: DataServiceEndpointType
class_uri: hc:OAIPMHEndpoint
description: |
Classification for OAI-PMH (Open Archives Initiative Protocol for Metadata Harvesting) endpoints.
# NOTE: OAIPMHEndpoint, SearchAPI, FileAPI, IIPImageServer, EADDownload are defined
# as full instance classes (is_a: DataServiceEndpoint) in their individual files.
# This file contains only TYPE classifications that do not conflict with those.
**Protocol**: OAI-PMH 2.0
**Purpose**: Metadata harvesting from repositories
**Standard**: http://www.openarchives.org/OAI/openarchivesprotocol.html
**Heritage Sector Usage**:
OAI-PMH is the dominant protocol for metadata aggregation in GLAM:
- National aggregators harvest from institutional repositories
- Europeana harvests from national aggregators
- Archives Portal Europe aggregates archival finding aids
**Verbs**: Identify, ListMetadataFormats, ListSets, ListIdentifiers, ListRecords, GetRecord
**Common Metadata Formats**: oai_dc, ese, edm, mods, marc21, ead, lido
slot_usage:
protocol_name:
equals_string: OAI-PMH
protocol_version:
ifabsent: string(2.0)
specification_url:
ifabsent: uri(http://www.openarchives.org/OAI/openarchivesprotocol.html)
typical_response_formats:
ifabsent: string(application/xml)
typical_http_methods:
ifabsent: string(GET)
specificity_annotation:
range: SpecificityAnnotation
inlined: true
template_specificity:
range: TemplateSpecificityScores
inlined: true
comments:
- Most widely adopted metadata harvesting protocol in heritage sector
- Base protocol for Europeana, Archives Portal Europe, national aggregators
slots:
- specificity_annotation
- template_specificity
SearchAPI:
is_a: DataServiceEndpointType
class_uri: hc:SearchAPI
description: |
Classification for REST/JSON search API endpoints.
**Protocol**: REST over HTTP
**Purpose**: Search and discovery of collection records
**Format**: Typically JSON responses
**Heritage Sector Usage**:
Search APIs provide programmatic access to collection search:
- Europeana Search API
- Rijksmuseum API
- National Archives search endpoints
**Common Features**:
- Full-text search
- Faceted filtering
- Pagination
- Field-specific queries
slot_usage:
protocol_name:
equals_string: REST
typical_response_formats:
ifabsent: string(application/json)
typical_http_methods:
ifabsent: string(GET)
specificity_annotation:
range: SpecificityAnnotation
inlined: true
template_specificity:
range: TemplateSpecificityScores
inlined: true
comments:
- Generic REST search endpoints - institution-specific implementations
slots:
- specificity_annotation
- template_specificity
SRUEndpoint:
is_a: DataServiceEndpointType
class_uri: hc:SRUEndpoint
@ -179,151 +100,6 @@ classes:
slots:
- specificity_annotation
- template_specificity
METSEndpoint:
is_a: DataServiceEndpointType
class_uri: hc:METSEndpoint
description: |
Classification for METS (Metadata Encoding and Transmission Standard) API endpoints.
**Protocol**: REST/XML
**Purpose**: METS document retrieval for digital objects
**Standard**: https://www.loc.gov/standards/mets/
**Heritage Sector Usage**:
METS APIs provide structural metadata for complex digital objects:
- Digitized archival records (scans + metadata)
- Multi-page documents
- Compound objects (book with pages)
**Example**: Nationaal Archief METS API for archival scans
slot_usage:
protocol_name:
equals_string: METS
typical_response_formats:
ifabsent: string(application/xml)
typical_http_methods:
ifabsent: string(GET)
specificity_annotation:
range: SpecificityAnnotation
inlined: true
template_specificity:
range: TemplateSpecificityScores
inlined: true
comments:
- Structural metadata for complex digital objects
- Library of Congress standard
slots:
- specificity_annotation
- template_specificity
EADDownload:
is_a: DataServiceEndpointType
class_uri: hc:EADDownload
description: |
Classification for EAD (Encoded Archival Description) download endpoints.
**Protocol**: HTTP download
**Purpose**: Export archival finding aids in EAD XML format
**Standard**: https://www.loc.gov/ead/
**Heritage Sector Usage**:
EAD download endpoints enable:
- Finding aid export for offline use
- Aggregation by archival portals
- Migration between systems
- Preservation of archival descriptions
**Example**: Dutch regional archives EAD export endpoints
slot_usage:
protocol_name:
equals_string: HTTP
typical_response_formats:
ifabsent: string(application/xml)
typical_http_methods:
ifabsent: string(GET)
specificity_annotation:
range: SpecificityAnnotation
inlined: true
template_specificity:
range: TemplateSpecificityScores
inlined: true
comments:
- Archival finding aid export standard
- Used for APE aggregation and migration
slots:
- specificity_annotation
- template_specificity
FileAPI:
is_a: DataServiceEndpointType
class_uri: hc:FileAPI
description: |
Classification for file/asset download API endpoints.
**Protocol**: HTTP file download
**Purpose**: Retrieve digital files (images, documents, media)
**Heritage Sector Usage**:
File APIs enable download of digital assets:
- High-resolution images
- PDF documents
- Audio/video files
- Bulk downloads
**Example**: Nationaal Archief File API for scan downloads
slot_usage:
protocol_name:
equals_string: HTTP
typical_http_methods:
ifabsent: string(GET)
specificity_annotation:
range: SpecificityAnnotation
inlined: true
template_specificity:
range: TemplateSpecificityScores
inlined: true
comments:
- Generic file download endpoints
- May include authentication/rate limiting
slots:
- specificity_annotation
- template_specificity
IIPImageServer:
is_a: DataServiceEndpointType
class_uri: hc:IIPImageServer
description: |
Classification for IIP (Internet Imaging Protocol) image server endpoints.
**Protocol**: IIP
**Purpose**: Tile-based image delivery for deep zoom
**Software**: IIPImage Server
**Heritage Sector Usage**:
IIP servers enable high-resolution image viewing:
- Deep zoom for large images (maps, paintings, manuscripts)
- Efficient tile-based delivery
- Integration with OpenSeadragon, Leaflet viewers
**Example**: Nationaal Archief image server for archival scans
slot_usage:
protocol_name:
equals_string: IIP
typical_http_methods:
ifabsent: string(GET)
specificity_annotation:
range: SpecificityAnnotation
inlined: true
template_specificity:
range: TemplateSpecificityScores
inlined: true
comments:
- Tile-based image server - predecessor to IIIF Image API
- Still widely used in Dutch heritage sector
slots:
- specificity_annotation
- template_specificity
IIIFImageAPI:
is_a: DataServiceEndpointType
class_uri: hc:IIIFImageAPI

View file

@ -24,6 +24,7 @@ imports:
- ../slots/wikidata_mapping
- ./SpecificityAnnotation
- ./TemplateSpecificityScores
- ../enums/PlatformTypeCategoryEnum
classes:
DigitalPlatformType:
class_uri: skos:Concept
@ -210,23 +211,3 @@ classes:
- https://www.wikidata.org/
- https://www.w3.org/2004/02/skos/
- https://www.w3.org/ns/dcat
enums:
PlatformTypeCategoryEnum:
description: High-level categories for digital platform type classification
permissible_values:
REPOSITORY:
description: Platforms for storing and accessing digital content (digital libraries, archives, document repositories)
AGGREGATOR:
description: Platforms aggregating metadata/content from multiple sources (aggregators, bibliographic databases)
DISCOVERY:
description: Platforms for searching and browsing heritage content (web portals, online databases)
VIRTUAL_HERITAGE:
description: Digital representations of physical heritage (virtual museums, virtual tours, online galleries)
RESEARCH:
description: Platforms supporting scholarly research (disciplinary repositories, preprint servers)
INTERACTIVE:
description: Platforms enabling user engagement (crowdsourcing, educational, social media)
COMMERCE:
description: Transaction-oriented platforms (booking systems, webshops)
AUXILIARY:
description: Secondary/supporting platforms (project sites, microsites, APIs, legacy platforms)

View file

@ -18,256 +18,286 @@ imports:
- ../slots/template_specificity
- ./SpecificityAnnotation
- ./TemplateSpecificityScores
- ../enums/EADVersionEnum
- ../enums/CompressionTypeEnum
classes:
EADDownload:
is_a: DataServiceEndpoint
class_uri: hc:EADDownload
description: |
EAD (Encoded Archival Description) finding aid download endpoint.
**Purpose:**
Models endpoints that provide EAD XML downloads for archival finding aids.
EAD is the international standard for encoding archival descriptive information.
**EAD Versions:**
- **EAD3** (2015): Current standard, aligned with ISAD(G), RiC-CM
- **EAD 2002**: Previous version, still widely used
- **EAD 1.0** (1998): Original version, legacy
**EAD Structure:**
An EAD document contains:
- **<eadheader>** / **<control>**: Finding aid metadata
- **<archdesc>**: Archival description
- **<did>**: Descriptive identification (title, dates, extent)
- **<bioghist>**: Biographical/historical note
- **<scopecontent>**: Scope and content
- **<arrangement>**: Arrangement
- **<accessrestrict>**: Access restrictions
- **<userestrict>**: Use restrictions
- **<dsc>**: Description of subordinate components (hierarchy)
**Example - Nationaal Archief EAD Download:**
```yaml
ead_download:
endpoint_name: "Nationaal Archief EAD Download"
base_url: "https://www.nationaalarchief.nl/onderzoeken/archief/"
url_pattern: "{base_url}{archive_code}/download/ead"
ead_version: EAD_2002
archive_code_format: "^[0-9]+\\.[0-9]+\\.[0-9]+$"
includes_dao_links: true
includes_index: true
compression: none
example_url: "https://www.nationaalarchief.nl/onderzoeken/archief/2.04.87/download/ead"
```
**Use Cases:**
1. **Finding aid harvesting**: Aggregate archival descriptions
2. **Data migration**: Move descriptions between systems
3. **Preservation**: Archive finding aids as XML
4. **Integration**: Import into archival management systems
**See Also:**
- EAD3: https://www.loc.gov/ead/
- ISAD(G): https://www.ica.org/en/isadg-general-international-standard-archival-description-second-edition
description: "EAD (Encoded Archival Description) finding aid download endpoint.\n\n**Purpose:**\n\nModels endpoints that\
\ provide EAD XML downloads for archival finding aids.\nEAD is the international standard for encoding archival descriptive\
\ information.\n\n**EAD Versions:**\n\n- **EAD3** (2015): Current standard, aligned with ISAD(G), RiC-CM\n- **EAD 2002**:\
\ Previous version, still widely used\n- **EAD 1.0** (1998): Original version, legacy\n\n**EAD Structure:**\n\nAn EAD\
\ document contains:\n- **<eadheader>** / **<control>**: Finding aid metadata\n- **<archdesc>**: Archival description\n\
\ - **<did>**: Descriptive identification (title, dates, extent)\n - **<bioghist>**: Biographical/historical note\n\
\ - **<scopecontent>**: Scope and content\n - **<arrangement>**: Arrangement\n - **<accessrestrict>**: Access restrictions\n\
\ - **<userestrict>**: Use restrictions\n - **<dsc>**: Description of subordinate components (hierarchy)\n\n**Example\
\ - Nationaal Archief EAD Download:**\n\n```yaml\nead_download:\n endpoint_name: \"Nationaal Archief EAD Download\"\
\n base_url: \"https://www.nationaalarchief.nl/onderzoeken/archief/\"\n url_pattern: \"{base_url}{archive_code}/download/ead\"\
\n ead_version: EAD_2002\n archive_code_format: \"^[0-9]+\\\\.[0-9]+\\\\.[0-9]+$\"\n includes_dao_links: true\n \
\ includes_index: true\n compression: none\n example_url: \"https://www.nationaalarchief.nl/onderzoeken/archief/2.04.87/download/ead\"\
\n```\n\n**Use Cases:**\n\n1. **Finding aid harvesting**: Aggregate archival descriptions\n2. **Data migration**: Move\
\ descriptions between systems\n3. **Preservation**: Archive finding aids as XML\n4. **Integration**: Import into archival\
\ management systems\n\n**See Also:**\n\n- EAD3: https://www.loc.gov/ead/\n- ISAD(G): https://www.ica.org/en/isadg-general-international-standard-archival-description-second-edition\n"
attributes:
base_url:
slot_uri: dcat:endpointURL
description: |
Base URL for EAD downloads.
description: 'Base URL for EAD downloads.
Individual finding aids accessed by appending archive code.
Example: "https://www.nationaalarchief.nl/onderzoeken/archief/"
'
range: uri
required: true
url_pattern:
slot_uri: hydra:template
description: |
URL pattern for constructing EAD download requests.
description: 'URL pattern for constructing EAD download requests.
Use {placeholders} for dynamic parts:
- {archive_code}: Archive/fonds identifier
- {format}: Output format (ead, xml)
Example: "{base_url}{archive_code}/download/ead"
'
range: string
ead_version:
slot_uri: dcterms:conformsTo
description: |
EAD version used in downloaded files.
description: 'EAD version used in downloaded files.
Values:
- EAD3: Current standard (2015)
- EAD_2002: Previous version, widely used
- EAD_1_0: Original version (legacy)
'
range: EADVersionEnum
required: true
ead_schema_url:
slot_uri: schema:schemaVersion
description: |
URL to EAD schema (XSD or RNG) used for validation.
description: 'URL to EAD schema (XSD or RNG) used for validation.
Example: "https://www.loc.gov/ead/ead3.xsd"
'
range: uri
archive_code_format:
slot_uri: dcterms:identifier
description: |
Regex pattern for archive/fonds codes used in URLs.
description: 'Regex pattern for archive/fonds codes used in URLs.
Dutch Nationaal Archief uses: "^[0-9]+\\.[0-9]+\\.[0-9]+$" (e.g., 2.04.87)
Example: "^[0-9]+\\.[0-9]+\\.[0-9]+$"
'
range: string
archive_code_examples:
slot_uri: schema:workExample
description: |
Example archive codes for reference.
description: 'Example archive codes for reference.
Example: ["2.04.87", "2.21.281.02", "4.MST"]
'
range: string
multivalued: true
isad_g_compliant:
slot_uri: dcterms:conformsTo
description: |
Whether EAD output follows ISAD(G) description standard.
description: 'Whether EAD output follows ISAD(G) description standard.
ISAD(G) = General International Standard Archival Description
'
range: boolean
includes_dao_links:
slot_uri: schema:associatedMedia
description: |
Whether EAD includes <dao> (digital archival object) links.
description: 'Whether EAD includes <dao> (digital archival object) links.
<dao> elements link to digitized content (images, documents).
Essential for integration with digital content delivery.
'
range: boolean
includes_index:
slot_uri: schema:hasPart
description: |
Whether EAD includes <index> elements.
description: 'Whether EAD includes <index> elements.
Index provides structured access points (names, subjects, places).
'
range: boolean
includes_controlaccess:
slot_uri: schema:hasPart
description: |
Whether EAD includes <controlaccess> elements.
description: 'Whether EAD includes <controlaccess> elements.
Controlled access terms (subjects, names, genres, functions).
'
range: boolean
multilevel_description:
slot_uri: schema:hasPart
description: |
Whether EAD supports multi-level hierarchical description.
description: 'Whether EAD supports multi-level hierarchical description.
Uses <dsc> (description of subordinate components) with nested
<c> (component) elements for series, files, items.
'
range: boolean
max_hierarchy_depth:
slot_uri: schema:maxValue
description: |
Maximum depth of component hierarchy in downloaded EADs.
description: 'Maximum depth of component hierarchy in downloaded EADs.
Some systems limit depth for performance.
Example: 12
'
range: integer
encoding:
slot_uri: schema:encodingType
description: |
Character encoding of EAD output.
description: 'Character encoding of EAD output.
Should be UTF-8 for modern systems.
Example: "UTF-8"
'
range: string
compression:
slot_uri: schema:encodingFormat
description: |
Compression applied to downloads.
description: 'Compression applied to downloads.
Values:
- NONE: Plain XML
- GZIP: Gzip compressed
- ZIP: ZIP archive
'
range: CompressionTypeEnum
includes_dtd_declaration:
slot_uri: schema:additionalProperty
description: |
Whether XML includes DOCTYPE declaration referencing DTD.
description: 'Whether XML includes DOCTYPE declaration referencing DTD.
Legacy EAD often includes DTD reference.
Modern practice uses XSD validation.
'
range: boolean
namespace_aware:
slot_uri: schema:additionalProperty
description: |
Whether EAD uses XML namespaces.
description: 'Whether EAD uses XML namespaces.
EAD3 uses namespace: urn:isbn:1-931666-22-9 (changed to LOC namespace)
EAD 2002 may be namespace-aware or not.
'
range: boolean
default_namespace:
slot_uri: schema:additionalProperty
description: |
Default XML namespace for EAD elements.
description: 'Default XML namespace for EAD elements.
EAD3: "http://ead3.archivists.org/schema/"
EAD 2002: "urn:isbn:1-931666-22-9"
'
range: uri
language_of_description:
slot_uri: dcterms:language
description: |
Primary language of finding aid descriptions.
description: 'Primary language of finding aid descriptions.
ISO 639-1 code.
Example: "nl" (Dutch)
'
range: string
supports_partial_download:
slot_uri: schema:additionalProperty
description: |
Whether partial EAD download is supported.
description: 'Whether partial EAD download is supported.
Some systems allow downloading specific components rather
than entire finding aid.
'
range: boolean
batch_download_available:
slot_uri: schema:additionalProperty
description: |
Whether batch download of multiple finding aids is available.
description: 'Whether batch download of multiple finding aids is available.
May provide ZIP archive or OAI-PMH harvesting.
'
range: boolean
transform_options:
slot_uri: schema:additionalProperty
description: |
Output transformation options available.
description: 'Output transformation options available.
Some systems offer XSLT-transformed output (HTML, PDF).
Example: ["EAD", "HTML", "PDF"]
'
range: string
multivalued: true
example_url:
slot_uri: schema:workExample
description: |
Example URL for EAD download.
description: 'Example URL for EAD download.
Example: "https://www.nationaalarchief.nl/onderzoeken/archief/2.04.87/download/ead"
'
range: uri
slot_usage:
protocol:
description: EAD downloads use HTTP GET (REST-like). Uses DataServiceProtocolEnum.REST.
response_format:
description: |
EAD is always XML.
description: 'EAD is always XML.
'
ifabsent: string(application/xml)
specificity_annotation:
range: SpecificityAnnotation
@ -286,68 +316,3 @@ classes:
slots:
- specificity_annotation
- template_specificity
enums:
EADVersionEnum:
description: |
Versions of the EAD (Encoded Archival Description) standard.
permissible_values:
EAD3:
description: |
EAD3 (2015) - Current standard.
Major revision aligned with:
- ISAD(G) and ISAAR(CPF)
- RiC-CM (Records in Contexts)
- Schema-first design (XSD, RNG)
Namespace: http://ead3.archivists.org/schema/
EAD_2002:
description: |
EAD 2002 - Previous version.
Most widely deployed version.
DTD and XSD schemas available.
Namespace: urn:isbn:1-931666-22-9
EAD_1_0:
description: |
EAD 1.0 (1998) - Original version.
Legacy, rarely used for new content.
DTD-based validation.
UNKNOWN:
description: |
EAD version not specified or unknown.
May require inspection of downloaded file.
CompressionTypeEnum:
description: |
Compression types for file downloads.
permissible_values:
NONE:
description: |
No compression - plain file.
MIME type unchanged from content type.
GZIP:
description: |
Gzip compression.
Single compressed file.
Content-Encoding: gzip
ZIP:
description: |
ZIP archive.
May contain multiple files.
application/zip
BZIP2:
description: |
Bzip2 compression.
Higher compression ratio than gzip.
XZ:
description: |
XZ/LZMA compression.
Very high compression ratio.

View file

@ -402,907 +402,3 @@ classes:
- Complements but does not replace GovernanceStructure or OrganizationalStructure
- 'Six types reflect different relationship models: legal (umbrella), service (network), collaborative (consortium), ownership
(cooperative), ideological (social movement), financial (funding)'
UmbrellaOrganisation:
is_a: EncompassingBody
class_uri: org:FormalOrganization
description: "A legal parent organization with formal governance authority over heritage custodians,\ndefined in articles\
\ of association, foundation statutes, or legislation. Represents\nPERMANENT hierarchical legal structures.\n\n**Characteristics**:\n\
- **Legal basis**: Defined in founding documents, statutes, or laws\n- **Authority**: Strong governance authority (budgets,\
\ appointments, policy)\n- **Permanence**: Permanent structure (changes require legal amendments)\n- **Relationship**:\
\ Legal subordination (parent-child hierarchy)\n\n**Examples**:\n- **Ministry governing national cultural institutions**:\n\
\ - Ministry of OCW → National Archives, Rijksmuseum, National Library\n - Defined in Dutch government legislation\n\
- **Foundation board governing museum**:\n - Museum Board of Trustees → Museum operations\n - Defined in foundation\
\ statutes\n- **University governing university libraries**:\n - University administration → University library system\n\
\ - Defined in university charter\n- **Religious order governing monastery archives**:\n - Franciscan Order → Franciscan\
\ Archive\n - Defined in religious constitution\n\n**Ontological Alignment**:\n- W3C ORG: `org:FormalOrganization`\
\ - \"An Organization which is recognized in \n the world at large, in particular in legal jurisdictions, with associated\
\ rights \n and responsibilities.\"\n- TOOI: `tooi:Ministerie`, `tooi:RegionaalOpenbaarLichaam` (Dutch government bodies)\n\
- CPOV: `cpov:PublicOrganisation` (for public sector umbrella bodies)\n- Schema.org: `schema:GovernmentOrganization`,\
\ `schema:EducationalOrganization`\n\n**Temporal Dynamics**:\nUmbrella relationships typically persist over long periods.\
\ Changes occur through:\n- Government reorganizations (ministries merge/split)\n- Legal entity changes (foundation\
\ restructuring)\n- Policy reforms (agencies transferred between ministries)\n"
slot_usage:
organization_type:
range: EncompassingBodyTypeEnum
required: true
ifabsent: string(UMBRELLA)
description: Must be UMBRELLA for UmbrellaOrganisation
governance_authority:
required: true
description: 'Detailed description of legal governance authority.
Must document legal basis (statute, law, articles of association).
'
examples:
- value: Ministry OCW exercises governance authority over National Archives under Dutch Heritage Act 2016. Authority
includes budget approval, director appointment, and policy oversight.
organization_legal_form:
required: true
description: Legal form is required for umbrella organizations
examples:
- value: Government ministry
- value: Foundation board
- value: University governing body
legal_jurisdiction:
required: true
range: Jurisdiction
description: 'Legal jurisdiction where this umbrella organization has authority.
Required for UmbrellaOrganisation because legal parent-child relationships
are defined by law within specific jurisdictions.
**Examples:**
- Ministry of OCW: jurisdiction_type=NATIONAL, country=NL
- Bavarian State Ministry: jurisdiction_type=SUBNATIONAL, subregion=DE-BY
- University of Amsterdam: jurisdiction_type=NATIONAL, country=NL
'
examples:
- value:
jurisdiction_id: NL
jurisdiction_type: NATIONAL
country:
alpha_2: NL
alpha_3: NLD
description: Netherlands national jurisdiction
- value:
jurisdiction_id: DE-BY
jurisdiction_type: SUBNATIONAL
country:
alpha_2: DE
alpha_3: DEU
subregion:
iso_3166_2_code: DE-BY
description: Bavaria subnational jurisdiction
specificity_annotation:
range: SpecificityAnnotation
inlined: true
template_specificity:
range: TemplateSpecificityScores
inlined: true
exact_mappings:
- org:FormalOrganization
close_mappings:
- tooi:Ministerie
- tooi:RegionaalOpenbaarLichaam
- cpov:PublicOrganisation
- schema:GovernmentOrganization
comments:
- UmbrellaOrganisation represents LEGAL parent-child relationships
- Changes to umbrella relationships require legal/statutory amendments
- Permanent structure - not temporary agreements
examples:
- value:
id: https://nde.nl/ontology/hc/encompassing-body/umbrella/nl-ministry-ocw
organization_name: Ministerie van Onderwijs, Cultuur en Wetenschap
organization_type: UMBRELLA
organization_legal_form: Government ministry
founding_date: '1965-07-01'
governance_authority: Exercises governance over Dutch national cultural heritage institutions under Heritage Act 2016.
Authority includes budget oversight, director appointments, and strategic policy direction.
legal_jurisdiction:
jurisdiction_id: NL
jurisdiction_type: NATIONAL
country:
alpha_2: NL
alpha_3: NLD
description: Netherlands national jurisdiction
has_or_had_member_custodian:
- hc_id: https://nde.nl/ontology/hc/nl-na
preferred_label: Nationaal Archief
- hc_id: https://nde.nl/ontology/hc/nl-nh-ams-m-rm
preferred_label: Rijksmuseum
website: https://www.rijksoverheid.nl/ministeries/ocw
description: Dutch Ministry OCW as umbrella organization for national heritage
slots:
- specificity_annotation
- template_specificity
NetworkOrganisation:
is_a: EncompassingBody
class_uri: schema:Organization
description: "A service provider network that coordinates and delivers services to member heritage\ncustodians through\
\ TEMPORARY agreements or treaties. Members choose to participate\nto access services; participation is NOT legally\
\ imposed.\n\n**Characteristics**:\n- **Service-oriented**: Provides infrastructure, platforms, training, coordination\n\
- **Voluntary membership**: Custodians choose to join for service benefits\n- **Temporary agreements**: Based on contracts/treaties,\
\ not permanent legal structure\n- **Limited authority**: Coordinates services but no direct governance over members\n\
\n**Examples**:\n- **Digital Heritage Network (Netherlands)**:\n - Provides digital preservation infrastructure to\
\ museums, archives, libraries\n - Members pay fees for services\n - No governance authority over member institutions\n\
- **DPLA (Digital Public Library of America)**:\n - Aggregates digital collections from libraries/archives\n - Members\
\ contribute metadata for aggregation\n - No control over member collection policies\n- **Europeana**:\n - European\
\ digital heritage aggregation network\n - Museums/archives contribute digitized collections\n - Coordination, not\
\ governance\n- **Regional archive networks**:\n - Shared conservation labs, digitization services\n - Temporary service\
\ agreements between institutions\n- Schema.org: `schema:Organization` (general organization type)\n- W3C ORG: `org:Organization`\
\ (parent class)\n- TOOI: `tooi:Samenwerkingsorganisatie` (Dutch collaborative organizations)\n\n**Temporal Dynamics**:\n\
Network memberships fluctuate - custodians join/leave based on service needs.\nNetworks themselves may dissolve if service\
\ model becomes obsolete or funding ends.\nTrack membership changes with temporal validity.\n"
slot_usage:
organization_type:
range: EncompassingBodyTypeEnum
required: true
ifabsent: string(NETWORK)
description: Must be NETWORK for NetworkOrganisation
service_offering:
required: true
description: 'Services provided to member custodians.
Required field for NetworkOrganisation (defines purpose).
'
examples:
- value: Digital preservation storage infrastructure
- value: Shared cataloging platform (union catalog)
- value: Conservation services and expertise
- value: Professional development workshops
membership_criteria:
recommended: true
description: 'Eligibility criteria for joining network.
Typically based on institution type, geographic location, or service needs.
'
examples:
- value: 'Dutch heritage institutions with digital collections seeking long-term preservation services. Membership
fee: €5,000/year.'
governance_authority:
description: 'Limited to SERVICE coordination authority.
Networks do NOT exercise governance over member institutions.
'
examples:
- value: Network defines technical standards for digital preservation but members retain full autonomy over collection
policies and operations.
specificity_annotation:
range: SpecificityAnnotation
inlined: true
template_specificity:
range: TemplateSpecificityScores
inlined: true
exact_mappings:
- schema:Organization
close_mappings:
- tooi:Samenwerkingsorganisatie
- org:Organization
comments:
- NetworkOrganisation provides SERVICES, not governance
- Membership is voluntary and service-driven
- Temporary agreements - not permanent legal subordination
examples:
- value:
id: https://nde.nl/ontology/hc/encompassing-body/network/digital-heritage-nl
organization_name: Digital Heritage Network Netherlands
organization_type: NETWORK
founding_date: '2015-03-01'
description: 'Collaborative network providing digital preservation infrastructure
and services to Dutch heritage institutions. Members access shared
storage, metadata standards, and technical expertise.
'
has_or_had_area_served:
- NL
service_offering:
- Long-term digital preservation storage (100TB+ capacity)
- Metadata aggregation and normalization services
- Technical training workshops (quarterly)
- Preservation format migration services
membership_criteria: Dutch museums, archives, and libraries with digital collections. Annual membership fee based
on storage usage.
has_or_had_member_custodian:
- hc_id: https://nde.nl/ontology/hc/nl-nh-ams-m-am
preferred_label: Amsterdam Museum
- hc_id: https://nde.nl/ontology/hc/nl-ut-utr-l-ub
preferred_label: Utrecht University Library
website: https://digitalheritage.nl
description: Service network for digital preservation
slots:
- specificity_annotation
- template_specificity
Consortium:
is_a: EncompassingBody
class_uri: schema:Consortium
description: "A collaborative body where member heritage custodians provide MUTUAL assistance\nto each other through TEMPORARY\
\ agreements. Unlike networks (centralized service\nprovider), consortia are PEER-TO-PEER collaboration models.\n\n\
**Characteristics**:\n- **Mutual assistance**: Members help each other (not centralized services)\n- **Peer-to-peer**:\
\ Equal participation, shared responsibility\n- **Temporary agreements**: Based on memoranda of understanding, not permanent\
\ structure\n- **Coordination only**: Facilitates collaboration, no authority over members\n\n**Examples**:\n- **Library\
\ consortia for shared cataloging**:\n - Members contribute catalog records to shared database\n - Peer-to-peer cataloging\
\ standards and quality control\n - Example: OCLC WorldCat participating libraries\n- **Bulk licensing consortia**:\n\
\ - Libraries collectively negotiate database subscriptions\n - Shared purchasing power, individual licenses\n- **Interlibrary\
\ loan consortia**:\n - Members lend materials to each other\n - Reciprocal borrowing agreements\n- **Conservation\
\ consortia**:\n - Museums share conservation expertise and equipment\n - Rotating access to specialized conservation\
\ labs\n- **Digitization consortia**:\n - Archives collaborate on large-scale digitization projects\n - Shared equipment,\
\ coordinated workflows\n\n**Distinction from NetworkOrganisation**:\n- **Consortium**: Peer-to-peer mutual assistance\
\ (members help each other)\n- **Network**: Centralized service provider (network provides services to members)\n\n\
**Ontological Alignment**:\n- Schema.org: `schema:Consortium` - \"A Consortium is a membership Organization \n whose\
\ members are typically Organizations.\"\n- W3C ORG: `org:Organization` (parent class)\n- TOOI: `tooi:Samenwerkingsorganisatie`\
\ (Dutch collaborative organizations)\n\n**Temporal Dynamics**:\nConsortia form for specific collaborative goals and\
\ may dissolve when goals are\nachieved or collaboration model becomes obsolete. Short to medium-term duration\n(3-10\
\ years typical).\n"
slot_usage:
organization_type:
range: EncompassingBodyTypeEnum
required: true
ifabsent: string(CONSORTIUM)
description: Must be CONSORTIUM for Consortium class
service_offering:
description: 'Services members provide TO EACH OTHER (not centralized services).
Focus on reciprocal/mutual assistance patterns.
'
examples:
- value: Shared cataloging contributions to union catalog
- value: Reciprocal interlibrary loan services
- value: Peer review of conservation treatments
- value: Collaborative digitization equipment sharing
membership_criteria:
recommended: true
description: 'Criteria for joining consortium.
Typically based on ability to contribute to mutual assistance model.
'
examples:
- value: Academic libraries with interlibrary loan capabilities and commitment to reciprocal lending. No membership
fee.
governance_authority:
description: 'Minimal authority - coordination and facilitation only.
Consortia do NOT govern members; they facilitate peer collaboration.
'
examples:
- value: Consortium coordinates shared cataloging standards and provides technical infrastructure, but members retain
full autonomy.
specificity_annotation:
range: SpecificityAnnotation
inlined: true
template_specificity:
range: TemplateSpecificityScores
inlined: true
exact_mappings:
- schema:Consortium
close_mappings:
- tooi:Samenwerkingsorganisatie
- org:Organization
comments:
- Consortium is PEER-TO-PEER mutual assistance model
- Distinguished from Network (centralized service provider)
- Temporary collaborative agreements, not permanent legal structure
examples:
- value:
id: https://nde.nl/ontology/hc/encompassing-body/consortium/dutch-univ-lib-consortium
organization_name: Dutch University Libraries Consortium
organization_type: CONSORTIUM
founding_date: '2010-09-01'
description: 'Collaborative consortium of Dutch university libraries for shared
cataloging, bulk licensing, and interlibrary loan. Members contribute
equally and benefit from collective resources.
'
service_offering:
- Shared union catalog contributions
- Collective database subscription negotiations
- Reciprocal interlibrary loan services
- Collaborative metadata enrichment projects
membership_criteria: Dutch university libraries accredited by VSNU (Association of Universities in the Netherlands).
Members must contribute cataloging records and participate in interlibrary loan network.
has_or_had_member_custodian:
- hc_id: https://nde.nl/ontology/hc/nl-zh-lei-l-ub
preferred_label: Leiden University Library
- hc_id: https://nde.nl/ontology/hc/nl-nh-ams-l-uba
preferred_label: Amsterdam University Library
website: https://universiteitsbibliotheken.nl
description: University library consortium for mutual assistance
slots:
- specificity_annotation
- template_specificity
Cooperative:
is_a: EncompassingBody
class_uri: org:FormalOrganization
description: "A member-OWNED organization where members both contribute to and benefit from\nshared services. Distinguished\
\ from Consortium by PERMANENT structure and\nOWNERSHIP model - members are legal owners of the cooperative.\n\n**Characteristics**:\n\
- **Member ownership**: Members hold shares/ownership stake\n- **Member governance**: One member, one vote principle\
\ (democratic)\n- **Permanent legal structure**: Formal organization, not temporary agreements\n- **Shared services\
\ AND shared ownership**: Dual benefit model\n- **Typically operates as non-profit**: Mutual benefit corporation\n-\
\ **May have closed/proprietary data model**: Data as organizational asset\n\n**CRITICAL: Data Openness Pattern**:\n\
Cooperatives often have MIXED or CLOSED data policies because:\n- Data contributed by members is organizational asset\n\
- Business model may depend on subscription/membership revenue\n- Balancing member value vs. public open access\n- Historical\
\ model predates open data movement\n\n**Examples**:\n\n- **OCLC** (Online Computer Library Center)\n - Member-owned\
\ library cooperative since 1967\n - 30,000+ member libraries worldwide\n - WorldCat: Proprietary (subscription-based)\n\
\ - VIAF: Open (ODC-BY) - strategic choice for linked data\n - Members both contribute data AND receive services\n\
\ \n- **RERO** (Library Network of Western Switzerland)\n - Cooperative of Swiss academic libraries\n - Shared cataloging\
\ and discovery services\n \n- **HathiTrust**\n - Partnership of academic and research libraries\n - Shared digital\
\ preservation infrastructure\n\n**Distinction from Consortium**:\n- **Cooperative**: Members OWN the organization (permanent\
\ legal structure)\n- **Consortium**: Members PARTICIPATE in agreements (temporary, no ownership)\n\n**Distinction from\
\ NetworkOrganisation**:\n- **Cooperative**: Members are owners AND contributors AND consumers\n- **Network**: Members\
\ are consumers of centralized services only\n\n**Ontological Alignment**:\n- W3C ORG: `org:FormalOrganization` (formal\
\ legal entity)\n- Schema.org: `schema:Organization` with `additionalType: Cooperative`\n- Can align with ICA (International\
\ Cooperative Alliance) principles\n"
slot_usage:
organization_type:
range: EncompassingBodyTypeEnum
required: true
ifabsent: string(COOPERATIVE)
description: Must be COOPERATIVE for Cooperative class
organization_legal_form:
required: true
description: 'Legal form of the cooperative.
Examples: "Cooperative corporation", "Mutual benefit corporation",
"Library cooperative", "Non-profit cooperative"
'
governance_authority:
required: true
description: 'Member governance model.
Must document: voting rights, board composition, annual meeting structure.
'
examples:
- value: OCLC is governed by a Global Council of library representatives elected by member libraries. Each member
has voting rights proportional to their usage. Annual Members Council meeting.
membership_criteria:
required: true
description: 'How to become a member/owner of the cooperative.
Must include: eligibility, membership fees, ownership stake.
'
examples:
- value: OCLC membership is open to libraries and cultural heritage organizations. Members pay annual fees based on
usage. Members receive governance rights and access to services.
data_license_policy:
recommended: true
description: 'Data openness policy for the cooperative.
Cooperatives typically have MIXED_POLICY:
- Core services may be proprietary (subscription revenue)
- Some services may be open (strategic value for linked data)
'
specificity_annotation:
range: SpecificityAnnotation
inlined: true
template_specificity:
range: TemplateSpecificityScores
inlined: true
exact_mappings:
- org:FormalOrganization
close_mappings:
- schema:Organization
comments:
- Cooperative = member-owned permanent organization
- Distinguished from Consortium (ownership, permanence)
- Distinguished from Network (members contribute, not just consume)
- Typically MIXED or CLOSED data policy (data as organizational asset)
- 'Examples: OCLC, RERO, HathiTrust'
examples:
- value:
id: https://nde.nl/ontology/hc/encompassing-body/cooperative/oclc
organization_name: OCLC
organization_type: COOPERATIVE
organization_legal_form: Non-profit library cooperative
founding_date: '1967-07-05'
description: 'OCLC is a global library cooperative providing shared technology
services, research, and programs that help libraries meet the changing
needs of their users, institutions, and communities. Member libraries
cooperatively maintain WorldCat, the world''s largest shared catalog.
'
service_offering:
- WorldCat (shared cataloging database)
- VIAF (Virtual International Authority File)
- WorldShare Management Services
- Interlibrary loan services (WorldShare ILL)
- Digital preservation services
- CONTENTdm (digital collection management)
membership_criteria: Open to libraries and cultural heritage organizations worldwide. Membership includes governance
rights (voting in Global Council), access to member pricing for services, and participation in cooperative programs.
governance_authority: Governed by Global Council of elected library representatives. Board of Trustees provides strategic
oversight. Regional councils for Americas, EMEA, and Asia Pacific. Annual Members Council meeting.
data_license_policy:
policy_name: OCLC Data Usage Policy
openness_stance: MIXED_POLICY
default_license: proprietary-worldcat
service_specific_licenses:
- service_name: VIAF
license: odc-by-1.0
- service_name: WorldCat Identities
license: odc-by-1.0
external_identifier:
- http://www.wikidata.org/entity/Q190593
- https://viaf.org/viaf/125315828
website: https://www.oclc.org/
description: OCLC as member-owned library cooperative with mixed data policy
slots:
- specificity_annotation
- template_specificity
SocialMovement:
is_a: EncompassingBody
class_uri: schema:Organization
description: "A value-driven movement organized around shared ideological principles,\nwith open participation and commitment\
\ to public benefit. Distinguished from\nother types by ideological motivation and OPEN data policies as core value.\n\
\n**Characteristics**:\n- **Value-driven**: Ideological commitment to principles (free knowledge, openness)\n- **Open\
\ participation**: Anyone can join/contribute based on shared values\n- **Decentralized governance**: Community-driven\
\ decision making\n- **Non-proprietary by design**: Open data is core value, not business decision\n- **Global grassroots\
\ participation**: Often volunteer-driven\n- **May include formal foundation**: Legal entity supports the movement\n\
\n**CRITICAL: Data Openness Pattern**:\nSocial movements typically have FULLY OPEN data policies because:\n- Openness\
\ is ideological value, not business strategy\n- Mission centers on public access and benefit\n- Data openness is prerequisite\
\ for participation\n- No proprietary business model to protect\n- \"Information wants to be free\" philosophy\n\n**Examples**:\n\
\n- **Wikimedia Foundation / Movement**\n - Mission: \"Free knowledge for everyone\"\n - Wikidata: CC0 (public domain)\n\
\ - Wikipedia: CC-BY-SA (copyleft)\n - Global volunteer contributor base (300,000+ active editors)\n - Foundation\
\ supports movement, doesn't own content\n \n- **Creative Commons**\n - Mission: \"Enable sharing and reuse\"\n -\
\ License steward and open advocate\n - All materials openly licensed\n \n- **Open Knowledge Foundation**\n - Mission:\
\ \"Promote open data worldwide\"\n - Advocacy for open access and transparency\n - CKAN open source software\n \n\
- **Mozilla Foundation / Movement**\n - Mission: \"Open, accessible internet for all\"\n - Firefox (open source browser)\n\
\ - Open web standards advocacy\n \n- **Internet Archive**\n - Mission: \"Universal access to all knowledge\"\n \
\ - Wayback Machine, Open Library\n - Preservation and open access\n\n**Distinction from Cooperative**:\n- **SocialMovement**:\
\ Open participation, ideological commitment, open data\n- **Cooperative**: Membership-based ownership, may have closed\
\ data\n\n**Distinction from NetworkOrganisation**:\n- **SocialMovement**: Value-driven, open participation\n- **Network**:\
\ Service-driven, membership-based access\n\n**Ontological Alignment**:\n- Schema.org: `schema:Organization` (with movement\
\ characteristics)\n- Sociological concept of \"social movement\"\n- May have formal foundation (e.g., Wikimedia Foundation)\
\ but movement is broader\n"
slot_usage:
organization_type:
range: EncompassingBodyTypeEnum
required: true
ifabsent: string(SOCIAL_MOVEMENT)
description: Must be SOCIAL_MOVEMENT for SocialMovement class
description:
required: true
description: 'Must describe the ideological values and mission of the movement.
Should explain the open participation model and commitment to openness.
'
service_offering:
description: 'Services/platforms provided by the movement.
Typically all openly accessible (no subscription barriers).
'
examples:
- value: Wikidata (open knowledge base, CC0)
- value: Wikipedia (free encyclopedia, CC-BY-SA)
- value: Wikimedia Commons (free media repository)
membership_criteria:
description: 'How to participate in the movement.
Typically open to anyone who shares the values - no formal membership.
'
examples:
- value: Open participation - anyone can edit Wikipedia, contribute to Wikidata, or upload to Wikimedia Commons. No
membership fee or application process. Contribution governed by community policies.
governance_authority:
description: 'Community-driven governance model.
Describes how decisions are made within the movement.
'
examples:
- value: Wikimedia projects are governed by community consensus. The Wikimedia Foundation provides infrastructure
and legal support but does not control content. Movement governance through affiliates, chapters, and community-elected
bodies.
data_license_policy:
required: true
description: 'Data openness policy for the movement.
Social movements typically have STRONG_OPEN_ADVOCATE stance:
- All content openly licensed
- Openness is ideological requirement, not business option
- Active advocacy for open data in broader community
'
specificity_annotation:
range: SpecificityAnnotation
inlined: true
template_specificity:
range: TemplateSpecificityScores
inlined: true
exact_mappings:
- schema:Organization
comments:
- SocialMovement = value-driven, open participation, open data
- Distinguished from Cooperative (ideology vs. ownership)
- Distinguished from Network (values vs. services)
- Typically FULLY OPEN data policy (openness as core value)
- 'Examples: Wikimedia, Creative Commons, Open Knowledge Foundation, Mozilla'
examples:
- value:
id: https://nde.nl/ontology/hc/encompassing-body/social-movement/wikimedia
organization_name: Wikimedia Foundation / Movement
organization_type: SOCIAL_MOVEMENT
organization_legal_form: 501(c)(3) non-profit foundation supporting broader movement
founding_date: '2003-06-20'
description: 'The Wikimedia movement is a global community of volunteers and
organizations dedicated to free knowledge. The movement operates
Wikipedia, Wikidata, Wikimedia Commons, and other free knowledge
projects. The Wikimedia Foundation provides infrastructure and
legal support but does not own or control the content created by
the volunteer community. The movement''s core value is that knowledge
should be freely accessible to everyone.
'
service_offering:
- Wikipedia (free encyclopedia, 60M+ articles, 300+ languages)
- Wikidata (open knowledge base, 100M+ items, CC0)
- Wikimedia Commons (free media repository, 90M+ files)
- Wikisource (free library of source texts)
- Wiktionary (free dictionary)
- MediaWiki (open source wiki software)
membership_criteria: Open participation - anyone can edit Wikipedia, contribute to Wikidata, or upload to Wikimedia
Commons. No membership fee or application. Contribution governed by community policies (neutral point of view, verifiability,
no original research). The movement includes formal affiliates (chapters, user groups, thematic orgs).
governance_authority: Wikimedia projects are governed by community consensus through volunteer administrators, arbitration
committees, and policy pages. The Wikimedia Foundation Board of Trustees provides strategic oversight. Movement
governance through affiliates, chapters, and community-elected bodies (Movement Charter in development).
data_license_policy:
policy_name: Wikimedia Foundation Open Content Policy
openness_stance: STRONG_OPEN_ADVOCATE
default_license: cc0-1.0
service_specific_licenses:
- service_name: Wikidata
license: cc0-1.0
license_notes: All structured data is public domain
- service_name: Wikipedia
license: cc-by-sa-4.0
license_notes: Text content is copyleft - derivatives must share alike
- service_name: Wikimedia Commons
license_notes: Varies by upload - must be free license (CC-BY, CC-BY-SA, CC0, or public domain)
open_data_principles:
- Free knowledge for everyone
- Open participation
- Neutral point of view
advocacy_activities:
- Open Access advocacy
- GLAM-Wiki partnerships
- Open data advocacy in policy forums
- Training librarians and cultural heritage professionals
external_identifier:
- http://www.wikidata.org/entity/Q180
- https://viaf.org/viaf/305375908
website: https://www.wikimedia.org/
description: Wikimedia as social movement for free knowledge with fully open data policy
slots:
- specificity_annotation
- template_specificity
FundingOrganisation:
is_a: EncompassingBody
class_uri: schema:FundingAgency
description: "A grant-giving organization that provides FINANCIAL RESOURCES to heritage\ncustodians through funding schemes,\
\ grants, and subsidies. Distinguished from\nother EncompassingBody types by the FINANCIAL relationship rather than\
\ governance,\nservices, or collaboration.\n\n**Characteristics**:\n- **Financial support**: Provides grants, subsidies,\
\ funding to custodians\n- **Funding schemes**: Implements structured programs with application processes\n- **No governance**:\
\ Does NOT govern recipients (unlike UmbrellaOrganisation)\n- **No ongoing services**: Does NOT provide operational\
\ services (unlike NetworkOrganisation)\n- **Evaluation and monitoring**: Assesses applications, monitors outcomes\n\
- **Time-limited relationships**: Grant periods define relationship duration\n\n**Relationship Model**:\nUnlike other\
\ EncompassingBody types that have ongoing structural relationships,\nFundingOrganisation has TRANSACTIONAL relationships:\n\
- Funder → (awards grant) → Custodian\n- Grant has start date, end date, amount, purpose\n- Multiple custodians may\
\ receive funding simultaneously\n- Same custodian may receive multiple grants over time\n\n**Examples**:\n\n- **Mondriaan\
\ Fund** (Mondriaan Fonds, Q2714299)\n - Dutch public fund for visual arts and cultural heritage\n - Instance of \"\
funding body\" (Q5509032) in Wikidata\n - Provides grants for exhibitions, acquisitions, conservation\n - Government-funded\
\ through Ministry of OCW, operates independently\n \n- **European Research Council** (ERC, Q1377836)\n - EU agency\
\ funding frontier research\n - Starting Grants, Consolidator Grants, Advanced Grants\n - Operates under Horizon Europe\
\ framework\n \n- **Creative Europe** (Q17084973)\n - EU programme supporting cultural and creative sectors\n - 2021-2027\
\ programming period\n - Funds transnational cooperation projects\n \n- **DC4EU** (Digital Credentials for Europe)\n\
\ - EU Digital Europe Programme project\n - Funds digital infrastructure for heritage sector\n \n- **National Endowment\
\ for the Humanities** (NEH)\n - US federal agency for humanities funding\n - Preservation, research, public programs\n\
\ \n- **Heritage Lottery Fund** (now National Lottery Heritage Fund)\n - UK lottery distributor for heritage projects\n\
\ - Major funder of UK heritage custodians\n\n**Distinction from UmbrellaOrganisation**:\n- **FundingOrganisation**:\
\ Provides money, NO governance authority\n- **UmbrellaOrganisation**: Legal parent WITH governance authority\n- A ministry\
\ may BOTH fund AND govern - in that case use UMBRELLA\n (the governance relationship is primary)\n\n**Distinction\
\ from NetworkOrganisation**:\n- **FundingOrganisation**: One-way financial relationship (funder → recipient)\n- **NetworkOrganisation**:\
\ Ongoing service provision relationship\n\n**When a Ministry is UMBRELLA vs FUNDING_BODY**:\n- Ministry of OCW → National\
\ Archives: UMBRELLA (governs)\n- Ministry of OCW → Mondriaan Fund: UMBRELLA (governs the fund)\n- Mondriaan Fund →\
\ Museum X: FUNDING_BODY (only provides grant)\n\n**Ontological Alignment**:\n- Schema.org: `schema:FundingAgency` -\
\ \"An organization that implements\n FundingSchemes and manages the granting process (via Grants)\"\n- Schema.org:\
\ `schema:FundingScheme` - structured funding programs\n- Schema.org: `schema:Grant` / `schema:MonetaryGrant` - individual\
\ awards\n- Wikidata: Q5509032 (funding body)\n- FOAF: `foaf:fundedBy` (legacy, use schema:funder instead)\n"
slots:
- funding_focus
- funding_scheme
- funding_source
- implements_agenda
- issued_call
- programme_period
- specificity_annotation
- template_specificity
- total_annual_budget
slot_usage:
organization_type:
range: EncompassingBodyTypeEnum
required: true
ifabsent: string(FUNDING_BODY)
description: Must be FUNDING_BODY for FundingOrganisation
description:
required: true
description: 'Description of the funding organization''s mission and focus areas.
Should explain what types of projects/custodians it funds.
'
implements_agenda:
slot_uri: org:linkedTo
range: uriorcurie
multivalued: true
inlined_as_list: true
description: "Strategic agendas implemented by this funding organisation.\n\nLinks to FundingAgenda instances that\
\ define strategic priorities\nguiding the organisation's funding decisions and call design.\n\n**Relationship Chain**:\n\
```\nFundingAgenda (NWA, Horizon Europe SP)\n │\n └── implemented by → FundingOrganisation\n \
\ │\n └── issues → CallForApplication[]\n```\n"
examples:
- value: https://nde.nl/ontology/hc/agenda/nl/nwa
description: NWO implements Dutch Research Agenda
issued_call:
slot_uri: schema:makesOffer
range: uriorcurie
multivalued: true
inlined_as_list: true
description: 'Funding calls issued by this organisation.
Links to CallForApplication instances representing specific
funding opportunities with defined budgets, deadlines, and criteria.
**Inverse of CallForApplication.issuing_organisation**
'
examples:
- value: https://nde.nl/ontology/hc/call/nwo/nwa-heritage-2025
description: NWO NWA heritage call 2025
funding_focus:
range: string
multivalued: true
description: 'Focus areas for funding (heritage sectors, themes, activities).
Examples: "Visual arts", "Conservation", "Digitization", "Research"
'
examples:
- value: Visual arts and cultural heritage
- value: Museum acquisitions
- value: Conservation and restoration
- value: Digital infrastructure
funding_scheme:
range: string
multivalued: true
description: 'Named funding programs offered by this organization.
Each scheme typically has its own application process, criteria, and budget.
'
examples:
- value: Project Grants for Museums
- value: Conservation Subsidy Programme
- value: Starting Grant
- value: Consolidator Grant
total_annual_budget:
range: string
description: 'Approximate annual budget for grants (for context).
Format: "€X million" or "€X-Y million range"
'
examples:
- value: €30 million
- value: €2.5 billion (Horizon Europe ERC share)
funding_source:
range: string
description: 'Where the funding organization gets its resources.
Examples: "Government appropriation", "Lottery proceeds", "EU budget"
'
examples:
- value: Dutch Ministry of OCW annual budget
- value: Horizon Europe Framework Programme
- value: National Lottery proceeds
programme_period:
slot_uri: schema:temporalCoverage
range: TimeSpan
description: 'Temporal period of the funding programme.
**EU Programmes**: Use exact dates for 7-year programming periods.
**Ongoing Funds**: Set start date, leave end null.
Uses CIDOC-CRM E52_Time-Span pattern via TimeSpan class.
'
examples:
- value:
begin_of_the_begin: '2021-01-01T00:00:00Z'
end_of_the_begin: '2021-01-01T00:00:00Z'
begin_of_the_end: '2027-12-31T23:59:59Z'
end_of_the_end: '2027-12-31T23:59:59Z'
description: 2021-2027 EU programming period
has_or_had_member_custodian:
description: 'For FundingOrganisation, this represents FUNDED custodians, not members.
Note: Unlike other EncompassingBody types where member_custodians
represents ongoing membership, for FundingOrganisation this captures
custodians that have received funding. Consider using Grant records
for detailed funding relationships with temporal information.
'
service_offering:
description: 'Additional services beyond funding (if any).
Many funding bodies also provide advisory services, training, etc.
'
examples:
- value: Application guidance and coaching
- value: Networking events for grantees
- value: Outcome evaluation support
has_or_had_area_served:
description: 'Geographic scope of funding eligibility.
Which countries/regions can apply for funding?
'
examples:
- value: NL
description: Netherlands only (Mondriaan Fund)
- value: EU
description: EU member states (Creative Europe)
- value: GLOBAL
description: Worldwide eligibility
specificity_annotation:
range: SpecificityAnnotation
inlined: true
template_specificity:
range: TemplateSpecificityScores
inlined: true
exact_mappings:
- schema:FundingAgency
close_mappings:
- schema:Organization
comments:
- FundingOrganisation provides FINANCIAL RESOURCES, not governance or services
- Relationship with custodians is transactional (grant-based)
- Distinguished from UMBRELLA (no governance authority)
- Distinguished from NETWORK (no ongoing services)
- Use schema:funder property to link to funded custodians
examples:
- value:
id: https://nde.nl/ontology/hc/encompassing-body/funding/mondriaan-fund
organization_name: Mondriaan Fonds
organization_type: FUNDING_BODY
organization_legal_form: Public fund (publiekrechtelijk fonds)
founding_date: '1994-01-01'
description: 'The Mondriaan Fund is the Dutch public fund for visual arts and
cultural heritage. It provides grants to artists, museums, archives,
and heritage organizations for exhibitions, acquisitions, conservation,
international exchange, and other cultural heritage activities.
The fund is named after Dutch painter Piet Mondrian.
'
funding_focus:
- Visual arts
- Cultural heritage
- Museum acquisitions
- Conservation and restoration
- International cultural exchange
- Artist residencies
funding_scheme:
- Project Grants for Museums
- Conservation Subsidy
- International Heritage Programme
- Acquisition Grants
total_annual_budget: €30 million (approximate)
funding_source: Dutch Ministry of OCW annual appropriation
has_or_had_area_served:
- NL
service_offering:
- Application guidance
- Networking events for grantees
- Impact evaluation
membership_criteria: 'Eligibility depends on specific funding scheme. Generally: Dutch museums, archives, heritage
organizations, and visual artists. International projects may have broader eligibility.'
external_identifier:
- http://www.wikidata.org/entity/Q2714299
website: https://www.mondriaanfonds.nl/
description: Mondriaan Fund as Dutch heritage funding organization
- value:
id: https://nde.nl/ontology/hc/encompassing-body/funding/erc
organization_name: European Research Council
organization_type: FUNDING_BODY
organization_legal_form: EU executive agency
founding_date: '2007-02-27'
description: 'The European Research Council (ERC) is the premier European funding
organisation for excellent frontier research. It funds researchers
of any nationality and has_age who wish to carry out their research in
EU Member States or Associated Countries. ERC grants are awarded
through open competition to researchers in any field of research.
'
funding_focus:
- Frontier research (all disciplines)
- Principal investigator-driven research
- High-risk/high-gain research
funding_scheme:
- Starting Grant (2-7 years post-PhD)
- Consolidator Grant (7-12 years post-PhD)
- Advanced Grant (established leaders)
- Synergy Grant (small group collaboration)
- Proof of Concept
total_annual_budget: €2.5 billion (under Horizon Europe)
funding_source: Horizon Europe Framework Programme (EU budget)
has_or_had_area_served:
- EU
- EEA
- Associated Countries
membership_criteria: Open to researchers of any nationality. Host institution must be in EU Member State or Horizon
Europe Associated Country. Selection based on scientific excellence only.
external_identifier:
- http://www.wikidata.org/entity/Q1377836
website: https://erc.europa.eu/
description: European Research Council as frontier research funding agency

View file

@ -19,232 +19,261 @@ imports:
- ../slots/template_specificity
- ./SpecificityAnnotation
- ./TemplateSpecificityScores
- ../enums/ContentDispositionEnum
classes:
FileAPI:
is_a: DataServiceEndpoint
class_uri: hc:FileAPI
description: |
File/asset retrieval API for downloading digital content.
**Purpose:**
Models endpoints that provide direct access to digital files
(images, documents, audio, video, 3D models) stored in heritage repositories.
**Distinction from Image Servers:**
- **FileAPI**: Downloads original or derivative files as-is
- **IIPImageServer**: Dynamic image delivery with zooming, tiling, region extraction
Use FileAPI when you need:
- Original/master files
- Fixed-resolution derivatives
- Non-image files (PDFs, audio, video, office documents)
**Example - Nationaal Archief File API:**
```yaml
file_api:
endpoint_name: "Nationaal Archief File API"
base_url: "https://service.archief.nl/gaf/api/file/v1/"
url_pattern: "{base_url}{uuid}/{level}/{format}"
version: "v1"
supported_levels:
- MASTER
- HIGH
- MEDIUM
- LOW
- THUMBNAIL
supported_format:
- image/jpeg
- image/png
- application/pdf
max_file_size_mb: 500
supports_range_requests: true
example_url: "https://service.archief.nl/gaf/api/file/v1/12345678.../high/jpeg"
```
**Use Cases:**
1. **Download master files**: Archival-quality preservation copies
2. **Generate derivatives**: Request specific size/format
3. **Batch harvesting**: Download all files for a record
4. **Streaming**: Audio/video delivery
**See Also:**
- Content-Disposition header for filename hints
- HTTP Range requests (RFC 7233) for partial downloads
description: "File/asset retrieval API for downloading digital content.\n\n**Purpose:**\n\nModels endpoints that provide\
\ direct access to digital files\n(images, documents, audio, video, 3D models) stored in heritage repositories.\n\n\
**Distinction from Image Servers:**\n\n- **FileAPI**: Downloads original or derivative files as-is\n- **IIPImageServer**:\
\ Dynamic image delivery with zooming, tiling, region extraction\n\nUse FileAPI when you need:\n- Original/master files\n\
- Fixed-resolution derivatives\n- Non-image files (PDFs, audio, video, office documents)\n\n**Example - Nationaal Archief\
\ File API:**\n\n```yaml\nfile_api:\n endpoint_name: \"Nationaal Archief File API\"\n base_url: \"https://service.archief.nl/gaf/api/file/v1/\"\
\n url_pattern: \"{base_url}{uuid}/{level}/{format}\"\n version: \"v1\"\n supported_levels:\n - MASTER\n -\
\ HIGH\n - MEDIUM\n - LOW\n - THUMBNAIL\n supported_format:\n - image/jpeg\n - image/png\n - application/pdf\n\
\ max_file_size_mb: 500\n supports_range_requests: true\n example_url: \"https://service.archief.nl/gaf/api/file/v1/12345678.../high/jpeg\"\
\n```\n\n**Use Cases:**\n\n1. **Download master files**: Archival-quality preservation copies\n2. **Generate derivatives**:\
\ Request specific size/format\n3. **Batch harvesting**: Download all files for a record\n4. **Streaming**: Audio/video\
\ delivery\n\n**See Also:**\n\n- Content-Disposition header for filename hints\n- HTTP Range requests (RFC 7233) for\
\ partial downloads\n"
attributes:
base_url:
slot_uri: dcat:endpointURL
description: |
Base URL for file retrieval.
description: 'Base URL for file retrieval.
Individual files are accessed by appending identifiers.
Example: "https://service.archief.nl/gaf/api/file/v1/"
'
range: uri
required: true
url_pattern:
slot_uri: hydra:template
description: |
URL pattern for constructing file requests.
description: 'URL pattern for constructing file requests.
Use {placeholders} for dynamic parts:
- {uuid}: File identifier
- {level}: Quality level (master, high, low, thumbnail)
- {format}: File format (jpeg, png, pdf)
Example: "{base_url}{uuid}/{level}/{format}"
'
range: string
identifier_type:
slot_uri: dcterms:identifier
description: |
Type of identifier used to request files.
description: 'Type of identifier used to request files.
Values: UUID, HANDLE, DOI, ARK, LOCAL_ID, FILENAME
'
range: string
supported_levels:
slot_uri: schema:encodingFormat
description: |
Quality/resolution levels available.
description: 'Quality/resolution levels available.
Common levels:
- MASTER/ORIGINAL: Archival master file
- HIGH: High-resolution derivative
- MEDIUM: Medium resolution (web-suitable)
- LOW: Low resolution (fast loading)
- THUMBNAIL: Small preview image
Example: ["MASTER", "HIGH", "MEDIUM", "LOW", "THUMBNAIL"]
'
range: string
multivalued: true
supported_format:
slot_uri: dcterms:format
description: |
File formats (MIME types) available for download.
description: 'File formats (MIME types) available for download.
May vary by content type and level.
Example:
- Images: ["image/jpeg", "image/png", "image/tiff"]
- Documents: ["application/pdf", "application/xml"]
- Audio: ["audio/mpeg", "audio/wav"]
- Video: ["video/mp4", "video/webm"]
'
range: string
multivalued: true
required: true
max_file_size_mb:
slot_uri: schema:contentSize
description: |
Maximum file size available for download (in MB).
description: 'Maximum file size available for download (in MB).
Larger files may require special access or batch delivery.
Example: 500
'
range: integer
typical_file_size_mb:
slot_uri: schema:contentSize
description: |
Typical file size for most downloads (in MB).
description: 'Typical file size for most downloads (in MB).
Helps clients estimate download times.
Example: 10
'
range: integer
supports_range_requests:
slot_uri: schema:additionalProperty
description: |
Whether HTTP Range requests are supported (RFC 7233).
description: 'Whether HTTP Range requests are supported (RFC 7233).
Enables:
- Resumable downloads
- Partial content retrieval
- Streaming
Check for Accept-Ranges: bytes header.
'
range: boolean
supports_streaming:
slot_uri: schema:additionalProperty
description: |
Whether the API supports media streaming.
description: 'Whether the API supports media streaming.
Relevant for audio/video content.
Enables progressive playback without full download.
'
range: boolean
content_disposition:
slot_uri: schema:additionalProperty
description: |
Content-Disposition header behavior.
description: 'Content-Disposition header behavior.
Values:
- INLINE: Browser displays content
- ATTACHMENT: Browser downloads file
- CONFIGURABLE: Client can request either
'
range: ContentDispositionEnum
filename_in_url:
slot_uri: schema:additionalProperty
description: |
Whether original filename is included in URL.
description: 'Whether original filename is included in URL.
Some APIs include filename for better download naming:
/api/file/v1/uuid/original.tif
'
range: boolean
supports_batch_download:
slot_uri: schema:additionalProperty
description: |
Whether batch/bulk download is supported.
description: 'Whether batch/bulk download is supported.
May provide ZIP archives or async batch jobs.
'
range: boolean
batch_download_format:
slot_uri: dcterms:format
description: |
Format for batch downloads.
description: 'Format for batch downloads.
Example: "application/zip"
'
range: string
thumbnail_dimensions:
slot_uri: schema:width
description: |
Dimensions of thumbnail images (if thumbnail level available).
description: 'Dimensions of thumbnail images (if thumbnail level available).
Format: "WIDTHxHEIGHT"
Example: "150x150"
'
range: string
watermark_applied:
slot_uri: schema:additionalProperty
description: |
Whether watermarks are applied to downloaded files.
description: 'Whether watermarks are applied to downloaded files.
May vary by access level or file type.
'
range: boolean
has_or_had_access_restriction:
slot_uri: dcterms:accessRights
description: |
Access restrictions on file downloads.
description: 'Access restrictions on file downloads.
Examples:
- "Public access to all levels"
- "Master files require authentication"
- "Some collections IP-restricted"
'
range: string
example_url:
slot_uri: schema:workExample
description: |
Example URL for file download.
description: 'Example URL for file download.
Example: "https://service.archief.nl/gaf/api/file/v1/12345678.../high/jpeg"
'
range: uri
slot_usage:
protocol:
description: File APIs use REST protocol for downloads (DataServiceProtocolEnum.REST).
has_authentication_required_flag:
description: |
Master files often require authentication.
description: 'Master files often require authentication.
Thumbnails and low-res typically public.
'
specificity_annotation:
range: SpecificityAnnotation
inlined: true
@ -261,27 +290,3 @@ classes:
slots:
- specificity_annotation
- template_specificity
enums:
ContentDispositionEnum:
description: |
HTTP Content-Disposition header behavior options.
permissible_values:
INLINE:
description: |
Content displayed inline in browser.
Header: Content-Disposition: inline
Browser attempts to render (images, PDFs).
ATTACHMENT:
description: |
Content downloaded as attachment.
Header: Content-Disposition: attachment; filename="example.pdf"
Browser prompts for download.
CONFIGURABLE:
description: |
Client can request either behavior.
Usually via query parameter: ?download=true

View file

@ -152,81 +152,10 @@ imports:
- ../slots/event
- ../slots/event_en
- ../slots/claim_source_url
enums:
ExternalResourceTypeEnum:
description: 'Types of external resources linked from finding aids.
'
permissible_values:
database:
description: Searchable online database
organization:
description: Related organization or society
portal:
description: Discovery portal or aggregator
archive:
description: External archive holding related materials
library:
description: Library with related holdings
museum:
description: Museum with related collections
website:
description: General website resource
api:
description: API endpoint for programmatic access
reference:
description: Reference material or documentation
research_institute:
description: Research institution or academic center
aggregator:
description: Data aggregator or harvesting service
SubGuideTypeEnum:
description: 'Types of sub-guide references within a repository guide.
'
permissible_values:
sub_guide:
description: Direct sub-guide within same repository
cross_reference:
description: Cross-reference to another main guide
thematic:
description: Thematic sub-collection
regional:
description: Regional sub-guide
RelationshipTypeEnum:
description: 'Types of relationships between finding aids.
'
permissible_values:
cross_reference:
description: Related guide on related topic
parent:
description: Parent guide containing this guide
child:
description: Child guide within this guide
see_also:
description: See also reference
predecessor:
description: Previous version of this guide
successor:
description: Newer version of this guide
LinkTypeEnum:
description: 'Types of hyperlinks extracted from pages.
'
permissible_values:
internal:
description: Link within same domain
external:
description: Link to external domain
anchor:
description: Same-page anchor link
download:
description: Link to downloadable file
sub_guide:
description: Link to a sub-guide finding aid
featured:
description: Featured/highlighted link
- ../enums/ExternalResourceTypeEnum
- ../enums/SubGuideTypeEnum
- ../enums/RelationshipTypeEnum
- ../enums/LinkTypeEnum
classes:
FindingAid:
class_uri: rico:FindingAid

View file

@ -33,6 +33,7 @@ imports:
- ../slots/valid_to_geo
- ./SpecificityAnnotation
- ./TemplateSpecificityScores
- ../enums/GeometryTypeEnum
types:
WktLiteral:
uri: geosparql:wktLiteral
@ -45,24 +46,6 @@ types:
examples:
- value: POINT(4.2894 52.0705)
- value: POLYGON((4.0 52.0, 4.5 52.0, 4.5 52.5, 4.0 52.5, 4.0 52.0))
enums:
GeometryTypeEnum:
description: OGC Simple Features geometry types
permissible_values:
POINT:
description: Single point location
LINESTRING:
description: Line or path
POLYGON:
description: Closed polygon boundary
MULTIPOINT:
description: Multiple points
MULTILINESTRING:
description: Multiple lines
MULTIPOLYGON:
description: Multiple polygons (e.g., archipelago)
GEOMETRYCOLLECTION:
description: Mixed geometry types
classes:
GeoSpatialPlace:
class_uri: geosparql:Feature

View file

@ -18,282 +18,318 @@ imports:
- ../slots/template_specificity
- ./SpecificityAnnotation
- ./TemplateSpecificityScores
- ../enums/ImageProtocolEnum
- ../enums/IIIFComplianceLevelEnum
classes:
IIPImageServer:
is_a: DataServiceEndpoint
class_uri: hc:IIPImageServer
description: |
Tiled image server endpoint for dynamic high-resolution image delivery.
**Purpose:**
Models image server endpoints that provide:
- Deep zoom for high-resolution images
- Tile-based delivery for smooth navigation
- On-the-fly image manipulation (rotation, cropping, format conversion)
- Efficient delivery of gigapixel images
**Supported Protocols:**
| Protocol | Description | Use Case |
|----------|-------------|----------|
| **IIP** | Internet Imaging Protocol | Legacy, widely deployed |
| **IIIF Image** | International Image Interoperability Framework | Modern standard, interoperable |
| **Zoomify** | Zoomify tile format | Common in heritage sector |
| **DeepZoom** | Microsoft Deep Zoom | Seadragon viewers |
**Example - Nationaal Archief IIP Server:**
```yaml
iip_image_server:
endpoint_name: "Nationaal Archief Image Server"
base_url: "https://service.archief.nl/iipsrv"
server_software: "IIPImage"
supported_protocols:
- IIP
- Zoomify
- IIIF_IMAGE
iiif_compliance_level: LEVEL_1
max_image_dimension: 10000
supported_output_formats:
- image/jpeg
- image/png
supports_region_extraction: true
supports_rotation: true
supports_quality_selection: true
```
**IIIF Image API Features:**
IIIF Image API URL structure:
`{scheme}://{server}{/prefix}/{identifier}/{region}/{size}/{rotation}/{quality}.{format}`
- **region**: full, square, x,y,w,h, pct:x,y,w,h
- **size**: full, max, w,, ,h, pct:n, w,h, !w,h
- **rotation**: 0-360, with optional mirror (!)
- **quality**: default, color, gray, bitonal
- **format**: jpg, png, gif, webp, tif
**See Also:**
- IIIF Image API: https://iiif.io/api/image/
- IIPImage Server: https://iipimage.sourceforge.io/
description: "Tiled image server endpoint for dynamic high-resolution image delivery.\n\n**Purpose:**\n\nModels image\
\ server endpoints that provide:\n- Deep zoom for high-resolution images\n- Tile-based delivery for smooth navigation\n\
- On-the-fly image manipulation (rotation, cropping, format conversion)\n- Efficient delivery of gigapixel images\n\n\
**Supported Protocols:**\n\n| Protocol | Description | Use Case |\n|----------|-------------|----------|\n| **IIP**\
\ | Internet Imaging Protocol | Legacy, widely deployed |\n| **IIIF Image** | International Image Interoperability Framework\
\ | Modern standard, interoperable |\n| **Zoomify** | Zoomify tile format | Common in heritage sector |\n| **DeepZoom**\
\ | Microsoft Deep Zoom | Seadragon viewers |\n\n**Example - Nationaal Archief IIP Server:**\n\n```yaml\niip_image_server:\n\
\ endpoint_name: \"Nationaal Archief Image Server\"\n base_url: \"https://service.archief.nl/iipsrv\"\n server_software:\
\ \"IIPImage\"\n supported_protocols:\n - IIP\n - Zoomify\n - IIIF_IMAGE\n iiif_compliance_level: LEVEL_1\n\
\ max_image_dimension: 10000\n supported_output_formats:\n - image/jpeg\n - image/png\n supports_region_extraction:\
\ true\n supports_rotation: true\n supports_quality_selection: true\n```\n\n**IIIF Image API Features:**\n\nIIIF Image\
\ API URL structure:\n`{scheme}://{server}{/prefix}/{identifier}/{region}/{size}/{rotation}/{quality}.{format}`\n\n\
- **region**: full, square, x,y,w,h, pct:x,y,w,h\n- **size**: full, max, w,, ,h, pct:n, w,h, !w,h\n- **rotation**: 0-360,\
\ with optional mirror (!)\n- **quality**: default, color, gray, bitonal\n- **format**: jpg, png, gif, webp, tif\n\n\
**See Also:**\n\n- IIIF Image API: https://iiif.io/api/image/\n- IIPImage Server: https://iipimage.sourceforge.io/\n"
attributes:
base_url:
slot_uri: dcat:endpointURL
description: |
Base URL of the image server.
description: 'Base URL of the image server.
Example: "https://service.archief.nl/iipsrv"
'
range: uri
required: true
server_software:
slot_uri: schema:softwareVersion
description: |
Image server software in use.
description: 'Image server software in use.
Common software:
- IIPImage: Open-source, supports IIP, IIIF, Zoomify
- Loris: Python IIIF image server
- Cantaloupe: Java IIIF server
- Digilib: Java image server
- RAIS: Rust IIIF server
Example: "IIPImage"
'
range: string
server_version:
slot_uri: schema:version
description: |
Version of the image server software.
description: 'Version of the image server software.
Example: "1.1"
'
range: string
supported_protocols:
slot_uri: dcterms:conformsTo
description: |
Image delivery protocols supported.
description: 'Image delivery protocols supported.
Values from DataServiceProtocolEnum:
- IIP: Internet Imaging Protocol
- IIIF_IMAGE: IIIF Image API
- ZOOMIFY: Zoomify tiles
- DEEPZOOM: Microsoft Deep Zoom
Example: ["IIP", "IIIF_IMAGE", "ZOOMIFY"]
'
range: ImageProtocolEnum
multivalued: true
required: true
iiif_image_api_version:
slot_uri: iiif:apiVersion
description: |
IIIF Image API version supported (if IIIF enabled).
description: 'IIIF Image API version supported (if IIIF enabled).
Current version: 3.0
Legacy versions: 2.1, 2.0, 1.1, 1.0
Example: "3.0"
'
range: string
iiif_compliance_level:
slot_uri: dcterms:conformsTo
description: |
IIIF Image API compliance level (if IIIF enabled).
description: 'IIIF Image API compliance level (if IIIF enabled).
Levels define mandatory features:
- LEVEL_0: Basic (fixed sizes only)
- LEVEL_1: Region, size, rotation
- LEVEL_2: Full Image API features
Example: LEVEL_1
'
range: IIIFComplianceLevelEnum
iiif_context_url:
slot_uri: schema:additionalType
description: |
IIIF context URL for JSON-LD.
description: 'IIIF context URL for JSON-LD.
Example: "http://iiif.io/api/image/3/context.json"
'
range: uri
max_image_dimension:
slot_uri: schema:maxValue
description: |
Maximum image dimension (width or height) that can be served.
description: 'Maximum image dimension (width or height) that can be served.
Larger images may be available but capped in delivery.
Example: 10000
'
range: integer
max_area:
slot_uri: schema:maxValue
description: |
Maximum total pixel area that can be served in one request.
description: 'Maximum total pixel area that can be served in one request.
Prevents server overload on very large images.
Example: 100000000 (100 megapixels)
'
range: integer
tile_size:
slot_uri: schema:size
description: |
Default tile size in pixels.
description: 'Default tile size in pixels.
Most servers use 256 or 512 pixel tiles.
Example: 512
'
range: integer
supported_input_formats:
slot_uri: dcterms:format
description: |
Source image formats the server can read.
description: 'Source image formats the server can read.
Common: TIFF, JPEG 2000, Pyramid TIFF
Example: ["image/tiff", "image/jp2"]
'
range: string
multivalued: true
supported_output_formats:
slot_uri: dcterms:format
description: |
Output formats the server can deliver.
description: 'Output formats the server can deliver.
Example: ["image/jpeg", "image/png", "image/webp"]
'
range: string
multivalued: true
required: true
supports_region_extraction:
slot_uri: iiif:regionByPx
description: |
Whether the server supports extracting arbitrary image regions.
description: 'Whether the server supports extracting arbitrary image regions.
IIIF: region parameter (x,y,w,h or pct:x,y,w,h)
IIP: RGN parameter
'
range: boolean
supports_rotation:
slot_uri: iiif:rotation
description: |
Whether the server supports image rotation.
description: 'Whether the server supports image rotation.
IIIF supports 0-360 degrees and mirroring.
'
range: boolean
supports_mirroring:
slot_uri: schema:additionalProperty
description: |
Whether the server supports horizontal mirroring.
description: 'Whether the server supports horizontal mirroring.
IIIF: ! prefix on rotation (e.g., !0 for mirror only)
'
range: boolean
supports_quality_selection:
slot_uri: iiif:quality
description: |
Whether the server supports quality/color mode selection.
description: 'Whether the server supports quality/color mode selection.
IIIF qualities: default, color, gray, bitonal
'
range: boolean
supported_qualities:
slot_uri: iiif:quality
description: |
Quality modes supported.
description: 'Quality modes supported.
Example: ["default", "color", "gray", "bitonal"]
'
range: string
multivalued: true
supports_info_json:
slot_uri: schema:additionalProperty
description: |
Whether the server provides IIIF info.json for images.
description: 'Whether the server provides IIIF info.json for images.
info.json contains image metadata (dimensions, tiles, features).
'
range: boolean
info_json_url_pattern:
slot_uri: hydra:template
description: |
URL pattern for retrieving IIIF info.json.
description: 'URL pattern for retrieving IIIF info.json.
Example: "{base_url}/iiif/{identifier}/info.json"
'
range: string
fcgi_path:
slot_uri: schema:additionalProperty
description: |
FastCGI path for IIPImage servers.
description: 'FastCGI path for IIPImage servers.
Common: "/iipsrv/iipsrv.fcgi" or "/fcgi-bin/iipsrv.fcgi"
Example: "/iipsrv/iipsrv.fcgi"
'
range: string
image_identifier_pattern:
slot_uri: hydra:template
description: |
Pattern for image identifiers.
description: 'Pattern for image identifiers.
IIPImage uses FIF parameter with filesystem path.
IIIF uses URL-encoded identifiers.
Example (IIP): "FIF=/path/to/{archive}/{uuid}.tif"
Example (IIIF): "{base_url}/iiif/{identifier}"
'
range: string
cors_enabled:
slot_uri: schema:additionalProperty
description: |
Whether CORS is enabled for browser access.
description: 'Whether CORS is enabled for browser access.
Essential for JavaScript-based viewers.
'
range: boolean
example_iiif_url:
slot_uri: schema:workExample
description: |
Example IIIF Image API URL.
description: 'Example IIIF Image API URL.
Example: "https://service.archief.nl/iiif/2/uuid:12345/full/1000,/0/default.jpg"
'
range: uri
example_iip_url:
slot_uri: schema:workExample
description: |
Example IIP request URL.
description: 'Example IIP request URL.
Example: "https://service.archief.nl/iipsrv?FIF=/path/image.tif&WID=1000&CVT=jpeg"
'
range: uri
slot_usage:
protocol:
description: |
Primary protocol. Use supported_protocols for full list.
description: 'Primary protocol. Use supported_protocols for full list.
'
specificity_annotation:
range: SpecificityAnnotation
inlined: true
@ -311,73 +347,3 @@ classes:
slots:
- specificity_annotation
- template_specificity
enums:
ImageProtocolEnum:
description: |
Image delivery protocols supported by image servers.
permissible_values:
IIP:
description: |
Internet Imaging Protocol.
Original tiled image protocol.
Parameters: FIF, WID, HEI, RGN, QLT, CVT
IIIF_IMAGE:
description: |
IIIF Image API.
Modern standard for interoperable image delivery.
URL structure: {server}/{identifier}/{region}/{size}/{rotation}/{quality}.{format}
ZOOMIFY:
description: |
Zoomify tile format.
Pyramid tiles in folders: TileGroup0/, TileGroup1/...
Properties in ImageProperties.xml
DEEPZOOM:
description: |
Microsoft Deep Zoom format.
Pyramid tiles with .dzi descriptor file.
Common with OpenSeadragon viewer.
DJATOKA:
description: |
Djatoka JPEG 2000 image server.
Legacy LoC image server, deprecated in favor of IIIF.
IIIFComplianceLevelEnum:
description: |
IIIF Image API compliance levels.
Higher levels support more features.
permissible_values:
LEVEL_0:
description: |
Level 0 - Basic.
Only supports predefined image sizes listed in info.json.
No region extraction, rotation limited.
Minimum viable IIIF implementation.
LEVEL_1:
description: |
Level 1 - Intermediate.
Supports:
- Region by pixel and percentage
- Size by width, height, or percentage
- 0 and 90 degree rotation
- Default quality
Most common compliance level.
LEVEL_2:
description: |
Level 2 - Full.
Supports all Level 1 features plus:
- Arbitrary rotation (0-360)
- Mirroring
- All quality modes (color, gray, bitonal)
- Multiple output formats
Full Image API implementation.

View file

@ -19,229 +19,260 @@ imports:
- ../slots/template_specificity
- ./SpecificityAnnotation
- ./TemplateSpecificityScores
- ../enums/METSIdentifierTypeEnum
classes:
METSAPI:
is_a: DataServiceEndpoint
class_uri: hc:METSAPI
description: |
METS (Metadata Encoding and Transmission Standard) document retrieval API.
**Purpose:**
Models endpoints that provide access to METS documents describing
the structure and metadata of digital objects in heritage collections.
METS is a Library of Congress standard widely used in digital preservation
and repository systems.
**METS Structure:**
A METS document contains:
- **metsHdr**: Header with creation/modification metadata
- **dmdSec**: Descriptive metadata (Dublin Core, MODS, EAD, etc.)
- **amdSec**: Administrative metadata (technical, rights, provenance)
- **fileSec**: File inventory with technical properties
- **structMap**: Logical/physical structure of the object
- **structLink**: Links between structural divisions
- **behaviorSec**: Executable behaviors
**Example - Nationaal Archief METS API:**
```yaml
mets_api:
endpoint_name: "Nationaal Archief METS API"
base_url: "https://service.archief.nl/gaf/api/mets/v1/"
url_pattern: "{base_url}{uuid}"
mets_profile: NATIONAAL_ARCHIEF
version: "v1"
descriptive_metadata_schemas:
- Dublin Core
- EAD
rights_metadata_available: true
structural_metadata_available: true
file_inventory_included: true
example_url: "https://service.archief.nl/gaf/api/mets/v1/12345678-1234-1234-1234-123456789012"
```
**Use Cases:**
1. **Digital preservation**: Validate object integrity
2. **Viewer integration**: Build multi-page viewers from structural metadata
3. **Migration**: Transfer objects between repository systems
4. **Audit**: Track provenance and rights
**See Also:**
- METS Standard: https://www.loc.gov/standards/mets/
- METS Primer: https://www.loc.gov/standards/mets/METSPrimer.pdf
description: "METS (Metadata Encoding and Transmission Standard) document retrieval API.\n\n**Purpose:**\n\nModels endpoints\
\ that provide access to METS documents describing\nthe structure and metadata of digital objects in heritage collections.\n\
\nMETS is a Library of Congress standard widely used in digital preservation\nand repository systems.\n\n**METS Structure:**\n\
\nA METS document contains:\n- **metsHdr**: Header with creation/modification metadata\n- **dmdSec**: Descriptive metadata\
\ (Dublin Core, MODS, EAD, etc.)\n- **amdSec**: Administrative metadata (technical, rights, provenance)\n- **fileSec**:\
\ File inventory with technical properties\n- **structMap**: Logical/physical structure of the object\n- **structLink**:\
\ Links between structural divisions\n- **behaviorSec**: Executable behaviors\n\n**Example - Nationaal Archief METS\
\ API:**\n\n```yaml\nmets_api:\n endpoint_name: \"Nationaal Archief METS API\"\n base_url: \"https://service.archief.nl/gaf/api/mets/v1/\"\
\n url_pattern: \"{base_url}{uuid}\"\n mets_profile: NATIONAAL_ARCHIEF\n version: \"v1\"\n descriptive_metadata_schemas:\n\
\ - Dublin Core\n - EAD\n rights_metadata_available: true\n structural_metadata_available: true\n file_inventory_included:\
\ true\n example_url: \"https://service.archief.nl/gaf/api/mets/v1/12345678-1234-1234-1234-123456789012\"\n```\n\n\
**Use Cases:**\n\n1. **Digital preservation**: Validate object integrity\n2. **Viewer integration**: Build multi-page\
\ viewers from structural metadata\n3. **Migration**: Transfer objects between repository systems\n4. **Audit**: Track\
\ provenance and rights\n\n**See Also:**\n\n- METS Standard: https://www.loc.gov/standards/mets/\n- METS Primer: https://www.loc.gov/standards/mets/METSPrimer.pdf\n"
attributes:
base_url:
slot_uri: dcat:endpointURL
description: |
Base URL for METS document retrieval.
description: 'Base URL for METS document retrieval.
Individual documents are accessed by appending an identifier.
Example: "https://service.archief.nl/gaf/api/mets/v1/"
'
range: uri
required: true
url_pattern:
slot_uri: hydra:template
description: |
URL pattern for constructing METS document requests.
description: 'URL pattern for constructing METS document requests.
Use {placeholders} for dynamic parts.
Examples:
- "{base_url}{uuid}" → https://service.archief.nl/gaf/api/mets/v1/12345678-...
- "{base_url}?id={identifier}" → https://example.org/mets?id=doc123
'
range: string
identifier_type:
slot_uri: dcterms:identifier
description: |
Type of identifier used to request METS documents.
description: 'Type of identifier used to request METS documents.
Values: UUID, HANDLE, DOI, ARK, LOCAL_ID
Example: UUID
'
range: METSIdentifierTypeEnum
mets_profile:
slot_uri: dcterms:conformsTo
description: |
METS profile implemented by this API.
description: 'METS profile implemented by this API.
METS profiles constrain the standard for specific use cases.
Examples:
- NATIONAAL_ARCHIEF: Dutch National Archive profile
- BHL: Biodiversity Heritage Library profile
- FEDORA: Fedora repository profile
- NDNP: National Digital Newspaper Program
'
range: string
mets_schema_version:
slot_uri: schema:schemaVersion
description: |
METS schema version used.
description: 'METS schema version used.
Current version: 1.12.1
Example: "1.12.1"
'
range: string
descriptive_metadata_schemas:
slot_uri: dcterms:format
description: |
Descriptive metadata schemas embedded in dmdSec.
description: 'Descriptive metadata schemas embedded in dmdSec.
Common schemas:
- Dublin Core (oai_dc)
- MODS
- EAD (for archival description)
- MARCXML
- VRA Core (visual resources)
Example: ["Dublin Core", "EAD"]
'
range: string
multivalued: true
administrative_metadata_sections:
slot_uri: schema:additionalProperty
description: |
Administrative metadata sections included.
description: 'Administrative metadata sections included.
METS defines:
- techMD: Technical metadata (file formats, dimensions)
- rightsMD: Rights/permissions
- sourceMD: Source/provenance
- digiprovMD: Digital provenance (PREMIS events)
Example: ["techMD", "rightsMD", "digiprovMD"]
'
range: string
multivalued: true
rights_metadata_available:
slot_uri: dcterms:rights
description: |
Whether rights metadata (rightsMD) is included.
description: 'Whether rights metadata (rightsMD) is included.
Important for access control and reuse decisions.
'
range: boolean
technical_metadata_standard:
slot_uri: premis:hasObjectCharacteristics
description: |
Standard used for technical metadata.
description: 'Standard used for technical metadata.
Common standards:
- PREMIS: PREservation Metadata
- MIX: NISO Metadata for Images in XML
- textMD: Technical metadata for text
- AudioMD/VideoMD: AV technical metadata
Example: "PREMIS"
'
range: string
structural_metadata_available:
slot_uri: schema:hasPart
description: |
Whether structural metadata (structMap) is included.
description: 'Whether structural metadata (structMap) is included.
Structural maps define how components relate to form the object
(pages in a book, frames in a film, etc.).
'
range: boolean
structure_map_types:
slot_uri: schema:additionalProperty
description: |
Types of structural maps included.
description: 'Types of structural maps included.
Common types:
- LOGICAL: Intellectual structure (chapters, sections)
- PHYSICAL: Physical organization (pages, leaves)
- MIXED: Combination of logical and physical
Example: ["LOGICAL", "PHYSICAL"]
'
range: string
multivalued: true
file_inventory_included:
slot_uri: dcat:distribution
description: |
Whether file inventory (fileSec) is included.
description: 'Whether file inventory (fileSec) is included.
File section lists all files with locations, sizes, checksums.
'
range: boolean
file_location_resolvable:
slot_uri: schema:contentUrl
description: |
Whether file URLs in fileSec are directly resolvable.
description: 'Whether file URLs in fileSec are directly resolvable.
If true, file URLs can be used to download content.
If false, files may require authentication or be internal references.
'
range: boolean
checksum_algorithms:
slot_uri: schema:algorithm
description: |
Checksum algorithms used in file inventory.
description: 'Checksum algorithms used in file inventory.
For integrity verification.
Example: ["MD5", "SHA-256", "SHA-512"]
'
range: string
multivalued: true
supports_validation:
slot_uri: schema:validIn
description: |
Whether the API validates METS against schema/profile.
description: 'Whether the API validates METS against schema/profile.
Well-formed METS should validate against XSD schema.
'
range: boolean
example_url:
slot_uri: schema:workExample
description: |
Example URL for retrieving a METS document.
description: 'Example URL for retrieving a METS document.
Example: "https://service.archief.nl/gaf/api/mets/v1/12345678-1234-1234-1234-123456789012"
'
range: uri
slot_usage:
protocol:
description: METS APIs typically use REST protocol (DataServiceProtocolEnum.REST).
response_format:
description: |
METS documents are always XML.
description: 'METS documents are always XML.
'
ifabsent: string(application/xml)
specificity_annotation:
range: SpecificityAnnotation
@ -259,53 +290,3 @@ classes:
slots:
- specificity_annotation
- template_specificity
enums:
METSIdentifierTypeEnum:
description: |
Types of identifiers used to request METS documents.
permissible_values:
UUID:
description: |
Universally Unique Identifier.
Format: 8-4-4-4-12 hexadecimal
Example: "12345678-1234-1234-1234-123456789012"
HANDLE:
description: |
Handle System persistent identifier.
Format: prefix/suffix
Example: "10.5072/example.001"
DOI:
description: |
Digital Object Identifier.
Format: 10.prefix/suffix
Example: "10.1234/example.001"
ARK:
description: |
Archival Resource Key.
Format: ark:/NAAN/assigned-name
Example: "ark:/12345/fk4sample"
URN:
description: |
Uniform Resource Name.
Format: urn:namespace:identifier
Example: "urn:nbn:nl:ui:13-sample-001"
LOCAL_ID:
description: |
Local/internal identifier specific to the repository.
Format varies by institution.
INVENTORY_NUMBER:
description: |
Archival inventory/call number.
Format varies (e.g., "2.04.87/123")

View file

@ -18,250 +18,279 @@ imports:
- ../slots/template_specificity
- ./SpecificityAnnotation
- ./TemplateSpecificityScores
- ../enums/OAIDeletedRecordPolicyEnum
- ../enums/OAIGranularityEnum
classes:
OAIPMHEndpoint:
is_a: DataServiceEndpoint
class_uri: hc:OAIPMHEndpoint
description: |
OAI-PMH (Open Archives Initiative Protocol for Metadata Harvesting) endpoint.
**Purpose:**
Models OAI-PMH endpoints for automated metadata harvesting from heritage repositories.
OAI-PMH is the dominant protocol for metadata aggregation in the GLAM sector.
**Protocol Overview:**
OAI-PMH defines six verbs:
1. **Identify** - Repository information
2. **ListMetadataFormats** - Available metadata formats
3. **ListSets** - Collection/set hierarchy
4. **ListIdentifiers** - Record identifiers
5. **ListRecords** - Full records with metadata
6. **GetRecord** - Single record by identifier
**Example - Nationaal Archief OAI-PMH:**
```yaml
oai_pmh_endpoint:
endpoint_name: "Nationaal Archief OAI-PMH"
base_url: "https://www.nationaalarchief.nl/onderzoeken/oai-pmh"
protocol_version: "2.0"
repository_name: "Nationaal Archief"
admin_email: "helpdesk@nationaalarchief.nl"
earliest_datestamp: "2010-01-01"
deleted_record_policy: NO
granularity: YYYY_MM_DD
metadata_prefixes:
- oai_dc
- ese
- edm
sets:
- name: "Fotografische documenten"
spec: "foto"
- name: "Kaarten en tekeningen"
spec: "kaarten"
```
**Harvesting Workflow:**
1. Call Identify to get repository info
2. Call ListMetadataFormats to discover available formats
3. Call ListSets to understand collection structure
4. Call ListRecords with resumptionToken for incremental harvesting
**See Also:**
- OAI-PMH Specification: http://www.openarchives.org/OAI/openarchivesprotocol.html
- Europeana Harvesting: https://pro.europeana.eu/page/harvesting-and-downloads
description: "OAI-PMH (Open Archives Initiative Protocol for Metadata Harvesting) endpoint.\n\n**Purpose:**\n\nModels\
\ OAI-PMH endpoints for automated metadata harvesting from heritage repositories.\nOAI-PMH is the dominant protocol\
\ for metadata aggregation in the GLAM sector.\n\n**Protocol Overview:**\n\nOAI-PMH defines six verbs:\n1. **Identify**\
\ - Repository information\n2. **ListMetadataFormats** - Available metadata formats\n3. **ListSets** - Collection/set\
\ hierarchy\n4. **ListIdentifiers** - Record identifiers\n5. **ListRecords** - Full records with metadata\n6. **GetRecord**\
\ - Single record by identifier\n\n**Example - Nationaal Archief OAI-PMH:**\n\n```yaml\noai_pmh_endpoint:\n endpoint_name:\
\ \"Nationaal Archief OAI-PMH\"\n base_url: \"https://www.nationaalarchief.nl/onderzoeken/oai-pmh\"\n protocol_version:\
\ \"2.0\"\n repository_name: \"Nationaal Archief\"\n admin_email: \"helpdesk@nationaalarchief.nl\"\n earliest_datestamp:\
\ \"2010-01-01\"\n deleted_record_policy: NO\n granularity: YYYY_MM_DD\n metadata_prefixes:\n - oai_dc\n -\
\ ese\n - edm\n sets:\n - name: \"Fotografische documenten\"\n spec: \"foto\"\n - name: \"Kaarten en\
\ tekeningen\"\n spec: \"kaarten\"\n```\n\n**Harvesting Workflow:**\n\n1. Call Identify to get repository info\n\
2. Call ListMetadataFormats to discover available formats\n3. Call ListSets to understand collection structure\n4. Call\
\ ListRecords with resumptionToken for incremental harvesting\n\n**See Also:**\n\n- OAI-PMH Specification: http://www.openarchives.org/OAI/openarchivesprotocol.html\n\
- Europeana Harvesting: https://pro.europeana.eu/page/harvesting-and-downloads\n"
attributes:
base_url:
slot_uri: dcat:endpointURL
description: "Base URL for OAI-PMH requests.\n\nAll OAI-PMH verbs are appended\
\ as query parameters to this URL.\n\nExample: \n- Base URL: \"https://www.nationaalarchief.nl/onderzoeken/oai-pmh\"\
\n- Identify request: \"https://www.nationaalarchief.nl/onderzoeken/oai-pmh?verb=Identify\"\
description: "Base URL for OAI-PMH requests.\n\nAll OAI-PMH verbs are appended as query parameters to this URL.\n\n\
Example: \n- Base URL: \"https://www.nationaalarchief.nl/onderzoeken/oai-pmh\"\n- Identify request: \"https://www.nationaalarchief.nl/onderzoeken/oai-pmh?verb=Identify\"\
\n"
range: uri
required: true
protocol_version:
slot_uri: schema:version
description: |
OAI-PMH protocol version supported.
description: 'OAI-PMH protocol version supported.
Current standard is version 2.0 (since 2002).
Earlier version 1.x is deprecated but may exist in legacy systems.
Values:
- "2.0" (current standard)
- "1.1" (legacy)
- "1.0" (legacy)
'
range: string
pattern: ^[12]\.[0-9]+$
repository_name:
slot_uri: schema:name
description: |
Human-readable name of the repository.
description: 'Human-readable name of the repository.
From OAI-PMH Identify response: <repositoryName>
Example: "Nationaal Archief"
'
range: string
admin_email:
slot_uri: schema:email
description: |
Email address of repository administrator.
description: 'Email address of repository administrator.
From OAI-PMH Identify response: <adminEmail>
May be multiple emails.
Example: "helpdesk@nationaalarchief.nl"
'
range: string
multivalued: true
earliest_datestamp:
slot_uri: dcterms:temporal
description: |
Earliest datestamp available in the repository.
description: 'Earliest datestamp available in the repository.
From OAI-PMH Identify response: <earliestDatestamp>
Records with dates before this are not available.
Format: YYYY-MM-DD or YYYY-MM-DDThh:mm:ssZ (depending on granularity)
Example: "2010-01-01"
'
range: string
deleted_record_policy:
slot_uri: schema:additionalProperty
description: |
Policy for reporting deleted records.
description: 'Policy for reporting deleted records.
From OAI-PMH Identify response: <deletedRecord>
Values:
- NO: Repository does not maintain deleted records
- PERSISTENT: Deleted records are kept with "deleted" status
- TRANSIENT: Deleted records are kept for some time
'
range: OAIDeletedRecordPolicyEnum
granularity:
slot_uri: dcterms:accrualPeriodicity
description: |
Datestamp granularity supported by the repository.
description: 'Datestamp granularity supported by the repository.
From OAI-PMH Identify response: <granularity>
Values:
- YYYY_MM_DD: Day-level precision (YYYY-MM-DD)
- YYYY_MM_DD_THH_MM_SS_Z: Second-level precision (YYYY-MM-DDThh:mm:ssZ)
Determines format for `from` and `until` parameters in selective harvesting.
'
range: OAIGranularityEnum
metadata_prefixes:
slot_uri: dcterms:format
description: |
Metadata formats (prefixes) supported by this repository.
description: 'Metadata formats (prefixes) supported by this repository.
From OAI-PMH ListMetadataFormats response.
Common prefixes:
- **oai_dc**: Dublin Core (required by OAI-PMH specification)
- **ese**: Europeana Semantic Elements
- **edm**: Europeana Data Model
- **mods**: MODS (Metadata Object Description Schema)
- **marc21**: MARC 21
- **ead**: Encoded Archival Description
- **lido**: LIDO (museum objects)
- **dc**: Dublin Core (variant)
- **qdc**: Qualified Dublin Core
Example: ["oai_dc", "ese", "edm"]
'
range: string
multivalued: true
required: true
compression:
slot_uri: schema:encodingFormat
description: |
Compression methods supported.
description: 'Compression methods supported.
From OAI-PMH Identify response: <compression>
Examples: ["gzip", "deflate"]
'
range: string
multivalued: true
sets:
slot_uri: dcat:theme
description: "Sets (collections) available for selective harvesting.\n\nFrom\
\ OAI-PMH ListSets response.\n\nStructured as list of set specifications\
\ with names.\n\nExample:\n```yaml\nsets:\n - spec: \"foto\"\n name:\
\ \"Fotografische documenten\"\n - spec: \"kaarten\" \n name: \"Kaarten\
\ en tekeningen\"\n```\n"
description: "Sets (collections) available for selective harvesting.\n\nFrom OAI-PMH ListSets response.\n\nStructured\
\ as list of set specifications with names.\n\nExample:\n```yaml\nsets:\n - spec: \"foto\"\n name: \"Fotografische\
\ documenten\"\n - spec: \"kaarten\" \n name: \"Kaarten en tekeningen\"\n```\n"
range: OAIPMHSet
multivalued: true
inlined_as_list: true
sample_identifier:
slot_uri: dcterms:identifier
description: |
Example identifier format used by this repository.
description: 'Example identifier format used by this repository.
From OAI-PMH Identify response: <sampleIdentifier> (optional in spec)
Helps understand the identifier scheme.
Example: "oai:nationaalarchief.nl:2.04.87.01"
'
range: string
endpoint_description:
slot_uri: dcterms:description
description: |
Repository description from OAI-PMH Identify response.
description: 'Repository description from OAI-PMH Identify response.
May contain structured XML (oai-identifier, eprints, friends, etc.)
or free-text description.
'
range: string
supports_resumption_token:
slot_uri: schema:additionalProperty
description: |
Whether the repository supports resumption tokens for large result sets.
description: 'Whether the repository supports resumption tokens for large result sets.
Required by OAI-PMH spec for ListRecords/ListIdentifiers/ListSets.
Most compliant repositories support this.
'
range: boolean
batch_size:
slot_uri: schema:maxValue
description: |
Typical number of records per response (before resumption token).
description: 'Typical number of records per response (before resumption token).
Not part of OAI-PMH spec but useful for harvesting optimization.
Example: 100
'
range: integer
total_records:
slot_uri: schema:numberOfItems
description: |
Total number of records in the repository (approximate).
description: 'Total number of records in the repository (approximate).
From completeListSize attribute in OAI-PMH response (optional).
Example: 1500000
'
range: integer
last_harvested:
slot_uri: schema:dateModified
description: |
Date when this endpoint was last successfully harvested.
description: 'Date when this endpoint was last successfully harvested.
Useful for tracking incremental harvesting.
ISO 8601 format.
Example: "2025-12-01T10:30:00Z"
'
range: datetime
slot_usage:
protocol:
description: Protocol is always OAI-PMH for this endpoint type. Value should
be OAI_PMH.
description: Protocol is always OAI-PMH for this endpoint type. Value should be OAI_PMH.
response_format:
description: |
For OAI-PMH, always ["application/xml"].
description: 'For OAI-PMH, always ["application/xml"].
OAI-PMH responses are always XML.
'
ifabsent: string(application/xml)
specificity_annotation:
range: SpecificityAnnotation
@ -281,52 +310,67 @@ classes:
- template_specificity
OAIPMHSet:
class_uri: hc:OAIPMHSet
description: |
Represents an OAI-PMH Set (collection) available for selective harvesting.
description: 'Represents an OAI-PMH Set (collection) available for selective harvesting.
Sets provide hierarchical organization of records, allowing harvesters
to request records from specific collections.
Set hierarchies use colon separator: "category:subcategory:item"
'
attributes:
spec:
slot_uri: dcterms:identifier
description: |
Set specification (setSpec).
description: 'Set specification (setSpec).
Machine-readable identifier used in OAI-PMH requests.
Hierarchy indicated by colons (e.g., "photo:portraits:19th-century").
Example: "foto"
'
range: string
required: true
name:
slot_uri: schema:name
description: |
Human-readable set name (setName).
description: 'Human-readable set name (setName).
Example: "Fotografische documenten"
'
range: string
required: true
set_description:
slot_uri: dcterms:description
description: |
Optional description of the set contents.
description: 'Optional description of the set contents.
'
range: string
parent_spec:
slot_uri: schema:isPartOf
description: |
Parent set specification for hierarchical sets.
description: 'Parent set specification for hierarchical sets.
If spec is "photo:portraits", parent_spec would be "photo".
'
range: string
record_count:
slot_uri: schema:numberOfItems
description: |
Approximate number of records in this set.
description: 'Approximate number of records in this set.
Not part of OAI-PMH spec but useful if available.
'
range: integer
slots:
- specificity_annotation
@ -338,53 +382,3 @@ classes:
template_specificity:
range: TemplateSpecificityScores
inlined: true
enums:
OAIDeletedRecordPolicyEnum:
description: |
OAI-PMH deleted record support policy.
Determines how the repository handles records that have been deleted.
permissible_values:
false:
description: |
Repository does not maintain information about deletions.
No "deleted" status will ever be returned.
Harvesters cannot detect deleted records.
TRANSIENT:
description: |
Repository maintains deleted records for an unspecified period.
Harvesters may see "deleted" status, but it's not guaranteed
to persist indefinitely.
PERSISTENT:
description: |
Repository persistently maintains deleted records.
Once a record is assigned "deleted" status, it remains
queryable with that status.
Recommended for reliable incremental harvesting.
OAIGranularityEnum:
description: |
OAI-PMH datestamp granularity.
Determines the precision of date/time values used in
selective harvesting (from/until parameters).
permissible_values:
YYYY_MM_DD:
description: |
Day-level granularity.
Format: YYYY-MM-DD
Example: "2025-12-14"
YYYY_MM_DD_THH_MM_SS_Z:
description: |
Second-level granularity.
Format: YYYY-MM-DDThh:mm:ssZ
Example: "2025-12-14T10:30:00Z"
Note: Must use UTC (Z suffix).

View file

@ -1,76 +0,0 @@
id: https://nde.nl/ontology/hc/class/OAIPMHSet
name: oai_pmh_set
title: OAIPMHSet Class
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
dcterms: http://purl.org/dc/terms/
schema: http://schema.org/
imports:
- linkml:types
- ../slots/specificity_annotation
- ./SpecificityAnnotation
- ../slots/template_specificity
- ./TemplateSpecificityScores
default_prefix: hc
classes:
OAIPMHSet:
class_uri: hc:OAIPMHSet
description: |
Represents an OAI-PMH Set (collection) available for selective harvesting.
Sets provide hierarchical organization of records, allowing harvesters
to request records from specific collections.
Set hierarchies use colon separator: "category:subcategory:item"
attributes:
spec:
slot_uri: dcterms:identifier
description: |
Set specification (setSpec).
Machine-readable identifier used in OAI-PMH requests.
Hierarchy indicated by colons (e.g., "photo:portraits:19th-century").
Example: "foto"
range: string
required: true
name:
slot_uri: schema:name
description: |
Human-readable set name (setName).
Example: "Fotografische documenten"
range: string
required: true
set_description:
slot_uri: dcterms:description
description: |
Optional description of the set contents.
range: string
parent_spec:
slot_uri: schema:isPartOf
description: |
Parent set specification for hierarchical sets.
If spec is "photo:portraits", parent_spec would be "photo".
range: string
record_count:
slot_uri: schema:numberOfItems
description: |
Approximate number of records in this set.
Not part of OAI-PMH spec but useful if available.
range: integer
slots:
- specificity_annotation
- template_specificity
slot_usage:
specificity_annotation:
range: SpecificityAnnotation
inlined: true
template_specificity:
range: TemplateSpecificityScores
inlined: true

View file

@ -25,128 +25,9 @@ imports:
- ../slots/template_specificity
- ./SpecificityAnnotation
- ./TemplateSpecificityScores
- ../enums/PersonClaimTypeEnum
- ../enums/RetrievalAgentEnum
default_prefix: hc
enums:
PersonClaimTypeEnum:
description: 'Types of claims that can be extracted about persons from web pages.
Each claim type has expected source locations in institutional pages.
'
permissible_values:
full_name:
description: Full name of the person
comments:
- 'Expected in: staff directory, about page, h2/h3 headings'
given_name:
description: First/given name only
comments:
- May be parsed from full_name
family_name:
description: Family/surname only
comments:
- May be parsed from full_name
role_title:
description: Job title or role within organization
comments:
- 'Expected in: staff directory, org chart, biography section'
department:
description: Department or division name
comments:
- 'Expected in: staff directory, org chart'
email:
description: Professional email address
comments:
- 'Expected in: staff directory, contact section'
- Only include if publicly listed
phone:
description: Professional phone number
comments:
- 'Expected in: staff directory, contact section'
- Only include if publicly listed
biography:
description: Professional biography text
comments:
- 'Expected in: staff page, about section'
specialization:
description: Area of expertise or specialization
comments:
- 'Expected in: biography, staff profile, research interests'
education:
description: Educational background or degrees
comments:
- 'Expected in: biography, CV section'
- 'Example: ''PhD Art History, University of Amsterdam'''
start_date:
description: Date when person started current role
comments:
- 'Expected in: biography, news announcements'
- 'Format: ISO 8601 date'
end_date:
description: Date when person ended role (if applicable)
comments:
- 'Expected in: historical records, farewell announcements'
photo_url:
description: URL to profile photo
comments:
- 'Expected in: staff directory, biography page'
- 'For LinkedIn: use CDN URL (media.licdn.com), not overlay page'
linkedin_url:
description: LinkedIn profile URL
comments:
- 'Expected in: staff page footer, social links'
orcid:
description: ORCID researcher identifier
comments:
- 'Expected in: research publications, CV section'
- 'Format: 0000-0000-0000-0000'
twitter_handle:
description: Twitter/X handle
comments:
- 'Expected in: social media section, footer'
previous_employer:
description: Previous organization where person worked
comments:
- 'Expected in: biography, LinkedIn experience'
publication:
description: Citation or link to publication
comments:
- 'Expected in: publications list, CV'
award:
description: Professional award or recognition
comments:
- 'Expected in: biography, awards section'
language_proficiency:
description: Language the person speaks
comments:
- 'Expected in: LinkedIn profile, CV'
RetrievalAgentEnum:
description: 'Tools/agents used to retrieve and extract person data.
Must match the tool that was actually used for extraction.
'
permissible_values:
firecrawl:
description: FireCrawl MCP tools for web scraping
comments:
- Primary tool for institutional websites
playwright:
description: Playwright browser automation
comments:
- For JavaScript-heavy sites requiring browser rendering
exa_crawling_exa:
description: Exa AI crawling with direct URL
comments:
- Primary tool for LinkedIn profile extraction
exa_linkedin_search_exa:
description: Exa AI LinkedIn search
comments:
- For finding LinkedIn profiles when URL unknown
manual:
description: Manual inspection and copy
comments:
- Last resort - document why automated tools failed
classes:
PersonWebClaim:
class_uri: prov:Entity

View file

@ -26,6 +26,7 @@ imports:
- ./SpecificityAnnotation
- ./TemplateSpecificityScores
- ../slots/has_annex_identifier
- ../enums/ReadingRoomAnnexReasonEnum
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
@ -328,17 +329,3 @@ classes:
is_temporary: true
planned_closure_date: '2025-06-30'
description: Temporary renovation annex
enums:
ReadingRoomAnnexReasonEnum:
description: Reasons for establishing a reading room annex
permissible_values:
CAPACITY_OVERFLOW:
description: Main reading room at capacity
SPECIALIZED_MATERIALS:
description: Serves specific material types (maps, newspapers, etc.)
GEOGRAPHIC_REACH:
description: Serves researchers in another geographic area
RENOVATION:
description: Temporary annex during main building renovation
PARTNERSHIP:
description: Shared space with another institution

View file

@ -16,47 +16,24 @@ imports:
- ../slots/template_specificity
- ./SpecificityAnnotation
- ./TemplateSpecificityScores
- ../enums/RegistrationAuthorityGovernanceEnum
classes:
RegistrationAuthority:
class_uri: gleif_base:RegistrationAuthority
description: |
An organization that maintains the GLOBAL registry for an identifier standard.
**Key Distinction from AllocationAgency:**
- **RegistrationAuthority**: Single authoritative maintainer of the global registry
- Ensures uniqueness across all identifiers
- Publishes the authoritative dataset
- Defines governance and policies
- **AllocationAgency**: Allocates identifiers locally within constraints set by RegistrationAuthority
- Multiple agencies per standard (one per country/domain)
- Reports allocations to RegistrationAuthority
- Follows policies set by RegistrationAuthority
**Examples:**
| Standard | Registration Authority | AllocationAgencies |
|----------|------------------------|---------------------|
| ISIL (ISO 15511) | Danish Agency for Culture and Palaces | KB (NL), BL (UK), LOC (US), etc. |
| ISNI (ISO 27729) | ISNI International Agency (WIPO) | DNB, BnF, OCLC, etc. |
| VIAF | OCLC | (contributing agencies, not allocators) |
| Wikidata | Wikimedia Foundation | (community-allocated) |
| ROR | ROR Steering Group | (community-allocated) |
**ISIL Registration Authority History:**
The ISIL global registry has been maintained by:
1. **Before 2019**: Danish Agency for Library and Media (DALM)
2. **2019-present**: Danish Agency for Culture and Palaces (Slots- og Kulturstyrelsen)
The registry is published at: https://sigel.info/
**Ontology Alignment:**
- gleif_base:RegistrationAuthority - GLEIF Legal Entity Identifier ontology
- org:FormalOrganization - W3C Organization Ontology
- schema:Organization - Schema.org
description: "An organization that maintains the GLOBAL registry for an identifier standard.\n\n**Key Distinction from\
\ AllocationAgency:**\n\n- **RegistrationAuthority**: Single authoritative maintainer of the global registry\n - Ensures\
\ uniqueness across all identifiers\n - Publishes the authoritative dataset\n - Defines governance and policies\n\n\
- **AllocationAgency**: Allocates identifiers locally within constraints set by RegistrationAuthority\n - Multiple\
\ agencies per standard (one per country/domain)\n - Reports allocations to RegistrationAuthority\n - Follows policies\
\ set by RegistrationAuthority\n\n**Examples:**\n\n| Standard | Registration Authority | AllocationAgencies |\n|----------|------------------------|---------------------|\n\
| ISIL (ISO 15511) | Danish Agency for Culture and Palaces | KB (NL), BL (UK), LOC (US), etc. |\n| ISNI (ISO 27729)\
\ | ISNI International Agency (WIPO) | DNB, BnF, OCLC, etc. |\n| VIAF | OCLC | (contributing agencies, not allocators)\
\ |\n| Wikidata | Wikimedia Foundation | (community-allocated) |\n| ROR | ROR Steering Group | (community-allocated)\
\ |\n\n**ISIL Registration Authority History:**\n\nThe ISIL global registry has been maintained by:\n1. **Before 2019**:\
\ Danish Agency for Library and Media (DALM)\n2. **2019-present**: Danish Agency for Culture and Palaces (Slots- og\
\ Kulturstyrelsen)\n\nThe registry is published at: https://sigel.info/\n\n**Ontology Alignment:**\n\n- gleif_base:RegistrationAuthority\
\ - GLEIF Legal Entity Identifier ontology\n- org:FormalOrganization - W3C Organization Ontology\n- schema:Organization\
\ - Schema.org\n"
exact_mappings:
- gleif_base:RegistrationAuthority
close_mappings:
@ -66,151 +43,212 @@ classes:
id:
identifier: true
slot_uri: schema:identifier
description: |
Unique identifier for this registration authority.
description: 'Unique identifier for this registration authority.
Recommended format: lowercase abbreviation.
Examples: "dacp", "isni-ia", "oclc", "wikimedia"
'
range: uriorcurie
required: true
name:
slot_uri: schema:name
description: |
Official full name of the registration authority.
description: 'Official full name of the registration authority.
Examples:
- "Danish Agency for Culture and Palaces"
- "ISNI International Agency"
- "OCLC"
- "Wikimedia Foundation"
'
range: string
required: true
name_local:
slot_uri: schema:alternateName
description: |
Name in local language (if different from English name).
description: 'Name in local language (if different from English name).
Examples:
- "Slots- og Kulturstyrelsen" (Danish)
- "Online Computer Library Center" (full form of OCLC)
'
range: string
has_or_had_abbreviation:
slot_uri: schema:alternateName
description: |
Common abbreviation.
description: 'Common abbreviation.
Examples: "DACP", "ISNI-IA", "OCLC", "WMF"
'
range: string
country:
slot_uri: schema:location
description: |
Country where the registration authority is based (ISO 3166-1 alpha-2).
description: 'Country where the registration authority is based (ISO 3166-1 alpha-2).
Examples:
- "DK" (Danish Agency for Culture and Palaces)
- "CH" (WIPO/ISNI-IA in Geneva)
- "US" (OCLC, Wikimedia Foundation)
'
range: Country
required: true
inlined: false
registry_url:
slot_uri: schema:url
description: |
URL to the official registry or lookup service.
description: 'URL to the official registry or lookup service.
Examples:
- ISIL: https://sigel.info/
- ISNI: https://isni.org/
- VIAF: https://viaf.org/
- Wikidata: https://www.wikidata.org/
'
range: uri
required: true
api_url:
slot_uri: schema:url
description: |
URL to the API or data service (if available).
description: 'URL to the API or data service (if available).
Examples:
- VIAF: https://viaf.org/viaf/search
- Wikidata: https://www.wikidata.org/w/api.php
- ISNI: https://isni.org/isni/
'
range: uri
sparql_endpoint:
slot_uri: schema:url
description: |
SPARQL endpoint URL (if available for Linked Data).
description: 'SPARQL endpoint URL (if available for Linked Data).
Examples:
- Wikidata: https://query.wikidata.org/sparql
- VIAF: (via OCLC Research)
'
range: uri
data_license:
slot_uri: schema:license
description: |
License for data from this registry.
description: 'License for data from this registry.
Examples:
- VIAF: ODC-BY
- Wikidata: CC0
- ISNI: varies
'
range: uri
governance_type:
slot_uri: schema:additionalType
description: |
Type of governance for the registry.
description: 'Type of governance for the registry.
Values:
- GOVERNMENT: Government agency (DACP for ISIL)
- INTERGOVERNMENTAL: UN agency or similar (WIPO for ISNI)
- NONPROFIT: Non-profit organization (OCLC, Wikimedia)
- CONSORTIUM: Multi-stakeholder consortium (ROR)
'
range: RegistrationAuthorityGovernanceEnum
required: true
established_year:
slot_uri: schema:foundingDate
description: |
Year the registration authority was established or took over the registry.
description: 'Year the registration authority was established or took over the registry.
Examples:
- ISNI-IA: 2010
- VIAF (OCLC): 2012 (transferred from LOC partnership)
'
range: integer
predecessor:
slot_uri: schema:predecessorOrganization
description: |
Previous registration authority (if registry was transferred).
description: 'Previous registration authority (if registry was transferred).
Example: Danish Agency for Library and Media → Danish Agency for Culture and Palaces
'
range: RegistrationAuthority
inlined: false
standards_maintained:
slot_uri: schema:hasPart
description: |
Standards for which this authority maintains the global registry.
description: 'Standards for which this authority maintains the global registry.
Most authorities maintain a single standard, but some handle multiple.
Examples:
- OCLC: [VIAF, WorldCat, FAST]
- DACP: [ISIL]
'
range: Standard
multivalued: true
inlined: false
allocation_agencies:
slot_uri: schema:hasOfferCatalog
description: |
Allocation agencies that report to this registration authority.
description: 'Allocation agencies that report to this registration authority.
For standards with distributed allocation (like ISIL),
this lists all national/domain agencies.
'
range: AllocationAgency
multivalued: true
inlined: false
website:
slot_uri: schema:url
description: |
Official website of the organization (may differ from registry URL).
description: 'Official website of the organization (may differ from registry URL).
'
range: uri
authority_description:
slot_uri: schema:description
@ -218,13 +256,18 @@ classes:
range: string
wikidata_id:
slot_uri: schema:sameAs
description: |
Wikidata Q-ID for this registration authority.
description: 'Wikidata Q-ID for this registration authority.
Examples:
- OCLC: Q190593
- Wikimedia Foundation: Q180
- Danish Agency for Culture and Palaces: Q12324270
'
range: string
pattern: ^Q[0-9]+$
slots:
@ -237,44 +280,3 @@ classes:
template_specificity:
range: TemplateSpecificityScores
inlined: true
enums:
RegistrationAuthorityGovernanceEnum:
description: Type of governance for a registration authority
permissible_values:
GOVERNMENT:
description: |
Government agency maintaining the registry.
Examples:
- Danish Agency for Culture and Palaces (ISIL)
- Library of Congress (LCNAF)
- National Diet Library (NDL)
INTERGOVERNMENTAL:
description: |
Intergovernmental organization (UN agency, etc.).
Examples:
- WIPO (ISNI International Agency)
- UNESCO
NONPROFIT:
description: |
Non-profit organization.
Examples:
- OCLC (VIAF)
- Wikimedia Foundation (Wikidata)
- Getty Research Institute (ULAN, AAT, TGN)
CONSORTIUM:
description: |
Multi-stakeholder consortium.
Examples:
- ROR Steering Group
- ORCID
- Crossref/DataCite
COMMERCIAL:
description: |
Commercial organization operating a registry.
Examples:
- Ringgold (organizational identifiers for publishing)

View file

@ -19,239 +19,236 @@ imports:
- ../slots/template_specificity
- ./SpecificityAnnotation
- ./TemplateSpecificityScores
- ../enums/PaginationMethodEnum
- ../enums/HTTPMethodEnum
- ../enums/SearchResponseFormatEnum
classes:
SearchAPI:
is_a: DataServiceEndpoint
class_uri: hc:SearchAPI
description: |
REST/JSON search API endpoint for heritage collection discovery.
**Purpose:**
Models search APIs that provide programmatic access to collection search
functionality. These APIs enable:
- Custom search interface development
- Integration with aggregation platforms
- Automated data discovery
- Faceted search and filtering
**Common Patterns:**
Heritage search APIs typically support:
- **Full-text search**: Query across all fields
- **Field-specific search**: Query specific metadata fields
- **Faceted search**: Filter by category, date, type, etc.
- **Pagination**: Navigate large result sets
- **Sorting**: Order results by relevance, date, etc.
**Example - Nationaal Archief Search API:**
```yaml
search_api:
endpoint_name: "Nationaal Archief Search API"
endpoint_url: "https://www.nationaalarchief.nl/onderzoeken/api/zoeken"
protocol: REST
query_parameters:
- name: "q"
type: "string"
description: "Full-text search query"
- name: "from"
type: "integer"
description: "Pagination offset"
- name: "size"
type: "integer"
description: "Results per page"
pagination_method: OFFSET_LIMIT
max_results_per_page: 100
response_format: JSON
supports_facets: true
facet_fields: ["type", "periode", "archief"]
```
**Response Structure:**
Most heritage search APIs return JSON with:
- `total`: Total number of matching records
- `results`/`items`/`records`: Array of result objects
- `facets`: Aggregation counts for filtering
- `pagination`: Links or cursors for paging
**See Also:**
- OpenSearch: https://opensearch.org/
- Hydra API vocabulary: https://www.hydra-cg.com/
description: "REST/JSON search API endpoint for heritage collection discovery.\n\n**Purpose:**\n\nModels search APIs that\
\ provide programmatic access to collection search\nfunctionality. These APIs enable:\n- Custom search interface development\n\
- Integration with aggregation platforms\n- Automated data discovery\n- Faceted search and filtering\n\n**Common Patterns:**\n\
\nHeritage search APIs typically support:\n- **Full-text search**: Query across all fields\n- **Field-specific search**:\
\ Query specific metadata fields\n- **Faceted search**: Filter by category, date, type, etc.\n- **Pagination**: Navigate\
\ large result sets\n- **Sorting**: Order results by relevance, date, etc.\n\n**Example - Nationaal Archief Search API:**\n\
\n```yaml\nsearch_api:\n endpoint_name: \"Nationaal Archief Search API\"\n endpoint_url: \"https://www.nationaalarchief.nl/onderzoeken/api/zoeken\"\
\n protocol: REST\n query_parameters:\n - name: \"q\"\n type: \"string\"\n description: \"Full-text search\
\ query\"\n - name: \"from\"\n type: \"integer\"\n description: \"Pagination offset\"\n - name: \"size\"\
\n type: \"integer\"\n description: \"Results per page\"\n pagination_method: OFFSET_LIMIT\n max_results_per_page:\
\ 100\n response_format: JSON\n supports_facets: true\n facet_fields: [\"type\", \"periode\", \"archief\"]\n```\n\
\n**Response Structure:**\n\nMost heritage search APIs return JSON with:\n- `total`: Total number of matching records\n\
- `results`/`items`/`records`: Array of result objects\n- `facets`: Aggregation counts for filtering\n- `pagination`:\
\ Links or cursors for paging\n\n**See Also:**\n\n- OpenSearch: https://opensearch.org/\n- Hydra API vocabulary: https://www.hydra-cg.com/\n"
attributes:
search_url:
slot_uri: dcat:endpointURL
description: |
Search endpoint URL.
description: 'Search endpoint URL.
The base URL for search requests. Query parameters are appended.
Example: "https://www.nationaalarchief.nl/onderzoeken/api/zoeken"
'
range: uri
required: true
query_parameters:
slot_uri: hydra:mapping
description: |
Query parameters supported by this search API.
Documents the available search parameters, their types, and usage.
Example:
```yaml
query_parameters:
- name: "q"
type: "string"
required: true
description: "Full-text query"
- name: "type"
type: "string"
description: "Filter by record type"
```
description: "Query parameters supported by this search API.\n\nDocuments the available search parameters, their types,\
\ and usage.\n\nExample:\n```yaml\nquery_parameters:\n - name: \"q\"\n type: \"string\"\n required: true\n\
\ description: \"Full-text query\"\n - name: \"type\"\n type: \"string\"\n description: \"Filter by record\
\ type\"\n```\n"
range: SearchQueryParameter
multivalued: true
inlined_as_list: true
http_method:
slot_uri: hydra:method
description: |
HTTP method(s) supported for search requests.
description: 'HTTP method(s) supported for search requests.
Values:
- GET: Query parameters in URL (most common)
- POST: Query in request body (for complex queries)
- BOTH: Supports both methods
'
range: HTTPMethodEnum
pagination_method:
slot_uri: hydra:pageIndex
description: |
Pagination method used by this API.
description: 'Pagination method used by this API.
Values:
- OFFSET_LIMIT: Uses offset/start and limit/size parameters
- PAGE_NUMBER: Uses page number and page size
- CURSOR: Uses cursor/token for stateful pagination
- LINK_HEADER: Uses HTTP Link headers (RFC 5988)
- NONE: No pagination (returns all results)
'
range: PaginationMethodEnum
max_results_per_page:
slot_uri: schema:maxValue
description: |
Maximum number of results per page.
description: 'Maximum number of results per page.
The API may return fewer results, but never more.
Example: 100
'
range: integer
default_results_per_page:
slot_uri: schema:defaultValue
description: |
Default number of results returned per page if not specified.
description: 'Default number of results returned per page if not specified.
Example: 20
'
range: integer
total_records:
slot_uri: schema:numberOfItems
description: |
Total number of searchable records (approximate).
description: 'Total number of searchable records (approximate).
Example: 15000000
'
range: integer
response_format:
slot_uri: dcterms:format
description: |
Primary response format.
description: 'Primary response format.
Most modern APIs use JSON.
Values: JSON, XML, JSON_LD, HTML, CSV
'
range: SearchResponseFormatEnum
supports_facets:
slot_uri: schema:additionalProperty
description: |
Whether the API supports faceted search.
description: 'Whether the API supports faceted search.
Faceted search allows filtering by categories (type, date, location, etc.)
with counts for each facet value.
'
range: boolean
facet_fields:
slot_uri: hydra:variable
description: |
Fields available for faceted filtering.
description: 'Fields available for faceted filtering.
Example: ["type", "periode", "archief", "toegang"]
'
range: string
multivalued: true
supports_sorting:
slot_uri: schema:additionalProperty
description: |
Whether the API supports custom sorting of results.
description: 'Whether the API supports custom sorting of results.
'
range: boolean
sort_fields:
slot_uri: hydra:variable
description: |
Fields available for sorting.
description: 'Fields available for sorting.
Example: ["relevance", "date", "title", "created"]
'
range: string
multivalued: true
supports_boolean_operators:
slot_uri: schema:additionalProperty
description: |
Whether the API supports boolean operators (AND, OR, NOT) in queries.
description: 'Whether the API supports boolean operators (AND, OR, NOT) in queries.
'
range: boolean
supports_phrase_search:
slot_uri: schema:additionalProperty
description: |
Whether the API supports phrase search (exact match using quotes).
description: 'Whether the API supports phrase search (exact match using quotes).
'
range: boolean
supports_wildcards:
slot_uri: schema:additionalProperty
description: |
Whether the API supports wildcard characters (* or ?).
description: 'Whether the API supports wildcard characters (* or ?).
'
range: boolean
supports_field_search:
slot_uri: schema:additionalProperty
description: |
Whether the API supports field-specific search (e.g., title:painting).
description: 'Whether the API supports field-specific search (e.g., title:painting).
'
range: boolean
date_filter_format:
slot_uri: dcterms:temporal
description: |
Expected format for date filters.
description: 'Expected format for date filters.
Example: "YYYY-MM-DD", "ISO8601", "Unix timestamp"
'
range: string
result_schema_url:
slot_uri: schema:encodingFormat
description: |
URL to JSON Schema or documentation describing the result format.
description: 'URL to JSON Schema or documentation describing the result format.
Example: "https://api.example.org/schema/search-result.json"
'
range: uri
opensearch_description_url:
slot_uri: schema:potentialAction
description: |
URL to OpenSearch description document (if applicable).
description: 'URL to OpenSearch description document (if applicable).
Example: "https://example.org/opensearch.xml"
'
range: uri
example_query:
slot_uri: schema:workExample
description: |
Example search query demonstrating API usage.
description: 'Example search query demonstrating API usage.
Example: "/api/zoeken?q=foto&type=image&size=10"
'
range: string
slot_usage:
protocol:
description: |
Protocol for search APIs.
description: 'Protocol for search APIs.
Typically REST, but may be GRAPHQL or OPENSEARCH.
'
response_format:
description: |
Response formats supported.
description: 'Response formats supported.
Common: ["application/json"]
'
specificity_annotation:
range: SpecificityAnnotation
inlined: true
@ -270,60 +267,76 @@ classes:
- template_specificity
SearchQueryParameter:
class_uri: hydra:IriTemplateMapping
description: |
Describes a query parameter supported by a search API.
description: 'Describes a query parameter supported by a search API.
Documents the parameter name, type, whether it''s required,
Documents the parameter name, type, whether it's required,
and its purpose.
'
attributes:
name:
slot_uri: hydra:variable
description: |
Parameter name as used in the query string.
description: 'Parameter name as used in the query string.
Example: "q", "type", "from", "size"
'
range: string
required: true
type:
slot_uri: hydra:property
description: |
Data type of the parameter value.
description: 'Data type of the parameter value.
Values: string, integer, boolean, date, array
'
range: string
required:
slot_uri: hydra:required
description: |
Whether this parameter is required.
description: 'Whether this parameter is required.
'
range: boolean
parameter_description:
slot_uri: dcterms:description
description: |
Human-readable description of the parameter.
description: 'Human-readable description of the parameter.
Example: "Full-text search query"
'
range: string
default_value:
slot_uri: schema:defaultValue
description: |
Default value if not specified.
description: 'Default value if not specified.
Example: "10" for a size parameter
'
range: string
allowed_values:
slot_uri: schema:valueReference
description: |
List of allowed values (for enumerated parameters).
description: 'List of allowed values (for enumerated parameters).
Example: ["image", "document", "audio", "video"]
'
range: string
multivalued: true
example_value:
slot_uri: schema:workExample
description: |
Example value for this parameter.
description: 'Example value for this parameter.
Example: "amsterdam museum"
'
range: string
slots:
- specificity_annotation
@ -335,100 +348,3 @@ classes:
template_specificity:
range: TemplateSpecificityScores
inlined: true
enums:
PaginationMethodEnum:
description: |
Methods for paginating large result sets.
permissible_values:
OFFSET_LIMIT:
description: |
Uses offset (or start/from) and limit (or size/count) parameters.
Example: ?offset=100&limit=20
Pros: Simple, allows jumping to any page
Cons: Inconsistent results if data changes between requests
PAGE_NUMBER:
description: |
Uses page number and page size parameters.
Example: ?page=5&per_page=20
Similar to OFFSET_LIMIT but uses page numbers.
CURSOR:
description: |
Uses opaque cursor/token for stateful pagination.
Example: ?cursor=eyJsYXN0X2lkIjogMTIzfQ==
Pros: Consistent results, efficient for large datasets
Cons: Cannot jump to arbitrary page
LINK_HEADER:
description: |
Uses HTTP Link headers for pagination (RFC 5988).
Response includes: Link: <url>; rel="next", <url>; rel="prev"
RESTful approach following HATEOAS principles.
SCROLL:
description: |
Uses scroll/scan API for deep pagination.
Common in Elasticsearch-based APIs.
Maintains search context for consistent results.
NONE:
description: |
No pagination - returns all results at once.
Only suitable for small result sets.
HTTPMethodEnum:
description: |
HTTP methods supported for API requests.
permissible_values:
GET:
description: |
HTTP GET method.
Query parameters in URL. Most common for search APIs.
POST:
description: |
HTTP POST method.
Query in request body. Used for complex queries.
BOTH:
description: |
Supports both GET and POST methods.
SearchResponseFormatEnum:
description: |
Response formats for search API results.
permissible_values:
JSON:
description: |
JSON (application/json).
Most common format for modern APIs.
XML:
description: |
XML (application/xml or text/xml).
Legacy format, still used in some heritage APIs.
JSON_LD:
description: |
JSON-LD (application/ld+json).
JSON with linked data semantics.
HTML:
description: |
HTML (text/html).
Human-readable results page (not ideal for API use).
CSV:
description: |
CSV (text/csv).
Tabular export format.
ATOM:
description: |
Atom feed (application/atom+xml).
Syndication format.

View file

@ -1,85 +0,0 @@
id: https://nde.nl/ontology/hc/class/SearchQueryParameter
name: search_query_parameter
title: Search Query Parameter Class
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
dcterms: http://purl.org/dc/terms/
schema: http://schema.org/
hydra: http://www.w3.org/ns/hydra/core#
imports:
- linkml:types
- ../slots/specificity_annotation
- ./SpecificityAnnotation
- ../slots/template_specificity
- ./TemplateSpecificityScores
default_prefix: hc
classes:
SearchQueryParameter:
class_uri: hydra:IriTemplateMapping
description: |
Describes a query parameter supported by a search API.
Documents the parameter name, type, whether it's required,
and its purpose.
attributes:
name:
slot_uri: hydra:variable
description: |
Parameter name as used in the query string.
Example: "q", "type", "from", "size"
range: string
required: true
type:
slot_uri: hydra:property
description: |
Data type of the parameter value.
Values: string, integer, boolean, date, array
range: string
required:
slot_uri: hydra:required
description: |
Whether this parameter is required.
range: boolean
parameter_description:
slot_uri: dcterms:description
description: |
Human-readable description of the parameter.
Example: "Full-text search query"
range: string
default_value:
slot_uri: schema:defaultValue
description: |
Default value if not specified.
Example: "10" for a size parameter
range: string
allowed_values:
slot_uri: schema:valueReference
description: |
List of allowed values (for enumerated parameters).
Example: ["image", "document", "audio", "video"]
range: string
multivalued: true
example_value:
slot_uri: schema:workExample
description: |
Example value for this parameter.
Example: "amsterdam museum"
range: string
slots:
- specificity_annotation
- template_specificity
slot_usage:
specificity_annotation:
range: SpecificityAnnotation
inlined: true
template_specificity:
range: TemplateSpecificityScores
inlined: true

View file

@ -24,6 +24,7 @@ imports:
- ../slots/template_specificity
- ./SpecificityAnnotation
- ./TemplateSpecificityScores
- ../enums/PlatformCategoryEnum
classes:
SocialMediaPlatformType:
class_uri: skos:Concept
@ -109,27 +110,3 @@ classes:
- http://xmlns.com/foaf/0.1/OnlineAccount
- https://schema.org/ContactPoint
- https://www.wikidata.org/wiki/Q12538
enums:
PlatformCategoryEnum:
description: High-level categories for social media platform classification
permissible_values:
GENERAL_SOCIAL:
description: General-purpose social networking platforms (Facebook, VKontakte)
MICROBLOGGING:
description: Short-form text and discussion platforms (X/Twitter, Bluesky, Mastodon)
IMAGE_FOCUSED:
description: Photo and image sharing platforms (Instagram, Pinterest, Flickr)
VIDEO_FOCUSED:
description: Video hosting and streaming platforms (YouTube, TikTok, Vimeo)
PROFESSIONAL:
description: Business and professional networking platforms (LinkedIn)
MESSAGING:
description: Messaging and communication platforms (WhatsApp, Telegram, WeChat)
AUDIO:
description: Audio, podcast, and music platforms (Spotify, SoundCloud)
PUBLISHING:
description: Long-form content and newsletter platforms (Medium, Substack)
MEMBERSHIP:
description: Patronage and membership platforms (Patreon)
OTHER:
description: Emerging or uncategorized platforms

View file

@ -27,6 +27,7 @@ imports:
- ../slots/template_specificity
- ./SpecificityAnnotation
- ./TemplateSpecificityScores
- ../enums/PostTypeCategoryEnum
classes:
SocialMediaPostType:
class_uri: skos:Concept
@ -136,103 +137,3 @@ classes:
- https://www.w3.org/ns/activitystreams#Object
- https://schema.org/MediaObject
- https://www.w3.org/TR/activitystreams-vocabulary/
enums:
PostTypeCategoryEnum:
description: High-level categories for social media post type classification
permissible_values:
VIDEO:
description: 'Standard video content with no strict duration limit.
Platforms: YouTube, Vimeo, Facebook Video, LinkedIn Video
Activity Streams: as:Video
Schema.org: schema:VideoObject
'
SHORT_VIDEO:
description: 'Short-form video content, typically under 60-90 seconds.
Platforms: TikTok, Instagram Reels, YouTube Shorts
Optimized for mobile viewing and algorithmic discovery.
'
IMAGE:
description: 'Static image content including photos and graphics.
Platforms: Instagram, Pinterest, Flickr, Facebook, X/Twitter
Activity Streams: as:Image
Schema.org: schema:ImageObject
'
TEXT:
description: 'Text-based posts, typically short-form.
Platforms: X/Twitter, Mastodon, Bluesky, LinkedIn
Activity Streams: as:Note
May include attached media as supplements.
'
STORY:
description: 'Ephemeral content that auto-deletes (typically 24 hours).
Platforms: Instagram Stories, Facebook Stories, LinkedIn Stories
Often vertical format, designed for mobile.
'
LIVE_STREAM:
description: 'Real-time video broadcasting.
Platforms: YouTube Live, Instagram Live, Twitch, LinkedIn Live
May be archived as standard video after broadcast.
'
AUDIO:
description: 'Audio-only content including podcasts and music.
Platforms: Spotify, Apple Podcasts, SoundCloud
Activity Streams: as:Audio
Schema.org: schema:AudioObject
'
ARTICLE:
description: 'Long-form written content.
Platforms: Medium, Substack, LinkedIn Articles, blogs
Activity Streams: as:Article
Schema.org: schema:Article
'
THREAD:
description: 'Multi-post sequences forming a narrative.
Platforms: X/Twitter threads, Mastodon threads
Connected series of posts, often numbered.
'
CAROUSEL:
description: 'Multi-media post with multiple images or videos.
Platforms: Instagram carousels, LinkedIn carousels
Swipeable content collections, up to 10-20 items.
'
OTHER:
description: 'Emerging or uncategorized content formats.
Use for new platform features not yet classified.
'

View file

@ -31,6 +31,7 @@ imports:
- ../slots/typical_responsibility
- ./SpecificityAnnotation
- ./TemplateSpecificityScores
- ../enums/RoleCategoryEnum
classes:
StaffRole:
class_uri: org:Role
@ -251,33 +252,3 @@ classes:
- https://www.w3.org/TR/vocab-org/#class-role
- https://schema.org/Role
- https://github.com/FICLIT/PiCo
enums:
RoleCategoryEnum:
description: High-level categories for staff role classification
permissible_values:
CURATORIAL:
description: Roles focused on collections, exhibitions, and scholarly interpretation
CONSERVATION:
description: Roles focused on preservation and restoration of heritage objects
ARCHIVAL:
description: Roles focused on archival management, appraisal, and description
LIBRARY:
description: Roles focused on library services, cataloging, and reference
DIGITAL:
description: Roles focused on digitization, digital preservation, data management
EDUCATION:
description: Roles focused on public education, outreach, and engagement
GOVERNANCE:
description: Board and committee roles in associations, cooperatives, and societies
LEADERSHIP:
description: Executive and management roles
RESEARCH:
description: Roles focused on scholarly research and fellowship programs
TECHNICAL:
description: Roles focused on IT, facilities, and technical operations
SUPPORT:
description: Roles supporting daily operations (security, cleaning, reception)
CREATIVE:
description: Roles for creative practitioners (artists, designers)
EXTERNAL:
description: External roles (consultants, volunteers, legal advisors)

File diff suppressed because it is too large Load diff

View file

@ -16,60 +16,25 @@ imports:
- ../slots/template_specificity
- ./SpecificityAnnotation
- ./TemplateSpecificityScores
- ../enums/StandardsOrganizationTypeEnum
classes:
StandardsOrganization:
class_uri: org:FormalOrganization
description: |
An organization that defines and maintains identifier standards.
**Key Distinction from RegistrationAuthority:**
- StandardsOrganization: DEFINES the standard (rules, format, governance)
- RegistrationAuthority: MAINTAINS a registry of identifiers following the standard
**Examples:**
- **ISO** (International Organization for Standardization)
- Defines: ISIL (ISO 15511), ISNI (ISO 27729), VIAF structure
- Does NOT directly maintain registries
- **ANSI** (American National Standards Institute)
- US national standards body
- Defines standards in collaboration with ISO
- **W3C** (World Wide Web Consortium)
- Defines: URI/URL format, SKOS, RDF
- Web-focused standards
- **IETF** (Internet Engineering Task Force)
- Defines: UUID format (RFC 4122), URN (RFC 8141)
- Internet protocol standards
- **OCLC** (Online Computer Library Center)
- Defines: WorldCat identifiers
- Also acts as RegistrationAuthority for some identifiers
- **Museumvereniging** (Netherlands Museums Association)
- Defines: Museumnorm (Netherlands museum quality standard)
- Wikidata: Q2335495
- National association representing Dutch museums
- **Stichting Museumregister Nederland**
- Maintains: Museumregister Nederland (certified museum list)
- Wikidata: Q110989623
- Grants official museum status in Netherlands based on Museumnorm
**Relationship to Standards:**
A StandardsOrganization defines one or more Standard classes via the
defined_by inverse relationship:
- Standard.defined_by → StandardsOrganization
**Ontology Alignment:**
- org:FormalOrganization - W3C Organization Ontology
- schema:Organization - Schema.org
- foaf:Organization - FOAF
description: "An organization that defines and maintains identifier standards.\n\n**Key Distinction from RegistrationAuthority:**\n\
\n- StandardsOrganization: DEFINES the standard (rules, format, governance)\n- RegistrationAuthority: MAINTAINS a registry\
\ of identifiers following the standard\n\n**Examples:**\n\n- **ISO** (International Organization for Standardization)\n\
\ - Defines: ISIL (ISO 15511), ISNI (ISO 27729), VIAF structure\n - Does NOT directly maintain registries\n\n- **ANSI**\
\ (American National Standards Institute)\n - US national standards body\n - Defines standards in collaboration with\
\ ISO\n\n- **W3C** (World Wide Web Consortium)\n - Defines: URI/URL format, SKOS, RDF\n - Web-focused standards\n\n\
- **IETF** (Internet Engineering Task Force)\n - Defines: UUID format (RFC 4122), URN (RFC 8141)\n - Internet protocol\
\ standards\n\n- **OCLC** (Online Computer Library Center)\n - Defines: WorldCat identifiers\n - Also acts as RegistrationAuthority\
\ for some identifiers\n\n- **Museumvereniging** (Netherlands Museums Association)\n - Defines: Museumnorm (Netherlands\
\ museum quality standard)\n - Wikidata: Q2335495\n - National association representing Dutch museums\n\n- **Stichting\
\ Museumregister Nederland**\n - Maintains: Museumregister Nederland (certified museum list)\n - Wikidata: Q110989623\n\
\ - Grants official museum status in Netherlands based on Museumnorm\n\n**Relationship to Standards:**\n\nA StandardsOrganization\
\ defines one or more Standard classes via the\ndefined_by inverse relationship:\n- Standard.defined_by → StandardsOrganization\n\
\n**Ontology Alignment:**\n\n- org:FormalOrganization - W3C Organization Ontology\n- schema:Organization - Schema.org\n\
- foaf:Organization - FOAF\n"
exact_mappings:
- org:FormalOrganization
close_mappings:
@ -81,87 +46,123 @@ classes:
id:
identifier: true
slot_uri: schema:identifier
description: |
Unique identifier for this standards organization.
description: 'Unique identifier for this standards organization.
Recommended format: lowercase acronym or short name.
Examples: "iso", "ansi", "w3c", "ietf", "oclc"
'
range: uriorcurie
required: true
name:
slot_uri: schema:name
description: |
Official full name of the standards organization.
description: 'Official full name of the standards organization.
Examples:
- "International Organization for Standardization"
- "American National Standards Institute"
- "World Wide Web Consortium"
'
range: string
required: true
has_or_had_abbreviation:
slot_uri: schema:alternateName
description: |
Common abbreviation/acronym.
description: 'Common abbreviation/acronym.
Examples: "ISO", "ANSI", "W3C", "IETF", "OCLC"
'
range: string
required: true
organization_type:
slot_uri: schema:additionalType
description: |
Type of standards organization.
description: 'Type of standards organization.
Values:
- INTERGOVERNMENTAL: International government collaboration (ISO, UN)
- NATIONAL: National standards body (ANSI, DIN, BSI, NEN)
- INDUSTRY_CONSORTIUM: Industry-led organization (W3C, IETF)
- LIBRARY_COOPERATIVE: Library/cultural heritage focus (OCLC, IFLA)
- PROFESSIONAL_ASSOCIATION: Professional body (SAA, ALA)
'
range: StandardsOrganizationTypeEnum
required: true
member_countries:
slot_uri: schema:member
description: |
Countries that are members of this organization (for intergovernmental orgs).
description: 'Countries that are members of this organization (for intergovernmental orgs).
List of ISO 3166-1 alpha-2 country codes.
Example for ISO: ["NL", "US", "JP", "DE", ...] (167 member countries)
'
range: string
multivalued: true
founded_year:
slot_uri: schema:foundingDate
description: |
Year the organization was founded.
description: 'Year the organization was founded.
Examples:
- ISO: 1947
- ANSI: 1918
- W3C: 1994
- IETF: 1986
'
range: integer
headquarters_country:
slot_uri: schema:location
description: |
Country where headquarters is located (ISO 3166-1 alpha-2).
description: 'Country where headquarters is located (ISO 3166-1 alpha-2).
Examples:
- ISO: "CH" (Geneva, Switzerland)
- ANSI: "US" (Washington DC)
- W3C: "US" (MIT) + "FR" (ERCIM) + "JP" (Keio)
'
range: string
pattern: ^[A-Z]{2}$
website:
slot_uri: schema:url
description: |
Official website URL.
description: 'Official website URL.
Examples:
- https://www.iso.org/
- https://www.ansi.org/
- https://www.w3.org/
'
range: uri
organization_description:
slot_uri: schema:description
@ -169,38 +170,53 @@ classes:
range: string
standards_maintained:
slot_uri: schema:hasPart
description: |
Standards defined by this organization.
description: 'Standards defined by this organization.
Inverse relationship: Standard.defined_by → StandardsOrganization
Note: This is the inverse side; the forward relationship is on Standard.
'
range: Standard
multivalued: true
inlined: false
wikidata_id:
slot_uri: schema:sameAs
description: |
Wikidata Q-ID for this standards organization.
description: 'Wikidata Q-ID for this standards organization.
Examples:
- ISO: Q15028
- OCLC: Q190593
- Museumvereniging: Q2335495
- Stichting Museumregister Nederland: Q110989623
'
range: string
pattern: ^Q[0-9]+$
headquarters_country_code:
slot_uri: schema:location
description: |
Country where the organization is headquartered (ISO 3166-1 alpha-2 code).
description: 'Country where the organization is headquartered (ISO 3166-1 alpha-2 code).
For intergovernmental organizations, use primary headquarters location.
Examples:
- ISO: CH (Geneva)
- OCLC: US (Dublin, Ohio)
- Museumvereniging: NL
'
range: string
pattern: ^[A-Z]{2}$
slots:
@ -213,85 +229,3 @@ classes:
template_specificity:
range: TemplateSpecificityScores
inlined: true
enums:
StandardsOrganizationTypeEnum:
description: Classification of standards organization types
permissible_values:
INTERGOVERNMENTAL:
description: |
International organization with government membership.
Examples: ISO, United Nations, UNESCO
NATIONAL:
description: |
National standards body for a single country.
Examples: ANSI (US), DIN (DE), BSI (UK), NEN (NL), AFNOR (FR)
INDUSTRY_CONSORTIUM:
description: |
Industry-led standards organization.
Examples: W3C, IETF, OASIS, OMG
LIBRARY_COOPERATIVE:
description: |
Library or cultural heritage cooperative.
Examples: OCLC, IFLA, CENL, LIBER
PROFESSIONAL_ASSOCIATION:
description: |
Professional association setting domain standards.
Examples: SAA (archivists), ALA (librarians), ICOM (museums)
NATIONAL_MUSEUM_ASSOCIATION:
description: |
National museum association that defines quality standards.
These organizations represent museums at the national level and
often define quality standards, accreditation criteria, and
professional guidelines.
Examples:
- Museumvereniging (Netherlands Museums Association) - Q2335495
- Defines: Museumnorm (museum quality standard)
- Works with Stichting Museumregister Nederland
- Museums Association (UK)
- American Alliance of Museums (AAM, US)
- Deutscher Museumsbund (DE)
- ICOM National Committees
Characteristics:
- Membership-based (museums as members)
- Advocacy and representation
- Professional development
- Quality standards and accreditation
CERTIFICATION_BODY:
description: |
Organization that certifies compliance with standards.
These bodies assess institutions against standards and grant
certification or accreditation status.
Examples:
- Stichting Museumregister Nederland (Q110989623)
- Certifies: Museums meeting Museumnorm
- Maintains: Official museum register
- Museum Accreditation Scheme (Arts Council England)
- AAM Accreditation Commission (US)
Characteristics:
- Assessment and audit function
- Grants/revokes certification
- Maintains certified institution list
- Independent from membership organization
GOVERNANCE_COUNCIL:
description: |
Governance body for a consortium-type identifier service.
These councils have representatives from contributing agencies and
make decisions about the service's development, policies, and direction.
Examples:
- VIAF Council (representatives from 37 contributing agencies)
- ORCID Board of Directors
- ROR Steering Group
Characteristics:
- Voting members from data contributors
- Meets regularly (annually, quarterly)
- Advises on technical and policy decisions
- May have working groups for specific topics

View file

@ -28,6 +28,7 @@ imports:
- ./TemplateSpecificityScores
- ../slots/has_actual_start_date
- ../slots/has_actual_end_date
- ../enums/TemporaryLocationReasonEnum
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
@ -422,21 +423,3 @@ classes:
serves_function_of:
- Collection storage
description: Emergency storage (active, end date unknown)
enums:
TemporaryLocationReasonEnum:
description: Reasons for establishing a temporary location
permissible_values:
RENOVATION:
description: Building renovation or refurbishment work
CONSTRUCTION:
description: New building construction
EMERGENCY:
description: Disaster or emergency response
POP_UP_PROGRAM:
description: Planned temporary outreach or exhibition
PILOT_PROJECT:
description: Testing new service model or location
EVENT_PRESENCE:
description: Temporary presence at festival or conference
INTERIM_RELOCATION:
description: Planned temporary move between permanent facilities

View file

@ -23,6 +23,7 @@ imports:
- ../slots/total_frames_analyzed
- ./SpecificityAnnotation
- ./TemplateSpecificityScores
- ../enums/AnnotationTypeEnum
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
@ -420,29 +421,3 @@ classes:
- https://www.w3.org/TR/annotation-model/
- http://www.cidoc-crm.org/cidoc-crm/E13_Attribute_Assignment
- https://iiif.io/api/presentation/3.0/
enums:
AnnotationTypeEnum:
description: 'Types of video annotation based on analysis method.
'
permissible_values:
SCENE_DETECTION:
description: Shot and scene boundary detection
OBJECT_DETECTION:
description: Object, face, and logo detection
OCR:
description: Optical character recognition (text-in-video)
ACTION_RECOGNITION:
description: Human action and activity detection
SEMANTIC_SEGMENTATION:
description: Pixel-level semantic classification
POSE_ESTIMATION:
description: Human body pose detection
EMOTION_RECOGNITION:
description: Facial emotion/expression analysis
MULTIMODAL:
description: Combined audio-visual analysis
CAPTIONING:
description: Automated video captioning/description
CUSTOM:
description: Custom annotation type

View file

@ -64,6 +64,10 @@ imports:
- ../slots/unique_object_count
- ./SpecificityAnnotation
- ./TemplateSpecificityScores
- ../enums/DetectionLevelEnum
- ../enums/SceneTypeEnum
- ../enums/TransitionTypeEnum
- ../enums/TextTypeEnum
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
@ -1180,84 +1184,3 @@ classes:
template_specificity:
range: TemplateSpecificityScores
inlined: true
enums:
DetectionLevelEnum:
description: Granularity of scene/shot detection
permissible_values:
SHOT:
description: Technical camera edit boundaries
SCENE:
description: Semantic content/location boundaries
BOTH:
description: Both shot and scene detection
SceneTypeEnum:
description: Types of scenes in heritage videos
permissible_values:
INTERIOR:
description: Indoor/interior shots
EXTERIOR:
description: Outdoor/exterior shots
CLOSEUP:
description: Detail shots of objects/artworks
WIDE_SHOT:
description: Establishing or wide-angle shots
INTERVIEW:
description: Talking head / interview format
ARCHIVAL:
description: Historical footage or photographs
ANIMATION:
description: Animated or graphics sequence
TITLE_CARD:
description: Text overlay or title sequence
B_ROLL:
description: Supplementary/cutaway footage
DEMONSTRATION:
description: Process or technique demonstration
TOUR:
description: Walking tour or navigation sequence
TransitionTypeEnum:
description: Types of video transitions
permissible_values:
CUT:
description: Instantaneous transition (hard cut)
FADE_IN:
description: Gradual appearance from black
FADE_OUT:
description: Gradual disappearance to black
DISSOLVE:
description: Cross-fade between shots
WIPE:
description: Geometric wipe transition
MORPH:
description: Morphing transition effect
FLASH:
description: Flash or strobe transition
OTHER:
description: Other transition type
TextTypeEnum:
description: Types of on-screen text regions
permissible_values:
TITLE_CARD:
description: Opening/closing titles
LOWER_THIRD:
description: Name/title overlay at bottom
SUBTITLE:
description: Burned-in subtitles/captions
SIGN:
description: Physical signs in scene
LABEL:
description: Museum/exhibition labels
DOCUMENT:
description: Text from documents/books
HANDWRITTEN:
description: Handwritten text
GRAPHIC:
description: Infographic or chart text
WATERMARK:
description: Video watermark or logo
URL:
description: Website URL display
CREDITS:
description: Credits or attribution text
OTHER:
description: Other text type

View file

@ -52,6 +52,9 @@ imports:
- ./SpecificityAnnotation
- ./TemplateSpecificityScores
- ../slots/has_audio_event_segment
- ../enums/AudioEventTypeEnum
- ../enums/SoundEventTypeEnum
- ../enums/MusicTypeEnum
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
@ -864,75 +867,3 @@ classes:
template_specificity:
range: TemplateSpecificityScores
inlined: true
enums:
AudioEventTypeEnum:
description: 'Types of audio events detected in video.
'
permissible_values:
SPEECH:
description: Speech/voice detection and analysis
MUSIC:
description: Music detection and classification
SILENCE:
description: Silence or very low audio
SOUND_EVENT:
description: Non-speech, non-music sound events
NOISE:
description: Noise detection (for quality assessment)
MIXED:
description: Multiple audio event types analyzed
SoundEventTypeEnum:
description: 'Types of non-speech, non-music sound events.
'
permissible_values:
APPLAUSE:
description: Clapping, applause
LAUGHTER:
description: Laughter from audience or speakers
CROWD_NOISE:
description: General crowd/audience noise
FOOTSTEPS:
description: Walking, footsteps
DOOR:
description: Door opening/closing sounds
NATURE_SOUNDS:
description: Birds, wind, water, etc.
TRAFFIC:
description: Vehicles, urban sounds
BELLS:
description: Church bells, temple bells, etc.
MACHINERY:
description: Industrial, mechanical sounds
COUGHING:
description: Coughing, clearing throat
PAPER:
description: Paper rustling
TYPING:
description: Keyboard typing
PHONE:
description: Phone ringing or notification
MUSIC_INSTRUMENT:
description: Individual instrument sounds
OTHER:
description: Other sound event type
MusicTypeEnum:
description: 'Types of music presence in audio.
'
permissible_values:
BACKGROUND:
description: Background/ambient music under other content
FEATURED:
description: Primary audio is music (performance, recording)
ARCHIVAL:
description: Historical/archival music recording
INTRO_OUTRO:
description: Opening or closing music/jingle
TRANSITION:
description: Music used for scene transitions
DIEGETIC:
description: Music from within the scene (radio, live performance)
NON_DIEGETIC:
description: Music added in post-production

View file

@ -41,6 +41,8 @@ imports:
- ./TemplateSpecificityScores
- ../slots/definition
- ../slots/has_available_caption_language
- ../enums/VideoDefinitionEnum
- ../enums/LiveBroadcastStatusEnum
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
@ -702,36 +704,3 @@ classes:
template_specificity:
range: TemplateSpecificityScores
inlined: true
enums:
VideoDefinitionEnum:
description: 'Video resolution/definition quality categories.
Based on common platform standards.
'
permissible_values:
sd:
description: Standard definition (480p or lower)
hd:
description: High definition (720p, 1080p)
uhd:
description: Ultra HD (2160p/4K)
4k:
description: 4K resolution (2160p) - alias for uhd
8k:
description: Full Ultra HD (4320p)
LiveBroadcastStatusEnum:
description: 'Live broadcast status values for video content.
Based on YouTube API liveBroadcastContent values.
'
permissible_values:
none:
description: Not a live broadcast (standard uploaded video)
live:
description: Currently broadcasting live
upcoming:
description: Scheduled live stream that hasn't started yet

View file

@ -22,6 +22,8 @@ imports:
- ../slots/track_name
- ./SpecificityAnnotation
- ./TemplateSpecificityScores
- ../enums/SubtitlePositionEnum
- ../enums/SubtitleFormatEnum
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
@ -579,152 +581,3 @@ classes:
- https://www.w3.org/TR/webvtt1/
- https://developer.mozilla.org/en-US/docs/Web/API/WebVTT_API
- https://www.3playmedia.com/learn/popular-topics/closed-captioning/
enums:
SubtitleFormatEnum:
description: 'Subtitle/caption file formats.
Each format has different capabilities for timing precision,
styling, positioning, and metadata.
'
permissible_values:
SRT:
description: 'SubRip subtitle format (.srt).
Most widely supported format.
Simple: sequence number, timecode, text.
No styling or positioning support.
'
VTT:
description: 'WebVTT format (.vtt).
W3C standard for HTML5 video.
Supports styling (CSS), positioning, cue settings.
Recommended for web delivery.
'
TTML:
description: 'Timed Text Markup Language (.ttml/.dfxp/.xml).
W3C XML-based standard.
Rich styling, regions, timing.
Used in broadcast and streaming (Netflix, Amazon).
'
SBV:
description: 'YouTube SubViewer format (.sbv).
Simple format similar to SRT.
Native YouTube caption format.
'
ASS:
description: 'Advanced SubStation Alpha (.ass).
Advanced styling, positioning, effects.
Popular for anime subtitles.
Includes SSA (.ssa) as predecessor.
'
STL:
description: 'EBU STL format (.stl).
European Broadcasting Union standard.
Used in broadcast television.
Binary format with teletext compatibility.
'
CAP:
description: 'Scenarist Closed Caption (.scc/.cap).
Used for broadcast closed captioning.
CEA-608/CEA-708 compliant.
'
SAMI:
description: 'Synchronized Accessible Media Interchange (.smi/.sami).
Microsoft format for Windows Media.
HTML-like markup with timing.
'
LRC:
description: 'LRC lyrics format (.lrc).
Simple format for song lyrics.
Line-by-line timing, no duration.
'
JSON:
description: 'JSON-based subtitle format.
Used by some APIs (YouTube transcript API).
Structure varies by source.
'
UNKNOWN:
description: 'Unknown or unrecognized format.
May require manual parsing or conversion.
'
SubtitlePositionEnum:
description: 'Default caption display position on video.
May be overridden by format-specific positioning (VTT, TTML, ASS).
'
permissible_values:
BOTTOM:
description: 'Bottom of video frame (standard position).
Most common for subtitles and captions.
Typically in lower 10-15% of frame.
'
TOP:
description: 'Top of video frame.
Used when bottom is occluded.
Common for some broadcast formats.
'
MIDDLE:
description: 'Center of video frame.
Rarely used except for specific effects.
'
LEFT:
description: 'Left side of frame (vertical text).
Rare, used for specific languages/effects.
'
RIGHT:
description: 'Right side of frame (vertical text).
Rare, used for specific languages/effects.
'

View file

@ -24,6 +24,7 @@ imports:
- ../slots/word_count
- ./SpecificityAnnotation
- ./TemplateSpecificityScores
- ../enums/GenerationMethodEnum
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
@ -386,34 +387,3 @@ classes:
see_also:
- https://www.w3.org/TR/prov-o/
- http://www.cidoc-crm.org/cidoc-crm/E73_Information_Object
enums:
GenerationMethodEnum:
description: 'Methods for generating video-derived text content.
Standardized values for provenance tracking.
'
permissible_values:
ASR_AUTOMATIC:
description: Automatic speech recognition (raw output)
ASR_ENHANCED:
description: ASR with post-processing (punctuation, normalization)
MANUAL_TRANSCRIPTION:
description: Fully human-transcribed content
MANUAL_CORRECTION:
description: Human-corrected ASR output
CV_AUTOMATIC:
description: Computer vision detection (raw output)
CV_ENHANCED:
description: CV with post-processing or filtering
MULTIMODAL:
description: Combined audio+visual AI processing
OCR:
description: Optical character recognition from video frames
PLATFORM_PROVIDED:
description: Content from platform API (YouTube, Vimeo captions)
HYBRID:
description: Combination of automated and manual methods
UNKNOWN:
description: Generation method not recorded

View file

@ -19,6 +19,7 @@ imports:
- ../slots/transcript_format
- ./SpecificityAnnotation
- ./TemplateSpecificityScores
- ../enums/TranscriptFormatEnum
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
@ -337,60 +338,3 @@ classes:
see_also:
- https://schema.org/transcript
- http://www.cidoc-crm.org/cidoc-crm/E33_Linguistic_Object
enums:
TranscriptFormatEnum:
description: 'Format/structure of transcript text content.
Indicates how the full_text is organized.
'
permissible_values:
PLAIN_TEXT:
description: 'Continuous text without structural markers.
No speaker labels, no timestamps, no paragraph breaks.
Suitable for simple full-text search indexing.
'
PARAGRAPHED:
description: 'Text broken into paragraphs.
May be based on topic changes, speaker pauses, or semantic units.
Improves human readability.
'
STRUCTURED:
description: 'Text with speaker labels and/or section markers.
Format: "[Speaker] Text content" or similar.
Enables speaker-specific analysis.
'
TIMESTAMPED:
description: 'Text with inline time markers.
Format: "[00:30] Text content" or similar.
Enables temporal navigation in text view.
'
VERBATIM:
description: 'Exact transcription including fillers, false starts, overlaps.
"[um]", "[pause]", "[crosstalk]" markers.
Used for linguistic analysis or legal transcripts.
'
CLEAN:
description: 'Edited for readability - fillers removed, grammar corrected.
May diverge slightly from literal spoken content.
Suitable for publication or accessibility.
'

View file

@ -25,6 +25,7 @@ imports:
- ../slots/was_generated_by
- ./SpecificityAnnotation
- ./TemplateSpecificityScores
- ../enums/WarehouseTypeEnum
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
@ -345,19 +346,3 @@ classes:
warehouse_security_level: BASIC
warehouse_managed_by: Facilities Management
description: Archive supplies warehouse
enums:
WarehouseTypeEnum:
description: Types of warehouse facilities
permissible_values:
EXHIBITION_EQUIPMENT:
description: Display cases, lighting, pedestals, exhibition furniture
PACKING_MATERIALS:
description: Crates, boxes, foam, tissue, packing supplies
FURNITURE:
description: Office furniture, event furniture
GENERAL_SUPPLIES:
description: Mixed operational supplies
TECHNICAL_EQUIPMENT:
description: AV equipment, tools, machinery
SIGNAGE:
description: Exhibition signage, wayfinding, banners

View file

@ -24,6 +24,7 @@ imports:
- ../slots/typical_scope
- ./SpecificityAnnotation
- ./TemplateSpecificityScores
- ../enums/PortalCategoryEnum
classes:
WebPortalType:
class_uri: skos:Concept
@ -110,25 +111,3 @@ classes:
see_also:
- https://pro.europeana.eu/page/edm-documentation
- https://www.w3.org/2004/02/skos/
enums:
PortalCategoryEnum:
description: High-level categories for web portal type classification
permissible_values:
GEOGRAPHIC_SCOPE:
description: Portals defined by territorial coverage (national, regional)
DOMAIN_SPECIFIC:
description: Portals focused on a specific heritage domain (archives, libraries, museums)
CROSS_DOMAIN:
description: Portals spanning multiple heritage sectors (LAM integration)
THEMATIC:
description: Portals with specialized subject focus (colonial, monastic, genealogical)
TECHNICAL_INFRASTRUCTURE:
description: Portals providing technical services (SPARQL, IIIF, OAI-PMH)
ACCESS_MODEL:
description: Portals defined by access approach (open access, research data)
RESEARCH_INFRASTRUCTURE:
description: Pan-European/international research infrastructure portals
REGISTRY:
description: Dataset registries tracking published heritage data (e.g., NDE Dataset Register)
LIFECYCLE:
description: Historical status portals (legacy, deprecated)

View file

@ -29,7 +29,7 @@ slots:
- hc:ColdStorageEnvironment (-5°C, 30% RH)
- hc:PhotographicMaterialsEnvironment (15°C, 35% RH)
- hc:TextileStorageEnvironment (18°C, 50% RH, 50 lux)
range: uriorcurie
range: string
slot_uri: skos:exactMatch
examples:
- value: hc:StandardArchiveEnvironment

View file

@ -11,7 +11,7 @@ slots:
organizational_principle_uri:
slot_uri: hc:organizationalPrincipleUri
description: URI reference to RiC-O organizational principle vocabulary term.
range: uriorcurie
range: string
required: false
comments:
- rico:hasOrHadOrganizationalPrinciple does not exist in RiC-O - use hc namespace

View file

@ -11,5 +11,5 @@ slots:
post_type_activity_streams_type:
slot_uri: schema:additionalType
description: Activity Streams 2.0 type mapping for this post type.
range: uriorcurie
range: string
required: false

View file

@ -11,5 +11,5 @@ slots:
post_type_schema_org_type:
slot_uri: schema:additionalType
description: Schema.org type mapping for this post type.
range: uriorcurie
range: string
required: false

View file

@ -6,6 +6,7 @@ prefixes:
hc: https://nde.nl/ontology/hc/
imports:
- linkml:types
- ../enums/PreservationMethodEnum
default_prefix: hc
slots:
preservation_method:

View file

@ -0,0 +1,24 @@
id: https://nde.nl/ontology/hc/slot/protocol_name
name: protocol_name_slot
title: Protocol Name Slot
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
dcterms: http://purl.org/dc/terms/
imports:
- linkml:types
default_prefix: hc
slots:
protocol_name:
slot_uri: dcterms:conformsTo
description: |
Name of the protocol or standard this endpoint type implements.
Dublin Core: conformsTo for standard compliance.
Examples:
- "OAI-PMH" (Open Archives Initiative Protocol for Metadata Harvesting)
- "IIIF Image API" (International Image Interoperability Framework)
- "SPARQL" (SPARQL Protocol and RDF Query Language)
range: string
required: false

View file

@ -0,0 +1,24 @@
id: https://nde.nl/ontology/hc/slot/protocol_version
name: protocol_version_slot
title: Protocol Version Slot
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
schema: http://schema.org/
imports:
- linkml:types
default_prefix: hc
slots:
protocol_version:
slot_uri: schema:version
description: |
Version of the protocol this endpoint type supports.
Schema.org: version for protocol version.
Examples:
- "2.0" (OAI-PMH)
- "3.0" (IIIF Image API)
- "1.1" (SPARQL)
range: string
required: false

View file

@ -11,5 +11,5 @@ slots:
social_media_wikidata_id:
slot_uri: schema:sameAs
description: Wikidata entity ID for this social media platform.
range: uriorcurie
range: string
required: false

View file

@ -0,0 +1,23 @@
id: https://nde.nl/ontology/hc/slot/specification_url
name: specification_url_slot
title: Specification URL Slot
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
schema: http://schema.org/
imports:
- linkml:types
default_prefix: hc
slots:
specification_url:
slot_uri: schema:documentation
description: |
URL to the official specification document for this protocol.
Schema.org: documentation for specification reference.
Examples:
- "http://www.openarchives.org/OAI/openarchivesprotocol.html" (OAI-PMH)
- "https://iiif.io/api/image/3.0/" (IIIF Image API 3.0)
range: uri
required: false

View file

@ -0,0 +1,22 @@
id: https://nde.nl/ontology/hc/slot/typical_http_methods
name: typical_http_methods_slot
title: Typical HTTP Methods Slot
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
schema: http://schema.org/
imports:
- linkml:types
default_prefix: hc
slots:
typical_http_methods:
slot_uri: schema:httpMethod
description: |
HTTP methods typically used by endpoints of this type.
Schema.org: httpMethod for HTTP verb.
Values: GET, POST, PUT, DELETE, HEAD, OPTIONS
range: string
multivalued: true
required: false

View file

@ -0,0 +1,24 @@
id: https://nde.nl/ontology/hc/slot/typical_response_formats
name: typical_response_formats_slot
title: Typical Response Formats Slot
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
dcterms: http://purl.org/dc/terms/
imports:
- linkml:types
default_prefix: hc
slots:
typical_response_formats:
slot_uri: dcterms:format
description: |
MIME types typically returned by endpoints of this type.
Dublin Core: format for media types.
Examples:
- ["application/xml"] (OAI-PMH - always XML)
- ["application/json", "application/ld+json"] (REST APIs)
range: string
multivalued: true
required: false

View file

@ -11,5 +11,5 @@ slots:
wikidata_equivalent:
slot_uri: skos:exactMatch
description: Wikidata entity that is equivalent to this concept.
range: uriorcurie
range: string
required: false

View file

@ -11,5 +11,5 @@ slots:
wikidata_mapping:
slot_uri: skos:closeMatch
description: Wikidata entity that closely matches this concept.
range: uriorcurie
range: string
required: false