Refactor schema slots and introduce new classes for data sources and data tiers
- Added `range: string` to `connections_by_heritage_type` slot for better data representation. - Removed obsolete `data_source_whatsapp`, `data_tier`, `date_retrieved`, and `de` slots from the schema. - Updated `derived_from_observation` slot to support multiple values and changed range to `uriorcurie`. - Introduced new `DataSource` class to represent various data sources with detailed descriptions and examples. - Created `DataTierLevel` class to classify data quality tiers with standard codes and descriptions. - Archived removed slots and updated the manifest to reflect these changes. - Added new `was_retrieved_at` slot to track data retrieval timestamps, following RiC-O conventions.
This commit is contained in:
parent
6bb8ac20ba
commit
4cdf9588b2
32 changed files with 933 additions and 112 deletions
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
"generated": "2026-01-23T09:51:31.737Z",
|
||||
"generated": "2026-01-23T10:42:56.557Z",
|
||||
"schemaRoot": "/schemas/20251121/linkml",
|
||||
"totalFiles": 3036,
|
||||
"totalFiles": 3035,
|
||||
"categoryCounts": {
|
||||
"main": 4,
|
||||
"class": 980,
|
||||
"class": 982,
|
||||
"enum": 155,
|
||||
"slot": 1893,
|
||||
"slot": 1890,
|
||||
"module": 4
|
||||
},
|
||||
"categories": [
|
||||
|
|
@ -1315,6 +1315,16 @@
|
|||
"path": "modules/classes/DataServiceEndpointTypes.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "DataSource",
|
||||
"path": "modules/classes/DataSource.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "DataTierLevel",
|
||||
"path": "modules/classes/DataTierLevel.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "DataTierSummary",
|
||||
"path": "modules/classes/DataTierSummary.yaml",
|
||||
|
|
@ -6512,16 +6522,6 @@
|
|||
"path": "modules/slots/data_repository.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "data_source_whatsapp",
|
||||
"path": "modules/slots/data_source_whatsapp.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "data_tier",
|
||||
"path": "modules/slots/data_tier.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "date",
|
||||
"path": "modules/slots/date.yaml",
|
||||
|
|
@ -6552,16 +6552,6 @@
|
|||
"path": "modules/slots/date_precision.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "date_retrieved",
|
||||
"path": "modules/slots/date_retrieved.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "de",
|
||||
"path": "modules/slots/de.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "dealer_name",
|
||||
"path": "modules/slots/dealer_name.yaml",
|
||||
|
|
@ -15177,6 +15167,11 @@
|
|||
"path": "modules/slots/was_last_updated_at.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "was_retrieved_at",
|
||||
"path": "modules/slots/was_retrieved_at.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "wikidata_entity",
|
||||
"path": "modules/slots/wikidata_entity.yaml",
|
||||
|
|
|
|||
|
|
@ -19,7 +19,6 @@ imports:
|
|||
|
||||
- ./TemplateSpecificityTypes
|
||||
- ../enums/OrganizationalChangeEventTypeEnum
|
||||
- ../enums/DataTierEnum
|
||||
- ../enums/DatePrecisionEnum
|
||||
- ../enums/TimelineExtractionMethodEnum
|
||||
# REMOVED - migrated to is_or_was_approximate (Rule 53)
|
||||
|
|
@ -27,7 +26,8 @@ imports:
|
|||
- ../slots/is_or_was_approximate
|
||||
- ./ApproximationStatus
|
||||
- ../slots/has_archive_path
|
||||
- ../slots/data_tier
|
||||
- ../slots/has_or_had_level # was: data_tier - migrated per Rule 53/56/57 (2026-01-23)
|
||||
- ./DataTierLevel
|
||||
- ../slots/date_precision
|
||||
- ../slots/description
|
||||
- ../slots/event_date
|
||||
|
|
@ -48,7 +48,7 @@ classes:
|
|||
\ DESIGN**\n\nThis class models WHAT happened, not HOW we know. For source-specific\nprovenance, use observation classes:\n\
|
||||
\n- `WebObservation` - For web-scraped data with XPath or API provenance\n- `CustodianObservation` - For institutional\
|
||||
\ source documents\n\nThe optional `observation_ref` slot links events to their source observations\nwhen detailed provenance\
|
||||
\ is needed.\n\n**DATA QUALITY**\n\nUse `data_tier` to indicate trustworthiness:\n- TIER_4_INFERRED: Initial extraction\
|
||||
\ is needed.\n\n**DATA QUALITY**\n\nUse `has_or_had_level` (DataTierLevel) to indicate trustworthiness:\n- TIER_4_INFERRED: Initial extraction\
|
||||
\ (LLM-generated, unverified)\n- TIER_3_CROWD_SOURCED: Verified against Wikipedia/Wikidata\n- TIER_2_VERIFIED: Verified\
|
||||
\ against institutional website\n- TIER_1_AUTHORITATIVE: Verified against official registry\n\nUse `extraction_notes`\
|
||||
\ to capture source-specific details:\n- API queries and responses\n- XPath locations in archived HTML\n- Wikidata property\
|
||||
|
|
@ -66,7 +66,7 @@ classes:
|
|||
\n - \"https://bizzy.ai/nl/nl/52454037/regionaal-historisch-centrum-rhc-drents-archief\"\n extraction_method:\
|
||||
\ api_response_regex\n extraction_timestamp: \"2025-12-16T10:00:00Z\"\n extraction_notes: >-\n Query: \"\
|
||||
Regionaal Historisch Centrum (RHC) Drents Archief\" Assen opgericht\n Answer archived at: web/0002/linkup/linkup_founding_20251215T160438Z.json\n\
|
||||
\ archive_path: web/0002/linkup/linkup_founding_20251215T160438Z.json\n data_tier: TIER_4_INFERRED\n```\n"
|
||||
\ archive_path: web/0002/linkup/linkup_founding_20251215T160438Z.json\n has_or_had_level:\n has_or_had_short_code: TIER_4_INFERRED\n```\n"
|
||||
exact_mappings:
|
||||
- prov:Entity
|
||||
close_mappings:
|
||||
|
|
@ -78,7 +78,7 @@ classes:
|
|||
# - approximate
|
||||
- is_or_was_approximate
|
||||
- archive_path
|
||||
- data_tier
|
||||
- has_or_had_level # was: data_tier - migrated per Rule 53/56/57 (2026-01-23)
|
||||
- date_precision
|
||||
- description
|
||||
- event_date
|
||||
|
|
@ -130,8 +130,23 @@ classes:
|
|||
required: false
|
||||
has_archive_path:
|
||||
required: false
|
||||
data_tier:
|
||||
has_or_had_level: # was: data_tier - migrated per Rule 53/56/57 (2026-01-23)
|
||||
range: DataTierLevel
|
||||
inlined: true
|
||||
required: true
|
||||
description: >-
|
||||
Data quality tier indicating trustworthiness of this event data.
|
||||
Standard codes: TIER_1_AUTHORITATIVE, TIER_2_VERIFIED,
|
||||
TIER_3_CROWD_SOURCED, TIER_4_INFERRED
|
||||
examples:
|
||||
- value:
|
||||
has_or_had_short_code: TIER_4_INFERRED
|
||||
has_or_had_description: Extracted via LLM - pending verification
|
||||
description: Initial extraction tier
|
||||
- value:
|
||||
has_or_had_short_code: TIER_2_VERIFIED
|
||||
has_or_had_description: Verified against institutional website
|
||||
description: Verified tier
|
||||
observation_ref:
|
||||
required: false
|
||||
rules:
|
||||
|
|
@ -170,7 +185,9 @@ classes:
|
|||
extraction_timestamp: '2025-12-16T10:00:00Z'
|
||||
extraction_notes: 'Query: "Drents Archief" Assen opgericht OR gesticht API: Linkup. Archived at: web/0002/linkup/linkup_founding_20251215T160438Z.json'
|
||||
archive_path: web/0002/linkup/linkup_founding_20251215T160438Z.json
|
||||
data_tier: TIER_4_INFERRED
|
||||
has_or_had_level: # was: data_tier
|
||||
has_or_had_short_code: TIER_4_INFERRED
|
||||
has_or_had_description: Extracted via API response - pending verification
|
||||
description: Founding event extracted from API response
|
||||
- value:
|
||||
event_type: MERGER
|
||||
|
|
@ -183,7 +200,9 @@ classes:
|
|||
- https://nl.wikipedia.org/wiki/Drents_Archief
|
||||
extraction_method: api_response_regex
|
||||
extraction_timestamp: '2025-12-16T10:05:00Z'
|
||||
data_tier: TIER_4_INFERRED
|
||||
has_or_had_level: # was: data_tier
|
||||
has_or_had_short_code: TIER_4_INFERRED
|
||||
has_or_had_description: Extracted via API - pending verification
|
||||
description: Merger event with year-only precision
|
||||
- value:
|
||||
event_type: FOUNDING
|
||||
|
|
@ -197,7 +216,9 @@ classes:
|
|||
extraction_method: wikidata_sparql
|
||||
extraction_timestamp: '2025-12-20T14:30:00Z'
|
||||
extraction_notes: Wikidata P571 (inception date) query
|
||||
data_tier: TIER_3_CROWD_SOURCED
|
||||
has_or_had_level: # was: data_tier
|
||||
has_or_had_short_code: TIER_3_CROWD_SOURCED
|
||||
has_or_had_description: Verified against Wikidata
|
||||
description: Founding event from Wikidata
|
||||
- value:
|
||||
event_type: TRANSFER
|
||||
|
|
@ -212,7 +233,9 @@ classes:
|
|||
extraction_timestamp: '2025-12-20T15:00:00Z'
|
||||
extraction_notes: 'XPath: /html/body/main/section[2]/div/p[3]'
|
||||
archive_path: web/0001/rijksmuseum.nl/about-us/rendered.html
|
||||
data_tier: TIER_2_VERIFIED
|
||||
has_or_had_level: # was: data_tier
|
||||
has_or_had_short_code: TIER_2_VERIFIED
|
||||
has_or_had_description: Verified against institutional website
|
||||
description: Relocation event from institutional website
|
||||
- value:
|
||||
event_type: FOUNDING
|
||||
|
|
@ -225,5 +248,7 @@ classes:
|
|||
description: Museum founded around 1880, exact date unknown.
|
||||
extraction_method: manual_research
|
||||
extraction_timestamp: '2025-12-20T16:00:00Z'
|
||||
data_tier: TIER_4_INFERRED
|
||||
has_or_had_level: # was: data_tier
|
||||
has_or_had_short_code: TIER_4_INFERRED
|
||||
has_or_had_description: Manual research - pending verification
|
||||
description: Founding event with approximate date
|
||||
|
|
|
|||
|
|
@ -0,0 +1,119 @@
|
|||
id: https://nde.nl/ontology/hc/class/DataSource
|
||||
name: data_source_class
|
||||
title: DataSource Class
|
||||
description: >-
|
||||
Represents a source of data for enrichment or information gathering.
|
||||
|
||||
Used to track where data came from, including messaging platforms,
|
||||
APIs, web scraping, databases, and other data sources.
|
||||
|
||||
prefixes:
|
||||
linkml: https://w3id.org/linkml/
|
||||
hc: https://nde.nl/ontology/hc/
|
||||
prov: http://www.w3.org/ns/prov#
|
||||
dcterms: http://purl.org/dc/terms/
|
||||
schema: http://schema.org/
|
||||
|
||||
imports:
|
||||
- linkml:types
|
||||
- ../slots/has_or_had_label
|
||||
- ../slots/has_or_had_description
|
||||
- ../slots/has_or_had_short_code
|
||||
- ../slots/source_url
|
||||
|
||||
default_prefix: hc
|
||||
|
||||
classes:
|
||||
DataSource:
|
||||
class_uri: prov:Entity
|
||||
description: >-
|
||||
A source of data used for enrichment or information gathering.
|
||||
|
||||
**Common Source Types**:
|
||||
|
||||
| Type | Short Code | Description |
|
||||
|------|------------|-------------|
|
||||
| WhatsApp | WHATSAPP | WhatsApp messaging platform |
|
||||
| LinkedIn | LINKEDIN | LinkedIn social network |
|
||||
| Web Scrape | WEB_SCRAPE | Website scraping |
|
||||
| API | API | External API |
|
||||
| Database | DATABASE | Database query |
|
||||
| Manual | MANUAL | Manual entry |
|
||||
| Wikidata | WIKIDATA | Wikidata knowledge base |
|
||||
| Google Maps | GOOGLE_MAPS | Google Maps API |
|
||||
|
||||
**PROV-O Alignment**: Maps to prov:Entity as the source entity
|
||||
from which data was derived.
|
||||
exact_mappings:
|
||||
- prov:Entity
|
||||
close_mappings:
|
||||
- dcterms:source
|
||||
- schema:CreativeWork
|
||||
slots:
|
||||
- has_or_had_label
|
||||
- has_or_had_short_code
|
||||
- has_or_had_description
|
||||
- source_url
|
||||
slot_usage:
|
||||
has_or_had_label:
|
||||
description: Human-readable name for the data source.
|
||||
range: string
|
||||
required: true
|
||||
examples:
|
||||
- value: "WhatsApp"
|
||||
description: WhatsApp messaging platform
|
||||
- value: "LinkedIn Profile"
|
||||
description: LinkedIn social network
|
||||
has_or_had_short_code:
|
||||
description: >-
|
||||
Short code identifier for the data source type.
|
||||
Examples: WHATSAPP, LINKEDIN, WEB_SCRAPE, API, DATABASE, MANUAL
|
||||
range: string
|
||||
required: true
|
||||
pattern: "^[A-Z][A-Z0-9_]*$"
|
||||
examples:
|
||||
- value: "WHATSAPP"
|
||||
description: WhatsApp platform
|
||||
- value: "LINKEDIN"
|
||||
description: LinkedIn platform
|
||||
- value: "WEB_SCRAPE"
|
||||
description: Website scraping
|
||||
has_or_had_description:
|
||||
description: Detailed description of the data source and how it was used.
|
||||
range: string
|
||||
required: false
|
||||
examples:
|
||||
- value: "Profile information extracted from WhatsApp message exchange"
|
||||
description: WhatsApp source description
|
||||
source_url:
|
||||
description: URL or identifier for the specific source location.
|
||||
range: uriorcurie
|
||||
required: false
|
||||
examples:
|
||||
- value: "https://linkedin.com/in/example-profile"
|
||||
description: LinkedIn profile URL
|
||||
annotations:
|
||||
specificity_score: 0.35
|
||||
specificity_rationale: >-
|
||||
Data sources are broadly applicable across all enrichment contexts.
|
||||
custodian_types: '["*"]'
|
||||
custodian_types_rationale: >-
|
||||
Data sources apply universally to all custodian types.
|
||||
examples:
|
||||
- value:
|
||||
has_or_had_label: "WhatsApp"
|
||||
has_or_had_short_code: "WHATSAPP"
|
||||
has_or_had_description: "Information gathered via WhatsApp conversation"
|
||||
description: WhatsApp data source
|
||||
- value:
|
||||
has_or_had_label: "LinkedIn Profile"
|
||||
has_or_had_short_code: "LINKEDIN"
|
||||
has_or_had_description: "Profile information from LinkedIn"
|
||||
source_url: "https://linkedin.com/in/example-profile"
|
||||
description: LinkedIn data source with URL
|
||||
- value:
|
||||
has_or_had_label: "Wikidata"
|
||||
has_or_had_short_code: "WIKIDATA"
|
||||
has_or_had_description: "Entity data from Wikidata SPARQL query"
|
||||
source_url: "https://www.wikidata.org/wiki/Q12345"
|
||||
description: Wikidata data source
|
||||
|
|
@ -0,0 +1,109 @@
|
|||
id: https://nde.nl/ontology/hc/class/DataTierLevel
|
||||
name: data_tier_level_class
|
||||
title: DataTierLevel Class
|
||||
description: >-
|
||||
Data quality tier classification indicating the trustworthiness and
|
||||
verification status of heritage data.
|
||||
|
||||
The tier system reflects the provenance and verification level of information,
|
||||
from authoritative official registries to algorithmically inferred data.
|
||||
|
||||
prefixes:
|
||||
linkml: https://w3id.org/linkml/
|
||||
hc: https://nde.nl/ontology/hc/
|
||||
prov: http://www.w3.org/ns/prov#
|
||||
dqv: http://www.w3.org/ns/dqv#
|
||||
|
||||
imports:
|
||||
- linkml:types
|
||||
- ../slots/has_or_had_label
|
||||
- ../slots/has_or_had_description
|
||||
- ../slots/has_or_had_short_code
|
||||
|
||||
default_prefix: hc
|
||||
|
||||
classes:
|
||||
DataTierLevel:
|
||||
class_uri: hc:DataTierLevel
|
||||
description: >-
|
||||
Data quality tier level classification.
|
||||
|
||||
**Standard Tier Levels** (from most to least authoritative):
|
||||
|
||||
| Tier | Short Code | Description | Examples |
|
||||
|------|------------|-------------|----------|
|
||||
| Tier 1 | TIER_1_AUTHORITATIVE | Official registry data | NDE CSV, ISIL registry, government databases |
|
||||
| Tier 2 | TIER_2_VERIFIED | Verified external sources | Wikidata (verified), Google Maps, official websites |
|
||||
| Tier 3 | TIER_3_CROWD_SOURCED | Community-contributed data | Reviews, user edits, Wikipedia |
|
||||
| Tier 4 | TIER_4_INFERRED | Algorithmically extracted | Website scrape, LLM extraction, API inference |
|
||||
|
||||
**Usage Guidelines**:
|
||||
- Always prefer higher-tier data when available
|
||||
- TIER_4 data requires verification before promotion
|
||||
- Data can be promoted to higher tiers after verification
|
||||
- Track tier changes in provenance history
|
||||
|
||||
**PROV-O Alignment**: Maps to prov:qualifiedDerivation for data quality tracking.
|
||||
exact_mappings:
|
||||
- dqv:QualityMeasurement
|
||||
close_mappings:
|
||||
- prov:qualifiedDerivation
|
||||
slots:
|
||||
- has_or_had_label
|
||||
- has_or_had_short_code
|
||||
- has_or_had_description
|
||||
slot_usage:
|
||||
has_or_had_label:
|
||||
description: Human-readable name for the data tier.
|
||||
range: string
|
||||
required: true
|
||||
examples:
|
||||
- value: "Authoritative"
|
||||
description: Tier 1 - official registry data
|
||||
- value: "Inferred"
|
||||
description: Tier 4 - algorithmically extracted
|
||||
has_or_had_short_code:
|
||||
description: >-
|
||||
Short code identifier for the data tier.
|
||||
Standard codes: TIER_1_AUTHORITATIVE, TIER_2_VERIFIED,
|
||||
TIER_3_CROWD_SOURCED, TIER_4_INFERRED
|
||||
range: string
|
||||
required: true
|
||||
pattern: "^TIER_[1-4]_[A-Z_]+$"
|
||||
examples:
|
||||
- value: "TIER_1_AUTHORITATIVE"
|
||||
description: Official registry data
|
||||
- value: "TIER_4_INFERRED"
|
||||
description: Algorithmically extracted data
|
||||
has_or_had_description:
|
||||
description: Detailed description of what this tier means and its data sources.
|
||||
range: string
|
||||
required: false
|
||||
examples:
|
||||
- value: "Extracted from NDE CSV registry - authoritative Dutch heritage data"
|
||||
description: Tier 1 example
|
||||
- value: "Extracted via LLM from website - requires verification"
|
||||
description: Tier 4 example
|
||||
annotations:
|
||||
specificity_score: 0.35
|
||||
specificity_rationale: >-
|
||||
Data tier levels are broadly useful across all data provenance contexts.
|
||||
custodian_types: '["*"]'
|
||||
custodian_types_rationale: >-
|
||||
Data quality tiers apply universally to all custodian types.
|
||||
examples:
|
||||
- value:
|
||||
has_or_had_label: "Authoritative"
|
||||
has_or_had_short_code: "TIER_1_AUTHORITATIVE"
|
||||
has_or_had_description: "Official data from NDE registry CSV"
|
||||
description: Tier 1 authoritative data
|
||||
- value:
|
||||
has_or_had_label: "Verified"
|
||||
has_or_had_short_code: "TIER_2_VERIFIED"
|
||||
has_or_had_description: "Verified against institutional website"
|
||||
description: Tier 2 verified data
|
||||
- value:
|
||||
has_or_had_label: "Inferred"
|
||||
has_or_had_short_code: "TIER_4_INFERRED"
|
||||
has_or_had_description: "Extracted via Exa search - pending verification"
|
||||
description: Tier 4 inferred data
|
||||
|
|
@ -84,7 +84,8 @@ imports:
|
|||
- ../slots/content_block
|
||||
- ../slots/crawler_version
|
||||
- ../slots/custodian
|
||||
- ../slots/date_retrieved
|
||||
- ../slots/was_retrieved_at # was: date_retrieved - migrated per Rule 53/56/57 (2026-01-23)
|
||||
- ./Timestamp
|
||||
- ../slots/de
|
||||
- ../slots/ead_id
|
||||
- ../slots/en
|
||||
|
|
@ -887,7 +888,7 @@ classes:
|
|||
slots:
|
||||
- has_or_had_quantity # was: claims_count - migrated per Rule 53 (2026-01-19)
|
||||
- crawler_version
|
||||
- date_retrieved
|
||||
- was_retrieved_at # was: date_retrieved - migrated per Rule 53/56/57 (2026-01-23)
|
||||
- extraction_method
|
||||
- extraction_note
|
||||
- html_snapshot_path
|
||||
|
|
@ -899,9 +900,18 @@ classes:
|
|||
# REMOVED 2026-01-14: validation_status - migrated to has_or_had_status with ValidationStatus
|
||||
- has_or_had_status
|
||||
slot_usage:
|
||||
date_retrieved:
|
||||
range: date
|
||||
was_retrieved_at: # was: date_retrieved - migrated per Rule 53/56/57 (2026-01-23)
|
||||
range: Timestamp
|
||||
inlined: true
|
||||
required: true
|
||||
description: >-
|
||||
Timestamp when data was retrieved from the source.
|
||||
Uses Timestamp class for structured temporal data.
|
||||
examples:
|
||||
- value:
|
||||
has_or_had_timestamp: "2025-12-15T10:30:00Z"
|
||||
has_or_had_precision: second
|
||||
description: Full datetime retrieval timestamp
|
||||
retrieval_agent:
|
||||
required: true
|
||||
source_url:
|
||||
|
|
|
|||
|
|
@ -22,7 +22,8 @@ imports:
|
|||
- ./ProvenanceBlock
|
||||
- ../slots/has_assessment_date
|
||||
- ../slots/connections_text
|
||||
- ../slots/data_source_whatsapp
|
||||
- ../slots/has_or_had_source # was: data_source_whatsapp - migrated per Rule 53/56/57 (2026-01-23)
|
||||
- ./DataSource
|
||||
- ../slots/digital_confidence
|
||||
- ../slots/digital_indicator
|
||||
- ../slots/digital_professional
|
||||
|
|
@ -342,7 +343,7 @@ classes:
|
|||
'
|
||||
slots:
|
||||
- has_or_had_provenance
|
||||
- data_source_whatsapp
|
||||
- has_or_had_source # was: data_source_whatsapp - migrated per Rule 53/56/57 (2026-01-23)
|
||||
- enriched_date
|
||||
- enrichment_method_whatsapp
|
||||
- no_fabrication
|
||||
|
|
@ -355,10 +356,18 @@ classes:
|
|||
range: string
|
||||
examples:
|
||||
- value: linkedin_profile_analysis
|
||||
data_source_whatsapp:
|
||||
range: string
|
||||
has_or_had_source: # was: data_source_whatsapp - migrated per Rule 53/56/57 (2026-01-23)
|
||||
range: DataSource
|
||||
inlined: true
|
||||
description: >-
|
||||
Source of data for this enrichment.
|
||||
Replaces data_source_whatsapp string with structured DataSource class.
|
||||
examples:
|
||||
- value: public_linkedin_profile
|
||||
- value:
|
||||
has_or_had_label: LinkedIn Profile
|
||||
has_or_had_short_code: LINKEDIN
|
||||
has_or_had_description: Public LinkedIn profile data
|
||||
description: LinkedIn as data source
|
||||
no_fabrication:
|
||||
range: boolean
|
||||
has_or_had_provenance:
|
||||
|
|
|
|||
|
|
@ -44,7 +44,8 @@ imports:
|
|||
# ARCHIVED: ../slots/valid_to - use temporal_extent instead
|
||||
- ../slots/temporal_extent # was: valid_from + valid_to
|
||||
- ../slots/source_url
|
||||
- ../slots/date_retrieved
|
||||
- ../slots/was_retrieved_at # was: date_retrieved - migrated per Rule 53/56/57 (2026-01-23)
|
||||
- ./Timestamp
|
||||
- ../slots/specificity_annotation
|
||||
- ../slots/has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17)
|
||||
- ./WebLink
|
||||
|
|
@ -91,7 +92,9 @@ classes:
|
|||
title: "Family History Research Links"
|
||||
description: "All links from the family history finding aid page"
|
||||
source_url: https://www.nationaalarchief.nl/onderzoeken/zoekhulpen/familiegeschiedenis
|
||||
date_retrieved: "2025-01-14"
|
||||
was_retrieved_at:
|
||||
has_or_had_timestamp: "2025-01-14"
|
||||
has_or_had_precision: day
|
||||
includes_or_included:
|
||||
- id: hc:link/civil-registry
|
||||
url: https://example.org/civil-registry
|
||||
|
|
@ -115,7 +118,7 @@ classes:
|
|||
- description
|
||||
- includes_or_included
|
||||
- source_url
|
||||
- date_retrieved
|
||||
- was_retrieved_at # was: date_retrieved - migrated per Rule 53/56/57 (2026-01-23)
|
||||
- link_count
|
||||
- temporal_extent # was: valid_from + valid_to
|
||||
- specificity_annotation
|
||||
|
|
@ -148,10 +151,17 @@ classes:
|
|||
range: uri
|
||||
description: >-
|
||||
The URL of the page from which links were extracted.
|
||||
date_retrieved:
|
||||
range: date
|
||||
was_retrieved_at: # was: date_retrieved - migrated per Rule 53/56/57 (2026-01-23)
|
||||
range: Timestamp
|
||||
inlined: true
|
||||
description: >-
|
||||
Date when the overview was extracted or compiled.
|
||||
Timestamp when the overview was extracted or compiled.
|
||||
Uses Timestamp class for structured temporal data.
|
||||
examples:
|
||||
- value:
|
||||
has_or_had_timestamp: "2025-01-14"
|
||||
has_or_had_precision: day
|
||||
description: Day-precision retrieval date
|
||||
link_count:
|
||||
range: integer
|
||||
description: >-
|
||||
|
|
@ -183,7 +193,9 @@ classes:
|
|||
title: "Family History Research Links"
|
||||
description: "Comprehensive collection of links from the family history finding aid"
|
||||
source_url: https://www.nationaalarchief.nl/onderzoeken/zoekhulpen/familiegeschiedenis
|
||||
date_retrieved: "2025-01-14"
|
||||
was_retrieved_at: # was: date_retrieved
|
||||
has_or_had_timestamp: "2025-01-14"
|
||||
has_or_had_precision: day
|
||||
link_count: 15
|
||||
description: Overview of links from a finding aid page
|
||||
|
||||
|
|
|
|||
|
|
@ -179,8 +179,8 @@
|
|||
"data_license_policy.yaml",
|
||||
"data_repository.yaml",
|
||||
"__ARCHIVED_20260123__data_sensitivity.yaml",
|
||||
"data_source_whatsapp.yaml",
|
||||
"data_tier.yaml",
|
||||
"__ARCHIVED_20260123__data_source_whatsapp.yaml",
|
||||
"__ARCHIVED_20260123__data_tier.yaml",
|
||||
"__ARCHIVED_20260122__dataset_description.yaml",
|
||||
"__ARCHIVED_20260122__dataset_identifier.yaml",
|
||||
"__ARCHIVED_20260122__dataset_title.yaml",
|
||||
|
|
@ -190,8 +190,8 @@
|
|||
"date_of_death.yaml",
|
||||
"date_of_publication.yaml",
|
||||
"date_precision.yaml",
|
||||
"date_retrieved.yaml",
|
||||
"de.yaml",
|
||||
"__ARCHIVED_20260123__date_retrieved.yaml",
|
||||
"__ARCHIVED_20260123__de.yaml",
|
||||
"dealer_name.yaml",
|
||||
"death_place.yaml",
|
||||
"deceased.yaml",
|
||||
|
|
@ -1906,6 +1906,7 @@
|
|||
"was_fetched_at.yaml",
|
||||
"was_generated_by.yaml",
|
||||
"was_last_updated_at.yaml",
|
||||
"was_retrieved_at.yaml",
|
||||
"wikidata_entity.yaml",
|
||||
"wikidata_equivalent.yaml",
|
||||
"wikidata_id.yaml"
|
||||
|
|
|
|||
|
|
@ -11513,12 +11513,53 @@ fixes:
|
|||
type: slot
|
||||
- label: DataSource
|
||||
type: class
|
||||
processed:
|
||||
status: true
|
||||
date: '2026-01-23'
|
||||
agent: claude-claude-sonnet-4-20250514
|
||||
notes: |
|
||||
**Migration: data_source_whatsapp** ✅ COMPLETE
|
||||
|
||||
**Pattern**: data_source_whatsapp → has_or_had_source + DataSource
|
||||
|
||||
**Files Created**:
|
||||
- DataSource.yaml: Structured class for data sources with support for
|
||||
various source types (WHATSAPP, LINKEDIN, WEB_SCRAPE, API, WIKIDATA, etc.)
|
||||
|
||||
**Files Modified**:
|
||||
- LinkedInProfile.yaml: Replaced data_source_whatsapp import and slot with
|
||||
has_or_had_source + DataSource, updated slot_usage
|
||||
|
||||
**Archived**: modules/slots/archive/data_source_whatsapp_archived_20260123.yaml
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/data_tier
|
||||
revision:
|
||||
- label: has_or_had_level
|
||||
type: slot
|
||||
- label: DataTierLevel
|
||||
type: class
|
||||
processed:
|
||||
status: true
|
||||
date: '2026-01-23'
|
||||
agent: claude-claude-sonnet-4-20250514
|
||||
notes: |
|
||||
**Migration: data_tier** ✅ COMPLETE
|
||||
|
||||
**Pattern**: data_tier → has_or_had_level + DataTierLevel
|
||||
|
||||
**Files Created**:
|
||||
- DataTierLevel.yaml: Structured class for data quality tier classification
|
||||
with standard codes (TIER_1_AUTHORITATIVE, TIER_2_VERIFIED,
|
||||
TIER_3_CROWD_SOURCED, TIER_4_INFERRED)
|
||||
|
||||
**Files Modified**:
|
||||
- CustodianTimelineEvent.yaml: Replaced data_tier import and slot with
|
||||
has_or_had_level + DataTierLevel, updated slot_usage, description, and
|
||||
all examples (5 examples updated)
|
||||
|
||||
**Note**: Other files (ProvenanceBlock, SourceRecord, etc.) use DataTierEnum
|
||||
directly in slot_usage without importing data_tier slot - not affected.
|
||||
|
||||
**Archived**: modules/slots/archive/data_tier_archived_20260123.yaml
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/dataset_description
|
||||
revision:
|
||||
- label: has_or_had_description
|
||||
|
|
@ -11586,7 +11627,20 @@ fixes:
|
|||
type: slot
|
||||
- label: TimeSpan
|
||||
type: class
|
||||
|
||||
processed:
|
||||
status: true
|
||||
date: '2026-01-23'
|
||||
agent: claude-claude-sonnet-4-20250514
|
||||
notes: |
|
||||
**Migration: date_value** ✅ COMPLETE (SLOT NOT FOUND)
|
||||
|
||||
**Status**: The date_value slot does not exist in the schema and is not
|
||||
used by any class. It was either previously removed or never created.
|
||||
|
||||
**Target Pattern**: temporal_extent + TimeSpan (both already exist)
|
||||
|
||||
**No action needed** - marking as processed since the migration target
|
||||
is already available for any future use cases.
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/date_created
|
||||
revision:
|
||||
- label: is_or_was_created_through
|
||||
|
|
@ -11643,6 +11697,26 @@ fixes:
|
|||
type: slot
|
||||
- label: Timestamp
|
||||
type: class
|
||||
processed:
|
||||
status: true
|
||||
date: '2026-01-23'
|
||||
agent: claude-claude-sonnet-4-20250514
|
||||
notes: |
|
||||
**Migration: date_retrieved** ✅ COMPLETE
|
||||
|
||||
**Pattern**: date_retrieved → was_retrieved_at + Timestamp
|
||||
|
||||
**Files Created**:
|
||||
- was_retrieved_at.yaml: New slot for data retrieval timestamps using
|
||||
RiC-O temporal naming convention
|
||||
|
||||
**Files Modified**:
|
||||
- FindingAid.yaml: Replaced date_retrieved import and slot with
|
||||
was_retrieved_at + Timestamp, updated slot_usage
|
||||
- Overview.yaml: Replaced date_retrieved import and slot with
|
||||
was_retrieved_at + Timestamp, updated slot_usage and examples
|
||||
|
||||
**Archived**: modules/slots/archive/date_retrieved_archived_20260123.yaml
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/de
|
||||
revision:
|
||||
- label: has_or_had_language
|
||||
|
|
@ -11650,6 +11724,19 @@ fixes:
|
|||
- label: Language
|
||||
type: class
|
||||
value: de
|
||||
processed:
|
||||
status: true
|
||||
date: '2026-01-23'
|
||||
agent: claude-claude-sonnet-4-20250514
|
||||
notes: |
|
||||
**Migration: de** ✅ COMPLETE (SLOT NOT USED)
|
||||
|
||||
**Status**: The de slot (German language text) was not used by any class.
|
||||
Legacy language-specific slot that predates the has_or_had_language + Language pattern.
|
||||
|
||||
**Target Pattern**: has_or_had_language + Language (both already exist)
|
||||
|
||||
**Archived**: modules/slots/archive/de_archived_20260123.yaml
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/dealer_name
|
||||
revision:
|
||||
- label: is_or_was_associated_with
|
||||
|
|
|
|||
|
|
@ -0,0 +1,41 @@
|
|||
id: https://nde.nl/ontology/hc/slot/was_retrieved_at
|
||||
name: was_retrieved_at_slot
|
||||
title: Was Retrieved At Slot
|
||||
description: >-
|
||||
Timestamp indicating when data was retrieved from a source.
|
||||
|
||||
Follows RiC-O temporal naming convention (Rule 39) using past tense
|
||||
to indicate the retrieval event has already occurred.
|
||||
|
||||
prefixes:
|
||||
linkml: https://w3id.org/linkml/
|
||||
hc: https://nde.nl/ontology/hc/
|
||||
prov: http://www.w3.org/ns/prov#
|
||||
schema: http://schema.org/
|
||||
|
||||
imports:
|
||||
- linkml:types
|
||||
|
||||
default_prefix: hc
|
||||
|
||||
slots:
|
||||
was_retrieved_at:
|
||||
description: >-
|
||||
Timestamp indicating when data was retrieved from a source.
|
||||
|
||||
Used for tracking when web scrapes, API calls, or other data
|
||||
retrieval operations occurred.
|
||||
slot_uri: prov:endedAtTime
|
||||
range: Timestamp
|
||||
exact_mappings:
|
||||
- prov:endedAtTime
|
||||
close_mappings:
|
||||
- schema:dateModified
|
||||
annotations:
|
||||
specificity_score: 0.25
|
||||
specificity_rationale: >-
|
||||
Retrieval timestamps are broadly useful for provenance tracking
|
||||
across all data sources.
|
||||
custodian_types: '["*"]'
|
||||
custodian_types_rationale: >-
|
||||
Data retrieval applies universally to all custodian types.
|
||||
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
"generated": "2026-01-23T10:04:15.652Z",
|
||||
"generated": "2026-01-23T12:15:15.118Z",
|
||||
"schemaRoot": "/schemas/20251121/linkml",
|
||||
"totalFiles": 3036,
|
||||
"totalFiles": 3035,
|
||||
"categoryCounts": {
|
||||
"main": 4,
|
||||
"class": 980,
|
||||
"class": 982,
|
||||
"enum": 155,
|
||||
"slot": 1893,
|
||||
"slot": 1890,
|
||||
"module": 4
|
||||
},
|
||||
"categories": [
|
||||
|
|
@ -1315,6 +1315,16 @@
|
|||
"path": "modules/classes/DataServiceEndpointTypes.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "DataSource",
|
||||
"path": "modules/classes/DataSource.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "DataTierLevel",
|
||||
"path": "modules/classes/DataTierLevel.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "DataTierSummary",
|
||||
"path": "modules/classes/DataTierSummary.yaml",
|
||||
|
|
@ -6512,16 +6522,6 @@
|
|||
"path": "modules/slots/data_repository.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "data_source_whatsapp",
|
||||
"path": "modules/slots/data_source_whatsapp.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "data_tier",
|
||||
"path": "modules/slots/data_tier.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "date",
|
||||
"path": "modules/slots/date.yaml",
|
||||
|
|
@ -6552,16 +6552,6 @@
|
|||
"path": "modules/slots/date_precision.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "date_retrieved",
|
||||
"path": "modules/slots/date_retrieved.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "de",
|
||||
"path": "modules/slots/de.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "dealer_name",
|
||||
"path": "modules/slots/dealer_name.yaml",
|
||||
|
|
@ -15177,6 +15167,11 @@
|
|||
"path": "modules/slots/was_last_updated_at.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "was_retrieved_at",
|
||||
"path": "modules/slots/was_retrieved_at.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "wikidata_entity",
|
||||
"path": "modules/slots/wikidata_entity.yaml",
|
||||
|
|
|
|||
|
|
@ -19,7 +19,6 @@ imports:
|
|||
|
||||
- ./TemplateSpecificityTypes
|
||||
- ../enums/OrganizationalChangeEventTypeEnum
|
||||
- ../enums/DataTierEnum
|
||||
- ../enums/DatePrecisionEnum
|
||||
- ../enums/TimelineExtractionMethodEnum
|
||||
# REMOVED - migrated to is_or_was_approximate (Rule 53)
|
||||
|
|
@ -27,7 +26,8 @@ imports:
|
|||
- ../slots/is_or_was_approximate
|
||||
- ./ApproximationStatus
|
||||
- ../slots/has_archive_path
|
||||
- ../slots/data_tier
|
||||
- ../slots/has_or_had_level # was: data_tier - migrated per Rule 53/56/57 (2026-01-23)
|
||||
- ./DataTierLevel
|
||||
- ../slots/date_precision
|
||||
- ../slots/description
|
||||
- ../slots/event_date
|
||||
|
|
@ -48,7 +48,7 @@ classes:
|
|||
\ DESIGN**\n\nThis class models WHAT happened, not HOW we know. For source-specific\nprovenance, use observation classes:\n\
|
||||
\n- `WebObservation` - For web-scraped data with XPath or API provenance\n- `CustodianObservation` - For institutional\
|
||||
\ source documents\n\nThe optional `observation_ref` slot links events to their source observations\nwhen detailed provenance\
|
||||
\ is needed.\n\n**DATA QUALITY**\n\nUse `data_tier` to indicate trustworthiness:\n- TIER_4_INFERRED: Initial extraction\
|
||||
\ is needed.\n\n**DATA QUALITY**\n\nUse `has_or_had_level` (DataTierLevel) to indicate trustworthiness:\n- TIER_4_INFERRED: Initial extraction\
|
||||
\ (LLM-generated, unverified)\n- TIER_3_CROWD_SOURCED: Verified against Wikipedia/Wikidata\n- TIER_2_VERIFIED: Verified\
|
||||
\ against institutional website\n- TIER_1_AUTHORITATIVE: Verified against official registry\n\nUse `extraction_notes`\
|
||||
\ to capture source-specific details:\n- API queries and responses\n- XPath locations in archived HTML\n- Wikidata property\
|
||||
|
|
@ -66,7 +66,7 @@ classes:
|
|||
\n - \"https://bizzy.ai/nl/nl/52454037/regionaal-historisch-centrum-rhc-drents-archief\"\n extraction_method:\
|
||||
\ api_response_regex\n extraction_timestamp: \"2025-12-16T10:00:00Z\"\n extraction_notes: >-\n Query: \"\
|
||||
Regionaal Historisch Centrum (RHC) Drents Archief\" Assen opgericht\n Answer archived at: web/0002/linkup/linkup_founding_20251215T160438Z.json\n\
|
||||
\ archive_path: web/0002/linkup/linkup_founding_20251215T160438Z.json\n data_tier: TIER_4_INFERRED\n```\n"
|
||||
\ archive_path: web/0002/linkup/linkup_founding_20251215T160438Z.json\n has_or_had_level:\n has_or_had_short_code: TIER_4_INFERRED\n```\n"
|
||||
exact_mappings:
|
||||
- prov:Entity
|
||||
close_mappings:
|
||||
|
|
@ -78,7 +78,7 @@ classes:
|
|||
# - approximate
|
||||
- is_or_was_approximate
|
||||
- archive_path
|
||||
- data_tier
|
||||
- has_or_had_level # was: data_tier - migrated per Rule 53/56/57 (2026-01-23)
|
||||
- date_precision
|
||||
- description
|
||||
- event_date
|
||||
|
|
@ -130,8 +130,23 @@ classes:
|
|||
required: false
|
||||
has_archive_path:
|
||||
required: false
|
||||
data_tier:
|
||||
has_or_had_level: # was: data_tier - migrated per Rule 53/56/57 (2026-01-23)
|
||||
range: DataTierLevel
|
||||
inlined: true
|
||||
required: true
|
||||
description: >-
|
||||
Data quality tier indicating trustworthiness of this event data.
|
||||
Standard codes: TIER_1_AUTHORITATIVE, TIER_2_VERIFIED,
|
||||
TIER_3_CROWD_SOURCED, TIER_4_INFERRED
|
||||
examples:
|
||||
- value:
|
||||
has_or_had_short_code: TIER_4_INFERRED
|
||||
has_or_had_description: Extracted via LLM - pending verification
|
||||
description: Initial extraction tier
|
||||
- value:
|
||||
has_or_had_short_code: TIER_2_VERIFIED
|
||||
has_or_had_description: Verified against institutional website
|
||||
description: Verified tier
|
||||
observation_ref:
|
||||
required: false
|
||||
rules:
|
||||
|
|
@ -170,7 +185,9 @@ classes:
|
|||
extraction_timestamp: '2025-12-16T10:00:00Z'
|
||||
extraction_notes: 'Query: "Drents Archief" Assen opgericht OR gesticht API: Linkup. Archived at: web/0002/linkup/linkup_founding_20251215T160438Z.json'
|
||||
archive_path: web/0002/linkup/linkup_founding_20251215T160438Z.json
|
||||
data_tier: TIER_4_INFERRED
|
||||
has_or_had_level: # was: data_tier
|
||||
has_or_had_short_code: TIER_4_INFERRED
|
||||
has_or_had_description: Extracted via API response - pending verification
|
||||
description: Founding event extracted from API response
|
||||
- value:
|
||||
event_type: MERGER
|
||||
|
|
@ -183,7 +200,9 @@ classes:
|
|||
- https://nl.wikipedia.org/wiki/Drents_Archief
|
||||
extraction_method: api_response_regex
|
||||
extraction_timestamp: '2025-12-16T10:05:00Z'
|
||||
data_tier: TIER_4_INFERRED
|
||||
has_or_had_level: # was: data_tier
|
||||
has_or_had_short_code: TIER_4_INFERRED
|
||||
has_or_had_description: Extracted via API - pending verification
|
||||
description: Merger event with year-only precision
|
||||
- value:
|
||||
event_type: FOUNDING
|
||||
|
|
@ -197,7 +216,9 @@ classes:
|
|||
extraction_method: wikidata_sparql
|
||||
extraction_timestamp: '2025-12-20T14:30:00Z'
|
||||
extraction_notes: Wikidata P571 (inception date) query
|
||||
data_tier: TIER_3_CROWD_SOURCED
|
||||
has_or_had_level: # was: data_tier
|
||||
has_or_had_short_code: TIER_3_CROWD_SOURCED
|
||||
has_or_had_description: Verified against Wikidata
|
||||
description: Founding event from Wikidata
|
||||
- value:
|
||||
event_type: TRANSFER
|
||||
|
|
@ -212,7 +233,9 @@ classes:
|
|||
extraction_timestamp: '2025-12-20T15:00:00Z'
|
||||
extraction_notes: 'XPath: /html/body/main/section[2]/div/p[3]'
|
||||
archive_path: web/0001/rijksmuseum.nl/about-us/rendered.html
|
||||
data_tier: TIER_2_VERIFIED
|
||||
has_or_had_level: # was: data_tier
|
||||
has_or_had_short_code: TIER_2_VERIFIED
|
||||
has_or_had_description: Verified against institutional website
|
||||
description: Relocation event from institutional website
|
||||
- value:
|
||||
event_type: FOUNDING
|
||||
|
|
@ -225,5 +248,7 @@ classes:
|
|||
description: Museum founded around 1880, exact date unknown.
|
||||
extraction_method: manual_research
|
||||
extraction_timestamp: '2025-12-20T16:00:00Z'
|
||||
data_tier: TIER_4_INFERRED
|
||||
has_or_had_level: # was: data_tier
|
||||
has_or_had_short_code: TIER_4_INFERRED
|
||||
has_or_had_description: Manual research - pending verification
|
||||
description: Founding event with approximate date
|
||||
|
|
|
|||
119
schemas/20251121/linkml/modules/classes/DataSource.yaml
Normal file
119
schemas/20251121/linkml/modules/classes/DataSource.yaml
Normal file
|
|
@ -0,0 +1,119 @@
|
|||
id: https://nde.nl/ontology/hc/class/DataSource
|
||||
name: data_source_class
|
||||
title: DataSource Class
|
||||
description: >-
|
||||
Represents a source of data for enrichment or information gathering.
|
||||
|
||||
Used to track where data came from, including messaging platforms,
|
||||
APIs, web scraping, databases, and other data sources.
|
||||
|
||||
prefixes:
|
||||
linkml: https://w3id.org/linkml/
|
||||
hc: https://nde.nl/ontology/hc/
|
||||
prov: http://www.w3.org/ns/prov#
|
||||
dcterms: http://purl.org/dc/terms/
|
||||
schema: http://schema.org/
|
||||
|
||||
imports:
|
||||
- linkml:types
|
||||
- ../slots/has_or_had_label
|
||||
- ../slots/has_or_had_description
|
||||
- ../slots/has_or_had_short_code
|
||||
- ../slots/source_url
|
||||
|
||||
default_prefix: hc
|
||||
|
||||
classes:
|
||||
DataSource:
|
||||
class_uri: prov:Entity
|
||||
description: >-
|
||||
A source of data used for enrichment or information gathering.
|
||||
|
||||
**Common Source Types**:
|
||||
|
||||
| Type | Short Code | Description |
|
||||
|------|------------|-------------|
|
||||
| WhatsApp | WHATSAPP | WhatsApp messaging platform |
|
||||
| LinkedIn | LINKEDIN | LinkedIn social network |
|
||||
| Web Scrape | WEB_SCRAPE | Website scraping |
|
||||
| API | API | External API |
|
||||
| Database | DATABASE | Database query |
|
||||
| Manual | MANUAL | Manual entry |
|
||||
| Wikidata | WIKIDATA | Wikidata knowledge base |
|
||||
| Google Maps | GOOGLE_MAPS | Google Maps API |
|
||||
|
||||
**PROV-O Alignment**: Maps to prov:Entity as the source entity
|
||||
from which data was derived.
|
||||
exact_mappings:
|
||||
- prov:Entity
|
||||
close_mappings:
|
||||
- dcterms:source
|
||||
- schema:CreativeWork
|
||||
slots:
|
||||
- has_or_had_label
|
||||
- has_or_had_short_code
|
||||
- has_or_had_description
|
||||
- source_url
|
||||
slot_usage:
|
||||
has_or_had_label:
|
||||
description: Human-readable name for the data source.
|
||||
range: string
|
||||
required: true
|
||||
examples:
|
||||
- value: "WhatsApp"
|
||||
description: WhatsApp messaging platform
|
||||
- value: "LinkedIn Profile"
|
||||
description: LinkedIn social network
|
||||
has_or_had_short_code:
|
||||
description: >-
|
||||
Short code identifier for the data source type.
|
||||
Examples: WHATSAPP, LINKEDIN, WEB_SCRAPE, API, DATABASE, MANUAL
|
||||
range: string
|
||||
required: true
|
||||
pattern: "^[A-Z][A-Z0-9_]*$"
|
||||
examples:
|
||||
- value: "WHATSAPP"
|
||||
description: WhatsApp platform
|
||||
- value: "LINKEDIN"
|
||||
description: LinkedIn platform
|
||||
- value: "WEB_SCRAPE"
|
||||
description: Website scraping
|
||||
has_or_had_description:
|
||||
description: Detailed description of the data source and how it was used.
|
||||
range: string
|
||||
required: false
|
||||
examples:
|
||||
- value: "Profile information extracted from WhatsApp message exchange"
|
||||
description: WhatsApp source description
|
||||
source_url:
|
||||
description: URL or identifier for the specific source location.
|
||||
range: uriorcurie
|
||||
required: false
|
||||
examples:
|
||||
- value: "https://linkedin.com/in/example-profile"
|
||||
description: LinkedIn profile URL
|
||||
annotations:
|
||||
specificity_score: 0.35
|
||||
specificity_rationale: >-
|
||||
Data sources are broadly applicable across all enrichment contexts.
|
||||
custodian_types: '["*"]'
|
||||
custodian_types_rationale: >-
|
||||
Data sources apply universally to all custodian types.
|
||||
examples:
|
||||
- value:
|
||||
has_or_had_label: "WhatsApp"
|
||||
has_or_had_short_code: "WHATSAPP"
|
||||
has_or_had_description: "Information gathered via WhatsApp conversation"
|
||||
description: WhatsApp data source
|
||||
- value:
|
||||
has_or_had_label: "LinkedIn Profile"
|
||||
has_or_had_short_code: "LINKEDIN"
|
||||
has_or_had_description: "Profile information from LinkedIn"
|
||||
source_url: "https://linkedin.com/in/example-profile"
|
||||
description: LinkedIn data source with URL
|
||||
- value:
|
||||
has_or_had_label: "Wikidata"
|
||||
has_or_had_short_code: "WIKIDATA"
|
||||
has_or_had_description: "Entity data from Wikidata SPARQL query"
|
||||
source_url: "https://www.wikidata.org/wiki/Q12345"
|
||||
description: Wikidata data source
|
||||
109
schemas/20251121/linkml/modules/classes/DataTierLevel.yaml
Normal file
109
schemas/20251121/linkml/modules/classes/DataTierLevel.yaml
Normal file
|
|
@ -0,0 +1,109 @@
|
|||
id: https://nde.nl/ontology/hc/class/DataTierLevel
|
||||
name: data_tier_level_class
|
||||
title: DataTierLevel Class
|
||||
description: >-
|
||||
Data quality tier classification indicating the trustworthiness and
|
||||
verification status of heritage data.
|
||||
|
||||
The tier system reflects the provenance and verification level of information,
|
||||
from authoritative official registries to algorithmically inferred data.
|
||||
|
||||
prefixes:
|
||||
linkml: https://w3id.org/linkml/
|
||||
hc: https://nde.nl/ontology/hc/
|
||||
prov: http://www.w3.org/ns/prov#
|
||||
dqv: http://www.w3.org/ns/dqv#
|
||||
|
||||
imports:
|
||||
- linkml:types
|
||||
- ../slots/has_or_had_label
|
||||
- ../slots/has_or_had_description
|
||||
- ../slots/has_or_had_short_code
|
||||
|
||||
default_prefix: hc
|
||||
|
||||
classes:
|
||||
DataTierLevel:
|
||||
class_uri: hc:DataTierLevel
|
||||
description: >-
|
||||
Data quality tier level classification.
|
||||
|
||||
**Standard Tier Levels** (from most to least authoritative):
|
||||
|
||||
| Tier | Short Code | Description | Examples |
|
||||
|------|------------|-------------|----------|
|
||||
| Tier 1 | TIER_1_AUTHORITATIVE | Official registry data | NDE CSV, ISIL registry, government databases |
|
||||
| Tier 2 | TIER_2_VERIFIED | Verified external sources | Wikidata (verified), Google Maps, official websites |
|
||||
| Tier 3 | TIER_3_CROWD_SOURCED | Community-contributed data | Reviews, user edits, Wikipedia |
|
||||
| Tier 4 | TIER_4_INFERRED | Algorithmically extracted | Website scrape, LLM extraction, API inference |
|
||||
|
||||
**Usage Guidelines**:
|
||||
- Always prefer higher-tier data when available
|
||||
- TIER_4 data requires verification before promotion
|
||||
- Data can be promoted to higher tiers after verification
|
||||
- Track tier changes in provenance history
|
||||
|
||||
**PROV-O Alignment**: Maps to prov:qualifiedDerivation for data quality tracking.
|
||||
exact_mappings:
|
||||
- dqv:QualityMeasurement
|
||||
close_mappings:
|
||||
- prov:qualifiedDerivation
|
||||
slots:
|
||||
- has_or_had_label
|
||||
- has_or_had_short_code
|
||||
- has_or_had_description
|
||||
slot_usage:
|
||||
has_or_had_label:
|
||||
description: Human-readable name for the data tier.
|
||||
range: string
|
||||
required: true
|
||||
examples:
|
||||
- value: "Authoritative"
|
||||
description: Tier 1 - official registry data
|
||||
- value: "Inferred"
|
||||
description: Tier 4 - algorithmically extracted
|
||||
has_or_had_short_code:
|
||||
description: >-
|
||||
Short code identifier for the data tier.
|
||||
Standard codes: TIER_1_AUTHORITATIVE, TIER_2_VERIFIED,
|
||||
TIER_3_CROWD_SOURCED, TIER_4_INFERRED
|
||||
range: string
|
||||
required: true
|
||||
pattern: "^TIER_[1-4]_[A-Z_]+$"
|
||||
examples:
|
||||
- value: "TIER_1_AUTHORITATIVE"
|
||||
description: Official registry data
|
||||
- value: "TIER_4_INFERRED"
|
||||
description: Algorithmically extracted data
|
||||
has_or_had_description:
|
||||
description: Detailed description of what this tier means and its data sources.
|
||||
range: string
|
||||
required: false
|
||||
examples:
|
||||
- value: "Extracted from NDE CSV registry - authoritative Dutch heritage data"
|
||||
description: Tier 1 example
|
||||
- value: "Extracted via LLM from website - requires verification"
|
||||
description: Tier 4 example
|
||||
annotations:
|
||||
specificity_score: 0.35
|
||||
specificity_rationale: >-
|
||||
Data tier levels are broadly useful across all data provenance contexts.
|
||||
custodian_types: '["*"]'
|
||||
custodian_types_rationale: >-
|
||||
Data quality tiers apply universally to all custodian types.
|
||||
examples:
|
||||
- value:
|
||||
has_or_had_label: "Authoritative"
|
||||
has_or_had_short_code: "TIER_1_AUTHORITATIVE"
|
||||
has_or_had_description: "Official data from NDE registry CSV"
|
||||
description: Tier 1 authoritative data
|
||||
- value:
|
||||
has_or_had_label: "Verified"
|
||||
has_or_had_short_code: "TIER_2_VERIFIED"
|
||||
has_or_had_description: "Verified against institutional website"
|
||||
description: Tier 2 verified data
|
||||
- value:
|
||||
has_or_had_label: "Inferred"
|
||||
has_or_had_short_code: "TIER_4_INFERRED"
|
||||
has_or_had_description: "Extracted via Exa search - pending verification"
|
||||
description: Tier 4 inferred data
|
||||
|
|
@ -84,7 +84,8 @@ imports:
|
|||
- ../slots/content_block
|
||||
- ../slots/crawler_version
|
||||
- ../slots/custodian
|
||||
- ../slots/date_retrieved
|
||||
- ../slots/was_retrieved_at # was: date_retrieved - migrated per Rule 53/56/57 (2026-01-23)
|
||||
- ./Timestamp
|
||||
- ../slots/de
|
||||
- ../slots/ead_id
|
||||
- ../slots/en
|
||||
|
|
@ -887,7 +888,7 @@ classes:
|
|||
slots:
|
||||
- has_or_had_quantity # was: claims_count - migrated per Rule 53 (2026-01-19)
|
||||
- crawler_version
|
||||
- date_retrieved
|
||||
- was_retrieved_at # was: date_retrieved - migrated per Rule 53/56/57 (2026-01-23)
|
||||
- extraction_method
|
||||
- extraction_note
|
||||
- html_snapshot_path
|
||||
|
|
@ -899,9 +900,18 @@ classes:
|
|||
# REMOVED 2026-01-14: validation_status - migrated to has_or_had_status with ValidationStatus
|
||||
- has_or_had_status
|
||||
slot_usage:
|
||||
date_retrieved:
|
||||
range: date
|
||||
was_retrieved_at: # was: date_retrieved - migrated per Rule 53/56/57 (2026-01-23)
|
||||
range: Timestamp
|
||||
inlined: true
|
||||
required: true
|
||||
description: >-
|
||||
Timestamp when data was retrieved from the source.
|
||||
Uses Timestamp class for structured temporal data.
|
||||
examples:
|
||||
- value:
|
||||
has_or_had_timestamp: "2025-12-15T10:30:00Z"
|
||||
has_or_had_precision: second
|
||||
description: Full datetime retrieval timestamp
|
||||
retrieval_agent:
|
||||
required: true
|
||||
source_url:
|
||||
|
|
|
|||
|
|
@ -22,7 +22,8 @@ imports:
|
|||
- ./ProvenanceBlock
|
||||
- ../slots/has_assessment_date
|
||||
- ../slots/connections_text
|
||||
- ../slots/data_source_whatsapp
|
||||
- ../slots/has_or_had_source # was: data_source_whatsapp - migrated per Rule 53/56/57 (2026-01-23)
|
||||
- ./DataSource
|
||||
- ../slots/digital_confidence
|
||||
- ../slots/digital_indicator
|
||||
- ../slots/digital_professional
|
||||
|
|
@ -342,7 +343,7 @@ classes:
|
|||
'
|
||||
slots:
|
||||
- has_or_had_provenance
|
||||
- data_source_whatsapp
|
||||
- has_or_had_source # was: data_source_whatsapp - migrated per Rule 53/56/57 (2026-01-23)
|
||||
- enriched_date
|
||||
- enrichment_method_whatsapp
|
||||
- no_fabrication
|
||||
|
|
@ -355,10 +356,18 @@ classes:
|
|||
range: string
|
||||
examples:
|
||||
- value: linkedin_profile_analysis
|
||||
data_source_whatsapp:
|
||||
range: string
|
||||
has_or_had_source: # was: data_source_whatsapp - migrated per Rule 53/56/57 (2026-01-23)
|
||||
range: DataSource
|
||||
inlined: true
|
||||
description: >-
|
||||
Source of data for this enrichment.
|
||||
Replaces data_source_whatsapp string with structured DataSource class.
|
||||
examples:
|
||||
- value: public_linkedin_profile
|
||||
- value:
|
||||
has_or_had_label: LinkedIn Profile
|
||||
has_or_had_short_code: LINKEDIN
|
||||
has_or_had_description: Public LinkedIn profile data
|
||||
description: LinkedIn as data source
|
||||
no_fabrication:
|
||||
range: boolean
|
||||
has_or_had_provenance:
|
||||
|
|
|
|||
|
|
@ -44,7 +44,8 @@ imports:
|
|||
# ARCHIVED: ../slots/valid_to - use temporal_extent instead
|
||||
- ../slots/temporal_extent # was: valid_from + valid_to
|
||||
- ../slots/source_url
|
||||
- ../slots/date_retrieved
|
||||
- ../slots/was_retrieved_at # was: date_retrieved - migrated per Rule 53/56/57 (2026-01-23)
|
||||
- ./Timestamp
|
||||
- ../slots/specificity_annotation
|
||||
- ../slots/has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17)
|
||||
- ./WebLink
|
||||
|
|
@ -91,7 +92,9 @@ classes:
|
|||
title: "Family History Research Links"
|
||||
description: "All links from the family history finding aid page"
|
||||
source_url: https://www.nationaalarchief.nl/onderzoeken/zoekhulpen/familiegeschiedenis
|
||||
date_retrieved: "2025-01-14"
|
||||
was_retrieved_at:
|
||||
has_or_had_timestamp: "2025-01-14"
|
||||
has_or_had_precision: day
|
||||
includes_or_included:
|
||||
- id: hc:link/civil-registry
|
||||
url: https://example.org/civil-registry
|
||||
|
|
@ -115,7 +118,7 @@ classes:
|
|||
- description
|
||||
- includes_or_included
|
||||
- source_url
|
||||
- date_retrieved
|
||||
- was_retrieved_at # was: date_retrieved - migrated per Rule 53/56/57 (2026-01-23)
|
||||
- link_count
|
||||
- temporal_extent # was: valid_from + valid_to
|
||||
- specificity_annotation
|
||||
|
|
@ -148,10 +151,17 @@ classes:
|
|||
range: uri
|
||||
description: >-
|
||||
The URL of the page from which links were extracted.
|
||||
date_retrieved:
|
||||
range: date
|
||||
was_retrieved_at: # was: date_retrieved - migrated per Rule 53/56/57 (2026-01-23)
|
||||
range: Timestamp
|
||||
inlined: true
|
||||
description: >-
|
||||
Date when the overview was extracted or compiled.
|
||||
Timestamp when the overview was extracted or compiled.
|
||||
Uses Timestamp class for structured temporal data.
|
||||
examples:
|
||||
- value:
|
||||
has_or_had_timestamp: "2025-01-14"
|
||||
has_or_had_precision: day
|
||||
description: Day-precision retrieval date
|
||||
link_count:
|
||||
range: integer
|
||||
description: >-
|
||||
|
|
@ -183,7 +193,9 @@ classes:
|
|||
title: "Family History Research Links"
|
||||
description: "Comprehensive collection of links from the family history finding aid"
|
||||
source_url: https://www.nationaalarchief.nl/onderzoeken/zoekhulpen/familiegeschiedenis
|
||||
date_retrieved: "2025-01-14"
|
||||
was_retrieved_at: # was: date_retrieved
|
||||
has_or_had_timestamp: "2025-01-14"
|
||||
has_or_had_precision: day
|
||||
link_count: 15
|
||||
description: Overview of links from a finding aid page
|
||||
|
||||
|
|
|
|||
|
|
@ -15,4 +15,5 @@ slots:
|
|||
Breakdown of heritage-relevant connections by type code.
|
||||
Keys are single-letter GLAMORCUBESFIXPHDNT codes.
|
||||
slot_uri: hc:connectionsByHeritageType
|
||||
range: string
|
||||
multivalued: true
|
||||
|
|
|
|||
|
|
@ -28,3 +28,5 @@ slots:
|
|||
|
||||
'
|
||||
slot_uri: prov:wasDerivedFrom
|
||||
range: uriorcurie
|
||||
multivalued: true
|
||||
|
|
|
|||
|
|
@ -179,8 +179,8 @@
|
|||
"data_license_policy.yaml",
|
||||
"data_repository.yaml",
|
||||
"__ARCHIVED_20260123__data_sensitivity.yaml",
|
||||
"data_source_whatsapp.yaml",
|
||||
"data_tier.yaml",
|
||||
"__ARCHIVED_20260123__data_source_whatsapp.yaml",
|
||||
"__ARCHIVED_20260123__data_tier.yaml",
|
||||
"__ARCHIVED_20260122__dataset_description.yaml",
|
||||
"__ARCHIVED_20260122__dataset_identifier.yaml",
|
||||
"__ARCHIVED_20260122__dataset_title.yaml",
|
||||
|
|
@ -190,8 +190,8 @@
|
|||
"date_of_death.yaml",
|
||||
"date_of_publication.yaml",
|
||||
"date_precision.yaml",
|
||||
"date_retrieved.yaml",
|
||||
"de.yaml",
|
||||
"__ARCHIVED_20260123__date_retrieved.yaml",
|
||||
"__ARCHIVED_20260123__de.yaml",
|
||||
"dealer_name.yaml",
|
||||
"death_place.yaml",
|
||||
"deceased.yaml",
|
||||
|
|
@ -1906,6 +1906,7 @@
|
|||
"was_fetched_at.yaml",
|
||||
"was_generated_by.yaml",
|
||||
"was_last_updated_at.yaml",
|
||||
"was_retrieved_at.yaml",
|
||||
"wikidata_entity.yaml",
|
||||
"wikidata_equivalent.yaml",
|
||||
"wikidata_id.yaml"
|
||||
|
|
|
|||
|
|
@ -16,3 +16,4 @@ slots:
|
|||
Aggregated statistics about a connection network.
|
||||
Contains summary metrics like total count, heritage-relevant percentage, etc.
|
||||
slot_uri: schema:mainEntity
|
||||
range: string
|
||||
|
|
|
|||
|
|
@ -22,3 +22,4 @@ slots:
|
|||
|
||||
'
|
||||
slot_uri: dcterms:references
|
||||
range: uriorcurie
|
||||
|
|
|
|||
|
|
@ -11513,12 +11513,53 @@ fixes:
|
|||
type: slot
|
||||
- label: DataSource
|
||||
type: class
|
||||
processed:
|
||||
status: true
|
||||
date: '2026-01-23'
|
||||
agent: claude-claude-sonnet-4-20250514
|
||||
notes: |
|
||||
**Migration: data_source_whatsapp** ✅ COMPLETE
|
||||
|
||||
**Pattern**: data_source_whatsapp → has_or_had_source + DataSource
|
||||
|
||||
**Files Created**:
|
||||
- DataSource.yaml: Structured class for data sources with support for
|
||||
various source types (WHATSAPP, LINKEDIN, WEB_SCRAPE, API, WIKIDATA, etc.)
|
||||
|
||||
**Files Modified**:
|
||||
- LinkedInProfile.yaml: Replaced data_source_whatsapp import and slot with
|
||||
has_or_had_source + DataSource, updated slot_usage
|
||||
|
||||
**Archived**: modules/slots/archive/data_source_whatsapp_archived_20260123.yaml
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/data_tier
|
||||
revision:
|
||||
- label: has_or_had_level
|
||||
type: slot
|
||||
- label: DataTierLevel
|
||||
type: class
|
||||
processed:
|
||||
status: true
|
||||
date: '2026-01-23'
|
||||
agent: claude-claude-sonnet-4-20250514
|
||||
notes: |
|
||||
**Migration: data_tier** ✅ COMPLETE
|
||||
|
||||
**Pattern**: data_tier → has_or_had_level + DataTierLevel
|
||||
|
||||
**Files Created**:
|
||||
- DataTierLevel.yaml: Structured class for data quality tier classification
|
||||
with standard codes (TIER_1_AUTHORITATIVE, TIER_2_VERIFIED,
|
||||
TIER_3_CROWD_SOURCED, TIER_4_INFERRED)
|
||||
|
||||
**Files Modified**:
|
||||
- CustodianTimelineEvent.yaml: Replaced data_tier import and slot with
|
||||
has_or_had_level + DataTierLevel, updated slot_usage, description, and
|
||||
all examples (5 examples updated)
|
||||
|
||||
**Note**: Other files (ProvenanceBlock, SourceRecord, etc.) use DataTierEnum
|
||||
directly in slot_usage without importing data_tier slot - not affected.
|
||||
|
||||
**Archived**: modules/slots/archive/data_tier_archived_20260123.yaml
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/dataset_description
|
||||
revision:
|
||||
- label: has_or_had_description
|
||||
|
|
@ -11586,7 +11627,20 @@ fixes:
|
|||
type: slot
|
||||
- label: TimeSpan
|
||||
type: class
|
||||
|
||||
processed:
|
||||
status: true
|
||||
date: '2026-01-23'
|
||||
agent: claude-claude-sonnet-4-20250514
|
||||
notes: |
|
||||
**Migration: date_value** ✅ COMPLETE (SLOT NOT FOUND)
|
||||
|
||||
**Status**: The date_value slot does not exist in the schema and is not
|
||||
used by any class. It was either previously removed or never created.
|
||||
|
||||
**Target Pattern**: temporal_extent + TimeSpan (both already exist)
|
||||
|
||||
**No action needed** - marking as processed since the migration target
|
||||
is already available for any future use cases.
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/date_created
|
||||
revision:
|
||||
- label: is_or_was_created_through
|
||||
|
|
@ -11643,6 +11697,26 @@ fixes:
|
|||
type: slot
|
||||
- label: Timestamp
|
||||
type: class
|
||||
processed:
|
||||
status: true
|
||||
date: '2026-01-23'
|
||||
agent: claude-claude-sonnet-4-20250514
|
||||
notes: |
|
||||
**Migration: date_retrieved** ✅ COMPLETE
|
||||
|
||||
**Pattern**: date_retrieved → was_retrieved_at + Timestamp
|
||||
|
||||
**Files Created**:
|
||||
- was_retrieved_at.yaml: New slot for data retrieval timestamps using
|
||||
RiC-O temporal naming convention
|
||||
|
||||
**Files Modified**:
|
||||
- FindingAid.yaml: Replaced date_retrieved import and slot with
|
||||
was_retrieved_at + Timestamp, updated slot_usage
|
||||
- Overview.yaml: Replaced date_retrieved import and slot with
|
||||
was_retrieved_at + Timestamp, updated slot_usage and examples
|
||||
|
||||
**Archived**: modules/slots/archive/date_retrieved_archived_20260123.yaml
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/de
|
||||
revision:
|
||||
- label: has_or_had_language
|
||||
|
|
@ -11650,6 +11724,19 @@ fixes:
|
|||
- label: Language
|
||||
type: class
|
||||
value: de
|
||||
processed:
|
||||
status: true
|
||||
date: '2026-01-23'
|
||||
agent: claude-claude-sonnet-4-20250514
|
||||
notes: |
|
||||
**Migration: de** ✅ COMPLETE (SLOT NOT USED)
|
||||
|
||||
**Status**: The de slot (German language text) was not used by any class.
|
||||
Legacy language-specific slot that predates the has_or_had_language + Language pattern.
|
||||
|
||||
**Target Pattern**: has_or_had_language + Language (both already exist)
|
||||
|
||||
**Archived**: modules/slots/archive/de_archived_20260123.yaml
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/dealer_name
|
||||
revision:
|
||||
- label: is_or_was_associated_with
|
||||
|
|
|
|||
41
schemas/20251121/linkml/modules/slots/was_retrieved_at.yaml
Normal file
41
schemas/20251121/linkml/modules/slots/was_retrieved_at.yaml
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
id: https://nde.nl/ontology/hc/slot/was_retrieved_at
|
||||
name: was_retrieved_at_slot
|
||||
title: Was Retrieved At Slot
|
||||
description: >-
|
||||
Timestamp indicating when data was retrieved from a source.
|
||||
|
||||
Follows RiC-O temporal naming convention (Rule 39) using past tense
|
||||
to indicate the retrieval event has already occurred.
|
||||
|
||||
prefixes:
|
||||
linkml: https://w3id.org/linkml/
|
||||
hc: https://nde.nl/ontology/hc/
|
||||
prov: http://www.w3.org/ns/prov#
|
||||
schema: http://schema.org/
|
||||
|
||||
imports:
|
||||
- linkml:types
|
||||
|
||||
default_prefix: hc
|
||||
|
||||
slots:
|
||||
was_retrieved_at:
|
||||
description: >-
|
||||
Timestamp indicating when data was retrieved from a source.
|
||||
|
||||
Used for tracking when web scrapes, API calls, or other data
|
||||
retrieval operations occurred.
|
||||
slot_uri: prov:endedAtTime
|
||||
range: Timestamp
|
||||
exact_mappings:
|
||||
- prov:endedAtTime
|
||||
close_mappings:
|
||||
- schema:dateModified
|
||||
annotations:
|
||||
specificity_score: 0.25
|
||||
specificity_rationale: >-
|
||||
Retrieval timestamps are broadly useful for provenance tracking
|
||||
across all data sources.
|
||||
custodian_types: '["*"]'
|
||||
custodian_types_rationale: >-
|
||||
Data retrieval applies universally to all custodian types.
|
||||
Loading…
Reference in a new issue