Compare commits

...

15 commits

Author SHA1 Message Date
kempersc
043ea868b5 fix(schema): Resolve broken imports after slot migration
All checks were successful
Deploy Frontend / build-and-deploy (push) Successful in 4m31s
- Fix empty import list elements (- # comment pattern) in Laptop, Expenses,
  FunctionType, Overview, WebLink, Photography classes
- Replace valid_from/valid_to slots with temporal_extent in class slots lists
- Update slot_usage to use temporal_extent with TimeSpan range
- Update examples to use temporal_extent with begin_of_the_begin/end_of_the_end
- Fix typo is_or_was_is_or_was_archived_at → is_or_was_archived_at in WebObservation
- Add TimeSpan imports to classes using temporal_extent
- Fix relative import paths for Timestamp in temporal slots
- Fix CustodianIdentifier → Identifier imports in FundingAgenda, ReadingRoomAnnex

Schema validates successfully with 902 classes and 2043 slots.
2026-01-15 12:25:27 +01:00
kempersc
916f8e7247 feat: Update generated timestamp in manifest.json 2026-01-15 11:43:12 +01:00
kempersc
6c3fa6b5a3 Remove deprecated slots and add new slot definitions for enhanced data modeling
- Deleted obsolete slot definitions for work_location and workshop_space.
- Introduced new TaxonName class to represent scientific taxonomic names with detailed attributes.
- Archived existing slots related to surname_prefix, target_name, taxon_name, terminal_count, text_region_count, title, title_proper, total_chapter, total_characters_extracted, total_connections_extracted, track_name, transcript_format, traveling_venue, type_label, type_status, typical_responsibility, unesco_domain, unesco_inscription_year, unesco_list_status, uniform_title, unit_name, used_by_custodian, uv_filtered_required, valid_from_geo, valid_to_geo, validation_status, variant_of_name, verification_date, viability_status, within_auxiliary_place, and within_place.
- Updated slot descriptions and structures to improve clarity and compliance with standards.
2026-01-15 11:42:35 +01:00
kempersc
d5d970b513 Remove deprecated slot definitions and add archived versions for future reference
- Deleted the following slot definitions:
  - wikidata_class_slot
  - wikidata_entity_label_slot
  - wikidata_mapping_rationale_slot
  - word_count_slot

- Added archived versions of the deleted slots to preserve historical data:
  - wikidata_class_archived_20260114.yaml
  - wikidata_entity_label_archived_20260114.yaml
  - wikidata_mapping_rationale_archived_20260114.yaml
  - word_count_archived_20260114.yaml

- Introduced a new hook `usePersonSearch` for enhanced semantic search functionality in the frontend, supporting debounced queries and caching.
2026-01-14 22:57:09 +01:00
kempersc
1389b744f1 feat: Update manifest timestamp and archive multiple slot definitions for compliance 2026-01-14 22:38:50 +01:00
kempersc
ad5fbe82cf Migrate valid_from and valid_to slots to temporal_extent across multiple classes
- Consolidated valid_from and valid_to slots into a single temporal_extent slot in FundingRequirement, GiftShop, OrganizationBranch, OrganizationalChangeEvent, OrganizationalStructure, SocialMediaProfile, Storage, StorageUnit classes.
- Updated slot definitions to use TimeSpan for temporal_extent, providing structured validity periods.
- Removed deprecated slots: valid_from, valid_to, verified_by, wikidata_entity_id, and worldcat_id, archiving their definitions for reference.
- Adjusted related documentation and examples to reflect the new temporal_extent structure.
2026-01-14 22:33:36 +01:00
kempersc
44f8621eba refactor: consolidate valid_from and valid_to into temporal_extent per Rule 53 in ArticlesOfAssociation, AuxiliaryDigitalPlatform, and AuxiliaryPlace schemas 2026-01-14 22:21:12 +01:00
kempersc
58940582c3 Refactor warehouse and video slots: Migrate and archive multiple slots including warehouse_security_level, warehouse_name, and video_id. Introduce UnitIdentifier class to replace unit_id and unit_identifier slots. Update consuming classes and document migration details. Archive obsolete slot definitions for track_id, tracking_ids_assigned, vendor_name, and others. Ensure compliance with migration rules and maintain historical records in the archive. 2026-01-14 22:20:44 +01:00
kempersc
13252cc5b7 fix(manifest): update generated timestamp and add new slot revisions for enhanced data modeling 2026-01-14 20:52:30 +01:00
kempersc
d3d5c5cdde feat: Update manifest and refactor EnvironmentalZone schema with new slot mappings and archived slots
- Updated generated timestamp in manifest.json
- Refactored EnvironmentalZone.yaml to replace zone_name and zone_description with has_or_had_label and has_or_had_description respectively
- Archived previous slots zone_name, zone_id, and zone_description with detailed migration notes
- Introduced new classes for ApprovalTimeType, ApprovalTimeTypes, ISO639-3Identifier, Investment, InvestmentArea, Language, Liability, NetAsset, ResourceType, ResponseFormat, ResponseFormatType, Token, TrackIdentifier, TraditionalProductType, TranscriptFormat, TypeStatus, UNESCODomain, UNESCODomainType, VenueTypes, and VideoFrames with appropriate attributes and slots
- Added subclasses for ApprovalTimeTypes, ResponseFormatTypes, TraditionalProductTypes, and UNESCODomainTypes
2026-01-14 20:40:08 +01:00
kempersc
bf7515c48f feat: Add new classes for Domain, HTTPMethod, HTTPMethodType, MetadataStandard, MetadataStandardType, Responsibility, ResponsibilityType, TechnicalFeatureTypes with associated attributes and types 2026-01-14 20:33:59 +01:00
kempersc
8123efe849 feat: Add new classes for HTTPMethod, MetadataStandard, Responsibility, and TechnicalFeature with associated attributes and types 2026-01-14 20:33:28 +01:00
kempersc
7a72a1d096 Add new classes and slots for enhanced data modeling
- Introduced VerificationStatus, Verifier, VersionNumber, ViabilityStatus, VideoCategoryIdentifier, VideoIdentifier, WhatsAppProfile, WordCount, WorkRevision, and WorldCatIdentifier classes to capture various aspects of data verification, categorization, and identification.
- Created corresponding slots such as analyzes_or_analyzed, unit_type, years_restricted, benefits_provided, consumes_or_consumed, has_or_had_contact_details, has_or_had_investment, has_or_had_liability, has_or_had_likelihood_score, has_or_had_location, has_or_had_net_asset, is_or_was_affiliated_with, is_or_was_allocated_to, is_or_was_alternative_form_of, is_or_was_categorized_as, is_or_was_used_by, and was_last_updated_at to facilitate detailed tracking and categorization of entities and their attributes.
- Each class and slot includes detailed descriptions, usage examples, and mappings to relevant ontologies to ensure interoperability and clarity in data representation.
2026-01-14 20:32:45 +01:00
kempersc
86f7f4cf44 fix(manifest): update generated timestamp and adjust total file counts 2026-01-14 20:32:02 +01:00
kempersc
1f04a26b12 feat: Introduce MeasureUnitEnum for standardized measurement units
- Added MeasureUnitEnum.yaml to define standard measurement units for area, length, and related quantities, compliant with ISO 80000-1, QUDT, and UCUM.
- Included units such as square meters, hectares, acres, meters, kilometers, and their conversions.

feat: Create applies_or_applied_to_call slot for funding requirements

- Introduced applies_or_applied_to_call.yaml to track funding calls related to requirements, following RiC-O naming conventions.

chore: Archive annual_participants slot and migrate to has_or_had_annual_participant_count

- Archived annual_participants_archived_20260115.yaml, replaced with has_or_had_annual_participant_count for better temporal naming.

chore: Archive applies_to_call slot and migrate to applies_or_applied_to_call

- Archived applies_to_call_archived_20260115.yaml, replaced with applies_or_applied_to_call for improved naming consistency.

chore: Archive area_hectares slot and migrate to has_area_in_hectare

- Archived area_hectares_archived_20260115.yaml, replaced with has_area_in_hectare for standardized area measurement.

chore: Archive arrangement_notes slot and migrate to has_arrangement_note

- Archived arrangement_notes_archived_20260115.yaml, replaced with has_arrangement_note for better naming alignment.

chore: Archive available_caption_languages slot and migrate to has_available_caption_language

- Archived available_caption_languages_archived_20260115.yaml, replaced with has_available_caption_language for improved naming.

chore: Archive beneficiary_group slot and migrate to has_or_had_beneficiary

- Archived beneficiary_group_archived_20260115.yaml, replaced with has_or_had_beneficiary for compliance with naming conventions.

chore: Archive branch_head slot and migrate to has_or_had_head

- Archived branch_head_archived_20260114.yaml, replaced with has_or_had_head for better semantic alignment.

chore: Archive budget_currency slot

- Archived budget_currency_archived_20260114.yaml for future migration.

chore: Archive building_floor_area_sqm slot and migrate to has_or_had_area

- Archived building_floor_area_sqm_archived_20260115.yaml, replaced with has_or_had_area for standardized area measurement.

chore: Archive has_area_in_hectare slot and migrate to has_or_had_area

- Archived has_area_in_hectare_archived_20260115.yaml, replaced with has_or_had_area for compliance with generic predicates.

feat: Introduce has_or_had_area slot for area measurements

- Added has_or_had_area.yaml as the authoritative slot for area measurements, compliant with Rule 53.

feat: Introduce has_or_had_beneficiary slot for beneficiary tracking

- Added has_or_had_beneficiary.yaml to identify beneficiaries of organizational programs, following RiC-O naming conventions.

feat: Introduce has_or_had_currency slot for monetary values

- Added has_or_had_currency.yaml to track currency associated with monetary amounts, compliant with ISO 4217.

feat: Introduce has_or_had_head slot for organizational heads

- Added has_or_had_head.yaml to link organizational units with their heads, following W3C ORG standards.
2026-01-14 20:18:38 +01:00
426 changed files with 25273 additions and 3444 deletions

View file

@ -0,0 +1,106 @@
{
"ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_ADRIENNE-QUARLES-VAN-UFFORD-0e6ccb66",
"ppid_type": "ID",
"ppid_components": {
"type": "ID",
"first_location": "XX-XX-XXX",
"first_date": "XXXX",
"last_location": "XX-XX-XXX",
"last_date": "XXXX",
"name_tokens": [
"ADRIENNE",
"QUARLES",
"VAN",
"UFFORD"
],
"collision_uuid": "0e6ccb66"
},
"name": "Adrienne Quarles van Ufford",
"birth_date": {
"edtf": "XXXX",
"precision": "unknown",
"note": "Not available from WCMS"
},
"is_living": true,
"is_anonymous": false,
"wcms_identifiers": {
"user_id": "260797",
"username": "Adrienne Quarl…",
"username_url": "/user/260797",
"abs_id": "110.1043861",
"crm_id": "9c9b8f20-e42d-ed11-8150-86d2a7f8feb5"
},
"contact_details": {
"email": "aquarlesvanufford@panorama-mesdag.nl",
"email_domain": "panorama-mesdag.nl"
},
"wcms_activity": {
"status": "Active",
"roles": [],
"registered_since": "di 06-09-2022 - 15:02",
"last_access": "3 jaar 3 maanden ago",
"operations": [
{
"text": "Bewerken",
"url": "/user/260797/edit?destination=/admin/people%3Fpage%3D2741"
},
{
"text": "Rollen",
"url": "/user/260797/roles?destination=/admin/people%3Fpage%3D2741"
}
]
},
"entity_resolution": {
"potential_linkedin_matches": 1,
"match_candidates": [
{
"linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_ADRIENNE-UFFORD",
"linkedin_name": "Adrienne Quarles van Ufford",
"linkedin_slug": "adrienne-quarles-van-ufford-2b472696",
"confidence_score": 0.6,
"match_signals": [
"exact_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
}
],
"requires_manual_review": true,
"auto_merged": false,
"reviewed": false,
"review_notes": null,
"annotation_date": "2026-01-12T10:17:25.191204+00:00",
"annotation_script": "annotate_match_candidates.py"
},
"profile_classification": {
"primary_classification": "human",
"confidence": 0.95,
"indicators": [
{
"type": "wcms_user",
"reason": "Registered user in heritage CMS system"
}
],
"reasoning": "WCMS user profile - registered heritage sector CMS user"
},
"data_sources": [
"wcms"
],
"extraction_metadata": {
"extraction_agent": "migrate_wcms_users.py",
"extraction_date": "2026-01-11T17:49:23.287545+00:00",
"source_file": "users/user_260797.json",
"source_system": "WCMS",
"schema_version": "1.0.0"
},
"migration_metadata": {
"original_wcms_file": "users/user_260797.json",
"original_user_id": "260797",
"migrated_at": "2026-01-11T17:49:23.287562+00:00",
"migration_script": "migrate_wcms_users.py",
"migration_version": "1.0"
}
}

View file

@ -0,0 +1,142 @@
{
"ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_ALEXANDER-BURGER-0b5ec02d",
"ppid_type": "ID",
"ppid_components": {
"type": "ID",
"first_location": "XX-XX-XXX",
"first_date": "XXXX",
"last_location": "XX-XX-XXX",
"last_date": "XXXX",
"name_tokens": [
"ALEXANDER",
"BURGER"
],
"collision_uuid": "0b5ec02d"
},
"name": "Alexander Burger",
"birth_date": {
"edtf": "XXXX",
"precision": "unknown",
"note": "Not available from WCMS"
},
"is_living": true,
"is_anonymous": false,
"wcms_identifiers": {
"user_id": "266212",
"username": "AlexanderBurger",
"username_url": "/user/266212",
"abs_id": "110.1050277",
"crm_id": "f51e056b-0c86-ed11-8153-89b6996108b3"
},
"contact_details": {
"email": "burger.alexander1999@gmail.com",
"email_domain": "gmail.com"
},
"wcms_activity": {
"status": "Active",
"roles": [],
"registered_since": "di 27-12-2022 - 18:32",
"last_access": "3 jaar ago",
"operations": [
{
"text": "Bewerken",
"url": "/user/266212/edit?destination=/admin/people%3Fpage%3D2634"
},
{
"text": "Rollen",
"url": "/user/266212/roles?destination=/admin/people%3Fpage%3D2634"
}
]
},
"entity_resolution": {
"potential_linkedin_matches": 3,
"wikipedia_url": null,
"match_candidates": [
{
"linkedin_ppid": "ID_NL-OV-NED_199X_NL-FR-LEE_XXXX_ALEXANDER-BURGER",
"linkedin_name": {
"full_name": "Alexander Burger",
"display_name": "Alexander Burger",
"name_romanized": null,
"name_tokens": [
"ALEXANDER",
"BURGER"
],
"source": "linkedin_profile"
},
"linkedin_slug": "burgeralexander",
"confidence_score": 0.6,
"match_signals": [
"exact_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
},
{
"linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_ALEXANDER-BURGER",
"linkedin_name": "Alexander Burger",
"linkedin_slug": "burgeralexander",
"confidence_score": 0.6,
"match_signals": [
"exact_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
},
{
"linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_AUDREY-BURGER",
"linkedin_name": "Audrey Burger",
"linkedin_slug": "audreyburger",
"confidence_score": 0.51,
"match_signals": [
"strong_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
}
],
"requires_manual_review": true,
"auto_merged": false,
"reviewed": false,
"review_notes": null,
"annotation_date": "2026-01-12T10:17:26.916578+00:00",
"annotation_script": "annotate_match_candidates.py"
},
"profile_classification": {
"primary_classification": "human",
"confidence": 0.95,
"indicators": [
{
"type": "wcms_user",
"reason": "Registered user in heritage CMS system"
}
],
"reasoning": "WCMS user profile - registered heritage sector CMS user"
},
"data_sources": [
"wcms"
],
"extraction_metadata": {
"extraction_agent": "migrate_wcms_resume.py",
"extraction_date": "2026-01-11T20:44:55.052588+00:00",
"source_file": "users/user_266212.json",
"source_system": "WCMS",
"schema_version": "1.0.0"
},
"migration_metadata": {
"original_wcms_file": "users/user_266212.json",
"original_user_id": "266212",
"migrated_at": "2026-01-11T20:44:55.052612+00:00",
"migration_script": "migrate_wcms_resume.py",
"migration_version": "2.0"
}
}

View file

@ -0,0 +1,104 @@
{
"ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_ANGELA-DELLEBEKE-1c53d367",
"ppid_type": "ID",
"ppid_components": {
"type": "ID",
"first_location": "XX-XX-XXX",
"first_date": "XXXX",
"last_location": "XX-XX-XXX",
"last_date": "XXXX",
"name_tokens": [
"ANGELA",
"DELLEBEKE"
],
"collision_uuid": "1c53d367"
},
"name": "angela dellebeke",
"birth_date": {
"edtf": "XXXX",
"precision": "unknown",
"note": "Not available from WCMS"
},
"is_living": true,
"is_anonymous": false,
"wcms_identifiers": {
"user_id": "244491",
"username": "angela dellebeke",
"username_url": "/user/244491",
"abs_id": "110.1024712",
"crm_id": "c6e5fccb-2320-ec11-8144-9cfa3c64c165"
},
"contact_details": {
"email": "angela.dellebeke@nationaalarchief.nl",
"email_domain": "nationaalarchief.nl"
},
"wcms_activity": {
"status": "Active",
"roles": [],
"registered_since": "di 28-09-2021 - 08:17",
"last_access": "9 maanden 2 weken ago",
"operations": [
{
"text": "Bewerken",
"url": "/user/244491/edit?destination=/admin/people%3Fpage%3D3058"
},
{
"text": "Rollen",
"url": "/user/244491/roles?destination=/admin/people%3Fpage%3D3058"
}
]
},
"entity_resolution": {
"potential_linkedin_matches": 1,
"match_candidates": [
{
"linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_ANGELA-DELLEBEKE",
"linkedin_name": "angela dellebeke",
"linkedin_slug": "angela-dellebeke-87289018",
"confidence_score": 0.6,
"match_signals": [
"exact_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
}
],
"requires_manual_review": true,
"auto_merged": false,
"reviewed": false,
"review_notes": null,
"annotation_date": "2026-01-12T10:17:26.042034+00:00",
"annotation_script": "annotate_match_candidates.py"
},
"profile_classification": {
"primary_classification": "human",
"confidence": 0.95,
"indicators": [
{
"type": "wcms_user",
"reason": "Registered user in heritage CMS system"
}
],
"reasoning": "WCMS user profile - registered heritage sector CMS user"
},
"data_sources": [
"wcms"
],
"extraction_metadata": {
"extraction_agent": "migrate_wcms_users.py",
"extraction_date": "2026-01-11T17:41:20.390645+00:00",
"source_file": "users/user_244491.json",
"source_system": "WCMS",
"schema_version": "1.0.0"
},
"migration_metadata": {
"original_wcms_file": "users/user_244491.json",
"original_user_id": "244491",
"migrated_at": "2026-01-11T17:41:20.390656+00:00",
"migration_script": "migrate_wcms_users.py",
"migration_version": "1.0"
}
}

View file

@ -0,0 +1,104 @@
{
"ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_ANITA-BLOM-78cc3a46",
"ppid_type": "ID",
"ppid_components": {
"type": "ID",
"first_location": "XX-XX-XXX",
"first_date": "XXXX",
"last_location": "XX-XX-XXX",
"last_date": "XXXX",
"name_tokens": [
"ANITA",
"BLOM"
],
"collision_uuid": "78cc3a46"
},
"name": "Anita Blom",
"birth_date": {
"edtf": "XXXX",
"precision": "unknown",
"note": "Not available from WCMS"
},
"is_living": true,
"is_anonymous": false,
"wcms_identifiers": {
"user_id": "160302",
"username": "anitablom",
"username_url": "/user/160302",
"abs_id": "110.302038",
"crm_id": "65C510F9-A67A-E211-B615-005056930016"
},
"contact_details": {
"email": "a.blom@cultureelerfgoed.nl",
"email_domain": "cultureelerfgoed.nl"
},
"wcms_activity": {
"status": "Active",
"roles": [],
"registered_since": "di 19-02-2013 - 16:13",
"last_access": "12 jaar 10 maanden ago",
"operations": [
{
"text": "Bewerken",
"url": "/en/user/160302/edit?destination=/admin/people%3Fpage%3D4462"
},
{
"text": "Rollen",
"url": "/user/160302/roles?destination=/admin/people%3Fpage%3D4462"
}
]
},
"entity_resolution": {
"potential_linkedin_matches": 1,
"match_candidates": [
{
"linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_ANITA-BLOM",
"linkedin_name": "Anita Blom",
"linkedin_slug": "anita-blom-5b357919",
"confidence_score": 0.6,
"match_signals": [
"exact_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
}
],
"requires_manual_review": true,
"auto_merged": false,
"reviewed": false,
"review_notes": null,
"annotation_date": "2026-01-12T10:17:25.231499+00:00",
"annotation_script": "annotate_match_candidates.py"
},
"profile_classification": {
"primary_classification": "human",
"confidence": 0.95,
"indicators": [
{
"type": "wcms_user",
"reason": "Registered user in heritage CMS system"
}
],
"reasoning": "WCMS user profile - registered heritage sector CMS user"
},
"data_sources": [
"wcms"
],
"extraction_metadata": {
"extraction_agent": "migrate_wcms_users.py",
"extraction_date": "2026-01-11T17:07:34.662724+00:00",
"source_file": "users/user_160302.json",
"source_system": "WCMS",
"schema_version": "1.0.0"
},
"migration_metadata": {
"original_wcms_file": "users/user_160302.json",
"original_user_id": "160302",
"migrated_at": "2026-01-11T17:07:34.662728+00:00",
"migration_script": "migrate_wcms_users.py",
"migration_version": "1.0"
}
}

View file

@ -0,0 +1,105 @@
{
"ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_ANNA-TIEDINK-46541128",
"ppid_type": "ID",
"ppid_components": {
"type": "ID",
"first_location": "XX-XX-XXX",
"first_date": "XXXX",
"last_location": "XX-XX-XXX",
"last_date": "XXXX",
"name_tokens": [
"ANNA",
"TIEDINK"
],
"collision_uuid": "46541128"
},
"name": "anna tiedink",
"birth_date": {
"edtf": "XXXX",
"precision": "unknown",
"note": "Not available from WCMS"
},
"is_living": true,
"is_anonymous": false,
"wcms_identifiers": {
"user_id": "284991",
"username": "annatiedink@gm…",
"username_url": "/user/284991",
"abs_id": "110.1070468",
"crm_id": "cb4e946f-4867-ee11-816b-d7add8f6d140"
},
"contact_details": {
"email": "annatiedink@gmail.com",
"email_domain": "gmail.com"
},
"wcms_activity": {
"status": "Active",
"roles": [],
"registered_since": "di 10-10-2023 - 10:38",
"last_access": "2 jaar 2 maanden ago",
"operations": [
{
"text": "Bewerken",
"url": "/user/284991/edit?destination=/admin/people%3Fpage%3D2265"
},
{
"text": "Rollen",
"url": "/user/284991/roles?destination=/admin/people%3Fpage%3D2265"
}
]
},
"entity_resolution": {
"potential_linkedin_matches": 1,
"wikipedia_url": null,
"match_candidates": [
{
"linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_ANNA-TIEDINK",
"linkedin_name": "Anna Tiedink",
"linkedin_slug": "annatiedink",
"confidence_score": 0.6,
"match_signals": [
"exact_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
}
],
"requires_manual_review": true,
"auto_merged": false,
"reviewed": false,
"review_notes": null,
"annotation_date": "2026-01-12T10:17:25.057416+00:00",
"annotation_script": "annotate_match_candidates.py"
},
"profile_classification": {
"primary_classification": "human",
"confidence": 0.95,
"indicators": [
{
"type": "wcms_user",
"reason": "Registered user in heritage CMS system"
}
],
"reasoning": "WCMS user profile - registered heritage sector CMS user"
},
"data_sources": [
"wcms"
],
"extraction_metadata": {
"extraction_agent": "migrate_wcms_resume.py",
"extraction_date": "2026-01-11T21:23:11.469994+00:00",
"source_file": "users/user_284991.json",
"source_system": "WCMS",
"schema_version": "1.0.0"
},
"migration_metadata": {
"original_wcms_file": "users/user_284991.json",
"original_user_id": "284991",
"migrated_at": "2026-01-11T21:23:11.469999+00:00",
"migration_script": "migrate_wcms_resume.py",
"migration_version": "2.0"
}
}

View file

@ -0,0 +1,132 @@
{
"ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_ANNA-VAN-VELZEN",
"ppid_type": "ID",
"ppid_components": {
"type": "ID",
"first_location": "XX-XX-XXX",
"first_date": "XXXX",
"last_location": "XX-XX-XXX",
"last_date": "XXXX",
"name_tokens": [
"ANNA",
"VAN",
"VELZEN"
]
},
"name": "Anna van Velzen",
"birth_date": {
"edtf": "XXXX",
"precision": "unknown",
"note": "Not available from WCMS"
},
"is_living": true,
"is_anonymous": false,
"wcms_identifiers": {
"user_id": "246670",
"username": "Annavv",
"username_url": "/user/246670",
"abs_id": "110.1027237",
"crm_id": "913bb796-5041-ec11-8145-d317fc4f8963"
},
"contact_details": {
"email": "anna2000.avv@gmail.com",
"email_domain": "gmail.com"
},
"wcms_activity": {
"status": "Active",
"roles": [],
"registered_since": "di 09-11-2021 - 12:31",
"last_access": "4 jaar 1 maand ago",
"operations": [
{
"text": "Bewerken",
"url": "/user/246670/edit?destination=/admin/people%3Fpage%3D3017"
},
{
"text": "Rollen",
"url": "/user/246670/roles?destination=/admin/people%3Fpage%3D3017"
}
]
},
"entity_resolution": {
"potential_linkedin_matches": 3,
"match_candidates": [
{
"linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_ANNA-VELZEN",
"linkedin_name": "Anna van Velzen",
"linkedin_slug": "anna-van-velzen",
"confidence_score": 0.6,
"match_signals": [
"exact_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
},
{
"linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_ALEXANDER-VELZEN",
"linkedin_name": "Alexander van Velzen",
"linkedin_slug": "alexandervanvelzen",
"confidence_score": 0.51,
"match_signals": [
"strong_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
},
{
"linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_ARNOLD-VAN-VELZEN",
"linkedin_name": "Arnold Van Velzen",
"linkedin_slug": "arnold-van-velzen-40435ab",
"confidence_score": 0.51,
"match_signals": [
"strong_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
}
],
"requires_manual_review": true,
"auto_merged": false,
"reviewed": false,
"review_notes": null,
"annotation_date": "2026-01-12T10:17:25.017328+00:00",
"annotation_script": "annotate_match_candidates.py"
},
"profile_classification": {
"primary_classification": "human",
"confidence": 0.95,
"indicators": [
{
"type": "wcms_user",
"reason": "Registered user in heritage CMS system"
}
],
"reasoning": "WCMS user profile - registered heritage sector CMS user"
},
"data_sources": [
"wcms"
],
"extraction_metadata": {
"extraction_agent": "migrate_wcms_users.py",
"extraction_date": "2026-01-11T17:42:24.018398+00:00",
"source_file": "users/user_246670.json",
"source_system": "WCMS",
"schema_version": "1.0.0"
},
"migration_metadata": {
"original_wcms_file": "users/user_246670.json",
"original_user_id": "246670",
"migrated_at": "2026-01-11T17:42:24.018406+00:00",
"migration_script": "migrate_wcms_users.py",
"migration_version": "1.0"
}
}

View file

@ -0,0 +1,104 @@
{
"ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_ANNE-VAN-NASSAU",
"ppid_type": "ID",
"ppid_components": {
"type": "ID",
"first_location": "XX-XX-XXX",
"first_date": "XXXX",
"last_location": "XX-XX-XXX",
"last_date": "XXXX",
"name_tokens": [
"ANNE",
"VAN",
"NASSAU"
]
},
"name": "Anne van Nassau",
"birth_date": {
"edtf": "XXXX",
"precision": "unknown",
"note": "Not available from WCMS"
},
"is_living": true,
"is_anonymous": false,
"wcms_identifiers": {
"user_id": "164312",
"username": "acvannassau",
"username_url": "/user/164312",
"abs_id": "110.308397",
"crm_id": "B9B84B00-835A-E311-983B-005056930016"
},
"contact_details": {
"email": "a.c.vannassau@students.uu.nl",
"email_domain": "students.uu.nl"
},
"wcms_activity": {
"status": "Active",
"roles": [],
"registered_since": "zo 01-12-2013 - 13:20",
"last_access": "11 jaar 10 maanden ago",
"operations": [
{
"text": "Bewerken",
"url": "/user/164312/edit?destination=/admin/people%3Fpage%3D4382"
},
{
"text": "Rollen",
"url": "/user/164312/roles?destination=/admin/people%3Fpage%3D4382"
}
]
},
"entity_resolution": {
"potential_linkedin_matches": 1,
"match_candidates": [
{
"linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_AGNES-NASSAU",
"linkedin_name": "Agnes van Nassau",
"linkedin_slug": "agnes-van-nassau-705a76372",
"confidence_score": 0.51,
"match_signals": [
"strong_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
}
],
"requires_manual_review": true,
"auto_merged": false,
"reviewed": false,
"review_notes": null,
"annotation_date": "2026-01-12T10:17:24.726924+00:00",
"annotation_script": "annotate_match_candidates.py"
},
"profile_classification": {
"primary_classification": "human",
"confidence": 0.95,
"indicators": [
{
"type": "wcms_user",
"reason": "Registered user in heritage CMS system"
}
],
"reasoning": "WCMS user profile - registered heritage sector CMS user"
},
"data_sources": [
"wcms"
],
"extraction_metadata": {
"extraction_agent": "migrate_wcms_users.py",
"extraction_date": "2026-01-11T17:09:55.200959+00:00",
"source_file": "users/user_164312.json",
"source_system": "WCMS",
"schema_version": "1.0.0"
},
"migration_metadata": {
"original_wcms_file": "users/user_164312.json",
"original_user_id": "164312",
"migrated_at": "2026-01-11T17:09:55.200961+00:00",
"migration_script": "migrate_wcms_users.py",
"migration_version": "1.0"
}
}

View file

@ -0,0 +1,221 @@
{
"ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_ARNOLD-OPPELAAR-1de85a2e",
"ppid_type": "ID",
"ppid_components": {
"type": "ID",
"first_location": "XX-XX-XXX",
"first_date": "XXXX",
"last_location": "XX-XX-XXX",
"last_date": "XXXX",
"name_tokens": [
"ARNOLD",
"OPPELAAR"
],
"collision_uuid": "1de85a2e"
},
"name": "Arnold Oppelaar",
"birth_date": {
"edtf": "XXXX",
"precision": "unknown",
"note": "Not available from WCMS"
},
"is_living": true,
"is_anonymous": false,
"wcms_identifiers": {
"user_id": "152928",
"username": "zzz-Arnold Oppelaar",
"username_url": "/user/152928",
"abs_id": "110.952030",
"crm_id": "b16c16e0-ab28-43ba-8f54-a8c6f01f3b60"
},
"contact_details": {
"email": "zzz-arnold.oppelaar@nationaalarchief.nl",
"email_domain": "nationaalarchief.nl"
},
"wcms_activity": {
"status": "Blocked",
"roles": [
"Redacteur"
],
"registered_since": "wo 30-11-2011 - 12:05",
"last_access": "6 jaar 8 maanden ago",
"operations": []
},
"entity_resolution": {
"potential_linkedin_matches": 2,
"match_candidates": [
{
"linkedin_ppid": "ID_NL-NH-AMS_197X_NL-ZH-TH_XXXX_ARNOLD-OPPELAAR",
"linkedin_name": "Arnold Oppelaar",
"linkedin_slug": "arnold-oppelaar-b2139a23",
"confidence_score": 0.6,
"match_signals": [
"exact_name_match"
],
"requires_review": true,
"reviewed": true,
"review_decision": "match",
"reviewed_by": "reviewer",
"reviewed_at": "2026-01-13T11:25:21.007465+00:00"
},
{
"linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_ARNOLD-OPPELAAR",
"linkedin_name": {
"full_name": "Arnold Oppelaar",
"display_name": "Arnold Oppelaar",
"name_romanized": null,
"name_tokens": [
"ARNOLD",
"OPPELAAR"
],
"source": "linkedin_profile"
},
"linkedin_slug": "arnold-oppelaar-b2139a23",
"confidence_score": 0.6,
"match_signals": [
"exact_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
}
],
"requires_manual_review": true,
"auto_merged": false,
"reviewed": false,
"review_notes": null,
"annotation_date": "2026-01-12T10:17:25.029603+00:00",
"annotation_script": "annotate_match_candidates.py",
"resolved": true,
"resolved_linkedin_ppid": "ID_NL-NH-AMS_197X_NL-ZH-TH_XXXX_ARNOLD-OPPELAAR",
"resolved_linkedin_slug": "arnold-oppelaar-b2139a23",
"resolution_confidence": 0.65,
"resolution_signals": [
"email_name_parts",
"exact_name_match",
"email_institution",
"email_institutional"
],
"resolution_decision": "match",
"resolved_by": "reviewer",
"resolved_at": "2026-01-13T11:25:21.007465+00:00",
"merge_timestamp": "2026-01-15T10:49:18.585703+00:00",
"merge_script": "merge_reviewed_profiles.py"
},
"profile_classification": {
"primary_classification": "human",
"confidence": 0.95,
"indicators": [
{
"type": "wcms_user",
"reason": "Registered user in heritage CMS system"
}
],
"reasoning": "WCMS user profile - registered heritage sector CMS user"
},
"data_sources": [
"wcms",
"linkedin"
],
"extraction_metadata": {
"extraction_agent": "migrate_wcms_users.py",
"extraction_date": "2026-01-11T17:07:19.788441+00:00",
"source_file": "users/user_152928.json",
"source_system": "WCMS",
"schema_version": "1.0.0"
},
"migration_metadata": {
"original_wcms_file": "users/user_152928.json",
"original_user_id": "152928",
"migrated_at": "2026-01-11T17:07:19.788455+00:00",
"migration_script": "migrate_wcms_users.py",
"migration_version": "1.0"
},
"profile_data": {
"headline": "Medewerker Dienstverlening / Webteam Nationaal Archief",
"location": "The Hague, South Holland, Netherlands (NL)",
"about": "Total Experience: 26 years",
"education": [
{
"degree": "Master of Arts (MA), Medieval history",
"institution": "Universiteit van Amsterdam / University of Amsterdam",
"date_range": "1992 - 1999 • 7 years"
}
],
"profile_image_url": "https://static.licdn.com/aero-v1/sc/h/9c8pery4andzj6ohjkjp54ma2",
"linkedin_url": "https://www.linkedin.com/in/arnold-oppelaar-b2139a23"
},
"affiliations": [
{
"custodian_name": "Nationaal Archief",
"custodian_slug": "nationaal-archief",
"role_title": "Medewerker Dienstverlening / Webteam Nationaal Archief",
"affiliation_provenance": {
"source": "LinkedIn company people page",
"source_url": "https://www.linkedin.com/in/arnold-oppelaar-b2139a23",
"retrieved_on": "2025-12-10T15:04:12.140000+00:00",
"retrieval_agent": "extract_persons_with_provenance.py"
}
}
],
"heritage_relevance": {
"is_heritage_relevant": true,
"heritage_types": [
"A"
],
"rationale": "Identified as staff at Nationaal Archief"
},
"web_claims": [
{
"claim_type": "linkedin_url",
"claim_value": "https://www.linkedin.com/in/arnold-oppelaar-b2139a23",
"source_url": "https://www.linkedin.com/company/nationaal-archief/people/",
"retrieved_on": "2025-12-10T15:04:12.140000+00:00",
"statement_created_at": "2026-01-09T22:46:01.393764+00:00",
"source_archived_at": "2025-12-10T15:04:12.140000+00:00",
"xpath": "/html[1]/head[1]/meta[1]/meta[2]/meta[3]/meta[4]/meta[5]/meta[6]/meta[7]/meta[8]/meta[9]/meta[10]/meta[11]/meta[12]/meta[13]/meta[14]/link[1]/link[2]/link[3]/link[4]/link[5]/link[6]/link[7]/meta[15]/meta[16]/meta[17]/meta[18]/meta[19]/meta[20]/meta[21]/meta[22]/meta[23]/meta[24]/meta[25]/meta[26]/link[8]/link[9]/link[10]/link[11]/link[12]/meta[27]/meta[28]/meta[29]/meta[30]/meta[31]/meta[32]/meta[33]/meta[34]/meta[35]/meta[36]/meta[37]/meta[38]/meta[39]/meta[40]/meta[41]/meta[42]/meta[43]/meta[44]/meta[45]/meta[46]/meta[47]/meta[48]/meta[49]/meta[50]/meta[51]/meta[52]/meta[53]/meta[54]/meta[55]/meta[56]/meta[57]/meta[58]/meta[59]/meta[60]/meta[61]/meta[62]/meta[63]/meta[64]/meta[65]/meta[66]/meta[67]/meta[68]/meta[69]/meta[70]/meta[71]/meta[72]/meta[73]/meta[74]/meta[75]/meta[76]/meta[77]/meta[78]/meta[79]/meta[80]/meta[81]/meta[82]/meta[83]/meta[84]/meta[85]/meta[86]/meta[87]/meta[88]/meta[89]/meta[90]/meta[91]/meta[92]/meta[93]/meta[94]/meta[95]/meta[96]/meta[97]/meta[98]/meta[99]/meta[100]/meta[101]/meta[102]/meta[103]/meta[104]/meta[105]/meta[106]/meta[107]/meta[108]/meta[109]/meta[110]/meta[111]/meta[112]/meta[113]/meta[114]/meta[115]/meta[116]/meta[117]/meta[118]/meta[119]/meta[120]/meta[121]/meta[122]/meta[123]/meta[124]/meta[125]/meta[126]/meta[127]/meta[128]/meta[129]/meta[130]/meta[131]/meta[132]/meta[133]/meta[134]/meta[135]/meta[136]/meta[137]/meta[138]/meta[139]/meta[140]/meta[141]/link[13]/link[14]/meta[142]/meta[143]/link[15]/link[16]/link[17]/link[18]/link[19]/link[20]/link[21]/link[22]/link[23]/link[24]/link[25]/link[26]/link[27]/link[28]/link[29]/link[30]/link[31]/link[32]/link[33]/link[34]/link[35]/link[36]/link[37]/link[38]/link[39]/link[40]/link[41]/link[42]/link[43]/link[44]/body[1]/img[1]/img[2]/img[3]/img[4]/img[5]/img[6]/img[7]/img[8]/img[9]/img[10]/img[11]/img[12]/img[13]/img[14]/img[15]/img[16]/img[17]/img[18]/img[19]/div[28]/header[2]/div[32]/div[62]/div[63]/div[65]/div[66]/div[67]/div[87]/main[1]/div[88]/section[2]/div[124]/div[125]/div[126]/div[174]/div[175]/div[176]/ul[6]/li[33]/div[177]/li[34]/div[189]/li[35]/div[201]/li[36]/div[213]/li[37]/div[225]/li[38]/div[237]/li[39]/div[249]/li[40]/div[261]/li[41]/div[273]/li[42]/div[285]/li[43]/div[297]/li[44]/div[309]/li[45]/div[321]/li[46]/div[333]/li[47]/div[345]/li[48]/div[357]/li[49]/div[369]/li[50]/div[381]/li[51]/div[393]/li[52]/div[405]/li[53]/div[417]/li[54]/div[429]/li[55]/div[441]/li[56]/div[453]/li[57]/div[465]/li[58]/div[477]/li[59]/div[489]/li[60]/div[501]/li[61]/div[513]/li[62]/div[525]/li[63]/div[537]/li[64]/div[549]/li[65]/div[561]/li[66]/div[573]/li[67]/div[585]/li[68]/div[597]/li[69]/div[609]/li[70]/div[621]/li[71]/div[633]/li[72]/div[645]/li[73]/div[657]/li[74]/div[669]/li[75]/div[681]/li[76]/div[693]/li[77]/div[705]/li[78]/div[717]/li[79]/div[729]/li[80]/div[741]/li[81]/div[753]/li[82]/div[765]/li[83]/div[777]/li[84]/div[789]/li[85]/div[801]/li[86]/div[813]/li[87]/div[825]/li[88]/div[837]/li[89]/div[849]/section[60]/img[136]/div[850]/div[851]/div[852]/a[136]",
"html_file": "/Volumes/KINGSTON/data/glam/data/custodian/person/affiliated/manual/(8) Nationaal Archief_ People _ LinkedIn.html",
"xpath_match_score": 1.0,
"retrieval_agent": "extract_persons_with_provenance.py"
},
{
"claim_type": "full_name",
"claim_value": "Arnold Oppelaar",
"source_url": "https://www.linkedin.com/company/nationaal-archief/people/",
"retrieved_on": "2025-12-10T15:04:12.140000+00:00",
"statement_created_at": "2026-01-09T22:46:01.393790+00:00",
"source_archived_at": "2025-12-10T15:04:12.140000+00:00",
"xpath": "/html[1]/head[1]/meta[1]/meta[2]/meta[3]/meta[4]/meta[5]/meta[6]/meta[7]/meta[8]/meta[9]/meta[10]/meta[11]/meta[12]/meta[13]/meta[14]/link[1]/link[2]/link[3]/link[4]/link[5]/link[6]/link[7]/meta[15]/meta[16]/meta[17]/meta[18]/meta[19]/meta[20]/meta[21]/meta[22]/meta[23]/meta[24]/meta[25]/meta[26]/link[8]/link[9]/link[10]/link[11]/link[12]/meta[27]/meta[28]/meta[29]/meta[30]/meta[31]/meta[32]/meta[33]/meta[34]/meta[35]/meta[36]/meta[37]/meta[38]/meta[39]/meta[40]/meta[41]/meta[42]/meta[43]/meta[44]/meta[45]/meta[46]/meta[47]/meta[48]/meta[49]/meta[50]/meta[51]/meta[52]/meta[53]/meta[54]/meta[55]/meta[56]/meta[57]/meta[58]/meta[59]/meta[60]/meta[61]/meta[62]/meta[63]/meta[64]/meta[65]/meta[66]/meta[67]/meta[68]/meta[69]/meta[70]/meta[71]/meta[72]/meta[73]/meta[74]/meta[75]/meta[76]/meta[77]/meta[78]/meta[79]/meta[80]/meta[81]/meta[82]/meta[83]/meta[84]/meta[85]/meta[86]/meta[87]/meta[88]/meta[89]/meta[90]/meta[91]/meta[92]/meta[93]/meta[94]/meta[95]/meta[96]/meta[97]/meta[98]/meta[99]/meta[100]/meta[101]/meta[102]/meta[103]/meta[104]/meta[105]/meta[106]/meta[107]/meta[108]/meta[109]/meta[110]/meta[111]/meta[112]/meta[113]/meta[114]/meta[115]/meta[116]/meta[117]/meta[118]/meta[119]/meta[120]/meta[121]/meta[122]/meta[123]/meta[124]/meta[125]/meta[126]/meta[127]/meta[128]/meta[129]/meta[130]/meta[131]/meta[132]/meta[133]/meta[134]/meta[135]/meta[136]/meta[137]/meta[138]/meta[139]/meta[140]/meta[141]/link[13]/link[14]/meta[142]/meta[143]/link[15]/link[16]/link[17]/link[18]/link[19]/link[20]/link[21]/link[22]/link[23]/link[24]/link[25]/link[26]/link[27]/link[28]/link[29]/link[30]/link[31]/link[32]/link[33]/link[34]/link[35]/link[36]/link[37]/link[38]/link[39]/link[40]/link[41]/link[42]/link[43]/link[44]/body[1]/img[1]/img[2]/img[3]/img[4]/img[5]/img[6]/img[7]/img[8]/img[9]/img[10]/img[11]/img[12]/img[13]/img[14]/img[15]/img[16]/img[17]/img[18]/img[19]/div[28]/header[2]/div[32]/div[62]/div[63]/div[65]/div[66]/div[67]/div[87]/main[1]/div[88]/section[2]/div[124]/div[125]/div[126]/div[174]/div[175]/div[176]/ul[6]/li[33]/div[177]/li[34]/div[189]/li[35]/div[201]/li[36]/div[213]/li[37]/div[225]/li[38]/div[237]/li[39]/div[249]/li[40]/div[261]/li[41]/div[273]/li[42]/div[285]/li[43]/div[297]/li[44]/div[309]/li[45]/div[321]/li[46]/div[333]/li[47]/div[345]/li[48]/div[357]/li[49]/div[369]/li[50]/div[381]/li[51]/div[393]/li[52]/div[405]/li[53]/div[417]/li[54]/div[429]/li[55]/div[441]/li[56]/div[453]/li[57]/div[465]/li[58]/div[477]/li[59]/div[489]/li[60]/div[501]/li[61]/div[513]/li[62]/div[525]/li[63]/div[537]/li[64]/div[549]/li[65]/div[561]/li[66]/div[573]/li[67]/div[585]/li[68]/div[597]/li[69]/div[609]/li[70]/div[621]/li[71]/div[633]/li[72]/div[645]/li[73]/div[657]/li[74]/div[669]/li[75]/div[681]/li[76]/div[693]/li[77]/div[705]/li[78]/div[717]/li[79]/div[729]/li[80]/div[741]/li[81]/div[753]/li[82]/div[765]/li[83]/div[777]/li[84]/div[789]/li[85]/div[801]/li[86]/div[813]/li[87]/div[825]/li[88]/div[837]/li[89]/div[849]/section[60]/img[136]/div[850]/div[851]/div[852]/a[136]/img[137]/@alt",
"html_file": "/Volumes/KINGSTON/data/glam/data/custodian/person/affiliated/manual/(8) Nationaal Archief_ People _ LinkedIn.html",
"xpath_match_score": 1.0,
"retrieval_agent": "extract_persons_with_provenance.py"
},
{
"claim_type": "connection_degree",
"claim_value": "2nd",
"source_url": "https://www.linkedin.com/company/nationaal-archief/people/",
"retrieved_on": "2025-12-10T15:04:12.140000+00:00",
"statement_created_at": "2026-01-09T22:46:01.393865+00:00",
"source_archived_at": "2025-12-10T15:04:12.140000+00:00",
"xpath": "/html[1]/head[1]/meta[1]/meta[2]/meta[3]/meta[4]/meta[5]/meta[6]/meta[7]/meta[8]/meta[9]/meta[10]/meta[11]/meta[12]/meta[13]/meta[14]/link[1]/link[2]/link[3]/link[4]/link[5]/link[6]/link[7]/meta[15]/meta[16]/meta[17]/meta[18]/meta[19]/meta[20]/meta[21]/meta[22]/meta[23]/meta[24]/meta[25]/meta[26]/link[8]/link[9]/link[10]/link[11]/link[12]/meta[27]/meta[28]/meta[29]/meta[30]/meta[31]/meta[32]/meta[33]/meta[34]/meta[35]/meta[36]/meta[37]/meta[38]/meta[39]/meta[40]/meta[41]/meta[42]/meta[43]/meta[44]/meta[45]/meta[46]/meta[47]/meta[48]/meta[49]/meta[50]/meta[51]/meta[52]/meta[53]/meta[54]/meta[55]/meta[56]/meta[57]/meta[58]/meta[59]/meta[60]/meta[61]/meta[62]/meta[63]/meta[64]/meta[65]/meta[66]/meta[67]/meta[68]/meta[69]/meta[70]/meta[71]/meta[72]/meta[73]/meta[74]/meta[75]/meta[76]/meta[77]/meta[78]/meta[79]/meta[80]/meta[81]/meta[82]/meta[83]/meta[84]/meta[85]/meta[86]/meta[87]/meta[88]/meta[89]/meta[90]/meta[91]/meta[92]/meta[93]/meta[94]/meta[95]/meta[96]/meta[97]/meta[98]/meta[99]/meta[100]/meta[101]/meta[102]/meta[103]/meta[104]/meta[105]/meta[106]/meta[107]/meta[108]/meta[109]/meta[110]/meta[111]/meta[112]/meta[113]/meta[114]/meta[115]/meta[116]/meta[117]/meta[118]/meta[119]/meta[120]/meta[121]/meta[122]/meta[123]/meta[124]/meta[125]/meta[126]/meta[127]/meta[128]/meta[129]/meta[130]/meta[131]/meta[132]/meta[133]/meta[134]/meta[135]/meta[136]/meta[137]/meta[138]/meta[139]/meta[140]/meta[141]/link[13]/link[14]/meta[142]/meta[143]/link[15]/link[16]/link[17]/link[18]/link[19]/link[20]/link[21]/link[22]/link[23]/link[24]/link[25]/link[26]/link[27]/link[28]/link[29]/link[30]/link[31]/link[32]/link[33]/link[34]/link[35]/link[36]/link[37]/link[38]/link[39]/link[40]/link[41]/link[42]/link[43]/link[44]/body[1]/img[1]/img[2]/img[3]/img[4]/img[5]/img[6]/img[7]/img[8]/img[9]/img[10]/img[11]/img[12]/img[13]/img[14]/img[15]/img[16]/img[17]/img[18]/img[19]/div[28]/header[2]/div[32]/div[62]/div[63]/div[65]/div[66]/div[67]/div[87]/main[1]/div[88]/section[2]/div[124]/div[125]/div[126]/div[174]/div[175]/div[176]/ul[6]/li[33]/div[177]/li[34]/div[189]/li[35]/div[201]/li[36]/div[213]/li[37]/div[225]/li[38]/div[237]/li[39]/div[249]/li[40]/div[261]/li[41]/div[273]/li[42]/div[285]/li[43]/div[297]/li[44]/div[309]/li[45]/div[321]/li[46]/div[333]/li[47]/div[345]/li[48]/div[357]/li[49]/div[369]/li[50]/div[381]/li[51]/div[393]/li[52]/div[405]/li[53]/div[417]/li[54]/div[429]/li[55]/div[441]/li[56]/div[453]/li[57]/div[465]/li[58]/div[477]/li[59]/div[489]/li[60]/div[501]/li[61]/div[513]/li[62]/div[525]/li[63]/div[537]/li[64]/div[549]/li[65]/div[561]/li[66]/div[573]/li[67]/div[585]/li[68]/div[597]/li[69]/div[609]/li[70]/div[621]/li[71]/div[633]/li[72]/div[645]/li[73]/div[657]/li[74]/div[669]/li[75]/div[681]/li[76]/div[693]/li[77]/div[705]/li[78]/div[717]/li[79]/div[729]/li[80]/div[741]/li[81]/div[753]/li[82]/div[765]/li[83]/div[777]/li[84]/div[789]/li[85]/div[801]/li[86]/div[813]/li[87]/div[825]/li[88]/div[837]/li[89]/div[849]/section[60]/img[136]/div[850]/div[851]/div[852]/div[853]/div[856]",
"html_file": "/Volumes/KINGSTON/data/glam/data/custodian/person/affiliated/manual/(8) Nationaal Archief_ People _ LinkedIn.html",
"xpath_match_score": 1.0,
"retrieval_agent": "extract_persons_with_provenance.py"
},
{
"claim_type": "headline",
"claim_value": "Medewerker Dienstverlening / Webteam Nationaal Archief",
"source_url": "https://www.linkedin.com/company/nationaal-archief/people/",
"retrieved_on": "2025-12-10T15:04:12.140000+00:00",
"statement_created_at": "2026-01-09T22:46:01.393899+00:00",
"source_archived_at": "2025-12-10T15:04:12.140000+00:00",
"xpath": "/html[1]/head[1]/meta[1]/meta[2]/meta[3]/meta[4]/meta[5]/meta[6]/meta[7]/meta[8]/meta[9]/meta[10]/meta[11]/meta[12]/meta[13]/meta[14]/link[1]/link[2]/link[3]/link[4]/link[5]/link[6]/link[7]/meta[15]/meta[16]/meta[17]/meta[18]/meta[19]/meta[20]/meta[21]/meta[22]/meta[23]/meta[24]/meta[25]/meta[26]/link[8]/link[9]/link[10]/link[11]/link[12]/meta[27]/meta[28]/meta[29]/meta[30]/meta[31]/meta[32]/meta[33]/meta[34]/meta[35]/meta[36]/meta[37]/meta[38]/meta[39]/meta[40]/meta[41]/meta[42]/meta[43]/meta[44]/meta[45]/meta[46]/meta[47]/meta[48]/meta[49]/meta[50]/meta[51]/meta[52]/meta[53]/meta[54]/meta[55]/meta[56]/meta[57]/meta[58]/meta[59]/meta[60]/meta[61]/meta[62]/meta[63]/meta[64]/meta[65]/meta[66]/meta[67]/meta[68]/meta[69]/meta[70]/meta[71]/meta[72]/meta[73]/meta[74]/meta[75]/meta[76]/meta[77]/meta[78]/meta[79]/meta[80]/meta[81]/meta[82]/meta[83]/meta[84]/meta[85]/meta[86]/meta[87]/meta[88]/meta[89]/meta[90]/meta[91]/meta[92]/meta[93]/meta[94]/meta[95]/meta[96]/meta[97]/meta[98]/meta[99]/meta[100]/meta[101]/meta[102]/meta[103]/meta[104]/meta[105]/meta[106]/meta[107]/meta[108]/meta[109]/meta[110]/meta[111]/meta[112]/meta[113]/meta[114]/meta[115]/meta[116]/meta[117]/meta[118]/meta[119]/meta[120]/meta[121]/meta[122]/meta[123]/meta[124]/meta[125]/meta[126]/meta[127]/meta[128]/meta[129]/meta[130]/meta[131]/meta[132]/meta[133]/meta[134]/meta[135]/meta[136]/meta[137]/meta[138]/meta[139]/meta[140]/meta[141]/link[13]/link[14]/meta[142]/meta[143]/link[15]/link[16]/link[17]/link[18]/link[19]/link[20]/link[21]/link[22]/link[23]/link[24]/link[25]/link[26]/link[27]/link[28]/link[29]/link[30]/link[31]/link[32]/link[33]/link[34]/link[35]/link[36]/link[37]/link[38]/link[39]/link[40]/link[41]/link[42]/link[43]/link[44]/body[1]/img[1]/img[2]/img[3]/img[4]/img[5]/img[6]/img[7]/img[8]/img[9]/img[10]/img[11]/img[12]/img[13]/img[14]/img[15]/img[16]/img[17]/img[18]/img[19]/div[28]/header[2]/div[32]/div[62]/div[63]/div[65]/div[66]/div[67]/div[87]/main[1]/div[88]/section[2]/div[124]/div[125]/div[126]/div[174]/div[175]/div[176]/ul[6]/li[33]/div[177]/li[34]/div[189]/li[35]/div[201]/li[36]/div[213]/li[37]/div[225]/li[38]/div[237]/li[39]/div[249]/li[40]/div[261]/li[41]/div[273]/li[42]/div[285]/li[43]/div[297]/li[44]/div[309]/li[45]/div[321]/li[46]/div[333]/li[47]/div[345]/li[48]/div[357]/li[49]/div[369]/li[50]/div[381]/li[51]/div[393]/li[52]/div[405]/li[53]/div[417]/li[54]/div[429]/li[55]/div[441]/li[56]/div[453]/li[57]/div[465]/li[58]/div[477]/li[59]/div[489]/li[60]/div[501]/li[61]/div[513]/li[62]/div[525]/li[63]/div[537]/li[64]/div[549]/li[65]/div[561]/li[66]/div[573]/li[67]/div[585]/li[68]/div[597]/li[69]/div[609]/li[70]/div[621]/li[71]/div[633]/li[72]/div[645]/li[73]/div[657]/li[74]/div[669]/li[75]/div[681]/li[76]/div[693]/li[77]/div[705]/li[78]/div[717]/li[79]/div[729]/li[80]/div[741]/li[81]/div[753]/li[82]/div[765]/li[83]/div[777]/li[84]/div[789]/li[85]/div[801]/li[86]/div[813]/li[87]/div[825]/li[88]/div[837]/li[89]/div[849]/section[60]/img[136]/div[850]/div[851]/div[852]/div[853]/div[857]/div[858]/div[859]",
"html_file": "/Volumes/KINGSTON/data/glam/data/custodian/person/affiliated/manual/(8) Nationaal Archief_ People _ LinkedIn.html",
"xpath_match_score": 1.0,
"retrieval_agent": "extract_persons_with_provenance.py"
}
],
"linkedin_slug": "arnold-oppelaar-b2139a23"
}

View file

@ -0,0 +1,130 @@
{
"ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_ARNOLD-TEST-20180702-VAN-DER-OPPELAAR",
"ppid_type": "ID",
"ppid_components": {
"type": "ID",
"first_location": "XX-XX-XXX",
"first_date": "XXXX",
"last_location": "XX-XX-XXX",
"last_date": "XXXX",
"name_tokens": [
"ARNOLD",
"TEST",
"20180702",
"VAN",
"DER",
"OPPELAAR"
]
},
"name": "Arnold test 20180702 van der Oppelaar",
"birth_date": {
"edtf": "XXXX",
"precision": "unknown",
"note": "Not available from WCMS"
},
"is_living": true,
"is_anonymous": false,
"wcms_identifiers": {
"user_id": "117806",
"username": "arnoldtestprof…",
"username_url": "/user/117806",
"abs_id": "110.968671",
"crm_id": "765b566e-fc7d-e811-8100-a067d9aa3141"
},
"contact_details": {
"email": "arnold.oppelaar+test20180702@gmail.com",
"email_domain": "gmail.com"
},
"wcms_activity": {
"status": "Active",
"roles": [],
"registered_since": "ma 02-07-2018 - 15:32",
"last_access": "7 jaar 6 maanden ago",
"operations": [
{
"text": "Bewerken",
"url": "/user/117806/edit?destination=/admin/people%3Fpage%3D3876"
},
{
"text": "Rollen",
"url": "/user/117806/roles?destination=/admin/people%3Fpage%3D3876"
}
]
},
"entity_resolution": {
"potential_linkedin_matches": 2,
"match_candidates": [
{
"linkedin_ppid": "ID_NL-NH-AMS_197X_NL-ZH-TH_XXXX_ARNOLD-OPPELAAR",
"linkedin_name": "Arnold Oppelaar",
"linkedin_slug": "arnold-oppelaar-b2139a23",
"confidence_score": 0.57,
"match_signals": [
"exact_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
},
{
"linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_ARNOLD-OPPELAAR",
"linkedin_name": {
"full_name": "Arnold Oppelaar",
"display_name": "Arnold Oppelaar",
"name_romanized": null,
"name_tokens": [
"ARNOLD",
"OPPELAAR"
],
"source": "linkedin_profile"
},
"linkedin_slug": "arnold-oppelaar-b2139a23",
"confidence_score": 0.57,
"match_signals": [
"exact_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
}
],
"requires_manual_review": true,
"auto_merged": false,
"reviewed": false,
"review_notes": null,
"annotation_date": "2026-01-12T10:17:24.829647+00:00",
"annotation_script": "annotate_match_candidates.py"
},
"profile_classification": {
"primary_classification": "human",
"confidence": 0.95,
"indicators": [
{
"type": "wcms_user",
"reason": "Registered user in heritage CMS system"
}
],
"reasoning": "WCMS user profile - registered heritage sector CMS user"
},
"data_sources": [
"wcms"
],
"extraction_metadata": {
"extraction_agent": "migrate_wcms_users.py",
"extraction_date": "2026-01-11T17:12:48.457507+00:00",
"source_file": "users/user_117806.json",
"source_system": "WCMS",
"schema_version": "1.0.0"
},
"migration_metadata": {
"original_wcms_file": "users/user_117806.json",
"original_user_id": "117806",
"migrated_at": "2026-01-11T17:12:48.457516+00:00",
"migration_script": "migrate_wcms_users.py",
"migration_version": "1.0"
}
}

View file

@ -0,0 +1,104 @@
{
"ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_ARZU-BOZBEY-beb6f2f3",
"ppid_type": "ID",
"ppid_components": {
"type": "ID",
"first_location": "XX-XX-XXX",
"first_date": "XXXX",
"last_location": "XX-XX-XXX",
"last_date": "XXXX",
"name_tokens": [
"ARZU",
"BOZBEY"
],
"collision_uuid": "beb6f2f3"
},
"name": "Arzu Bozbey",
"birth_date": {
"edtf": "XXXX",
"precision": "unknown",
"note": "Not available from WCMS"
},
"is_living": true,
"is_anonymous": false,
"wcms_identifiers": {
"user_id": "215326",
"username": "bozbey",
"username_url": "/user/215326",
"abs_id": "110.988641",
"crm_id": "225c8287-760f-ea11-811f-c60f04f742c2"
},
"contact_details": {
"email": "bozbey@advocatenkantoorweteringkade.nl",
"email_domain": "advocatenkantoorweteringkade.nl"
},
"wcms_activity": {
"status": "Active",
"roles": [],
"registered_since": "ma 25-11-2019 - 12:27",
"last_access": "6 jaar 1 maand ago",
"operations": [
{
"text": "Bewerken",
"url": "/user/215326/edit?destination=/admin/people%3Fpage%3D3611"
},
{
"text": "Rollen",
"url": "/user/215326/roles?destination=/admin/people%3Fpage%3D3611"
}
]
},
"entity_resolution": {
"potential_linkedin_matches": 1,
"match_candidates": [
{
"linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_ARZU-BOZBEY",
"linkedin_name": "Arzu Bozbey",
"linkedin_slug": "arzu-bozbey-2139a433",
"confidence_score": 0.6,
"match_signals": [
"exact_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
}
],
"requires_manual_review": true,
"auto_merged": false,
"reviewed": false,
"review_notes": null,
"annotation_date": "2026-01-12T10:17:25.202129+00:00",
"annotation_script": "annotate_match_candidates.py"
},
"profile_classification": {
"primary_classification": "human",
"confidence": 0.95,
"indicators": [
{
"type": "wcms_user",
"reason": "Registered user in heritage CMS system"
}
],
"reasoning": "WCMS user profile - registered heritage sector CMS user"
},
"data_sources": [
"wcms"
],
"extraction_metadata": {
"extraction_agent": "migrate_wcms_users.py",
"extraction_date": "2026-01-11T17:16:40.556640+00:00",
"source_file": "users/user_215326.json",
"source_system": "WCMS",
"schema_version": "1.0.0"
},
"migration_metadata": {
"original_wcms_file": "users/user_215326.json",
"original_user_id": "215326",
"migrated_at": "2026-01-11T17:16:40.556745+00:00",
"migration_script": "migrate_wcms_users.py",
"migration_version": "1.0"
}
}

View file

@ -0,0 +1,169 @@
{
"ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_BRAM-DE-VRIES",
"ppid_type": "ID",
"ppid_components": {
"type": "ID",
"first_location": "XX-XX-XXX",
"first_date": "XXXX",
"last_location": "XX-XX-XXX",
"last_date": "XXXX",
"name_tokens": [
"BRAM",
"DE",
"VRIES"
]
},
"name": "Bram de Vries",
"birth_date": {
"edtf": "XXXX",
"precision": "unknown",
"note": "Not available from WCMS"
},
"is_living": true,
"is_anonymous": false,
"wcms_identifiers": {
"user_id": "204254",
"username": "Brambo64",
"username_url": "/user/204254",
"abs_id": "110.982267",
"crm_id": "00aa1a90-5394-e911-8113-b8bc8411702a"
},
"contact_details": {
"email": "bdv64@hetnet.nl",
"email_domain": "hetnet.nl"
},
"wcms_activity": {
"status": "Active",
"roles": [],
"registered_since": "vr 21-06-2019 - 20:37",
"last_access": "6 jaar 6 maanden ago",
"operations": [
{
"text": "Bewerken",
"url": "/user/204254/edit?destination=/admin/people%3Fpage%3D3702"
},
{
"text": "Rollen",
"url": "/user/204254/roles?destination=/admin/people%3Fpage%3D3702"
}
]
},
"entity_resolution": {
"potential_linkedin_matches": 5,
"match_candidates": [
{
"linkedin_ppid": "ID_XX-XX-XXX_196X_NL-NH-AMS_XXXX_BRAM-VRIES",
"linkedin_name": {
"full_name": "Bram Vries",
"display_name": "Bram Vries",
"name_romanized": null,
"name_tokens": [
"BRAM",
"VRIES"
],
"source": "linkedin_profile"
},
"linkedin_slug": "bram-vries-71878219",
"confidence_score": 0.57,
"match_signals": [
"exact_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
},
{
"linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_BRAM-VRIES",
"linkedin_name": "Bram Vries",
"linkedin_slug": "bram-vries-71878219",
"confidence_score": 0.57,
"match_signals": [
"exact_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
},
{
"linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_BENJAMIN-DE-VRIES",
"linkedin_name": "Benjamin de Vries",
"linkedin_slug": "benjamin-de-vries-48746810b",
"confidence_score": 0.51,
"match_signals": [
"strong_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
},
{
"linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_BRANKO-DE-VRIES",
"linkedin_name": "Branko de Vries",
"linkedin_slug": "branko-de-vries-26a4a547",
"confidence_score": 0.51,
"match_signals": [
"strong_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
},
{
"linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_BERBER-DE-VRIES",
"linkedin_name": "Berber de Vries",
"linkedin_slug": "berber-de-vries-70485524a",
"confidence_score": 0.51,
"match_signals": [
"strong_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
}
],
"requires_manual_review": true,
"auto_merged": false,
"reviewed": false,
"review_notes": null,
"annotation_date": "2026-01-12T10:17:25.523890+00:00",
"annotation_script": "annotate_match_candidates.py"
},
"profile_classification": {
"primary_classification": "human",
"confidence": 0.95,
"indicators": [
{
"type": "wcms_user",
"reason": "Registered user in heritage CMS system"
}
],
"reasoning": "WCMS user profile - registered heritage sector CMS user"
},
"data_sources": [
"wcms"
],
"extraction_metadata": {
"extraction_agent": "migrate_wcms_users.py",
"extraction_date": "2026-01-11T17:15:13.383336+00:00",
"source_file": "users/user_204254.json",
"source_system": "WCMS",
"schema_version": "1.0.0"
},
"migration_metadata": {
"original_wcms_file": "users/user_204254.json",
"original_user_id": "204254",
"migrated_at": "2026-01-11T17:15:13.383345+00:00",
"migration_script": "migrate_wcms_users.py",
"migration_version": "1.0"
}
}

View file

@ -0,0 +1,105 @@
{
"ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_CHRIS-STOLWIJK-1dfcd103",
"ppid_type": "ID",
"ppid_components": {
"type": "ID",
"first_location": "XX-XX-XXX",
"first_date": "XXXX",
"last_location": "XX-XX-XXX",
"last_date": "XXXX",
"name_tokens": [
"CHRIS",
"STOLWIJK"
],
"collision_uuid": "1dfcd103"
},
"name": "chris stolwijk",
"birth_date": {
"edtf": "XXXX",
"precision": "unknown",
"note": "Not available from WCMS"
},
"is_living": true,
"is_anonymous": false,
"wcms_identifiers": {
"user_id": "285320",
"username": "stolwijk@rkd.nl",
"username_url": "/user/285320",
"abs_id": "110.1070798",
"crm_id": "0c379c39-486b-ee11-816b-d7add8f6d140"
},
"contact_details": {
"email": "stolwijk@rkd.nl",
"email_domain": "rkd.nl"
},
"wcms_activity": {
"status": "Active",
"roles": [],
"registered_since": "zo 15-10-2023 - 12:47",
"last_access": "2 jaar 2 maanden ago",
"operations": [
{
"text": "Bewerken",
"url": "/user/285320/edit?destination=/admin/people%3Fpage%3D2258"
},
{
"text": "Rollen",
"url": "/user/285320/roles?destination=/admin/people%3Fpage%3D2258"
}
]
},
"entity_resolution": {
"potential_linkedin_matches": 1,
"wikipedia_url": null,
"match_candidates": [
{
"linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_CHRIS-STOLWIJK",
"linkedin_name": "Chris Stolwijk",
"linkedin_slug": "chris-stolwijk-1059647",
"confidence_score": 0.6,
"match_signals": [
"exact_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
}
],
"requires_manual_review": true,
"auto_merged": false,
"reviewed": false,
"review_notes": null,
"annotation_date": "2026-01-12T10:17:25.206513+00:00",
"annotation_script": "annotate_match_candidates.py"
},
"profile_classification": {
"primary_classification": "human",
"confidence": 0.95,
"indicators": [
{
"type": "wcms_user",
"reason": "Registered user in heritage CMS system"
}
],
"reasoning": "WCMS user profile - registered heritage sector CMS user"
},
"data_sources": [
"wcms"
],
"extraction_metadata": {
"extraction_agent": "migrate_wcms_resume.py",
"extraction_date": "2026-01-11T21:23:22.961887+00:00",
"source_file": "users/user_285320.json",
"source_system": "WCMS",
"schema_version": "1.0.0"
},
"migration_metadata": {
"original_wcms_file": "users/user_285320.json",
"original_user_id": "285320",
"migrated_at": "2026-01-11T21:23:22.961897+00:00",
"migration_script": "migrate_wcms_resume.py",
"migration_version": "2.0"
}
}

View file

@ -0,0 +1,127 @@
{
"ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_DENNIS-VAN-HOLTEN",
"ppid_type": "ID",
"ppid_components": {
"type": "ID",
"first_location": "XX-XX-XXX",
"first_date": "XXXX",
"last_location": "XX-XX-XXX",
"last_date": "XXXX",
"name_tokens": [
"DENNIS",
"VAN",
"HOLTEN"
]
},
"name": "Dennis van Holten",
"birth_date": {
"edtf": "XXXX",
"precision": "unknown",
"note": "Not available from WCMS"
},
"is_living": true,
"is_anonymous": false,
"wcms_identifiers": {
"user_id": "238943",
"username": "dumbfoundead010",
"username_url": "/user/238943",
"abs_id": "110.1018107",
"crm_id": "a4b2d712-03b7-eb11-813e-e5929d7ab1c5"
},
"contact_details": {
"email": "dragonden90@hotmail.com",
"email_domain": "hotmail.com"
},
"wcms_activity": {
"status": "Active",
"roles": [],
"registered_since": "ma 17-05-2021 - 13:28",
"last_access": "3 jaar 6 maanden ago",
"operations": [
{
"text": "Bewerken",
"url": "/user/238943/edit?destination=/admin/people%3Fpage%3D3164"
},
{
"text": "Rollen",
"url": "/user/238943/roles?destination=/admin/people%3Fpage%3D3164"
}
]
},
"entity_resolution": {
"potential_linkedin_matches": 2,
"match_candidates": [
{
"linkedin_ppid": "ID_NL-UT-UTR_199X_NL-NH-AMS_XXXX_DENNIS-HOLTEN",
"linkedin_name": {
"full_name": "Dennis van Holten",
"display_name": "Dennis van Holten",
"name_romanized": null,
"name_tokens": [
"DENNIS",
"HOLTEN"
],
"source": "linkedin_profile"
},
"linkedin_slug": "dennis-van-holten-680a91223",
"confidence_score": 0.6,
"match_signals": [
"exact_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
},
{
"linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_DENNIS-HOLTEN",
"linkedin_name": "Dennis van Holten",
"linkedin_slug": "dennis-van-holten-680a91223",
"confidence_score": 0.6,
"match_signals": [
"exact_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
}
],
"requires_manual_review": true,
"auto_merged": false,
"reviewed": false,
"review_notes": null,
"annotation_date": "2026-01-12T10:17:50.659692+00:00",
"annotation_script": "annotate_match_candidates.py"
},
"profile_classification": {
"primary_classification": "human",
"confidence": 0.95,
"indicators": [
{
"type": "wcms_user",
"reason": "Registered user in heritage CMS system"
}
],
"reasoning": "WCMS user profile - registered heritage sector CMS user"
},
"data_sources": [
"wcms"
],
"extraction_metadata": {
"extraction_agent": "migrate_wcms_users.py",
"extraction_date": "2026-01-11T17:38:31.114984+00:00",
"source_file": "users/user_238943.json",
"source_system": "WCMS",
"schema_version": "1.0.0"
},
"migration_metadata": {
"original_wcms_file": "users/user_238943.json",
"original_user_id": "238943",
"migrated_at": "2026-01-11T17:38:31.114996+00:00",
"migration_script": "migrate_wcms_users.py",
"migration_version": "1.0"
}
}

View file

@ -0,0 +1,97 @@
{
"ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_DIEDERICK-KORTLANG-f8687158",
"ppid_type": "ID",
"ppid_components": {
"type": "ID",
"first_location": "XX-XX-XXX",
"first_date": "XXXX",
"last_location": "XX-XX-XXX",
"last_date": "XXXX",
"name_tokens": [
"DIEDERICK",
"KORTLANG"
],
"collision_uuid": "f8687158"
},
"name": "Diederick Kortlang",
"birth_date": {
"edtf": "XXXX",
"precision": "unknown",
"note": "Not available from WCMS"
},
"is_living": true,
"is_anonymous": false,
"wcms_identifiers": {
"user_id": "197389",
"username": "dkortlang",
"username_url": "/user/197389",
"abs_id": "110.980083",
"crm_id": "a3d23dce-0b6b-e911-8112-e46c51464684"
},
"contact_details": {
"email": "diederick.kortlang@nationaalarchief.nl",
"email_domain": "nationaalarchief.nl"
},
"wcms_activity": {
"status": "Active",
"roles": [
"Redacteur"
],
"registered_since": "di 30-04-2019 - 07:50",
"last_access": "1 week 1 dag ago",
"operations": []
},
"entity_resolution": {
"potential_linkedin_matches": 1,
"match_candidates": [
{
"linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_DIEDERICK-KORTLANG",
"linkedin_name": "Diederick Kortlang",
"linkedin_slug": "diederick-kortlang-06a8204a",
"confidence_score": 0.6,
"match_signals": [
"exact_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
}
],
"requires_manual_review": true,
"auto_merged": false,
"reviewed": false,
"review_notes": null,
"annotation_date": "2026-01-12T10:17:25.531589+00:00",
"annotation_script": "annotate_match_candidates.py"
},
"profile_classification": {
"primary_classification": "human",
"confidence": 0.95,
"indicators": [
{
"type": "wcms_user",
"reason": "Registered user in heritage CMS system"
}
],
"reasoning": "WCMS user profile - registered heritage sector CMS user"
},
"data_sources": [
"wcms"
],
"extraction_metadata": {
"extraction_agent": "migrate_wcms_users.py",
"extraction_date": "2026-01-11T17:14:44.156659+00:00",
"source_file": "users/user_197389.json",
"source_system": "WCMS",
"schema_version": "1.0.0"
},
"migration_metadata": {
"original_wcms_file": "users/user_197389.json",
"original_user_id": "197389",
"migrated_at": "2026-01-11T17:14:44.156670+00:00",
"migration_script": "migrate_wcms_users.py",
"migration_version": "1.0"
}
}

View file

@ -0,0 +1,125 @@
{
"ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_ERIK-MUL-48242ac2",
"ppid_type": "ID",
"ppid_components": {
"type": "ID",
"first_location": "XX-XX-XXX",
"first_date": "XXXX",
"last_location": "XX-XX-XXX",
"last_date": "XXXX",
"name_tokens": [
"ERIK",
"MUL"
],
"collision_uuid": "48242ac2"
},
"name": "Erik Mul",
"birth_date": {
"edtf": "XXXX",
"precision": "unknown",
"note": "Not available from WCMS"
},
"is_living": true,
"is_anonymous": false,
"wcms_identifiers": {
"user_id": "114604",
"username": "Erik Mul",
"username_url": "/user/114604",
"abs_id": "110.967659",
"crm_id": "fda1f38a-ee63-e811-80ff-9f86b66faf29"
},
"contact_details": {
"email": "erik.mul@nationaalarchief.nl",
"email_domain": "nationaalarchief.nl"
},
"wcms_activity": {
"status": "Active",
"roles": [
"Beta gebruikerRedacteurMedewerker dienstverleningWebshopbeheerder"
],
"registered_since": "wo 30-05-2018 - 11:47",
"last_access": "1 week 5 dagen ago",
"operations": []
},
"entity_resolution": {
"potential_linkedin_matches": 3,
"match_candidates": [
{
"linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_ERIK-MUL",
"linkedin_name": "Erik Mul",
"linkedin_slug": "erik-mul-469a9499",
"confidence_score": 0.6,
"match_signals": [
"exact_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
},
{
"linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_ELINE-MUL",
"linkedin_name": "Eline Mul",
"linkedin_slug": "eline-mul-3b586931",
"confidence_score": 0.51,
"match_signals": [
"strong_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
},
{
"linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_ELISA-MUL",
"linkedin_name": "Elisa Mul",
"linkedin_slug": "elisa-mul-51a82b225",
"confidence_score": 0.51,
"match_signals": [
"strong_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
}
],
"requires_manual_review": true,
"auto_merged": false,
"reviewed": false,
"review_notes": null,
"annotation_date": "2026-01-12T10:17:25.900512+00:00",
"annotation_script": "annotate_match_candidates.py"
},
"profile_classification": {
"primary_classification": "human",
"confidence": 0.95,
"indicators": [
{
"type": "wcms_user",
"reason": "Registered user in heritage CMS system"
}
],
"reasoning": "WCMS user profile - registered heritage sector CMS user"
},
"data_sources": [
"wcms"
],
"extraction_metadata": {
"extraction_agent": "migrate_wcms_users.py",
"extraction_date": "2026-01-11T17:12:41.262552+00:00",
"source_file": "users/user_114604.json",
"source_system": "WCMS",
"schema_version": "1.0.0"
},
"migration_metadata": {
"original_wcms_file": "users/user_114604.json",
"original_user_id": "114604",
"migrated_at": "2026-01-11T17:12:41.262576+00:00",
"migration_script": "migrate_wcms_users.py",
"migration_version": "1.0"
}
}

View file

@ -0,0 +1,216 @@
{
"ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_ESTELLE-PRETORIUS-b93d153b",
"ppid_type": "ID",
"ppid_components": {
"type": "ID",
"first_location": "XX-XX-XXX",
"first_date": "XXXX",
"last_location": "XX-XX-XXX",
"last_date": "XXXX",
"name_tokens": [
"ESTELLE",
"PRETORIUS"
],
"collision_uuid": "b93d153b"
},
"name": "Estelle Pretorius",
"birth_date": {
"edtf": "XXXX",
"precision": "unknown",
"note": "Not available from WCMS"
},
"is_living": true,
"is_anonymous": false,
"wcms_identifiers": {
"user_id": "279423",
"username": "estellepretori…",
"username_url": "/user/279423",
"abs_id": "110.1064820",
"crm_id": "4c155a50-0f2b-ee11-8160-f5e4c0714e07"
},
"contact_details": {
"email": "estellepretorius60@gmail.com",
"email_domain": "gmail.com"
},
"wcms_activity": {
"status": "Active",
"roles": [],
"registered_since": "di 25-07-2023 - 19:18",
"last_access": "1 jaar 5 maanden ago",
"operations": [
{
"text": "Bewerken",
"url": "/user/279423/edit?destination=/admin/people%3Fpage%3D2375"
},
{
"text": "Rollen",
"url": "/user/279423/roles?destination=/admin/people%3Fpage%3D2375"
}
]
},
"entity_resolution": {
"potential_linkedin_matches": 2,
"wikipedia_url": null,
"match_candidates": [
{
"linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_ESTELLE-PRETORIUS",
"linkedin_name": "Estelle Pretorius",
"linkedin_slug": "estelle-pretorius-bb9b43156",
"confidence_score": 0.6,
"match_signals": [
"exact_name_match"
],
"requires_review": true,
"reviewed": true,
"review_decision": "match",
"reviewed_by": "reviewer",
"reviewed_at": "2026-01-13T12:40:16.261773+00:00"
},
{
"linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_ERNAMARIE-PRETORIUS",
"linkedin_name": {
"full_name": "Erna-Marié Pretorius",
"display_name": "Erna-Marié Pretorius",
"name_romanized": null,
"name_tokens": [
"ERNAMARIE",
"PRETORIUS"
],
"source": "linkedin_profile"
},
"linkedin_slug": "erna-marié-pretorius-30470142",
"confidence_score": 0.51,
"match_signals": [
"strong_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
}
],
"requires_manual_review": true,
"auto_merged": false,
"reviewed": false,
"review_notes": null,
"annotation_date": "2026-01-12T10:17:25.474704+00:00",
"annotation_script": "annotate_match_candidates.py",
"resolved": true,
"resolved_linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_ESTELLE-PRETORIUS",
"resolved_linkedin_slug": "estelle-pretorius-bb9b43156",
"resolution_confidence": 0.65,
"resolution_signals": [
"email_name_parts",
"exact_name_match",
"email_birth_year"
],
"resolution_decision": "match",
"resolved_by": "reviewer",
"resolved_at": "2026-01-13T12:40:16.261773+00:00",
"merge_timestamp": "2026-01-15T10:49:18.621569+00:00",
"merge_script": "merge_reviewed_profiles.py"
},
"profile_classification": {
"primary_classification": "human",
"confidence": 0.95,
"indicators": [
{
"type": "wcms_user",
"reason": "Registered user in heritage CMS system"
}
],
"reasoning": "WCMS user profile - registered heritage sector CMS user"
},
"data_sources": [
"wcms",
"linkedin"
],
"extraction_metadata": {
"extraction_agent": "migrate_wcms_resume.py",
"extraction_date": "2026-01-11T21:20:19.714097+00:00",
"source_file": "users/user_279423.json",
"source_system": "WCMS",
"schema_version": "1.0.0"
},
"migration_metadata": {
"original_wcms_file": "users/user_279423.json",
"original_user_id": "279423",
"migrated_at": "2026-01-11T21:20:19.714109+00:00",
"migration_script": "migrate_wcms_resume.py",
"migration_version": "2.0"
},
"profile_data": {
"headline": "Head of Professional Services at Die Erfenisstigting / The Heritage Foundation",
"linkedin_url": "https://www.linkedin.com/in/estelle-pretorius-bb9b43156"
},
"affiliations": [
{
"custodian_name": "Die Erfenisstigting _ The Heritage Foundation",
"custodian_slug": "die-erfenisstigting-the-heritage-foundation",
"role_title": "Head of Professional Services at Die Erfenisstigting / The Heritage Foundation",
"affiliation_provenance": {
"source": "LinkedIn company people page",
"source_url": "https://www.linkedin.com/in/estelle-pretorius-bb9b43156",
"retrieved_on": "2025-12-14T23:00:50.090000+00:00",
"retrieval_agent": "extract_persons_with_provenance.py"
}
}
],
"heritage_relevance": {
"is_heritage_relevant": true,
"heritage_types": [],
"rationale": "Identified as staff at Die Erfenisstigting _ The Heritage Foundation"
},
"web_claims": [
{
"claim_type": "linkedin_url",
"claim_value": "https://www.linkedin.com/in/estelle-pretorius-bb9b43156",
"source_url": "https://www.linkedin.com/company/die-erfenisstigting-the-heritage-foundation/people/",
"retrieved_on": "2025-12-14T23:00:50.090000+00:00",
"statement_created_at": "2026-01-09T22:40:48.271848+00:00",
"source_archived_at": "2025-12-14T23:00:50.090000+00:00",
"xpath": "/html[1]/head[1]/meta[1]/meta[2]/meta[3]/meta[4]/meta[5]/meta[6]/meta[7]/meta[8]/meta[9]/meta[10]/meta[11]/meta[12]/meta[13]/meta[14]/link[1]/link[2]/link[3]/link[4]/link[5]/link[6]/link[7]/meta[15]/meta[16]/meta[17]/meta[18]/meta[19]/meta[20]/meta[21]/meta[22]/meta[23]/meta[24]/meta[25]/meta[26]/link[8]/link[9]/link[10]/link[11]/link[12]/meta[27]/meta[28]/meta[29]/meta[30]/meta[31]/meta[32]/meta[33]/meta[34]/meta[35]/meta[36]/meta[37]/meta[38]/meta[39]/meta[40]/meta[41]/meta[42]/meta[43]/meta[44]/meta[45]/meta[46]/meta[47]/meta[48]/meta[49]/meta[50]/meta[51]/meta[52]/meta[53]/meta[54]/meta[55]/meta[56]/meta[57]/meta[58]/meta[59]/meta[60]/meta[61]/meta[62]/meta[63]/meta[64]/meta[65]/meta[66]/meta[67]/meta[68]/meta[69]/meta[70]/meta[71]/meta[72]/meta[73]/meta[74]/meta[75]/meta[76]/meta[77]/meta[78]/meta[79]/meta[80]/meta[81]/meta[82]/meta[83]/meta[84]/meta[85]/meta[86]/meta[87]/meta[88]/meta[89]/meta[90]/meta[91]/meta[92]/meta[93]/meta[94]/meta[95]/meta[96]/meta[97]/meta[98]/meta[99]/meta[100]/meta[101]/meta[102]/meta[103]/meta[104]/meta[105]/meta[106]/meta[107]/meta[108]/meta[109]/meta[110]/meta[111]/meta[112]/meta[113]/meta[114]/meta[115]/meta[116]/meta[117]/meta[118]/meta[119]/meta[120]/meta[121]/meta[122]/meta[123]/meta[124]/meta[125]/meta[126]/meta[127]/meta[128]/meta[129]/meta[130]/meta[131]/meta[132]/meta[133]/meta[134]/meta[135]/meta[136]/meta[137]/meta[138]/meta[139]/meta[140]/meta[141]/link[13]/link[14]/meta[142]/meta[143]/link[15]/link[16]/link[17]/link[18]/link[19]/link[20]/link[21]/link[22]/link[23]/link[24]/link[25]/link[26]/link[27]/link[28]/link[29]/link[30]/link[31]/link[32]/link[33]/link[34]/link[35]/link[36]/link[37]/link[38]/link[39]/link[40]/link[41]/link[42]/link[43]/link[44]/link[45]/link[46]/link[47]/link[48]/link[49]/link[50]/link[51]/link[52]/link[53]/link[54]/body[1]/img[1]/img[2]/img[3]/img[4]/img[5]/img[6]/img[7]/img[8]/img[9]/img[10]/img[11]/img[12]/img[13]/img[14]/img[15]/img[16]/img[17]/img[18]/div[27]/header[2]/div[31]/div[61]/div[62]/div[64]/div[65]/div[66]/div[86]/main[1]/div[87]/section[2]/div[88]/div[123]/div[124]/div[125]/div[173]/div[174]/div[175]/ul[6]/li[33]/div[176]/li[34]/div[187]/li[35]/div[201]/li[36]/div[212]/li[37]/div[226]/section[8]/img[32]/div[227]/div[228]/div[229]/a[25]",
"html_file": "/Volumes/KINGSTON/data/glam/data/custodian/person/affiliated/manual/(16) Die Erfenisstigting _ The Heritage Foundation_ People _ LinkedIn.html",
"xpath_match_score": 1.0,
"retrieval_agent": "extract_persons_with_provenance.py"
},
{
"claim_type": "full_name",
"claim_value": "Estelle Pretorius",
"source_url": "https://www.linkedin.com/company/die-erfenisstigting-the-heritage-foundation/people/",
"retrieved_on": "2025-12-14T23:00:50.090000+00:00",
"statement_created_at": "2026-01-09T22:40:48.271874+00:00",
"source_archived_at": "2025-12-14T23:00:50.090000+00:00",
"xpath": "/html[1]/head[1]/meta[1]/meta[2]/meta[3]/meta[4]/meta[5]/meta[6]/meta[7]/meta[8]/meta[9]/meta[10]/meta[11]/meta[12]/meta[13]/meta[14]/link[1]/link[2]/link[3]/link[4]/link[5]/link[6]/link[7]/meta[15]/meta[16]/meta[17]/meta[18]/meta[19]/meta[20]/meta[21]/meta[22]/meta[23]/meta[24]/meta[25]/meta[26]/link[8]/link[9]/link[10]/link[11]/link[12]/meta[27]/meta[28]/meta[29]/meta[30]/meta[31]/meta[32]/meta[33]/meta[34]/meta[35]/meta[36]/meta[37]/meta[38]/meta[39]/meta[40]/meta[41]/meta[42]/meta[43]/meta[44]/meta[45]/meta[46]/meta[47]/meta[48]/meta[49]/meta[50]/meta[51]/meta[52]/meta[53]/meta[54]/meta[55]/meta[56]/meta[57]/meta[58]/meta[59]/meta[60]/meta[61]/meta[62]/meta[63]/meta[64]/meta[65]/meta[66]/meta[67]/meta[68]/meta[69]/meta[70]/meta[71]/meta[72]/meta[73]/meta[74]/meta[75]/meta[76]/meta[77]/meta[78]/meta[79]/meta[80]/meta[81]/meta[82]/meta[83]/meta[84]/meta[85]/meta[86]/meta[87]/meta[88]/meta[89]/meta[90]/meta[91]/meta[92]/meta[93]/meta[94]/meta[95]/meta[96]/meta[97]/meta[98]/meta[99]/meta[100]/meta[101]/meta[102]/meta[103]/meta[104]/meta[105]/meta[106]/meta[107]/meta[108]/meta[109]/meta[110]/meta[111]/meta[112]/meta[113]/meta[114]/meta[115]/meta[116]/meta[117]/meta[118]/meta[119]/meta[120]/meta[121]/meta[122]/meta[123]/meta[124]/meta[125]/meta[126]/meta[127]/meta[128]/meta[129]/meta[130]/meta[131]/meta[132]/meta[133]/meta[134]/meta[135]/meta[136]/meta[137]/meta[138]/meta[139]/meta[140]/meta[141]/link[13]/link[14]/meta[142]/meta[143]/link[15]/link[16]/link[17]/link[18]/link[19]/link[20]/link[21]/link[22]/link[23]/link[24]/link[25]/link[26]/link[27]/link[28]/link[29]/link[30]/link[31]/link[32]/link[33]/link[34]/link[35]/link[36]/link[37]/link[38]/link[39]/link[40]/link[41]/link[42]/link[43]/link[44]/link[45]/link[46]/link[47]/link[48]/link[49]/link[50]/link[51]/link[52]/link[53]/link[54]/body[1]/img[1]/img[2]/img[3]/img[4]/img[5]/img[6]/img[7]/img[8]/img[9]/img[10]/img[11]/img[12]/img[13]/img[14]/img[15]/img[16]/img[17]/img[18]/div[27]/header[2]/div[31]/div[61]/div[62]/div[64]/div[65]/div[66]/div[86]/main[1]/div[87]/section[2]/div[88]/div[123]/div[124]/div[125]/div[173]/div[174]/div[175]/ul[6]/li[33]/div[176]/li[34]/div[187]/li[35]/div[201]/li[36]/div[212]/li[37]/div[226]/section[8]/img[32]/div[227]/div[228]/div[229]/a[25]/img[33]/@alt",
"html_file": "/Volumes/KINGSTON/data/glam/data/custodian/person/affiliated/manual/(16) Die Erfenisstigting _ The Heritage Foundation_ People _ LinkedIn.html",
"xpath_match_score": 1.0,
"retrieval_agent": "extract_persons_with_provenance.py"
},
{
"claim_type": "connection_degree",
"claim_value": "3rd+",
"source_url": "https://www.linkedin.com/company/die-erfenisstigting-the-heritage-foundation/people/",
"retrieved_on": "2025-12-14T23:00:50.090000+00:00",
"statement_created_at": "2026-01-09T22:40:48.271948+00:00",
"source_archived_at": "2025-12-14T23:00:50.090000+00:00",
"xpath": "/html[1]/head[1]/meta[1]/meta[2]/meta[3]/meta[4]/meta[5]/meta[6]/meta[7]/meta[8]/meta[9]/meta[10]/meta[11]/meta[12]/meta[13]/meta[14]/link[1]/link[2]/link[3]/link[4]/link[5]/link[6]/link[7]/meta[15]/meta[16]/meta[17]/meta[18]/meta[19]/meta[20]/meta[21]/meta[22]/meta[23]/meta[24]/meta[25]/meta[26]/link[8]/link[9]/link[10]/link[11]/link[12]/meta[27]/meta[28]/meta[29]/meta[30]/meta[31]/meta[32]/meta[33]/meta[34]/meta[35]/meta[36]/meta[37]/meta[38]/meta[39]/meta[40]/meta[41]/meta[42]/meta[43]/meta[44]/meta[45]/meta[46]/meta[47]/meta[48]/meta[49]/meta[50]/meta[51]/meta[52]/meta[53]/meta[54]/meta[55]/meta[56]/meta[57]/meta[58]/meta[59]/meta[60]/meta[61]/meta[62]/meta[63]/meta[64]/meta[65]/meta[66]/meta[67]/meta[68]/meta[69]/meta[70]/meta[71]/meta[72]/meta[73]/meta[74]/meta[75]/meta[76]/meta[77]/meta[78]/meta[79]/meta[80]/meta[81]/meta[82]/meta[83]/meta[84]/meta[85]/meta[86]/meta[87]/meta[88]/meta[89]/meta[90]/meta[91]/meta[92]/meta[93]/meta[94]/meta[95]/meta[96]/meta[97]/meta[98]/meta[99]/meta[100]/meta[101]/meta[102]/meta[103]/meta[104]/meta[105]/meta[106]/meta[107]/meta[108]/meta[109]/meta[110]/meta[111]/meta[112]/meta[113]/meta[114]/meta[115]/meta[116]/meta[117]/meta[118]/meta[119]/meta[120]/meta[121]/meta[122]/meta[123]/meta[124]/meta[125]/meta[126]/meta[127]/meta[128]/meta[129]/meta[130]/meta[131]/meta[132]/meta[133]/meta[134]/meta[135]/meta[136]/meta[137]/meta[138]/meta[139]/meta[140]/meta[141]/link[13]/link[14]/meta[142]/meta[143]/link[15]/link[16]/link[17]/link[18]/link[19]/link[20]/link[21]/link[22]/link[23]/link[24]/link[25]/link[26]/link[27]/link[28]/link[29]/link[30]/link[31]/link[32]/link[33]/link[34]/link[35]/link[36]/link[37]/link[38]/link[39]/link[40]/link[41]/link[42]/link[43]/link[44]/link[45]/link[46]/link[47]/link[48]/link[49]/link[50]/link[51]/link[52]/link[53]/link[54]/body[1]/img[1]/img[2]/img[3]/img[4]/img[5]/img[6]/img[7]/img[8]/img[9]/img[10]/img[11]/img[12]/img[13]/img[14]/img[15]/img[16]/img[17]/img[18]/div[27]/header[2]/div[31]/div[61]/div[62]/div[64]/div[65]/div[66]/div[86]/main[1]/div[87]/section[2]/div[88]/div[123]/div[124]/div[125]/div[173]/div[174]/div[175]/ul[6]/li[33]/div[176]/li[34]/div[187]/li[35]/div[201]/li[36]/div[212]/li[37]/div[226]/section[8]/img[32]/div[227]/div[228]/div[229]/div[230]/div[233]",
"html_file": "/Volumes/KINGSTON/data/glam/data/custodian/person/affiliated/manual/(16) Die Erfenisstigting _ The Heritage Foundation_ People _ LinkedIn.html",
"xpath_match_score": 1.0,
"retrieval_agent": "extract_persons_with_provenance.py"
},
{
"claim_type": "headline",
"claim_value": "Head of Professional Services at Die Erfenisstigting / The Heritage Foundation",
"source_url": "https://www.linkedin.com/company/die-erfenisstigting-the-heritage-foundation/people/",
"retrieved_on": "2025-12-14T23:00:50.090000+00:00",
"statement_created_at": "2026-01-09T22:40:48.271981+00:00",
"source_archived_at": "2025-12-14T23:00:50.090000+00:00",
"xpath": "/html[1]/head[1]/meta[1]/meta[2]/meta[3]/meta[4]/meta[5]/meta[6]/meta[7]/meta[8]/meta[9]/meta[10]/meta[11]/meta[12]/meta[13]/meta[14]/link[1]/link[2]/link[3]/link[4]/link[5]/link[6]/link[7]/meta[15]/meta[16]/meta[17]/meta[18]/meta[19]/meta[20]/meta[21]/meta[22]/meta[23]/meta[24]/meta[25]/meta[26]/link[8]/link[9]/link[10]/link[11]/link[12]/meta[27]/meta[28]/meta[29]/meta[30]/meta[31]/meta[32]/meta[33]/meta[34]/meta[35]/meta[36]/meta[37]/meta[38]/meta[39]/meta[40]/meta[41]/meta[42]/meta[43]/meta[44]/meta[45]/meta[46]/meta[47]/meta[48]/meta[49]/meta[50]/meta[51]/meta[52]/meta[53]/meta[54]/meta[55]/meta[56]/meta[57]/meta[58]/meta[59]/meta[60]/meta[61]/meta[62]/meta[63]/meta[64]/meta[65]/meta[66]/meta[67]/meta[68]/meta[69]/meta[70]/meta[71]/meta[72]/meta[73]/meta[74]/meta[75]/meta[76]/meta[77]/meta[78]/meta[79]/meta[80]/meta[81]/meta[82]/meta[83]/meta[84]/meta[85]/meta[86]/meta[87]/meta[88]/meta[89]/meta[90]/meta[91]/meta[92]/meta[93]/meta[94]/meta[95]/meta[96]/meta[97]/meta[98]/meta[99]/meta[100]/meta[101]/meta[102]/meta[103]/meta[104]/meta[105]/meta[106]/meta[107]/meta[108]/meta[109]/meta[110]/meta[111]/meta[112]/meta[113]/meta[114]/meta[115]/meta[116]/meta[117]/meta[118]/meta[119]/meta[120]/meta[121]/meta[122]/meta[123]/meta[124]/meta[125]/meta[126]/meta[127]/meta[128]/meta[129]/meta[130]/meta[131]/meta[132]/meta[133]/meta[134]/meta[135]/meta[136]/meta[137]/meta[138]/meta[139]/meta[140]/meta[141]/link[13]/link[14]/meta[142]/meta[143]/link[15]/link[16]/link[17]/link[18]/link[19]/link[20]/link[21]/link[22]/link[23]/link[24]/link[25]/link[26]/link[27]/link[28]/link[29]/link[30]/link[31]/link[32]/link[33]/link[34]/link[35]/link[36]/link[37]/link[38]/link[39]/link[40]/link[41]/link[42]/link[43]/link[44]/link[45]/link[46]/link[47]/link[48]/link[49]/link[50]/link[51]/link[52]/link[53]/link[54]/body[1]/img[1]/img[2]/img[3]/img[4]/img[5]/img[6]/img[7]/img[8]/img[9]/img[10]/img[11]/img[12]/img[13]/img[14]/img[15]/img[16]/img[17]/img[18]/div[27]/header[2]/div[31]/div[61]/div[62]/div[64]/div[65]/div[66]/div[86]/main[1]/div[87]/section[2]/div[88]/div[123]/div[124]/div[125]/div[173]/div[174]/div[175]/ul[6]/li[33]/div[176]/li[34]/div[187]/li[35]/div[201]/li[36]/div[212]/li[37]/div[226]/section[8]/img[32]/div[227]/div[228]/div[229]/div[230]/div[234]/div[235]/div[236]",
"html_file": "/Volumes/KINGSTON/data/glam/data/custodian/person/affiliated/manual/(16) Die Erfenisstigting _ The Heritage Foundation_ People _ LinkedIn.html",
"xpath_match_score": 1.0,
"retrieval_agent": "extract_persons_with_provenance.py"
}
],
"linkedin_slug": "estelle-pretorius-bb9b43156"
}

View file

@ -0,0 +1,128 @@
{
"ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_ESTELLE-PRETORIUS-bb8c06ad",
"ppid_type": "ID",
"ppid_components": {
"type": "ID",
"first_location": "XX-XX-XXX",
"first_date": "XXXX",
"last_location": "XX-XX-XXX",
"last_date": "XXXX",
"name_tokens": [
"ESTELLE",
"PRETORIUS"
],
"collision_uuid": "bb8c06ad"
},
"name": "Estelle Pretorius",
"birth_date": {
"edtf": "XXXX",
"precision": "unknown",
"note": "Not available from WCMS"
},
"is_living": true,
"is_anonymous": false,
"wcms_identifiers": {
"user_id": "279423",
"username": "estellepretori…",
"username_url": "/user/279423",
"abs_id": "110.1064820",
"crm_id": "4c155a50-0f2b-ee11-8160-f5e4c0714e07"
},
"contact_details": {
"email": "estellepretorius60@gmail.com",
"email_domain": "gmail.com"
},
"wcms_activity": {
"status": "Active",
"roles": [],
"registered_since": "di 25-07-2023 - 19:18",
"last_access": "1 jaar 5 maanden ago",
"operations": [
{
"text": "Bewerken",
"url": "/user/279423/edit?destination=/admin/people%3Fpage%3D2375"
},
{
"text": "Rollen",
"url": "/user/279423/roles?destination=/admin/people%3Fpage%3D2375"
}
]
},
"entity_resolution": {
"potential_linkedin_matches": 2,
"wikipedia_url": null,
"match_candidates": [
{
"linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_ESTELLE-PRETORIUS",
"linkedin_name": "Estelle Pretorius",
"linkedin_slug": "estelle-pretorius-bb9b43156",
"confidence_score": 0.6,
"match_signals": [
"exact_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
},
{
"linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_ERNAMARIE-PRETORIUS",
"linkedin_name": {
"full_name": "Erna-Marié Pretorius",
"display_name": "Erna-Marié Pretorius",
"name_romanized": null,
"name_tokens": [
"ERNAMARIE",
"PRETORIUS"
],
"source": "linkedin_profile"
},
"linkedin_slug": "erna-marié-pretorius-30470142",
"confidence_score": 0.51,
"match_signals": [
"strong_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
}
],
"requires_manual_review": true,
"auto_merged": false,
"reviewed": false,
"review_notes": null,
"annotation_date": "2026-01-12T10:17:24.820782+00:00",
"annotation_script": "annotate_match_candidates.py"
},
"profile_classification": {
"primary_classification": "human",
"confidence": 0.95,
"indicators": [
{
"type": "wcms_user",
"reason": "Registered user in heritage CMS system"
}
],
"reasoning": "WCMS user profile - registered heritage sector CMS user"
},
"data_sources": [
"wcms"
],
"extraction_metadata": {
"extraction_agent": "migrate_wcms_resume.py",
"extraction_date": "2026-01-11T20:53:32.070370+00:00",
"source_file": "users/user_279423.json",
"source_system": "WCMS",
"schema_version": "1.0.0"
},
"migration_metadata": {
"original_wcms_file": "users/user_279423.json",
"original_user_id": "279423",
"migrated_at": "2026-01-11T20:53:32.070390+00:00",
"migration_script": "migrate_wcms_resume.py",
"migration_version": "2.0"
}
}

View file

@ -0,0 +1,464 @@
{
"ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_FLOORTJE-TUINSTRA-79069b72",
"ppid_type": "ID",
"ppid_components": {
"type": "ID",
"first_location": "XX-XX-XXX",
"first_date": "XXXX",
"last_location": "XX-XX-XXX",
"last_date": "XXXX",
"name_tokens": [
"FLOORTJE",
"TUINSTRA"
],
"collision_uuid": "79069b72"
},
"name": "Floortje Tuinstra",
"birth_date": {
"edtf": "XXXX",
"precision": "unknown",
"note": "Not available from WCMS"
},
"is_living": true,
"is_anonymous": false,
"wcms_identifiers": {
"user_id": "160097",
"username": "TuinstraHUA",
"username_url": "/user/160097",
"abs_id": "110.301720",
"crm_id": "A7D6A658-E671-E211-B615-005056930016"
},
"contact_details": {
"email": "f.tuinstra@hetutrechtsarchief.nl",
"email_domain": "hetutrechtsarchief.nl"
},
"wcms_activity": {
"status": "Active",
"roles": [],
"registered_since": "vr 08-02-2013 - 12:54",
"last_access": "12 jaar 10 maanden ago",
"operations": [
{
"text": "Bewerken",
"url": "/en/user/160097/edit?destination=/admin/people%3Fpage%3D4466"
},
{
"text": "Rollen",
"url": "/user/160097/roles?destination=/admin/people%3Fpage%3D4466"
}
]
},
"entity_resolution": {
"potential_linkedin_matches": 2,
"match_candidates": [
{
"linkedin_ppid": "ID_NL-ZH-LEI_196X_NL-UT-UTR_XXXX_FLOORTJE-TUINSTRA",
"linkedin_name": {
"full_name": "Floortje Tuinstra",
"display_name": "Floortje Tuinstra",
"name_romanized": null,
"name_tokens": [
"FLOORTJE",
"TUINSTRA"
],
"source": "linkedin_profile"
},
"linkedin_slug": "floortje-tuinstra-52941531",
"confidence_score": 0.6,
"match_signals": [
"exact_name_match"
],
"requires_review": true,
"reviewed": true,
"review_decision": "match",
"reviewed_by": "reviewer",
"reviewed_at": "2026-01-13T12:43:31.354705+00:00"
},
{
"linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_FLOORTJE-TUINSTRA",
"linkedin_name": "Floortje Tuinstra",
"linkedin_slug": "floortje-tuinstra-52941531",
"confidence_score": 0.6,
"match_signals": [
"exact_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
}
],
"requires_manual_review": true,
"auto_merged": false,
"reviewed": false,
"review_notes": null,
"annotation_date": "2026-01-12T10:17:24.958610+00:00",
"annotation_script": "annotate_match_candidates.py",
"resolved": true,
"resolved_linkedin_ppid": "ID_NL-ZH-LEI_196X_NL-UT-UTR_XXXX_FLOORTJE-TUINSTRA",
"resolved_linkedin_slug": "floortje-tuinstra-52941531",
"resolution_confidence": 0.65,
"resolution_signals": [
"email_name_parts",
"exact_name_match",
"email_institution",
"email_institutional"
],
"resolution_decision": "match",
"resolved_by": "reviewer",
"resolved_at": "2026-01-13T12:43:31.354705+00:00",
"merge_timestamp": "2026-01-15T10:49:18.566164+00:00",
"merge_script": "merge_reviewed_profiles.py"
},
"profile_classification": {
"primary_classification": "human",
"confidence": 0.95,
"indicators": [
{
"type": "wcms_user",
"reason": "Registered user in heritage CMS system"
}
],
"reasoning": "WCMS user profile - registered heritage sector CMS user"
},
"data_sources": [
"wcms",
"linkedin"
],
"extraction_metadata": {
"extraction_agent": "migrate_wcms_users.py",
"extraction_date": "2026-01-11T17:07:34.373050+00:00",
"source_file": "users/user_160097.json",
"source_system": "WCMS",
"schema_version": "1.0.0"
},
"migration_metadata": {
"original_wcms_file": "users/user_160097.json",
"original_user_id": "160097",
"migrated_at": "2026-01-11T17:07:34.373065+00:00",
"migration_script": "migrate_wcms_users.py",
"migration_version": "1.0"
},
"profile_data": {
"headline": "Coordinator Team Verwerven & Metadateren\nHet Utrechts Archief",
"location": "The Randstad, Netherlands (NL)",
"about": "Total Experience: 27 years",
"experience": [
{
"title": "Coordinator Team Verwerven Metadateren, Afdeling Inspectie En Collectiebeheer",
"company": "Het Utrechts Archief",
"date_range": "Feb 2021 - Present",
"location": "Utrecht, Netherlands"
},
{
"title": "Vakspecialist Acquisitie En Inventarisatie",
"company": "Het Utrechts Archief",
"date_range": "Jan 2001 - Present"
},
{
"title": "Redacteur Jaarboek Oud-Utrecht",
"company": "Vereniging Oud-Utrecht",
"date_range": "Oct 2021 - Present"
},
{
"title": "Raad Van Toezicht",
"company": "Stichting De Inktpot",
"date_range": "Sep 2020 - Present",
"location": "Utrecht, Netherlands"
},
{
"title": "Medewerker Educatie",
"company": "Het Utrechts Archief",
"date_range": "Sep 1999 - Sep 2008"
},
{
"title": "Redacteur",
"company": "Archievenblad",
"date_range": "Oct 2011 - Dec 2019"
},
{
"title": "Inventarisator Archief Nieuw Burgerlijk Wetboek",
"company": "Ministerie van Justitie en Veiligheid",
"date_range": "Jan 1999 - Dec 2001",
"location": "The Hague, South Holland, Netherlands"
},
{
"title": "Stagiaire Archivistiek A",
"company": "Streekarchiefdienst Hollands-Midden",
"date_range": "Jan 1997 - Jan 1998",
"location": "Gouda, South Holland, Netherlands"
}
],
"education": [
{
"degree": "Archivistiek A",
"institution": "Rijksarchiefschool, Den Haag",
"date_range": "1997 - 1998"
},
{
"degree": "drs., Geschiedenis",
"institution": "Rijksuniversiteit Leiden",
"date_range": "1990 - 1996"
},
{
"degree": "VWO",
"institution": "Rijnlands Lyceum Wassenaar",
"date_range": "1984 - 1990"
}
],
"profile_image_url": "https://static.licdn.com/aero-v1/sc/h/9c8pery4andzj6ohjkjp54ma2",
"linkedin_url": "https://www.linkedin.com/in/floortje-tuinstra-52941531"
},
"affiliations": [
{
"custodian_name": "Het Utrechts Archief",
"custodian_slug": "het-utrechts-archief",
"ghcid": "NL-UT-UTR-A-HUA",
"role_title": "Coordinator Team Verwerven & Metadateren",
"department": "Afdeling Inspectie en Collectiebeheer",
"heritage_relevant": true,
"heritage_type": "A",
"current": true,
"start_date": "2021-02",
"observed_on": "2025-12-14T11:22:09Z",
"source_url": "https://www.linkedin.com/in/floortje-tuinstra-52941531"
}
],
"heritage_relevance": {
"is_heritage_relevant": true,
"heritage_types": [
"A"
],
"rationale": "Senior archivist with 27+ year career in Dutch archival sector. Currently Coordinator Team Acquisition & Metadata at Het Utrechts Archief (since 2021, HUA since 2001). Trained at Rijksarchiefschool (Archivistiek A). Former 8-year editorial role at Archievenblad (major Dutch archival publication). Current editor Jaarboek Oud-Utrecht and Raad van Toezicht member at Stichting De Inktpot. Expert in archival acquisition, inventorying, and metadata practices. Contributed to KIA Community discussions on archival theory and practice."
},
"web_claims": [
{
"claim_type": "full_name",
"claim_value": "Floortje Tuinstra",
"source_url": "https://www.linkedin.com/in/floortje-tuinstra-52941531",
"retrieved_on": "2025-12-14T11:22:09Z",
"retrieval_agent": "linkedin_html_parser",
"content_hash": {
"algorithm": "sha256",
"value": "sha256-MqmiDzXMh8HSPafVsVX1C/W2YpzR7nB2hc+LJCAHWmI=",
"scope": "extracted_text"
},
"text_fragment": "#:~:text=Floortje%20Tuinstra",
"w3c_selectors": [
{
"type": "TextQuoteSelector",
"exact": "Floortje Tuinstra",
"prefix": "",
"suffix": ""
}
],
"prov": {
"wasDerivedFrom": "https://www.linkedin.com/in/floortje-tuinstra-52941531"
},
"verification": {
"status": "verified",
"last_verified": "2025-12-28T18:39:01.663303+00:00"
}
},
{
"claim_type": "role_title",
"claim_value": "Coordinator Team Verwerven & Metadateren Het Utrechts Archief",
"source_url": "https://www.linkedin.com/in/floortje-tuinstra-52941531",
"retrieved_on": "2025-12-14T11:22:09Z",
"retrieval_agent": "linkedin_html_parser",
"content_hash": {
"algorithm": "sha256",
"value": "sha256-yrpM8qikoJK7H2tb7xC3axGmx92Li8kZtGzQuHlPVyg=",
"scope": "extracted_text"
},
"text_fragment": "#:~:text=Coordinator%20Team%20Verwerven%20%26%20Metadateren%20Het%20Utrechts%20Archief",
"w3c_selectors": [
{
"type": "TextQuoteSelector",
"exact": "Coordinator Team Verwerven & Metadateren Het Utrechts Archief",
"prefix": "null",
"suffix": "null"
}
],
"prov": {
"wasDerivedFrom": "https://www.linkedin.com/in/floortje-tuinstra-52941531"
},
"verification": {
"status": "verified",
"last_verified": "2025-12-28T18:39:03.290096+00:00"
}
},
{
"claim_type": "position",
"claim_value": "Coordinator Team Verwerven & Metadateren at Het Utrechts Archief since February 2021",
"source_url": "https://www.linkedin.com/in/floortje-tuinstra-52941531",
"retrieved_on": "2026-01-10T00:00:00Z",
"retrieval_agent": "opencode-claude-sonnet-4",
"text_fragment": "Coordinator Team Verwerven Metadateren, Afdeling Inspectie En Collectiebeheer at Het Utrechts Archief, Feb 2021 - Present",
"verification": {
"status": "verified",
"last_verified": "2026-01-10T00:00:00Z"
}
},
{
"claim_type": "position",
"claim_value": "Vakspecialist Acquisitie en Inventarisatie at Het Utrechts Archief since January 2001 - 24+ years continuous employment",
"source_url": "https://www.linkedin.com/in/floortje-tuinstra-52941531",
"retrieved_on": "2026-01-10T00:00:00Z",
"retrieval_agent": "opencode-claude-sonnet-4",
"text_fragment": "Vakspecialist Acquisitie En Inventarisatie at Het Utrechts Archief, Jan 2001 - Present",
"verification": {
"status": "verified",
"last_verified": "2026-01-10T00:00:00Z"
}
},
{
"claim_type": "position",
"claim_value": "Redacteur Jaarboek Oud-Utrecht at Vereniging Oud-Utrecht since October 2021",
"source_url": "https://www.linkedin.com/in/floortje-tuinstra-52941531",
"retrieved_on": "2026-01-10T00:00:00Z",
"retrieval_agent": "opencode-claude-sonnet-4",
"text_fragment": "Redacteur Jaarboek Oud-Utrecht at Vereniging Oud-Utrecht (Current), Oct 2021 - Present",
"verification": {
"status": "verified",
"last_verified": "2026-01-10T00:00:00Z"
}
},
{
"claim_type": "position",
"claim_value": "Raad van Toezicht (Supervisory Board) at Stichting De Inktpot since September 2020",
"source_url": "https://www.linkedin.com/in/floortje-tuinstra-52941531",
"retrieved_on": "2026-01-10T00:00:00Z",
"retrieval_agent": "opencode-claude-sonnet-4",
"text_fragment": "Raad Van Toezicht at Stichting De Inktpot (Current), Sep 2020 - Present, Utrecht, Netherlands",
"verification": {
"status": "verified",
"last_verified": "2026-01-10T00:00:00Z"
}
},
{
"claim_type": "position",
"claim_value": "Redacteur at Archievenblad from October 2011 to December 2019 - 8+ years",
"source_url": "https://www.linkedin.com/in/floortje-tuinstra-52941531",
"retrieved_on": "2026-01-10T00:00:00Z",
"retrieval_agent": "opencode-claude-sonnet-4",
"text_fragment": "Redacteur at Archievenblad, Oct 2011 - Dec 2019",
"verification": {
"status": "verified",
"last_verified": "2026-01-10T00:00:00Z"
}
},
{
"claim_type": "position",
"claim_value": "Medewerker Educatie at Het Utrechts Archief from September 1999 to September 2008 - 9 years",
"source_url": "https://www.linkedin.com/in/floortje-tuinstra-52941531",
"retrieved_on": "2026-01-10T00:00:00Z",
"retrieval_agent": "opencode-claude-sonnet-4",
"text_fragment": "Medewerker Educatie at Het Utrechts Archief, Sep 1999 - Sep 2008",
"verification": {
"status": "verified",
"last_verified": "2026-01-10T00:00:00Z"
}
},
{
"claim_type": "position",
"claim_value": "Inventarisator Archief Nieuw Burgerlijk Wetboek at Ministerie van Justitie en Veiligheid from January 1999 to December 2001",
"source_url": "https://www.linkedin.com/in/floortje-tuinstra-52941531",
"retrieved_on": "2026-01-10T00:00:00Z",
"retrieval_agent": "opencode-claude-sonnet-4",
"text_fragment": "Inventarisator Archief Nieuw Burgerlijk Wetboek at Ministerie van Justitie en Veiligheid, Jan 1999 - Dec 2001, The Hague",
"verification": {
"status": "verified",
"last_verified": "2026-01-10T00:00:00Z"
}
},
{
"claim_type": "education",
"claim_value": "Archivistiek A at Rijksarchiefschool, Den Haag (1997-1998)",
"source_url": "https://www.linkedin.com/in/floortje-tuinstra-52941531",
"retrieved_on": "2026-01-10T00:00:00Z",
"retrieval_agent": "opencode-claude-sonnet-4",
"text_fragment": "Archivistiek A at Rijksarchiefschool, Den Haag, 1997 - 1998",
"verification": {
"status": "verified",
"last_verified": "2026-01-10T00:00:00Z"
}
},
{
"claim_type": "education",
"claim_value": "drs. Geschiedenis at Rijksuniversiteit Leiden (1990-1996)",
"source_url": "https://www.linkedin.com/in/floortje-tuinstra-52941531",
"retrieved_on": "2026-01-10T00:00:00Z",
"retrieval_agent": "opencode-claude-sonnet-4",
"text_fragment": "drs., Geschiedenis at Rijksuniversiteit Leiden, 1990 - 1996",
"verification": {
"status": "verified",
"last_verified": "2026-01-10T00:00:00Z"
}
},
{
"claim_type": "professional_philosophy",
"claim_value": "Advocates for archival articles that tell engaging stories with a narrative arc, rather than being mere 'toppled card catalogs' of facts. Emphasizes the importance of structuring archival writing with build-up to significant moments.",
"source_url": "https://oud-utrecht.nl/nieuws/1167-een-artikel-moet-geen-omgevallen-kaartenbak-zijn",
"retrieved_on": "2026-01-10T00:00:00Z",
"retrieval_agent": "opencode-claude-sonnet-4",
"text_fragment": "Een artikel moet geen omgevallen kaartenbak zijn",
"verification": {
"status": "verified",
"last_verified": "2026-01-10T00:00:00Z"
},
"note": "Interview as editor of Jaarboek Oud-Utrecht on editorial principles for archival publications"
},
{
"claim_type": "organizational_contribution",
"claim_value": "As Redacteur of Jaarboek Oud-Utrecht, applies editorial criteria focused on narrative quality: articles must have clear structure with build-up, and tell stories that engage readers rather than simply listing archival facts",
"source_url": "https://oud-utrecht.nl/nieuws/1167-een-artikel-moet-geen-omgevallen-kaartenbak-zijn",
"retrieved_on": "2026-01-10T00:00:00Z",
"retrieval_agent": "opencode-claude-sonnet-4",
"text_fragment": "Een artikel moet geen omgevallen kaartenbak zijn",
"verification": {
"status": "verified",
"last_verified": "2026-01-10T00:00:00Z"
}
},
{
"claim_type": "professional_contribution",
"claim_value": "Active contributor to KIA (Kennisnetwerk Informatie en Archief) Community discussions on archival theory and practice",
"source_url": "https://kiacommunity.nl/thoughts/17757",
"retrieved_on": "2026-01-10T00:00:00Z",
"retrieval_agent": "opencode-claude-sonnet-4",
"text_fragment": "KIA Community contribution by Floortje Tuinstra",
"verification": {
"status": "verified",
"last_verified": "2026-01-10T00:00:00Z"
}
},
{
"claim_type": "media_appearance",
"claim_value": "Appeared on RTV Utrecht Bureau Hengeveld program regarding discovery of centuries-old documents, demonstrating expertise in archival acquisition and provenance research",
"source_url": "https://www.rtvutrecht.nl/bureau-hengeveld/3888957/eigenaar-van-eeuwenoude-documenten-gezocht",
"retrieved_on": "2026-01-10T00:00:00Z",
"retrieval_agent": "opencode-claude-sonnet-4",
"text_fragment": "Bureau Hengeveld - Eigenaar van eeuwenoude documenten gezocht",
"verification": {
"status": "verified",
"last_verified": "2026-01-10T00:00:00Z"
},
"note": "Media appearance as archival expert on regional TV"
},
{
"claim_type": "expertise",
"claim_value": "27+ years experience in Dutch archival sector spanning acquisition, inventorying, metadata, education, and editorial work",
"source_url": "https://www.linkedin.com/in/floortje-tuinstra-52941531",
"retrieved_on": "2026-01-10T00:00:00Z",
"retrieval_agent": "opencode-claude-sonnet-4",
"text_fragment": "Total Experience: 27 years",
"verification": {
"status": "verified",
"last_verified": "2026-01-10T00:00:00Z"
}
}
],
"linkedin_slug": "floortje-tuinstra-52941531"
}

View file

@ -0,0 +1,105 @@
{
"ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_FRANS-VAN-DEN-BEDEM",
"ppid_type": "ID",
"ppid_components": {
"type": "ID",
"first_location": "XX-XX-XXX",
"first_date": "XXXX",
"last_location": "XX-XX-XXX",
"last_date": "XXXX",
"name_tokens": [
"FRANS",
"VAN",
"DEN",
"BEDEM"
]
},
"name": "Frans van den Bedem",
"birth_date": {
"edtf": "XXXX",
"precision": "unknown",
"note": "Not available from WCMS"
},
"is_living": true,
"is_anonymous": false,
"wcms_identifiers": {
"user_id": "213353",
"username": "fvandenbedem",
"username_url": "/user/213353",
"abs_id": "110.986153",
"crm_id": "db09308e-88e3-e911-811a-bda2ade00f92"
},
"contact_details": {
"email": "fvandenbedemm@live.com",
"email_domain": "live.com"
},
"wcms_activity": {
"status": "Active",
"roles": [],
"registered_since": "ma 30-09-2019 - 15:45",
"last_access": "4 jaar 6 maanden ago",
"operations": [
{
"text": "Bewerken",
"url": "/user/213353/edit?destination=/admin/people%3Fpage%3D3647"
},
{
"text": "Rollen",
"url": "/user/213353/roles?destination=/admin/people%3Fpage%3D3647"
}
]
},
"entity_resolution": {
"potential_linkedin_matches": 1,
"match_candidates": [
{
"linkedin_ppid": "ID_NL-OV-ENS_196X_XX-XX-XXX_XXXX_FRANS-BEDEM",
"linkedin_name": "Frans Van Den Bedem",
"linkedin_slug": "frans-van-den-bedem-a4511312",
"confidence_score": 0.6,
"match_signals": [
"exact_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
}
],
"requires_manual_review": true,
"auto_merged": false,
"reviewed": false,
"review_notes": null,
"annotation_date": "2026-01-12T10:17:25.591879+00:00",
"annotation_script": "annotate_match_candidates.py"
},
"profile_classification": {
"primary_classification": "human",
"confidence": 0.95,
"indicators": [
{
"type": "wcms_user",
"reason": "Registered user in heritage CMS system"
}
],
"reasoning": "WCMS user profile - registered heritage sector CMS user"
},
"data_sources": [
"wcms"
],
"extraction_metadata": {
"extraction_agent": "migrate_wcms_users.py",
"extraction_date": "2026-01-11T17:16:05.470199+00:00",
"source_file": "users/user_213353.json",
"source_system": "WCMS",
"schema_version": "1.0.0"
},
"migration_metadata": {
"original_wcms_file": "users/user_213353.json",
"original_user_id": "213353",
"migrated_at": "2026-01-11T17:16:05.470208+00:00",
"migration_script": "migrate_wcms_users.py",
"migration_version": "1.0"
}
}

View file

@ -0,0 +1,106 @@
{
"ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_GERDA-ZEEKANT-ba3c3d58",
"ppid_type": "ID",
"ppid_components": {
"type": "ID",
"first_location": "XX-XX-XXX",
"first_date": "XXXX",
"last_location": "XX-XX-XXX",
"last_date": "XXXX",
"name_tokens": [
"GERDA",
"ZEEKANT"
],
"collision_uuid": "ba3c3d58"
},
"name": "gerda zeekant",
"birth_date": {
"edtf": "XXXX",
"precision": "unknown",
"note": "Not available from WCMS"
},
"is_living": true,
"is_anonymous": false,
"wcms_identifiers": {
"user_id": "239607",
"username": "gerda.zeekant",
"username_url": "/user/239607",
"abs_id": "110.1018889",
"crm_id": "d8b5afa5-93bf-eb11-813f-a83009ef7e1b"
},
"contact_details": {
"email": "gerdazeekant@live.com",
"email_domain": "live.com"
},
"wcms_activity": {
"status": "Active",
"roles": [
"Beta gebruiker"
],
"registered_since": "vr 28-05-2021 - 11:04",
"last_access": "1 maand ago",
"operations": [
{
"text": "Bewerken",
"url": "/user/239607/edit?destination=/admin/people%3Fpage%3D3151"
},
{
"text": "Rollen",
"url": "/user/239607/roles?destination=/admin/people%3Fpage%3D3151"
}
]
},
"entity_resolution": {
"potential_linkedin_matches": 1,
"match_candidates": [
{
"linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_GERDA-ZEEKANT",
"linkedin_name": "Gerda Zeekant",
"linkedin_slug": "gerda-zeekant-7b600a15a",
"confidence_score": 0.6,
"match_signals": [
"exact_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
}
],
"requires_manual_review": true,
"auto_merged": false,
"reviewed": false,
"review_notes": null,
"annotation_date": "2026-01-12T10:17:24.770832+00:00",
"annotation_script": "annotate_match_candidates.py"
},
"profile_classification": {
"primary_classification": "human",
"confidence": 0.95,
"indicators": [
{
"type": "wcms_user",
"reason": "Registered user in heritage CMS system"
}
],
"reasoning": "WCMS user profile - registered heritage sector CMS user"
},
"data_sources": [
"wcms"
],
"extraction_metadata": {
"extraction_agent": "migrate_wcms_users.py",
"extraction_date": "2026-01-11T17:38:49.045942+00:00",
"source_file": "users/user_239607.json",
"source_system": "WCMS",
"schema_version": "1.0.0"
},
"migration_metadata": {
"original_wcms_file": "users/user_239607.json",
"original_user_id": "239607",
"migrated_at": "2026-01-11T17:38:49.045998+00:00",
"migration_script": "migrate_wcms_users.py",
"migration_version": "1.0"
}
}

View file

@ -0,0 +1,169 @@
{
"ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_GERRIT-VISSER-b10f429b",
"ppid_type": "ID",
"ppid_components": {
"type": "ID",
"first_location": "XX-XX-XXX",
"first_date": "XXXX",
"last_location": "XX-XX-XXX",
"last_date": "XXXX",
"name_tokens": [
"GERRIT",
"VISSER"
],
"collision_uuid": "b10f429b"
},
"name": "Gerrit Visser",
"birth_date": {
"edtf": "XXXX",
"precision": "unknown",
"note": "Not available from WCMS"
},
"is_living": true,
"is_anonymous": false,
"wcms_identifiers": {
"user_id": "219251",
"username": "gerritvi",
"username_url": "/user/219251",
"abs_id": "110.993468",
"crm_id": "ed1c4bd1-7262-ea11-8125-d99ad8ceec4f"
},
"contact_details": {
"email": "gerritv48@outlook.com",
"email_domain": "outlook.com"
},
"wcms_activity": {
"status": "Active",
"roles": [],
"registered_since": "di 10-03-2020 - 02:59",
"last_access": "1 jaar 4 maanden ago",
"operations": [
{
"text": "Bewerken",
"url": "/user/219251/edit?destination=/admin/people%3Fpage%3D3539"
},
{
"text": "Rollen",
"url": "/user/219251/roles?destination=/admin/people%3Fpage%3D3539"
}
]
},
"entity_resolution": {
"potential_linkedin_matches": 5,
"match_candidates": [
{
"linkedin_ppid": "ID_NL-GR-GRO_194X_NL-ZH-TH_XXXX_GERRIT-VISSER",
"linkedin_name": "Gerrit Visser",
"linkedin_slug": "gerritvisser",
"confidence_score": 0.6,
"match_signals": [
"exact_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
},
{
"linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_GERRIT-VISSER",
"linkedin_name": {
"full_name": "Gerrit Visser",
"display_name": "Gerrit Visser",
"name_romanized": null,
"name_tokens": [
"GERRIT",
"VISSER"
],
"source": "linkedin_profile"
},
"linkedin_slug": "gerritvisser",
"confidence_score": 0.6,
"match_signals": [
"exact_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
},
{
"linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_GERINE-VISSER",
"linkedin_name": "Gerine Visser",
"linkedin_slug": "gerine",
"confidence_score": 0.51,
"match_signals": [
"strong_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
},
{
"linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_GUUSTA-VISSER",
"linkedin_name": "Guusta Visser",
"linkedin_slug": "guustavisser",
"confidence_score": 0.51,
"match_signals": [
"strong_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
},
{
"linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_GERBEN-VISSER",
"linkedin_name": "Gerben Visser",
"linkedin_slug": "gerben-visser-48a17045",
"confidence_score": 0.51,
"match_signals": [
"strong_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
}
],
"requires_manual_review": true,
"auto_merged": false,
"reviewed": false,
"review_notes": null,
"annotation_date": "2026-01-12T10:17:27.813165+00:00",
"annotation_script": "annotate_match_candidates.py"
},
"profile_classification": {
"primary_classification": "human",
"confidence": 0.95,
"indicators": [
{
"type": "wcms_user",
"reason": "Registered user in heritage CMS system"
}
],
"reasoning": "WCMS user profile - registered heritage sector CMS user"
},
"data_sources": [
"wcms"
],
"extraction_metadata": {
"extraction_agent": "migrate_wcms_users.py",
"extraction_date": "2026-01-11T17:17:55.175741+00:00",
"source_file": "users/user_219251.json",
"source_system": "WCMS",
"schema_version": "1.0.0"
},
"migration_metadata": {
"original_wcms_file": "users/user_219251.json",
"original_user_id": "219251",
"migrated_at": "2026-01-11T17:17:55.175755+00:00",
"migration_script": "migrate_wcms_users.py",
"migration_version": "1.0"
}
}

View file

@ -0,0 +1,163 @@
{
"ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_HARM-PETER-DE-VRIES-e6cc2d8c",
"ppid_type": "ID",
"ppid_components": {
"type": "ID",
"first_location": "XX-XX-XXX",
"first_date": "XXXX",
"last_location": "XX-XX-XXX",
"last_date": "XXXX",
"name_tokens": [
"HARM",
"PETER",
"DE",
"VRIES"
],
"collision_uuid": "e6cc2d8c"
},
"name": "Harm Peter De Vries",
"birth_date": {
"edtf": "XXXX",
"precision": "unknown",
"note": "Not available from WCMS"
},
"is_living": true,
"is_anonymous": false,
"wcms_identifiers": {
"user_id": "279762",
"username": "harmpeterdevries",
"username_url": "/user/279762",
"abs_id": "110.1065171",
"crm_id": "1580e3b9-6830-ee11-8160-f5e4c0714e07"
},
"contact_details": {
"email": "hpdevries@hotmail.com",
"email_domain": "hotmail.com"
},
"wcms_activity": {
"status": "Active",
"roles": [],
"registered_since": "di 01-08-2023 - 14:41",
"last_access": "2 jaar 5 maanden ago",
"operations": [
{
"text": "Bewerken",
"url": "/user/279762/edit?destination=/admin/people%3Fpage%3D2368"
},
{
"text": "Rollen",
"url": "/user/279762/roles?destination=/admin/people%3Fpage%3D2368"
}
]
},
"entity_resolution": {
"potential_linkedin_matches": 5,
"wikipedia_url": null,
"match_candidates": [
{
"linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_HARM-PETER-DE-VRIES",
"linkedin_name": "Harm Peter de Vries",
"linkedin_slug": "harm-peter-de-vries-8656218a",
"confidence_score": 0.6,
"match_signals": [
"exact_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
},
{
"linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_HENK-DE-VRIES",
"linkedin_name": "Henk de Vries",
"linkedin_slug": "henk-de-vries-7890507",
"confidence_score": 0.51,
"match_signals": [
"strong_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
},
{
"linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_HENNIE-DE-VRIES",
"linkedin_name": "Hennie De Vries",
"linkedin_slug": "hennie-de-vries-a9401730",
"confidence_score": 0.51,
"match_signals": [
"strong_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
},
{
"linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_HANS-VRIES",
"linkedin_name": "Hans de Vries",
"linkedin_slug": "hans-de-vries-2a603a12",
"confidence_score": 0.51,
"match_signals": [
"strong_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
},
{
"linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_HUGO-DE-VRIES",
"linkedin_name": "Hugo de Vries",
"linkedin_slug": "hugolodocusdevries",
"confidence_score": 0.51,
"match_signals": [
"strong_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
}
],
"requires_manual_review": true,
"auto_merged": false,
"reviewed": false,
"review_notes": null,
"annotation_date": "2026-01-12T10:17:25.822219+00:00",
"annotation_script": "annotate_match_candidates.py"
},
"profile_classification": {
"primary_classification": "human",
"confidence": 0.95,
"indicators": [
{
"type": "wcms_user",
"reason": "Registered user in heritage CMS system"
}
],
"reasoning": "WCMS user profile - registered heritage sector CMS user"
},
"data_sources": [
"wcms"
],
"extraction_metadata": {
"extraction_agent": "migrate_wcms_resume.py",
"extraction_date": "2026-01-11T20:53:43.034015+00:00",
"source_file": "users/user_279762.json",
"source_system": "WCMS",
"schema_version": "1.0.0"
},
"migration_metadata": {
"original_wcms_file": "users/user_279762.json",
"original_user_id": "279762",
"migrated_at": "2026-01-11T20:53:43.034037+00:00",
"migration_script": "migrate_wcms_resume.py",
"migration_version": "2.0"
}
}

View file

@ -0,0 +1,104 @@
{
"ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_HEDWIG-SLEURINK-78259049",
"ppid_type": "ID",
"ppid_components": {
"type": "ID",
"first_location": "XX-XX-XXX",
"first_date": "XXXX",
"last_location": "XX-XX-XXX",
"last_date": "XXXX",
"name_tokens": [
"HEDWIG",
"SLEURINK"
],
"collision_uuid": "78259049"
},
"name": "Hedwig Sleurink",
"birth_date": {
"edtf": "XXXX",
"precision": "unknown",
"note": "Not available from WCMS"
},
"is_living": true,
"is_anonymous": false,
"wcms_identifiers": {
"user_id": "260442",
"username": "HedwigSleurink",
"username_url": "/user/260442",
"abs_id": "110.1043438",
"crm_id": "c2814348-7925-ed11-814f-839be4df6757"
},
"contact_details": {
"email": "hedwigsleurink@live.nl",
"email_domain": "live.nl"
},
"wcms_activity": {
"status": "Active",
"roles": [],
"registered_since": "vr 26-08-2022 - 21:57",
"last_access": "3 jaar 4 maanden ago",
"operations": [
{
"text": "Bewerken",
"url": "/user/260442/edit?destination=/admin/people%3Fpage%3D2748"
},
{
"text": "Rollen",
"url": "/user/260442/roles?destination=/admin/people%3Fpage%3D2748"
}
]
},
"entity_resolution": {
"potential_linkedin_matches": 1,
"match_candidates": [
{
"linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_HEDWIG-SLEURINK",
"linkedin_name": "Hedwig Sleurink",
"linkedin_slug": "hedwig-sleurink-bb0a16201",
"confidence_score": 0.6,
"match_signals": [
"exact_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
}
],
"requires_manual_review": true,
"auto_merged": false,
"reviewed": false,
"review_notes": null,
"annotation_date": "2026-01-12T10:17:24.864690+00:00",
"annotation_script": "annotate_match_candidates.py"
},
"profile_classification": {
"primary_classification": "human",
"confidence": 0.95,
"indicators": [
{
"type": "wcms_user",
"reason": "Registered user in heritage CMS system"
}
],
"reasoning": "WCMS user profile - registered heritage sector CMS user"
},
"data_sources": [
"wcms"
],
"extraction_metadata": {
"extraction_agent": "migrate_wcms_users.py",
"extraction_date": "2026-01-11T17:49:11.739741+00:00",
"source_file": "users/user_260442.json",
"source_system": "WCMS",
"schema_version": "1.0.0"
},
"migration_metadata": {
"original_wcms_file": "users/user_260442.json",
"original_user_id": "260442",
"migrated_at": "2026-01-11T17:49:11.739751+00:00",
"migration_script": "migrate_wcms_users.py",
"migration_version": "1.0"
}
}

View file

@ -0,0 +1,385 @@
{
"ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_INA-DIJKMAN-a7d1c92d",
"ppid_type": "ID",
"ppid_components": {
"type": "ID",
"first_location": "XX-XX-XXX",
"first_date": "XXXX",
"last_location": "XX-XX-XXX",
"last_date": "XXXX",
"name_tokens": [
"INA",
"DIJKMAN"
],
"collision_uuid": "a7d1c92d"
},
"name": "Ina Dijkman",
"birth_date": {
"edtf": "XXXX",
"precision": "unknown",
"note": "Not available from WCMS"
},
"is_living": true,
"is_anonymous": false,
"wcms_identifiers": {
"user_id": "229438",
"username": "Wilhelmina Dijkman",
"username_url": "/user/229438",
"abs_id": "110.1006412",
"crm_id": "7dddd3be-153f-eb11-8135-e9d8a6aacc90"
},
"contact_details": {
"email": "idijkman1@gmail.com",
"email_domain": "gmail.com"
},
"wcms_activity": {
"status": "Active",
"roles": [],
"registered_since": "di 15-12-2020 - 21:40",
"last_access": "5 jaar ago",
"operations": [
{
"text": "Bewerken",
"url": "/user/229438/edit?destination=/admin/people%3Fpage%3D3350"
},
{
"text": "Rollen",
"url": "/user/229438/roles?destination=/admin/people%3Fpage%3D3350"
}
]
},
"entity_resolution": {
"potential_linkedin_matches": 3,
"match_candidates": [
{
"linkedin_ppid": "ID_NL-ZH-LEI_197X_NL-ZH-TH_XXXX_INA-DIJKMAN",
"linkedin_name": "Ina Dijkman",
"linkedin_slug": "ina-dijkman-aa2a4115",
"confidence_score": 0.6,
"match_signals": [
"exact_name_match"
],
"requires_review": true,
"reviewed": true,
"review_decision": "match",
"reviewed_by": "reviewer",
"reviewed_at": "2026-01-13T11:23:38.729091+00:00"
},
{
"linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_INA-DIJKMAN",
"linkedin_name": {
"full_name": "Ina Dijkman",
"display_name": "Ina Dijkman",
"name_romanized": null,
"name_tokens": [
"INA",
"DIJKMAN"
],
"source": "linkedin_profile"
},
"linkedin_slug": "ina-dijkman-aa2a4115",
"confidence_score": 0.6,
"match_signals": [
"exact_name_match"
],
"requires_review": true,
"reviewed": true,
"review_decision": "match",
"reviewed_by": "reviewer",
"reviewed_at": "2026-01-13T12:35:20.997617+00:00"
},
{
"linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_INGEBORG-DIJKMAN",
"linkedin_name": "Ingeborg Dijkman",
"linkedin_slug": "ingeborg-dijkman-abb8b03",
"confidence_score": 0.51,
"match_signals": [
"strong_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
}
],
"requires_manual_review": true,
"auto_merged": false,
"reviewed": false,
"review_notes": null,
"annotation_date": "2026-01-12T10:17:24.861354+00:00",
"annotation_script": "annotate_match_candidates.py",
"resolved": true,
"resolved_linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_INA-DIJKMAN",
"resolved_linkedin_slug": "ina-dijkman-aa2a4115",
"resolution_confidence": 0.65,
"resolution_signals": [
"email_name_parts",
"exact_name_match"
],
"resolution_decision": "match",
"resolved_by": "reviewer",
"resolved_at": "2026-01-13T12:35:20.997617+00:00",
"merge_timestamp": "2026-01-15T10:49:18.547217+00:00",
"merge_script": "merge_reviewed_profiles.py"
},
"profile_classification": {
"primary_classification": "human",
"confidence": 0.95,
"indicators": [
{
"type": "wcms_user",
"reason": "Registered user in heritage CMS system"
}
],
"reasoning": "WCMS user profile - registered heritage sector CMS user"
},
"data_sources": [
"wcms",
"linkedin"
],
"extraction_metadata": {
"extraction_agent": "migrate_wcms_users.py",
"extraction_date": "2026-01-11T17:34:06.042520+00:00",
"source_file": "users/user_229438.json",
"source_system": "WCMS",
"schema_version": "1.0.0"
},
"migration_metadata": {
"original_wcms_file": "users/user_229438.json",
"original_user_id": "229438",
"migrated_at": "2026-01-11T17:34:06.042527+00:00",
"migration_script": "migrate_wcms_users.py",
"migration_version": "1.0"
},
"profile_data": {
"headline": "Hoofd Dienstverlening bij Nationaal Archief",
"location": "The Hague, South Holland, Netherlands (NL)",
"about": "Total Experience: 24 years and 7 months",
"experience": [
{
"title": "Hoofd Dienstverlening",
"company": "Nationaal Archief",
"date_range": "Jan 2013 - Present • 12 years and 9 months"
},
{
"title": "Hoofd Afdeling Digitale Archiefdiensten A.i.",
"company": "Nationaal Archief",
"date_range": "Jan 2019 - Oct 2020 • 1 year and 9 months",
"location": "Den Haag en omgeving, Nederland"
},
{
"title": "Stuurgroep Netwerk Oorlogsbronnen",
"company": "Netwerk Oorlogsbronnen",
"date_range": "Sep 2016 - Jul 2024 • 7 years and 10 months",
"location": "Amsterdam en omgeving, Nederland"
},
{
"title": "Voorzitter Domeingroep Zichtbaar",
"company": "Netwerk Digitaal Erfgoed",
"date_range": "May 2019 - Jun 2020 • 1 year and 1 month",
"location": "Den Haag en omgeving, Nederland"
},
{
"title": "Kwartiermaker Het Flevolands Archief",
"company": "Nieuw Land Erfgoedcentrum",
"date_range": "Oct 2016 - Jul 2017 • 9 months",
"location": "Lelystad, Provincie Flevoland, Nederland",
"description": "Klus afgerond, Het Flevolands Archief is een feit."
},
{
"title": "Waarnemend Hoofd Dienstverlening",
"company": "Nationaal Archief",
"date_range": "Jun 2011 - Jan 2013 • 1 year and 7 months",
"location": "Den Haag"
},
{
"title": "Programmamanager Webteam",
"company": "Nationaal Archief",
"date_range": "May 2009 - Jan 2013 • 3 years and 8 months",
"location": "Het programma is samengevoegd met de afdeling Dienstverlening"
},
{
"title": "Medewerker Presentatie",
"company": "nationaal archief",
"date_range": "Jan 2007 - Jan 2008 • 1 year"
}
],
"education": [
{
"degree": "Kunstgeschiedenis",
"institution": "Leiden University",
"date_range": "1996 - 2002 • 6 years"
}
],
"profile_image_url": "https://media.licdn.com/dms/image/v2/C4D03AQHpMjgdL3isIQ/profile-displayphoto-shrink_200_200/profile-displayphoto-shrink_200_200/0/1516574333634?e=2147483647&v=beta&t=7PWimh3YhOMwJXONyWt8bD5PeVX8da63HlQPXTCrz-s",
"linkedin_url": "https://www.linkedin.com/in/ina-dijkman-aa2a4115"
},
"affiliations": [
{
"custodian_name": "Nationaal Archief",
"custodian_slug": "nationaal-archief",
"role_title": "Hoofd Dienstverlening bij Nationaal Archief",
"affiliation_provenance": {
"source": "LinkedIn company people page",
"source_url": "https://www.linkedin.com/in/ina-dijkman-aa2a4115",
"retrieved_on": "2025-12-10T15:04:12.140000+00:00",
"retrieval_agent": "extract_persons_with_provenance.py"
}
}
],
"heritage_relevance": {
"is_heritage_relevant": true,
"heritage_types": [
"A"
],
"rationale": "Identified as staff at Nationaal Archief"
},
"web_claims": [
{
"claim_type": "legal_name_initials",
"claim_value": "W.E. (Ina) Dijkman",
"source_url": "https://www.nationaalarchief.nl/over-het-na/organisatie/directie-en-afdelingen",
"retrieved_on": "2026-01-10T00:15:00Z",
"retrieval_agent": "opencode-claude-sonnet-4",
"text_fragment": "Mw. W.E. (Ina) Dijkman info@nationaalarchief.nl 070 - 3315400",
"verification": {
"status": "verified",
"last_verified": "2026-01-10T00:15:00Z"
}
},
{
"claim_type": "position",
"claim_value": "Hoofd Dienstverlening, Nationaal Archief",
"source_url": "https://www.nationaalarchief.nl/over-het-na/organisatie/directie-en-afdelingen",
"retrieved_on": "2026-01-10T00:15:00Z",
"retrieval_agent": "opencode-claude-sonnet-4",
"text_fragment": "Mw. W.E. (Ina) Dijkman info@nationaalarchief.nl 070 - 3315400",
"verification": {
"status": "verified",
"last_verified": "2026-01-10T00:15:00Z"
}
},
{
"claim_type": "role_description",
"claim_value": "Manages public services making almost 1000 years of Dutch history accessible",
"source_url": "https://thecuriousnetwork.nl/nieuws/tpost/2bt8yf8ct1-wat-is-de-inhoud-interessant-maar-ook-wa",
"retrieved_on": "2026-01-10T00:15:00Z",
"retrieval_agent": "opencode-claude-sonnet-4",
"text_fragment": "Duizend jaar geschiedenis Ina Dijkman zorgt dat bijna duizend jaar geschiedenis van Nederland toegankelijk is voor iedereen die dat wil. Als zij instapt als deelnemer van Trading Places is zij bij het Nationaal Archief leidinggevende van de afdeling Dienstverlening: het contact naar de buitenwereld.",
"verification": {
"status": "verified",
"last_verified": "2026-01-10T00:15:00Z"
}
},
{
"claim_type": "professional_development",
"claim_value": "Participated in Trading Places program, temporarily served at Kadaster as afdelingshoofd",
"source_url": "https://thecuriousnetwork.nl/nieuws/tpost/2bt8yf8ct1-wat-is-de-inhoud-interessant-maar-ook-wa",
"retrieved_on": "2026-01-10T00:15:00Z",
"retrieval_agent": "opencode-claude-sonnet-4",
"text_fragment": "Kadaster Bij de start van het programma matcht Ina Dijkman zichzelf met een leidinggevende rol bij het Kadaster. Hier wordt zij voor een half jaar afdelingshoofd van een afdeling die zich bezighoudt met het de ontwikkeling product en proces innovatie op het terrein van geo- en vastgoedinformatie.",
"verification": {
"status": "verified",
"last_verified": "2026-01-10T00:15:00Z"
}
},
{
"claim_type": "achievement",
"claim_value": "Established Het Flevolands Archief as Kwartiermaker",
"source_url": "https://www.linkedin.com/in/ina-dijkman-aa2a4115",
"retrieved_on": "2026-01-10T00:15:00Z",
"retrieval_agent": "opencode-claude-sonnet-4",
"text_fragment": "Klus afgerond, Het Flevolands Archief is een feit.",
"verification": {
"status": "verified",
"last_verified": "2026-01-10T00:15:00Z"
}
},
{
"claim_type": "event_speaker",
"claim_value": "Opened event at Nationaal Archief on innovative and inspiring entrepreneurship",
"source_url": "https://www.multicultureelnetwerkrijksambtenaren.nl/event/innovatief-en-inspirerend-ondernemerschap/",
"retrieved_on": "2026-01-10T00:15:00Z",
"retrieval_agent": "opencode-claude-sonnet-4",
"text_fragment": "14.30 uur Opening en Welkomstwoord door het Hoofd van de afdeling Dienstverlening van het Nationaal Archief, Ina Dijkman",
"verification": {
"status": "verified",
"last_verified": "2026-01-10T00:15:00Z"
}
},
{
"claim_type": "project_involvement",
"claim_value": "Key role in CABR (Centraal Archief Bijzondere Rechtspleging) online access project - largest war archive in Netherlands",
"source_url": "https://www.linkedin.com/posts/ina-dijkman-aa2a4115_vandaag-in-dagblad-trouw-een-redactioneel-activity-7232653918210588673-uj3m",
"retrieved_on": "2026-01-10T00:15:00Z",
"retrieval_agent": "opencode-claude-sonnet-4",
"text_fragment": "Met verschillende stappen en veel overleg werken we samen aan een bijzonder en belangrijk project. Informatie die voor velen belangrijk is zo goed mogelijk toegankelijk maken.",
"verification": {
"status": "verified",
"last_verified": "2026-01-10T00:15:00Z"
}
},
{
"claim_type": "education",
"claim_value": "Kunstgeschiedenis (Art History), Leiden University, 1996-2002",
"source_url": "https://www.linkedin.com/in/ina-dijkman-aa2a4115",
"retrieved_on": "2026-01-10T00:15:00Z",
"retrieval_agent": "opencode-claude-sonnet-4",
"text_fragment": "Kunstgeschiedenis, Leiden University, 1996 - 2002 • 6 years",
"verification": {
"status": "verified",
"last_verified": "2026-01-10T00:15:00Z"
}
},
{
"claim_type": "linkedin_url",
"claim_value": "https://www.linkedin.com/in/ina-dijkman-aa2a4115",
"source_url": "https://www.linkedin.com/company/nationaal-archief/people/",
"retrieved_on": "2025-12-10T15:04:12.140000+00:00",
"statement_created_at": "2026-01-09T22:46:01.399518+00:00",
"source_archived_at": "2025-12-10T15:04:12.140000+00:00",
"xpath": "/html[1]/head[1]/meta[1]/meta[2]/meta[3]/meta[4]/meta[5]/meta[6]/meta[7]/meta[8]/meta[9]/meta[10]/meta[11]/meta[12]/meta[13]/meta[14]/link[1]/link[2]/link[3]/link[4]/link[5]/link[6]/link[7]/meta[15]/meta[16]/meta[17]/meta[18]/meta[19]/meta[20]/meta[21]/meta[22]/meta[23]/meta[24]/meta[25]/meta[26]/link[8]/link[9]/link[10]/link[11]/link[12]/meta[27]/meta[28]/meta[29]/meta[30]/meta[31]/meta[32]/meta[33]/meta[34]/meta[35]/meta[36]/meta[37]/meta[38]/meta[39]/meta[40]/meta[41]/meta[42]/meta[43]/meta[44]/meta[45]/meta[46]/meta[47]/meta[48]/meta[49]/meta[50]/meta[51]/meta[52]/meta[53]/meta[54]/meta[55]/meta[56]/meta[57]/meta[58]/meta[59]/meta[60]/meta[61]/meta[62]/meta[63]/meta[64]/meta[65]/meta[66]/meta[67]/meta[68]/meta[69]/meta[70]/meta[71]/meta[72]/meta[73]/meta[74]/meta[75]/meta[76]/meta[77]/meta[78]/meta[79]/meta[80]/meta[81]/meta[82]/meta[83]/meta[84]/meta[85]/meta[86]/meta[87]/meta[88]/meta[89]/meta[90]/meta[91]/meta[92]/meta[93]/meta[94]/meta[95]/meta[96]/meta[97]/meta[98]/meta[99]/meta[100]/meta[101]/meta[102]/meta[103]/meta[104]/meta[105]/meta[106]/meta[107]/meta[108]/meta[109]/meta[110]/meta[111]/meta[112]/meta[113]/meta[114]/meta[115]/meta[116]/meta[117]/meta[118]/meta[119]/meta[120]/meta[121]/meta[122]/meta[123]/meta[124]/meta[125]/meta[126]/meta[127]/meta[128]/meta[129]/meta[130]/meta[131]/meta[132]/meta[133]/meta[134]/meta[135]/meta[136]/meta[137]/meta[138]/meta[139]/meta[140]/meta[141]/link[13]/link[14]/meta[142]/meta[143]/link[15]/link[16]/link[17]/link[18]/link[19]/link[20]/link[21]/link[22]/link[23]/link[24]/link[25]/link[26]/link[27]/link[28]/link[29]/link[30]/link[31]/link[32]/link[33]/link[34]/link[35]/link[36]/link[37]/link[38]/link[39]/link[40]/link[41]/link[42]/link[43]/link[44]/body[1]/img[1]/img[2]/img[3]/img[4]/img[5]/img[6]/img[7]/img[8]/img[9]/img[10]/img[11]/img[12]/img[13]/img[14]/img[15]/img[16]/img[17]/img[18]/img[19]/div[28]/header[2]/div[32]/div[62]/div[63]/div[65]/div[66]/div[67]/div[87]/main[1]/div[88]/section[2]/div[124]/div[125]/div[126]/div[174]/div[175]/div[176]/ul[6]/li[33]/div[177]/li[34]/div[189]/li[35]/div[201]/li[36]/div[213]/li[37]/div[225]/li[38]/div[237]/li[39]/div[249]/li[40]/div[261]/li[41]/div[273]/li[42]/div[285]/li[43]/div[297]/li[44]/div[309]/li[45]/div[321]/li[46]/div[333]/li[47]/div[345]/li[48]/div[357]/li[49]/div[369]/li[50]/div[381]/li[51]/div[393]/li[52]/div[405]/li[53]/div[417]/li[54]/div[429]/li[55]/div[441]/li[56]/div[453]/li[57]/div[465]/li[58]/div[477]/li[59]/div[489]/li[60]/div[501]/li[61]/div[513]/li[62]/div[525]/li[63]/div[537]/li[64]/div[549]/li[65]/div[561]/li[66]/div[573]/li[67]/div[585]/li[68]/div[597]/li[69]/div[609]/li[70]/div[621]/li[71]/div[633]/li[72]/div[645]/li[73]/div[657]/li[74]/div[669]/li[75]/div[681]/li[76]/div[693]/li[77]/div[705]/li[78]/div[717]/li[79]/div[729]/li[80]/div[741]/li[81]/div[753]/li[82]/div[765]/li[83]/div[777]/li[84]/div[789]/li[85]/div[801]/li[86]/div[813]/li[87]/div[825]/li[88]/div[837]/li[89]/div[849]/li[90]/div[861]/li[91]/div[873]/li[92]/div[885]/li[93]/div[897]/li[94]/div[909]/li[95]/div[921]/li[96]/div[933]/li[97]/div[945]/li[98]/div[957]/li[99]/div[969]/li[100]/div[981]/li[101]/div[993]/li[102]/div[1005]/li[103]/div[1017]/li[104]/div[1029]/li[105]/div[1041]/li[106]/div[1053]/section[77]/img[170]/div[1054]/div[1055]/div[1056]/a[170]",
"html_file": "/Volumes/KINGSTON/data/glam/data/custodian/person/affiliated/manual/(8) Nationaal Archief_ People _ LinkedIn.html",
"xpath_match_score": 1.0,
"retrieval_agent": "extract_persons_with_provenance.py"
},
{
"claim_type": "full_name",
"claim_value": "Ina Dijkman",
"source_url": "https://www.linkedin.com/company/nationaal-archief/people/",
"retrieved_on": "2025-12-10T15:04:12.140000+00:00",
"statement_created_at": "2026-01-09T22:46:01.399541+00:00",
"source_archived_at": "2025-12-10T15:04:12.140000+00:00",
"xpath": "/html[1]/head[1]/meta[1]/meta[2]/meta[3]/meta[4]/meta[5]/meta[6]/meta[7]/meta[8]/meta[9]/meta[10]/meta[11]/meta[12]/meta[13]/meta[14]/link[1]/link[2]/link[3]/link[4]/link[5]/link[6]/link[7]/meta[15]/meta[16]/meta[17]/meta[18]/meta[19]/meta[20]/meta[21]/meta[22]/meta[23]/meta[24]/meta[25]/meta[26]/link[8]/link[9]/link[10]/link[11]/link[12]/meta[27]/meta[28]/meta[29]/meta[30]/meta[31]/meta[32]/meta[33]/meta[34]/meta[35]/meta[36]/meta[37]/meta[38]/meta[39]/meta[40]/meta[41]/meta[42]/meta[43]/meta[44]/meta[45]/meta[46]/meta[47]/meta[48]/meta[49]/meta[50]/meta[51]/meta[52]/meta[53]/meta[54]/meta[55]/meta[56]/meta[57]/meta[58]/meta[59]/meta[60]/meta[61]/meta[62]/meta[63]/meta[64]/meta[65]/meta[66]/meta[67]/meta[68]/meta[69]/meta[70]/meta[71]/meta[72]/meta[73]/meta[74]/meta[75]/meta[76]/meta[77]/meta[78]/meta[79]/meta[80]/meta[81]/meta[82]/meta[83]/meta[84]/meta[85]/meta[86]/meta[87]/meta[88]/meta[89]/meta[90]/meta[91]/meta[92]/meta[93]/meta[94]/meta[95]/meta[96]/meta[97]/meta[98]/meta[99]/meta[100]/meta[101]/meta[102]/meta[103]/meta[104]/meta[105]/meta[106]/meta[107]/meta[108]/meta[109]/meta[110]/meta[111]/meta[112]/meta[113]/meta[114]/meta[115]/meta[116]/meta[117]/meta[118]/meta[119]/meta[120]/meta[121]/meta[122]/meta[123]/meta[124]/meta[125]/meta[126]/meta[127]/meta[128]/meta[129]/meta[130]/meta[131]/meta[132]/meta[133]/meta[134]/meta[135]/meta[136]/meta[137]/meta[138]/meta[139]/meta[140]/meta[141]/link[13]/link[14]/meta[142]/meta[143]/link[15]/link[16]/link[17]/link[18]/link[19]/link[20]/link[21]/link[22]/link[23]/link[24]/link[25]/link[26]/link[27]/link[28]/link[29]/link[30]/link[31]/link[32]/link[33]/link[34]/link[35]/link[36]/link[37]/link[38]/link[39]/link[40]/link[41]/link[42]/link[43]/link[44]/body[1]/img[1]/img[2]/img[3]/img[4]/img[5]/img[6]/img[7]/img[8]/img[9]/img[10]/img[11]/img[12]/img[13]/img[14]/img[15]/img[16]/img[17]/img[18]/img[19]/div[28]/header[2]/div[32]/div[62]/div[63]/div[65]/div[66]/div[67]/div[87]/main[1]/div[88]/section[2]/div[124]/div[125]/div[126]/div[174]/div[175]/div[176]/ul[6]/li[33]/div[177]/li[34]/div[189]/li[35]/div[201]/li[36]/div[213]/li[37]/div[225]/li[38]/div[237]/li[39]/div[249]/li[40]/div[261]/li[41]/div[273]/li[42]/div[285]/li[43]/div[297]/li[44]/div[309]/li[45]/div[321]/li[46]/div[333]/li[47]/div[345]/li[48]/div[357]/li[49]/div[369]/li[50]/div[381]/li[51]/div[393]/li[52]/div[405]/li[53]/div[417]/li[54]/div[429]/li[55]/div[441]/li[56]/div[453]/li[57]/div[465]/li[58]/div[477]/li[59]/div[489]/li[60]/div[501]/li[61]/div[513]/li[62]/div[525]/li[63]/div[537]/li[64]/div[549]/li[65]/div[561]/li[66]/div[573]/li[67]/div[585]/li[68]/div[597]/li[69]/div[609]/li[70]/div[621]/li[71]/div[633]/li[72]/div[645]/li[73]/div[657]/li[74]/div[669]/li[75]/div[681]/li[76]/div[693]/li[77]/div[705]/li[78]/div[717]/li[79]/div[729]/li[80]/div[741]/li[81]/div[753]/li[82]/div[765]/li[83]/div[777]/li[84]/div[789]/li[85]/div[801]/li[86]/div[813]/li[87]/div[825]/li[88]/div[837]/li[89]/div[849]/li[90]/div[861]/li[91]/div[873]/li[92]/div[885]/li[93]/div[897]/li[94]/div[909]/li[95]/div[921]/li[96]/div[933]/li[97]/div[945]/li[98]/div[957]/li[99]/div[969]/li[100]/div[981]/li[101]/div[993]/li[102]/div[1005]/li[103]/div[1017]/li[104]/div[1029]/li[105]/div[1041]/li[106]/div[1053]/section[77]/img[170]/div[1054]/div[1055]/div[1056]/a[170]/img[171]/@alt",
"html_file": "/Volumes/KINGSTON/data/glam/data/custodian/person/affiliated/manual/(8) Nationaal Archief_ People _ LinkedIn.html",
"xpath_match_score": 1.0,
"retrieval_agent": "extract_persons_with_provenance.py"
},
{
"claim_type": "connection_degree",
"claim_value": "2nd",
"source_url": "https://www.linkedin.com/company/nationaal-archief/people/",
"retrieved_on": "2025-12-10T15:04:12.140000+00:00",
"statement_created_at": "2026-01-09T22:46:01.399610+00:00",
"source_archived_at": "2025-12-10T15:04:12.140000+00:00",
"xpath": "/html[1]/head[1]/meta[1]/meta[2]/meta[3]/meta[4]/meta[5]/meta[6]/meta[7]/meta[8]/meta[9]/meta[10]/meta[11]/meta[12]/meta[13]/meta[14]/link[1]/link[2]/link[3]/link[4]/link[5]/link[6]/link[7]/meta[15]/meta[16]/meta[17]/meta[18]/meta[19]/meta[20]/meta[21]/meta[22]/meta[23]/meta[24]/meta[25]/meta[26]/link[8]/link[9]/link[10]/link[11]/link[12]/meta[27]/meta[28]/meta[29]/meta[30]/meta[31]/meta[32]/meta[33]/meta[34]/meta[35]/meta[36]/meta[37]/meta[38]/meta[39]/meta[40]/meta[41]/meta[42]/meta[43]/meta[44]/meta[45]/meta[46]/meta[47]/meta[48]/meta[49]/meta[50]/meta[51]/meta[52]/meta[53]/meta[54]/meta[55]/meta[56]/meta[57]/meta[58]/meta[59]/meta[60]/meta[61]/meta[62]/meta[63]/meta[64]/meta[65]/meta[66]/meta[67]/meta[68]/meta[69]/meta[70]/meta[71]/meta[72]/meta[73]/meta[74]/meta[75]/meta[76]/meta[77]/meta[78]/meta[79]/meta[80]/meta[81]/meta[82]/meta[83]/meta[84]/meta[85]/meta[86]/meta[87]/meta[88]/meta[89]/meta[90]/meta[91]/meta[92]/meta[93]/meta[94]/meta[95]/meta[96]/meta[97]/meta[98]/meta[99]/meta[100]/meta[101]/meta[102]/meta[103]/meta[104]/meta[105]/meta[106]/meta[107]/meta[108]/meta[109]/meta[110]/meta[111]/meta[112]/meta[113]/meta[114]/meta[115]/meta[116]/meta[117]/meta[118]/meta[119]/meta[120]/meta[121]/meta[122]/meta[123]/meta[124]/meta[125]/meta[126]/meta[127]/meta[128]/meta[129]/meta[130]/meta[131]/meta[132]/meta[133]/meta[134]/meta[135]/meta[136]/meta[137]/meta[138]/meta[139]/meta[140]/meta[141]/link[13]/link[14]/meta[142]/meta[143]/link[15]/link[16]/link[17]/link[18]/link[19]/link[20]/link[21]/link[22]/link[23]/link[24]/link[25]/link[26]/link[27]/link[28]/link[29]/link[30]/link[31]/link[32]/link[33]/link[34]/link[35]/link[36]/link[37]/link[38]/link[39]/link[40]/link[41]/link[42]/link[43]/link[44]/body[1]/img[1]/img[2]/img[3]/img[4]/img[5]/img[6]/img[7]/img[8]/img[9]/img[10]/img[11]/img[12]/img[13]/img[14]/img[15]/img[16]/img[17]/img[18]/img[19]/div[28]/header[2]/div[32]/div[62]/div[63]/div[65]/div[66]/div[67]/div[87]/main[1]/div[88]/section[2]/div[124]/div[125]/div[126]/div[174]/div[175]/div[176]/ul[6]/li[33]/div[177]/li[34]/div[189]/li[35]/div[201]/li[36]/div[213]/li[37]/div[225]/li[38]/div[237]/li[39]/div[249]/li[40]/div[261]/li[41]/div[273]/li[42]/div[285]/li[43]/div[297]/li[44]/div[309]/li[45]/div[321]/li[46]/div[333]/li[47]/div[345]/li[48]/div[357]/li[49]/div[369]/li[50]/div[381]/li[51]/div[393]/li[52]/div[405]/li[53]/div[417]/li[54]/div[429]/li[55]/div[441]/li[56]/div[453]/li[57]/div[465]/li[58]/div[477]/li[59]/div[489]/li[60]/div[501]/li[61]/div[513]/li[62]/div[525]/li[63]/div[537]/li[64]/div[549]/li[65]/div[561]/li[66]/div[573]/li[67]/div[585]/li[68]/div[597]/li[69]/div[609]/li[70]/div[621]/li[71]/div[633]/li[72]/div[645]/li[73]/div[657]/li[74]/div[669]/li[75]/div[681]/li[76]/div[693]/li[77]/div[705]/li[78]/div[717]/li[79]/div[729]/li[80]/div[741]/li[81]/div[753]/li[82]/div[765]/li[83]/div[777]/li[84]/div[789]/li[85]/div[801]/li[86]/div[813]/li[87]/div[825]/li[88]/div[837]/li[89]/div[849]/li[90]/div[861]/li[91]/div[873]/li[92]/div[885]/li[93]/div[897]/li[94]/div[909]/li[95]/div[921]/li[96]/div[933]/li[97]/div[945]/li[98]/div[957]/li[99]/div[969]/li[100]/div[981]/li[101]/div[993]/li[102]/div[1005]/li[103]/div[1017]/li[104]/div[1029]/li[105]/div[1041]/li[106]/div[1053]/section[77]/img[170]/div[1054]/div[1055]/div[1056]/div[1057]/div[1060]",
"html_file": "/Volumes/KINGSTON/data/glam/data/custodian/person/affiliated/manual/(8) Nationaal Archief_ People _ LinkedIn.html",
"xpath_match_score": 1.0,
"retrieval_agent": "extract_persons_with_provenance.py"
},
{
"claim_type": "headline",
"claim_value": "Hoofd Dienstverlening bij Nationaal Archief",
"source_url": "https://www.linkedin.com/company/nationaal-archief/people/",
"retrieved_on": "2025-12-10T15:04:12.140000+00:00",
"statement_created_at": "2026-01-09T22:46:01.399642+00:00",
"source_archived_at": "2025-12-10T15:04:12.140000+00:00",
"xpath": "/html[1]/head[1]/meta[1]/meta[2]/meta[3]/meta[4]/meta[5]/meta[6]/meta[7]/meta[8]/meta[9]/meta[10]/meta[11]/meta[12]/meta[13]/meta[14]/link[1]/link[2]/link[3]/link[4]/link[5]/link[6]/link[7]/meta[15]/meta[16]/meta[17]/meta[18]/meta[19]/meta[20]/meta[21]/meta[22]/meta[23]/meta[24]/meta[25]/meta[26]/link[8]/link[9]/link[10]/link[11]/link[12]/meta[27]/meta[28]/meta[29]/meta[30]/meta[31]/meta[32]/meta[33]/meta[34]/meta[35]/meta[36]/meta[37]/meta[38]/meta[39]/meta[40]/meta[41]/meta[42]/meta[43]/meta[44]/meta[45]/meta[46]/meta[47]/meta[48]/meta[49]/meta[50]/meta[51]/meta[52]/meta[53]/meta[54]/meta[55]/meta[56]/meta[57]/meta[58]/meta[59]/meta[60]/meta[61]/meta[62]/meta[63]/meta[64]/meta[65]/meta[66]/meta[67]/meta[68]/meta[69]/meta[70]/meta[71]/meta[72]/meta[73]/meta[74]/meta[75]/meta[76]/meta[77]/meta[78]/meta[79]/meta[80]/meta[81]/meta[82]/meta[83]/meta[84]/meta[85]/meta[86]/meta[87]/meta[88]/meta[89]/meta[90]/meta[91]/meta[92]/meta[93]/meta[94]/meta[95]/meta[96]/meta[97]/meta[98]/meta[99]/meta[100]/meta[101]/meta[102]/meta[103]/meta[104]/meta[105]/meta[106]/meta[107]/meta[108]/meta[109]/meta[110]/meta[111]/meta[112]/meta[113]/meta[114]/meta[115]/meta[116]/meta[117]/meta[118]/meta[119]/meta[120]/meta[121]/meta[122]/meta[123]/meta[124]/meta[125]/meta[126]/meta[127]/meta[128]/meta[129]/meta[130]/meta[131]/meta[132]/meta[133]/meta[134]/meta[135]/meta[136]/meta[137]/meta[138]/meta[139]/meta[140]/meta[141]/link[13]/link[14]/meta[142]/meta[143]/link[15]/link[16]/link[17]/link[18]/link[19]/link[20]/link[21]/link[22]/link[23]/link[24]/link[25]/link[26]/link[27]/link[28]/link[29]/link[30]/link[31]/link[32]/link[33]/link[34]/link[35]/link[36]/link[37]/link[38]/link[39]/link[40]/link[41]/link[42]/link[43]/link[44]/body[1]/img[1]/img[2]/img[3]/img[4]/img[5]/img[6]/img[7]/img[8]/img[9]/img[10]/img[11]/img[12]/img[13]/img[14]/img[15]/img[16]/img[17]/img[18]/img[19]/div[28]/header[2]/div[32]/div[62]/div[63]/div[65]/div[66]/div[67]/div[87]/main[1]/div[88]/section[2]/div[124]/div[125]/div[126]/div[174]/div[175]/div[176]/ul[6]/li[33]/div[177]/li[34]/div[189]/li[35]/div[201]/li[36]/div[213]/li[37]/div[225]/li[38]/div[237]/li[39]/div[249]/li[40]/div[261]/li[41]/div[273]/li[42]/div[285]/li[43]/div[297]/li[44]/div[309]/li[45]/div[321]/li[46]/div[333]/li[47]/div[345]/li[48]/div[357]/li[49]/div[369]/li[50]/div[381]/li[51]/div[393]/li[52]/div[405]/li[53]/div[417]/li[54]/div[429]/li[55]/div[441]/li[56]/div[453]/li[57]/div[465]/li[58]/div[477]/li[59]/div[489]/li[60]/div[501]/li[61]/div[513]/li[62]/div[525]/li[63]/div[537]/li[64]/div[549]/li[65]/div[561]/li[66]/div[573]/li[67]/div[585]/li[68]/div[597]/li[69]/div[609]/li[70]/div[621]/li[71]/div[633]/li[72]/div[645]/li[73]/div[657]/li[74]/div[669]/li[75]/div[681]/li[76]/div[693]/li[77]/div[705]/li[78]/div[717]/li[79]/div[729]/li[80]/div[741]/li[81]/div[753]/li[82]/div[765]/li[83]/div[777]/li[84]/div[789]/li[85]/div[801]/li[86]/div[813]/li[87]/div[825]/li[88]/div[837]/li[89]/div[849]/li[90]/div[861]/li[91]/div[873]/li[92]/div[885]/li[93]/div[897]/li[94]/div[909]/li[95]/div[921]/li[96]/div[933]/li[97]/div[945]/li[98]/div[957]/li[99]/div[969]/li[100]/div[981]/li[101]/div[993]/li[102]/div[1005]/li[103]/div[1017]/li[104]/div[1029]/li[105]/div[1041]/li[106]/div[1053]/section[77]/img[170]/div[1054]/div[1055]/div[1056]/div[1057]/div[1061]/div[1062]/div[1063]",
"html_file": "/Volumes/KINGSTON/data/glam/data/custodian/person/affiliated/manual/(8) Nationaal Archief_ People _ LinkedIn.html",
"xpath_match_score": 1.0,
"retrieval_agent": "extract_persons_with_provenance.py"
}
],
"linkedin_slug": "ina-dijkman-aa2a4115"
}

View file

@ -0,0 +1,104 @@
{
"ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_INSOO-RADSTAKE-98fb392c",
"ppid_type": "ID",
"ppid_components": {
"type": "ID",
"first_location": "XX-XX-XXX",
"first_date": "XXXX",
"last_location": "XX-XX-XXX",
"last_date": "XXXX",
"name_tokens": [
"INSOO",
"RADSTAKE"
],
"collision_uuid": "98fb392c"
},
"name": "In-Soo Radstake",
"birth_date": {
"edtf": "XXXX",
"precision": "unknown",
"note": "Not available from WCMS"
},
"is_living": true,
"is_anonymous": false,
"wcms_identifiers": {
"user_id": "248026",
"username": "InSooHH",
"username_url": "/user/248026",
"abs_id": "110.1028795",
"crm_id": "f0b802ac-6457-ec11-8147-805012a870bf"
},
"contact_details": {
"email": "mail@in-soo.com",
"email_domain": "in-soo.com"
},
"wcms_activity": {
"status": "Active",
"roles": [],
"registered_since": "di 07-12-2021 - 14:50",
"last_access": "3 jaar 2 maanden ago",
"operations": [
{
"text": "Bewerken",
"url": "/user/248026/edit?destination=/admin/people%3Fpage%3D2990"
},
{
"text": "Rollen",
"url": "/user/248026/roles?destination=/admin/people%3Fpage%3D2990"
}
]
},
"entity_resolution": {
"potential_linkedin_matches": 1,
"match_candidates": [
{
"linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_INSOO-RADSTAKE",
"linkedin_name": "In-Soo Radstake",
"linkedin_slug": "insooradstake",
"confidence_score": 0.6,
"match_signals": [
"exact_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
}
],
"requires_manual_review": true,
"auto_merged": false,
"reviewed": false,
"review_notes": null,
"annotation_date": "2026-01-12T10:17:24.942197+00:00",
"annotation_script": "annotate_match_candidates.py"
},
"profile_classification": {
"primary_classification": "human",
"confidence": 0.95,
"indicators": [
{
"type": "wcms_user",
"reason": "Registered user in heritage CMS system"
}
],
"reasoning": "WCMS user profile - registered heritage sector CMS user"
},
"data_sources": [
"wcms"
],
"extraction_metadata": {
"extraction_agent": "migrate_wcms_users.py",
"extraction_date": "2026-01-11T17:43:08.762668+00:00",
"source_file": "users/user_248026.json",
"source_system": "WCMS",
"schema_version": "1.0.0"
},
"migration_metadata": {
"original_wcms_file": "users/user_248026.json",
"original_user_id": "248026",
"migrated_at": "2026-01-11T17:43:08.762676+00:00",
"migration_script": "migrate_wcms_users.py",
"migration_version": "1.0"
}
}

View file

@ -0,0 +1,161 @@
{
"ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_JACQUELINE-VAN-LEEUWEN-37715460",
"ppid_type": "ID",
"ppid_components": {
"type": "ID",
"first_location": "XX-XX-XXX",
"first_date": "XXXX",
"last_location": "XX-XX-XXX",
"last_date": "XXXX",
"name_tokens": [
"JACQUELINE",
"VAN",
"LEEUWEN"
],
"collision_uuid": "37715460"
},
"name": "Jacqueline van Leeuwen",
"birth_date": {
"edtf": "XXXX",
"precision": "unknown",
"note": "Not available from WCMS"
},
"is_living": true,
"is_anonymous": false,
"wcms_identifiers": {
"user_id": "223464",
"username": "Jacqueline77",
"username_url": "/user/223464",
"abs_id": "110.999156",
"crm_id": "2940d3a4-93e0-ea11-812c-a66b9878f949"
},
"contact_details": {
"email": "jacquelin77@hotmail.com",
"email_domain": "hotmail.com"
},
"wcms_activity": {
"status": "Active",
"roles": [],
"registered_since": "ma 17-08-2020 - 16:12",
"last_access": "5 jaar 4 maanden ago",
"operations": [
{
"text": "Bewerken",
"url": "/user/223464/edit?destination=/admin/people%3Fpage%3D3466"
},
{
"text": "Rollen",
"url": "/user/223464/roles?destination=/admin/people%3Fpage%3D3466"
}
]
},
"entity_resolution": {
"potential_linkedin_matches": 5,
"match_candidates": [
{
"linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_JACQUELINE-VAN-LEEUWEN",
"linkedin_name": "Jacqueline van Leeuwen",
"linkedin_slug": "jacqueline-van-leeuwen-40a4a010",
"confidence_score": 0.6,
"match_signals": [
"exact_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
},
{
"linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_JAAP-LEEUWEN",
"linkedin_name": "Jaap van Leeuwen",
"linkedin_slug": "jaap-van-leeuwen-2a592314",
"confidence_score": 0.51,
"match_signals": [
"strong_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
},
{
"linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_JURGEN-LEEUWEN",
"linkedin_name": "Jurgen van Leeuwen",
"linkedin_slug": "jurgen-van-leeuwen-22652215a",
"confidence_score": 0.51,
"match_signals": [
"strong_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
},
{
"linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_JASMIJN-LEEUWEN",
"linkedin_name": "Jasmijn van Leeuwen",
"linkedin_slug": "jasmijn-van-leeuwen-675907308",
"confidence_score": 0.51,
"match_signals": [
"strong_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
},
{
"linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_JEROEN-VAN-LEEUWEN",
"linkedin_name": "Jeroen van Leeuwen",
"linkedin_slug": "jeroenpvanleeuwen",
"confidence_score": 0.51,
"match_signals": [
"strong_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
}
],
"requires_manual_review": true,
"auto_merged": false,
"reviewed": false,
"review_notes": null,
"annotation_date": "2026-01-12T10:17:26.017326+00:00",
"annotation_script": "annotate_match_candidates.py"
},
"profile_classification": {
"primary_classification": "human",
"confidence": 0.95,
"indicators": [
{
"type": "wcms_user",
"reason": "Registered user in heritage CMS system"
}
],
"reasoning": "WCMS user profile - registered heritage sector CMS user"
},
"data_sources": [
"wcms"
],
"extraction_metadata": {
"extraction_agent": "migrate_wcms_users.py",
"extraction_date": "2026-01-11T17:19:08.325155+00:00",
"source_file": "users/user_223464.json",
"source_system": "WCMS",
"schema_version": "1.0.0"
},
"migration_metadata": {
"original_wcms_file": "users/user_223464.json",
"original_user_id": "223464",
"migrated_at": "2026-01-11T17:19:08.325166+00:00",
"migration_script": "migrate_wcms_users.py",
"migration_version": "1.0"
}
}

View file

@ -0,0 +1,111 @@
{
"ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_JASPER-SLOB-c6928299",
"ppid_type": "ID",
"ppid_components": {
"type": "ID",
"first_location": "XX-XX-XXX",
"first_date": "XXXX",
"last_location": "XX-XX-XXX",
"last_date": "XXXX",
"name_tokens": [
"JASPER",
"SLOB"
],
"collision_uuid": "c6928299"
},
"name": "Jasper Slob",
"birth_date": {
"edtf": "XXXX",
"precision": "unknown",
"note": "Not available from WCMS"
},
"is_living": true,
"is_anonymous": false,
"wcms_identifiers": {
"user_id": "251419",
"username": "Jasper Slob",
"username_url": "/user/251419",
"abs_id": "110.1032696",
"crm_id": "571d924d-e288-ec11-814a-e9fdc806755a"
},
"contact_details": {
"email": "jasper.slob@nationaalarchief.nl",
"email_domain": "nationaalarchief.nl"
},
"wcms_activity": {
"status": "Active",
"roles": [
"Redacteur"
],
"registered_since": "di 08-02-2022 - 14:23",
"last_access": "11 maanden ago",
"operations": []
},
"entity_resolution": {
"potential_linkedin_matches": 2,
"match_candidates": [
{
"linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_JASPER-SLOB",
"linkedin_name": "Jasper Slob",
"linkedin_slug": "jasper-slob-05bb6994",
"confidence_score": 0.6,
"match_signals": [
"exact_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
},
{
"linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_JESSIE-SLOB",
"linkedin_name": "Jessie Slob",
"linkedin_slug": "jessie-slob-00ab73310",
"confidence_score": 0.51,
"match_signals": [
"strong_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
}
],
"requires_manual_review": true,
"auto_merged": false,
"reviewed": false,
"review_notes": null,
"annotation_date": "2026-01-12T10:17:24.976277+00:00",
"annotation_script": "annotate_match_candidates.py"
},
"profile_classification": {
"primary_classification": "human",
"confidence": 0.95,
"indicators": [
{
"type": "wcms_user",
"reason": "Registered user in heritage CMS system"
}
],
"reasoning": "WCMS user profile - registered heritage sector CMS user"
},
"data_sources": [
"wcms"
],
"extraction_metadata": {
"extraction_agent": "migrate_wcms_users.py",
"extraction_date": "2026-01-11T17:44:46.227162+00:00",
"source_file": "users/user_251419.json",
"source_system": "WCMS",
"schema_version": "1.0.0"
},
"migration_metadata": {
"original_wcms_file": "users/user_251419.json",
"original_user_id": "251419",
"migrated_at": "2026-01-11T17:44:46.227175+00:00",
"migration_script": "migrate_wcms_users.py",
"migration_version": "1.0"
}
}

View file

@ -0,0 +1,104 @@
{
"ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_JEANBAPTISTE-CLAIS-c83e8011",
"ppid_type": "ID",
"ppid_components": {
"type": "ID",
"first_location": "XX-XX-XXX",
"first_date": "XXXX",
"last_location": "XX-XX-XXX",
"last_date": "XXXX",
"name_tokens": [
"JEANBAPTISTE",
"CLAIS"
],
"collision_uuid": "c83e8011"
},
"name": "jean-baptiste clais",
"birth_date": {
"edtf": "XXXX",
"precision": "unknown",
"note": "Not available from WCMS"
},
"is_living": true,
"is_anonymous": false,
"wcms_identifiers": {
"user_id": "236731",
"username": "jbclais",
"username_url": "/user/236731",
"abs_id": "110.1015585",
"crm_id": "ee77d0fc-60a3-eb11-813b-c30266646166"
},
"contact_details": {
"email": "jean-baptiste.clais@louvre.fr",
"email_domain": "louvre.fr"
},
"wcms_activity": {
"status": "Active",
"roles": [],
"registered_since": "do 22-04-2021 - 13:50",
"last_access": "4 jaar 8 maanden ago",
"operations": [
{
"text": "Bewerken",
"url": "/user/236731/edit?destination=/admin/people%3Fpage%3D3207"
},
{
"text": "Rollen",
"url": "/user/236731/roles?destination=/admin/people%3Fpage%3D3207"
}
]
},
"entity_resolution": {
"potential_linkedin_matches": 1,
"match_candidates": [
{
"linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_JEANBAPTISTE-CLAIS",
"linkedin_name": "Jean-Baptiste Clais",
"linkedin_slug": "jean-baptiste-clais",
"confidence_score": 0.6,
"match_signals": [
"exact_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
}
],
"requires_manual_review": true,
"auto_merged": false,
"reviewed": false,
"review_notes": null,
"annotation_date": "2026-01-12T10:17:25.002895+00:00",
"annotation_script": "annotate_match_candidates.py"
},
"profile_classification": {
"primary_classification": "human",
"confidence": 0.95,
"indicators": [
{
"type": "wcms_user",
"reason": "Registered user in heritage CMS system"
}
],
"reasoning": "WCMS user profile - registered heritage sector CMS user"
},
"data_sources": [
"wcms"
],
"extraction_metadata": {
"extraction_agent": "migrate_wcms_users.py",
"extraction_date": "2026-01-11T17:37:30.683163+00:00",
"source_file": "users/user_236731.json",
"source_system": "WCMS",
"schema_version": "1.0.0"
},
"migration_metadata": {
"original_wcms_file": "users/user_236731.json",
"original_user_id": "236731",
"migrated_at": "2026-01-11T17:37:30.683173+00:00",
"migration_script": "migrate_wcms_users.py",
"migration_version": "1.0"
}
}

View file

@ -0,0 +1,104 @@
{
"ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_JITSKE-HELL-cf5f8ce8",
"ppid_type": "ID",
"ppid_components": {
"type": "ID",
"first_location": "XX-XX-XXX",
"first_date": "XXXX",
"last_location": "XX-XX-XXX",
"last_date": "XXXX",
"name_tokens": [
"JITSKE",
"HELL"
],
"collision_uuid": "cf5f8ce8"
},
"name": "Jitske Hell",
"birth_date": {
"edtf": "XXXX",
"precision": "unknown",
"note": "Not available from WCMS"
},
"is_living": true,
"is_anonymous": false,
"wcms_identifiers": {
"user_id": "264204",
"username": "Jitske Hell",
"username_url": "/user/264204",
"abs_id": "110.1047955",
"crm_id": "d8e1c577-5e6a-ed11-8151-977a4cb1ef80"
},
"contact_details": {
"email": "j.hell@hetutrechtsarchief.nl",
"email_domain": "hetutrechtsarchief.nl"
},
"wcms_activity": {
"status": "Active",
"roles": [],
"registered_since": "di 22-11-2022 - 13:09",
"last_access": "3 jaar 1 maand ago",
"operations": [
{
"text": "Bewerken",
"url": "/user/264204/edit?destination=/admin/people%3Fpage%3D2674"
},
{
"text": "Rollen",
"url": "/user/264204/roles?destination=/admin/people%3Fpage%3D2674"
}
]
},
"entity_resolution": {
"potential_linkedin_matches": 1,
"match_candidates": [
{
"linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_JITSKE-HELL",
"linkedin_name": "Jitske Hell",
"linkedin_slug": "jitske-hell-3a4370238",
"confidence_score": 0.6,
"match_signals": [
"exact_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
}
],
"requires_manual_review": true,
"auto_merged": false,
"reviewed": false,
"review_notes": null,
"annotation_date": "2026-01-12T10:17:25.260740+00:00",
"annotation_script": "annotate_match_candidates.py"
},
"profile_classification": {
"primary_classification": "human",
"confidence": 0.95,
"indicators": [
{
"type": "wcms_user",
"reason": "Registered user in heritage CMS system"
}
],
"reasoning": "WCMS user profile - registered heritage sector CMS user"
},
"data_sources": [
"wcms"
],
"extraction_metadata": {
"extraction_agent": "migrate_wcms_users.py",
"extraction_date": "2026-01-11T17:50:57.186026+00:00",
"source_file": "users/user_264204.json",
"source_system": "WCMS",
"schema_version": "1.0.0"
},
"migration_metadata": {
"original_wcms_file": "users/user_264204.json",
"original_user_id": "264204",
"migrated_at": "2026-01-11T17:50:57.186034+00:00",
"migration_script": "migrate_wcms_users.py",
"migration_version": "1.0"
}
}

View file

@ -0,0 +1,105 @@
{
"ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_LAURA-VAN-HASSELT-597e7524",
"ppid_type": "ID",
"ppid_components": {
"type": "ID",
"first_location": "XX-XX-XXX",
"first_date": "XXXX",
"last_location": "XX-XX-XXX",
"last_date": "XXXX",
"name_tokens": [
"LAURA",
"VAN",
"HASSELT"
],
"collision_uuid": "597e7524"
},
"name": "Laura van Hasselt",
"birth_date": {
"edtf": "XXXX",
"precision": "unknown",
"note": "Not available from WCMS"
},
"is_living": true,
"is_anonymous": false,
"wcms_identifiers": {
"user_id": "239065",
"username": "Van Hasselt",
"username_url": "/user/239065",
"abs_id": "110.1018247",
"crm_id": "e7120b8d-80b8-eb11-813e-e5929d7ab1c5"
},
"contact_details": {
"email": "l.h.vanhasselt@uva.nl",
"email_domain": "uva.nl"
},
"wcms_activity": {
"status": "Active",
"roles": [],
"registered_since": "wo 19-05-2021 - 10:59",
"last_access": "4 jaar 2 maanden ago",
"operations": [
{
"text": "Bewerken",
"url": "/user/239065/edit?destination=/admin/people%3Fpage%3D3161"
},
{
"text": "Rollen",
"url": "/user/239065/roles?destination=/admin/people%3Fpage%3D3161"
}
]
},
"entity_resolution": {
"potential_linkedin_matches": 1,
"match_candidates": [
{
"linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_LAURA-HASSELT",
"linkedin_name": "Laura Van Hasselt",
"linkedin_slug": "laura-van-hasselt-0214b913",
"confidence_score": 0.6,
"match_signals": [
"exact_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
}
],
"requires_manual_review": true,
"auto_merged": false,
"reviewed": false,
"review_notes": null,
"annotation_date": "2026-01-12T10:17:25.609083+00:00",
"annotation_script": "annotate_match_candidates.py"
},
"profile_classification": {
"primary_classification": "human",
"confidence": 0.95,
"indicators": [
{
"type": "wcms_user",
"reason": "Registered user in heritage CMS system"
}
],
"reasoning": "WCMS user profile - registered heritage sector CMS user"
},
"data_sources": [
"wcms"
],
"extraction_metadata": {
"extraction_agent": "migrate_wcms_users.py",
"extraction_date": "2026-01-11T17:38:35.998112+00:00",
"source_file": "users/user_239065.json",
"source_system": "WCMS",
"schema_version": "1.0.0"
},
"migration_metadata": {
"original_wcms_file": "users/user_239065.json",
"original_user_id": "239065",
"migrated_at": "2026-01-11T17:38:35.998120+00:00",
"migration_script": "migrate_wcms_users.py",
"migration_version": "1.0"
}
}

View file

@ -0,0 +1,104 @@
{
"ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_LEONIE-BERGWERFFKORNMANN-92830b6e",
"ppid_type": "ID",
"ppid_components": {
"type": "ID",
"first_location": "XX-XX-XXX",
"first_date": "XXXX",
"last_location": "XX-XX-XXX",
"last_date": "XXXX",
"name_tokens": [
"LEONIE",
"BERGWERFFKORNMANN"
],
"collision_uuid": "92830b6e"
},
"name": "Leonie Bergwerff-Kornmann",
"birth_date": {
"edtf": "XXXX",
"precision": "unknown",
"note": "Not available from WCMS"
},
"is_living": true,
"is_anonymous": false,
"wcms_identifiers": {
"user_id": "175063",
"username": "Leonie76",
"username_url": "/user/175063",
"abs_id": "110.331744",
"crm_id": "b5b5ca67-0b11-407b-a7f1-2b2e7cffbff0"
},
"contact_details": {
"email": "l_kornmann@hotmail.com",
"email_domain": "hotmail.com"
},
"wcms_activity": {
"status": "Active",
"roles": [],
"registered_since": "do 03-12-2015 - 14:05",
"last_access": "2 maanden ago",
"operations": [
{
"text": "Bewerken",
"url": "/user/175063/edit?destination=/admin/people%3Fpage%3D4167"
},
{
"text": "Rollen",
"url": "/user/175063/roles?destination=/admin/people%3Fpage%3D4167"
}
]
},
"entity_resolution": {
"potential_linkedin_matches": 1,
"match_candidates": [
{
"linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_LEONIE-BERGWERFFKORNMANN",
"linkedin_name": "Leonie Bergwerff-Kornmann",
"linkedin_slug": "leonie-bergwerff-kornmann-86654012",
"confidence_score": 0.6,
"match_signals": [
"exact_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
}
],
"requires_manual_review": true,
"auto_merged": false,
"reviewed": false,
"review_notes": null,
"annotation_date": "2026-01-12T10:17:25.256565+00:00",
"annotation_script": "annotate_match_candidates.py"
},
"profile_classification": {
"primary_classification": "human",
"confidence": 0.95,
"indicators": [
{
"type": "wcms_user",
"reason": "Registered user in heritage CMS system"
}
],
"reasoning": "WCMS user profile - registered heritage sector CMS user"
},
"data_sources": [
"wcms"
],
"extraction_metadata": {
"extraction_agent": "migrate_wcms_users.py",
"extraction_date": "2026-01-11T17:10:05.317062+00:00",
"source_file": "users/user_175063.json",
"source_system": "WCMS",
"schema_version": "1.0.0"
},
"migration_metadata": {
"original_wcms_file": "users/user_175063.json",
"original_user_id": "175063",
"migrated_at": "2026-01-11T17:10:05.317064+00:00",
"migration_script": "migrate_wcms_users.py",
"migration_version": "1.0"
}
}

View file

@ -0,0 +1,104 @@
{
"ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_LOUIS-VELDHUIS-560850c5",
"ppid_type": "ID",
"ppid_components": {
"type": "ID",
"first_location": "XX-XX-XXX",
"first_date": "XXXX",
"last_location": "XX-XX-XXX",
"last_date": "XXXX",
"name_tokens": [
"LOUIS",
"VELDHUIS"
],
"collision_uuid": "560850c5"
},
"name": "Louis Veldhuis",
"birth_date": {
"edtf": "XXXX",
"precision": "unknown",
"note": "Not available from WCMS"
},
"is_living": true,
"is_anonymous": false,
"wcms_identifiers": {
"user_id": "190563",
"username": "LOUIS VELDHUIS",
"username_url": "/user/190563",
"abs_id": "110.967671",
"crm_id": "a57110eb-0664-e811-80ff-9f86b66faf29"
},
"contact_details": {
"email": "louis.1952@hotmail.com",
"email_domain": "hotmail.com"
},
"wcms_activity": {
"status": "Active",
"roles": [],
"registered_since": "wo 30-05-2018 - 14:42",
"last_access": "7 jaar 4 maanden ago",
"operations": [
{
"text": "Bewerken",
"url": "/user/190563/edit?destination=/admin/people%3Fpage%3D3888"
},
{
"text": "Rollen",
"url": "/user/190563/roles?destination=/admin/people%3Fpage%3D3888"
}
]
},
"entity_resolution": {
"potential_linkedin_matches": 1,
"match_candidates": [
{
"linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_LOUIS-VELDHUIS",
"linkedin_name": "Louis Veldhuis",
"linkedin_slug": "louis-veldhuis-898377148",
"confidence_score": 0.6,
"match_signals": [
"exact_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
}
],
"requires_manual_review": true,
"auto_merged": false,
"reviewed": false,
"review_notes": null,
"annotation_date": "2026-01-12T10:17:25.219677+00:00",
"annotation_script": "annotate_match_candidates.py"
},
"profile_classification": {
"primary_classification": "human",
"confidence": 0.95,
"indicators": [
{
"type": "wcms_user",
"reason": "Registered user in heritage CMS system"
}
],
"reasoning": "WCMS user profile - registered heritage sector CMS user"
},
"data_sources": [
"wcms"
],
"extraction_metadata": {
"extraction_agent": "migrate_wcms_users.py",
"extraction_date": "2026-01-11T17:12:41.174877+00:00",
"source_file": "users/user_190563.json",
"source_system": "WCMS",
"schema_version": "1.0.0"
},
"migration_metadata": {
"original_wcms_file": "users/user_190563.json",
"original_user_id": "190563",
"migrated_at": "2026-01-11T17:12:41.174885+00:00",
"migration_script": "migrate_wcms_users.py",
"migration_version": "1.0"
}
}

View file

@ -0,0 +1,105 @@
{
"ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_MACHTELD-VAN-VOSKUILEN-b675cf4d",
"ppid_type": "ID",
"ppid_components": {
"type": "ID",
"first_location": "XX-XX-XXX",
"first_date": "XXXX",
"last_location": "XX-XX-XXX",
"last_date": "XXXX",
"name_tokens": [
"MACHTELD",
"VAN",
"VOSKUILEN"
],
"collision_uuid": "b675cf4d"
},
"name": "Machteld van Voskuilen",
"birth_date": {
"edtf": "XXXX",
"precision": "unknown",
"note": "Not available from WCMS"
},
"is_living": true,
"is_anonymous": false,
"wcms_identifiers": {
"user_id": "246249",
"username": "MachteldV",
"username_url": "/user/246249",
"abs_id": "110.1026785",
"crm_id": "74364c91-c93b-ec11-8145-d317fc4f8963"
},
"contact_details": {
"email": "m.van.voskuilen@niod.knaw.nl",
"email_domain": "niod.knaw.nl"
},
"wcms_activity": {
"status": "Active",
"roles": [],
"registered_since": "di 02-11-2021 - 11:42",
"last_access": "1 maand ago",
"operations": [
{
"text": "Bewerken",
"url": "/user/246249/edit?destination=/admin/people%3Fpage%3D3024"
},
{
"text": "Rollen",
"url": "/user/246249/roles?destination=/admin/people%3Fpage%3D3024"
}
]
},
"entity_resolution": {
"potential_linkedin_matches": 1,
"match_candidates": [
{
"linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_MACHTELD-VOSKUILEN",
"linkedin_name": "Machteld Van Voskuilen",
"linkedin_slug": "machteld-van-voskuilen-6b073858",
"confidence_score": 0.6,
"match_signals": [
"exact_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
}
],
"requires_manual_review": true,
"auto_merged": false,
"reviewed": false,
"review_notes": null,
"annotation_date": "2026-01-12T10:17:25.876327+00:00",
"annotation_script": "annotate_match_candidates.py"
},
"profile_classification": {
"primary_classification": "human",
"confidence": 0.95,
"indicators": [
{
"type": "wcms_user",
"reason": "Registered user in heritage CMS system"
}
],
"reasoning": "WCMS user profile - registered heritage sector CMS user"
},
"data_sources": [
"wcms"
],
"extraction_metadata": {
"extraction_agent": "migrate_wcms_users.py",
"extraction_date": "2026-01-11T17:42:13.602252+00:00",
"source_file": "users/user_246249.json",
"source_system": "WCMS",
"schema_version": "1.0.0"
},
"migration_metadata": {
"original_wcms_file": "users/user_246249.json",
"original_user_id": "246249",
"migrated_at": "2026-01-11T17:42:13.602294+00:00",
"migration_script": "migrate_wcms_users.py",
"migration_version": "1.0"
}
}

View file

@ -0,0 +1,119 @@
{
"ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_MARIJN-KOOLEN-2910be1c",
"ppid_type": "ID",
"ppid_components": {
"type": "ID",
"first_location": "XX-XX-XXX",
"first_date": "XXXX",
"last_location": "XX-XX-XXX",
"last_date": "XXXX",
"name_tokens": [
"MARIJN",
"KOOLEN"
],
"collision_uuid": "2910be1c"
},
"name": "Marijn Koolen",
"birth_date": {
"edtf": "XXXX",
"precision": "unknown",
"note": "Not available from WCMS"
},
"is_living": true,
"is_anonymous": false,
"wcms_identifiers": {
"user_id": "271339",
"username": "marijnkoolen",
"username_url": "/user/271339",
"abs_id": "110.1056253",
"crm_id": "5c53d239-22bf-ed11-815b-ee2fefaf505f"
},
"contact_details": {
"email": "marijn.koolen@gmail.com",
"email_domain": "gmail.com"
},
"wcms_activity": {
"status": "Active",
"roles": [],
"registered_since": "vr 10-03-2023 - 10:02",
"last_access": "2 jaar 9 maanden ago",
"operations": [
{
"text": "Bewerken",
"url": "/user/271339/edit?destination=/admin/people%3Fpage%3D2533"
},
{
"text": "Rollen",
"url": "/user/271339/roles?destination=/admin/people%3Fpage%3D2533"
}
]
},
"entity_resolution": {
"potential_linkedin_matches": 2,
"wikipedia_url": null,
"match_candidates": [
{
"linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_MARIJN-KOOLEN",
"linkedin_name": "Marijn Koolen",
"linkedin_slug": "marijnkoolen",
"confidence_score": 0.6,
"match_signals": [
"exact_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
},
{
"linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_MONIQUE-KOOLEN",
"linkedin_name": "Monique Koolen",
"linkedin_slug": "monique-koolen-a094991a",
"confidence_score": 0.51,
"match_signals": [
"strong_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
}
],
"requires_manual_review": true,
"auto_merged": false,
"reviewed": false,
"review_notes": null,
"annotation_date": "2026-01-12T10:17:24.795126+00:00",
"annotation_script": "annotate_match_candidates.py"
},
"profile_classification": {
"primary_classification": "human",
"confidence": 0.95,
"indicators": [
{
"type": "wcms_user",
"reason": "Registered user in heritage CMS system"
}
],
"reasoning": "WCMS user profile - registered heritage sector CMS user"
},
"data_sources": [
"wcms"
],
"extraction_metadata": {
"extraction_agent": "migrate_wcms_resume.py",
"extraction_date": "2026-01-11T20:47:11.252514+00:00",
"source_file": "users/user_271339.json",
"source_system": "WCMS",
"schema_version": "1.0.0"
},
"migration_metadata": {
"original_wcms_file": "users/user_271339.json",
"original_user_id": "271339",
"migrated_at": "2026-01-11T20:47:11.252541+00:00",
"migration_script": "migrate_wcms_resume.py",
"migration_version": "2.0"
}
}

View file

@ -0,0 +1,105 @@
{
"ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_MATTHIJS-OLIEROOK-345df02f",
"ppid_type": "ID",
"ppid_components": {
"type": "ID",
"first_location": "XX-XX-XXX",
"first_date": "XXXX",
"last_location": "XX-XX-XXX",
"last_date": "XXXX",
"name_tokens": [
"MATTHIJS",
"OLIEROOK"
],
"collision_uuid": "345df02f"
},
"name": "Matthijs Olierook",
"birth_date": {
"edtf": "XXXX",
"precision": "unknown",
"note": "Not available from WCMS"
},
"is_living": true,
"is_anonymous": false,
"wcms_identifiers": {
"user_id": "272470",
"username": "MatthijsOlierook",
"username_url": "/user/272470",
"abs_id": "110.1057555",
"crm_id": "d91423f8-8acc-ed11-815c-8eb83bda5b05"
},
"contact_details": {
"email": "matthijsolierook@gmail.com",
"email_domain": "gmail.com"
},
"wcms_activity": {
"status": "Active",
"roles": [],
"registered_since": "ma 27-03-2023 - 12:34",
"last_access": "2 jaar 9 maanden ago",
"operations": [
{
"text": "Bewerken",
"url": "/user/272470/edit?destination=/admin/people%3Fpage%3D2510"
},
{
"text": "Rollen",
"url": "/user/272470/roles?destination=/admin/people%3Fpage%3D2510"
}
]
},
"entity_resolution": {
"potential_linkedin_matches": 1,
"wikipedia_url": null,
"match_candidates": [
{
"linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_MATTHIJS-OLIEROOK",
"linkedin_name": "Matthijs Olierook",
"linkedin_slug": "matthijs-olierook",
"confidence_score": 0.6,
"match_signals": [
"exact_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
}
],
"requires_manual_review": true,
"auto_merged": false,
"reviewed": false,
"review_notes": null,
"annotation_date": "2026-01-12T10:17:25.056151+00:00",
"annotation_script": "annotate_match_candidates.py"
},
"profile_classification": {
"primary_classification": "human",
"confidence": 0.95,
"indicators": [
{
"type": "wcms_user",
"reason": "Registered user in heritage CMS system"
}
],
"reasoning": "WCMS user profile - registered heritage sector CMS user"
},
"data_sources": [
"wcms"
],
"extraction_metadata": {
"extraction_agent": "migrate_wcms_resume.py",
"extraction_date": "2026-01-11T20:47:43.978730+00:00",
"source_file": "users/user_272470.json",
"source_system": "WCMS",
"schema_version": "1.0.0"
},
"migration_metadata": {
"original_wcms_file": "users/user_272470.json",
"original_user_id": "272470",
"migrated_at": "2026-01-11T20:47:43.978755+00:00",
"migration_script": "migrate_wcms_resume.py",
"migration_version": "2.0"
}
}

View file

@ -0,0 +1,104 @@
{
"ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_MELINDA-SUSANTO-3050a7d4",
"ppid_type": "ID",
"ppid_components": {
"type": "ID",
"first_location": "XX-XX-XXX",
"first_date": "XXXX",
"last_location": "XX-XX-XXX",
"last_date": "XXXX",
"name_tokens": [
"MELINDA",
"SUSANTO"
],
"collision_uuid": "3050a7d4"
},
"name": "Melinda Susanto",
"birth_date": {
"edtf": "XXXX",
"precision": "unknown",
"note": "Not available from WCMS"
},
"is_living": true,
"is_anonymous": false,
"wcms_identifiers": {
"user_id": "192547",
"username": "msusanto",
"username_url": "/user/192547",
"abs_id": "110.971137",
"crm_id": "3da39481-2db7-e811-8104-c4a5c1fa9eeb"
},
"contact_details": {
"email": "melinda.susanto@gmail.com",
"email_domain": "gmail.com"
},
"wcms_activity": {
"status": "Active",
"roles": [],
"registered_since": "do 13-09-2018 - 10:17",
"last_access": "1 jaar 4 maanden ago",
"operations": [
{
"text": "Bewerken",
"url": "/user/192547/edit?destination=/admin/people%3Fpage%3D3852"
},
{
"text": "Rollen",
"url": "/user/192547/roles?destination=/admin/people%3Fpage%3D3852"
}
]
},
"entity_resolution": {
"potential_linkedin_matches": 1,
"match_candidates": [
{
"linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_MELINDA-SUSANTO",
"linkedin_name": "Melinda Susanto",
"linkedin_slug": "melindasusanto",
"confidence_score": 0.6,
"match_signals": [
"exact_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
}
],
"requires_manual_review": true,
"auto_merged": false,
"reviewed": false,
"review_notes": null,
"annotation_date": "2026-01-12T10:17:24.719511+00:00",
"annotation_script": "annotate_match_candidates.py"
},
"profile_classification": {
"primary_classification": "human",
"confidence": 0.95,
"indicators": [
{
"type": "wcms_user",
"reason": "Registered user in heritage CMS system"
}
],
"reasoning": "WCMS user profile - registered heritage sector CMS user"
},
"data_sources": [
"wcms"
],
"extraction_metadata": {
"extraction_agent": "migrate_wcms_users.py",
"extraction_date": "2026-01-11T17:13:03.506896+00:00",
"source_file": "users/user_192547.json",
"source_system": "WCMS",
"schema_version": "1.0.0"
},
"migration_metadata": {
"original_wcms_file": "users/user_192547.json",
"original_user_id": "192547",
"migrated_at": "2026-01-11T17:13:03.506913+00:00",
"migration_script": "migrate_wcms_users.py",
"migration_version": "1.0"
}
}

View file

@ -0,0 +1,118 @@
{
"ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_MIRJAM-KOOIMAN-ea242de2",
"ppid_type": "ID",
"ppid_components": {
"type": "ID",
"first_location": "XX-XX-XXX",
"first_date": "XXXX",
"last_location": "XX-XX-XXX",
"last_date": "XXXX",
"name_tokens": [
"MIRJAM",
"KOOIMAN"
],
"collision_uuid": "ea242de2"
},
"name": "Mirjam Kooiman",
"birth_date": {
"edtf": "XXXX",
"precision": "unknown",
"note": "Not available from WCMS"
},
"is_living": true,
"is_anonymous": false,
"wcms_identifiers": {
"user_id": "178040",
"username": "mirjamkooiman",
"username_url": "/user/178040",
"abs_id": "110.955971",
"crm_id": "ee42a700-cf45-e711-80e3-e0d9967f2c50"
},
"contact_details": {
"email": "mirjam.kooiman@hotmail.com",
"email_domain": "hotmail.com"
},
"wcms_activity": {
"status": "Active",
"roles": [],
"registered_since": "wo 01-06-2016 - 09:57",
"last_access": "1 jaar 11 maanden ago",
"operations": [
{
"text": "Bewerken",
"url": "/user/178040/edit?destination=/admin/people%3Fpage%3D4112"
},
{
"text": "Rollen",
"url": "/user/178040/roles?destination=/admin/people%3Fpage%3D4112"
}
]
},
"entity_resolution": {
"potential_linkedin_matches": 2,
"match_candidates": [
{
"linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_MIRJAM-KOOIMAN",
"linkedin_name": "Mirjam Kooiman",
"linkedin_slug": "mirjam-kooiman-6b707153",
"confidence_score": 0.6,
"match_signals": [
"exact_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
},
{
"linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_MAURICE-KOOIMAN",
"linkedin_name": "Maurice Kooiman",
"linkedin_slug": "maurice-kooiman-915740150",
"confidence_score": 0.51,
"match_signals": [
"strong_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
}
],
"requires_manual_review": true,
"auto_merged": false,
"reviewed": false,
"review_notes": null,
"annotation_date": "2026-01-12T10:17:25.056874+00:00",
"annotation_script": "annotate_match_candidates.py"
},
"profile_classification": {
"primary_classification": "human",
"confidence": 0.95,
"indicators": [
{
"type": "wcms_user",
"reason": "Registered user in heritage CMS system"
}
],
"reasoning": "WCMS user profile - registered heritage sector CMS user"
},
"data_sources": [
"wcms"
],
"extraction_metadata": {
"extraction_agent": "migrate_wcms_users.py",
"extraction_date": "2026-01-11T17:10:26.635660+00:00",
"source_file": "users/user_178040.json",
"source_system": "WCMS",
"schema_version": "1.0.0"
},
"migration_metadata": {
"original_wcms_file": "users/user_178040.json",
"original_user_id": "178040",
"migrated_at": "2026-01-11T17:10:26.635668+00:00",
"migration_script": "migrate_wcms_users.py",
"migration_version": "1.0"
}
}

View file

@ -0,0 +1,127 @@
{
"ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_NANCY-JOUWE-872fe168",
"ppid_type": "ID",
"ppid_components": {
"type": "ID",
"first_location": "XX-XX-XXX",
"first_date": "XXXX",
"last_location": "XX-XX-XXX",
"last_date": "XXXX",
"name_tokens": [
"NANCY",
"JOUWE"
],
"collision_uuid": "872fe168"
},
"name": "Nancy Jouwe",
"birth_date": {
"edtf": "XXXX",
"precision": "unknown",
"note": "Not available from WCMS"
},
"is_living": true,
"is_anonymous": false,
"wcms_identifiers": {
"user_id": "165652",
"username": "NLJouwe",
"username_url": "/user/165652",
"abs_id": "110.310513",
"crm_id": "4106FF1A-8AA0-E311-983B-005056930016"
},
"contact_details": {
"email": "nljouwe@gmail.com",
"email_domain": "gmail.com"
},
"wcms_activity": {
"status": "Active",
"roles": [],
"registered_since": "vr 28-02-2014 - 16:07",
"last_access": "2 weken 4 dagen ago",
"operations": [
{
"text": "Bewerken",
"url": "/en/user/165652/edit?destination=/admin/people%3Fpage%3D4355"
},
{
"text": "Rollen",
"url": "/user/165652/roles?destination=/admin/people%3Fpage%3D4355"
}
]
},
"entity_resolution": {
"potential_linkedin_matches": 2,
"match_candidates": [
{
"linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_NANCY-JOUWE",
"linkedin_name": "Nancy Jouwe",
"linkedin_slug": "nancy-jouwe-6329935",
"confidence_score": 0.6,
"match_signals": [
"exact_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
},
{
"linkedin_ppid": "ID_NL-UT-UTR_196X_NL-OV-NED_XXXX_NANCY-JOUWE",
"linkedin_name": {
"full_name": "Nancy Jouwe",
"display_name": "Nancy Jouwe",
"name_romanized": null,
"name_tokens": [
"NANCY",
"JOUWE"
],
"source": "linkedin_profile"
},
"linkedin_slug": "nancy-jouwe-6329935",
"confidence_score": 0.6,
"match_signals": [
"exact_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
}
],
"requires_manual_review": true,
"auto_merged": false,
"reviewed": false,
"review_notes": null,
"annotation_date": "2026-01-12T10:17:25.045455+00:00",
"annotation_script": "annotate_match_candidates.py"
},
"profile_classification": {
"primary_classification": "human",
"confidence": 0.95,
"indicators": [
{
"type": "wcms_user",
"reason": "Registered user in heritage CMS system"
}
],
"reasoning": "WCMS user profile - registered heritage sector CMS user"
},
"data_sources": [
"wcms"
],
"extraction_metadata": {
"extraction_agent": "migrate_wcms_users.py",
"extraction_date": "2026-01-11T17:09:56.538995+00:00",
"source_file": "users/user_165652.json",
"source_system": "WCMS",
"schema_version": "1.0.0"
},
"migration_metadata": {
"original_wcms_file": "users/user_165652.json",
"original_user_id": "165652",
"migrated_at": "2026-01-11T17:09:56.538997+00:00",
"migration_script": "migrate_wcms_users.py",
"migration_version": "1.0"
}
}

View file

@ -0,0 +1,422 @@
{
"ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_NANCY-JOUWE-872fe168",
"ppid_type": "ID",
"ppid_components": {
"type": "ID",
"first_location": "XX-XX-XXX",
"first_date": "XXXX",
"last_location": "XX-XX-XXX",
"last_date": "XXXX",
"name_tokens": [
"NANCY",
"JOUWE"
],
"collision_uuid": "872fe168"
},
"name": "Nancy Jouwe",
"birth_date": {
"edtf": "XXXX",
"precision": "unknown",
"note": "Not available from WCMS"
},
"is_living": true,
"is_anonymous": false,
"wcms_identifiers": {
"user_id": "165652",
"username": "NLJouwe",
"username_url": "/user/165652",
"abs_id": "110.310513",
"crm_id": "4106FF1A-8AA0-E311-983B-005056930016"
},
"contact_details": {
"email": "nljouwe@gmail.com",
"email_domain": "gmail.com"
},
"wcms_activity": {
"status": "Active",
"roles": [],
"registered_since": "vr 28-02-2014 - 16:07",
"last_access": "2 weken 4 dagen ago",
"operations": [
{
"text": "Bewerken",
"url": "/en/user/165652/edit?destination=/admin/people%3Fpage%3D4355"
},
{
"text": "Rollen",
"url": "/user/165652/roles?destination=/admin/people%3Fpage%3D4355"
}
]
},
"entity_resolution": {
"potential_linkedin_matches": 2,
"match_candidates": [
{
"linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_NANCY-JOUWE",
"linkedin_name": "Nancy Jouwe",
"linkedin_slug": "nancy-jouwe-6329935",
"confidence_score": 0.6,
"match_signals": [
"exact_name_match"
],
"requires_review": true,
"reviewed": true,
"review_decision": "match",
"reviewed_by": "reviewer",
"reviewed_at": "2026-01-13T12:45:03.013612+00:00"
},
{
"linkedin_ppid": "ID_NL-UT-UTR_196X_NL-OV-NED_XXXX_NANCY-JOUWE",
"linkedin_name": {
"full_name": "Nancy Jouwe",
"display_name": "Nancy Jouwe",
"name_romanized": null,
"name_tokens": [
"NANCY",
"JOUWE"
],
"source": "linkedin_profile"
},
"linkedin_slug": "nancy-jouwe-6329935",
"confidence_score": 0.6,
"match_signals": [
"exact_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
}
],
"requires_manual_review": true,
"auto_merged": false,
"reviewed": false,
"review_notes": null,
"annotation_date": "2026-01-12T10:17:25.045455+00:00",
"annotation_script": "annotate_match_candidates.py",
"resolved": true,
"resolved_linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_NANCY-JOUWE",
"resolved_linkedin_slug": "nancy-jouwe-6329935",
"resolution_confidence": 0.65,
"resolution_signals": [
"email_name_parts",
"exact_name_match"
],
"resolution_decision": "match",
"resolved_by": "reviewer",
"resolved_at": "2026-01-13T12:45:03.013612+00:00",
"merge_timestamp": "2026-01-15T10:49:18.589178+00:00",
"merge_script": "merge_reviewed_profiles.py"
},
"profile_classification": {
"primary_classification": "human",
"confidence": 0.95,
"indicators": [
{
"type": "wcms_user",
"reason": "Registered user in heritage CMS system"
}
],
"reasoning": "WCMS user profile - registered heritage sector CMS user"
},
"data_sources": [
"wcms",
"linkedin"
],
"extraction_metadata": {
"extraction_agent": "migrate_wcms_users.py",
"extraction_date": "2026-01-11T17:09:56.538995+00:00",
"source_file": "users/user_165652.json",
"source_system": "WCMS",
"schema_version": "1.0.0"
},
"migration_metadata": {
"original_wcms_file": "users/user_165652.json",
"original_user_id": "165652",
"migrated_at": "2026-01-11T17:09:56.538997+00:00",
"migration_script": "migrate_wcms_users.py",
"migration_version": "1.0"
},
"profile_data": {
"headline": "Freelance researcher, writer, curator",
"location": "The Randstad, Netherlands (NL)",
"experience": [
{
"title": "Kroonlid",
"company": "Raad voor Cultuur",
"date_range": "Feb 2023 - Present • 2 years and 8 months",
"location": "Nederland",
"description": "Nederland"
},
{
"title": "Fellow",
"company": "HKU Faculty of Arts",
"date_range": "Sep 2022 - Present • 1 year and 1 month",
"location": "Utrecht, Nederland",
"description": "In my three year fellowship, our research on the history of slavery in Utrecht and the implications in todays society will serve as a starting point for convos, gatherings and other forms of being, sharing and learning together."
},
{
"title": "PHD Candidate (external)",
"company": "Vrije Universiteit Amsterdam",
"date_range": "May 2023 - Present • 5 months",
"location": "Amsterdam, Noord-Holland, Nederland",
"description": "In my PhD, I will focus on the diaspora community of Papuans in the Netherlands."
},
{
"title": "Public Speaker Researcher Lecturer",
"company": "Self-Employed (Current)",
"date_range": "Jan 2006 - Present • 17 years and 9 months",
"location": "Utrecht, Nederland",
"description": "Currently: research + consultancy municipality of Delft & museum Prinsenhof. Clients include: ArtEZ, Afrovibes, Utrecht and Amsterdam Municipalities, University of Amsterdam, Utrecht University, Tong Tong Fair, Spui25, Imagine IC, De Nieuwe Liefde, Van Abbe museum, Research Centre for Material Culture, Nationaal Archief, Haags Historisch Museum, Rijksmuseum, Scheepvaartmuseum, Museum Sophiahof, Le Guess Who, IDFA, Read My World, Border Kitchen, TivoliVredenburg, De Balie, Pakhuis de Zwijger. Show less"
},
{
"title": "Projectleader",
"company": "Kosmopolis Utrecht 2013 (Current)",
"date_range": "Aug 2013 - Present • 10 years and 2 months",
"description": "Utrecht/Amsterdam"
},
{
"title": "Affiliated Researcher Gender Studies",
"company": "Universiteit Utrecht",
"date_range": "Jul 2018 - Present • 5 years and 3 months",
"location": "Utrecht en omgeving, Nederland",
"description": "Part of MOED team."
},
{
"title": "Course Coordinator Lecturer 1 Race In The Netherlands 2 Gender, Race, Sexuality Popular Culture",
"company": "CIEE Council on International Educational Exchange",
"date_range": "Jun 2016 - Mar 2024 • 7 years and 9 months",
"location": "Amsterdam Area, Netherlands",
"description": "CIEE offers semesters and summer courses across the globe, including Amsterdam, on a broad range of different topics, including public health, popular culture, and race."
},
{
"title": "Lecturer",
"company": "Universiteit Utrecht",
"date_range": "Sep 2016 - Aug 2018 • 1 year and 11 months",
"location": "Utrecht Area, Netherlands"
},
{
"title": "Lecturer MA Fine Arts",
"company": "HKU",
"date_range": "Feb 2019 - Sep 2022 • 3 years and 7 months",
"location": "HKU Loods"
},
{
"title": "External Lecturer Global Identity Experience",
"company": "Amsterdam University College",
"date_range": "Dec 2016 - Dec 2020 • 4 years"
},
{
"title": "Research Fellow (freelance)",
"company": "International Institute for Social History",
"date_range": "Nov 2019 - Sep 2020 • 10 months"
},
{
"title": "Lecturer Visual Culture",
"company": "Willem de Kooning Academy Rotterdam",
"date_range": "Aug 2017 - Jul 2019 • 1 year and 11 months",
"location": "Rotterdam"
},
{
"title": "Academic Tutor",
"company": "Sandberg Instituut",
"date_range": "Oct 2018 - Jun 2019 • 8 months",
"location": "Amsterdam en omgeving, Nederland",
"description": "Tutor with the Radical Cut Up MA program."
},
{
"title": "Modulecoordinator Lecturer Gender, Sexuality Postcolonial Communities",
"company": "SIT Graduate Institute",
"date_range": "Aug 2013 - Dec 2017 • 4 years and 4 months",
"location": "Amsterdam Area, Netherlands",
"description": "SIT Study Abroad offers experiential, field-based study abroad programs. At the Amsterdam branch LGBT/Feminist studies and Migration, Gender & Sexuality studies are offered."
},
{
"title": "External Lecturer Cultural Entrepeneurship Creative Process",
"company": "Hogeschool van Amsterdam",
"date_range": "Aug 2016 - Nov 2016 • 3 months",
"location": "Amsterdam Area, Netherlands"
},
{
"title": "Adviseur Commissie Meerjarenbeleidsplan Kunst En Cultuur 2017-2020",
"company": "Gemeente Den Haag",
"date_range": "Dec 2015 - Mar 2016 • 3 months",
"location": "Den Haag"
},
{
"title": "Researcher",
"company": "University of Humanistic Studies",
"date_range": "Aug 2014 - Mar 2016 • 1 year and 7 months",
"location": "Utrecht Area, Netherlands",
"description": "I'm part of a research project that focuses on how postcolonial and post-war memories of different generations have influenced each other and how this is connected to a culture of compensation for victims (of war). A comparative study is done between people from Jewish, Indonesian and Afro-Caribbean communities. The research project is part of the theme group Globalisation Studies."
},
{
"title": "Member Advisory Selection Committees",
"company": "Mondriaan Fund",
"date_range": "Jan 2010 - Aug 2013 • 3 years and 7 months",
"location": "Amsterdam Area, Netherlands",
"description": "A culture fund that financially supports museums, visual arts and design projects."
},
{
"title": "Co-founder Framer Framed",
"company": "Framer Framed",
"date_range": "Jan 2009 - Jan 2015 • 6 years"
},
{
"title": "Artistic Director",
"company": "Kosmopolis Utrecht",
"date_range": "Oct 2006 - Jan 2013 • 6 years and 3 months",
"description": "Kosmopolis Utrecht creates and strengthens intercultural connections through arts, culture and debate in Utrecht city. My work involved general management (team, finances, planning), fundraising plus reporting, projectmanagement, building partnerships and curating."
},
{
"title": "Member Selection Committee International Projects",
"company": "Movies that Matter",
"date_range": "May 2007 - May 2011 • 4 years",
"location": "Amsterdam Area, Netherlands"
},
{
"title": "Managing Director",
"company": "Papua Heritage Foundation",
"date_range": "Aug 2006 - Jan 2010 • 3 years and 5 months",
"description": "Digitization of Dutch-based Papua heritage: artefacts, documents and books, films, photos, audio and oral history. My work involved leading the team (6 team members and 10-15 volunteers), creating and strengthening a relevant network in Papua, Indonesia and The Netherlands. Curating, finances, fundraising, program management, dbase/PR coordination. Projectmanagement of oral history project, commissioning dbase/digital infrastucture."
},
{
"title": "Committee Member Cultural Projects",
"company": "Gemeente Utrecht",
"date_range": "Jun 2006 - Jan 2010 • 3 years and 7 months",
"description": "Advising on project proposals of cultural projects in Utrecht city."
},
{
"title": "Advisor",
"company": "Netwerk CS",
"date_range": "Jan 2003 - Jan 2007 • 4 years",
"location": "Platform for promoting diversity in the cultural sector in the Netherlands"
},
{
"title": "Producer (freelance)",
"company": "Mijn Wereld in Amsterdam",
"date_range": "Mar 2006 - Oct 2006 • 7 months",
"description": "Producer for cultural project in schools in Amsterdam West, teaching predominantly Islamic schoolkids age 15-18 on self-image and representation through photography. Project set up by Riette Mellink and Sharog Heshmat Manesh."
},
{
"title": "Deputy Director Program Manager Europe Fund Culture Fund",
"company": "Mama Cash",
"date_range": "Apr 1997 - Jan 2006 • 8 years and 9 months",
"location": "Amsterdam Area, Netherlands",
"description": "Internal management and assistent director of the organisation; managing funding applications of women's projects in the European and former Soviet Union region; 20 fte, annual budget around 4 million euros. Managing the Culture Fund (till Feb 2001) involved managing funding applications of women's projects in arts, culture and social activities. Coordinating the annual Mama Cash art prizes (including exhibits). Part of project team for 15th anniversary 1998."
},
{
"title": "Advisor For Humanities Science Shop",
"company": "Universiteit Utrecht",
"date_range": "Jan 2001 - Jan 2006 • 5 years",
"description": "The Humanities Science Shop coordinates academic research projects commissioned by organisations and businesses and carried out by students under the supervision of academic experts. This gives the students the opportunity to put their knowledge into practice while providing your organisation with custom-tailored academic research at a relatively low cost."
},
{
"title": "Interim Director, Deputy Director, Grants Manager",
"company": "Mama Cash",
"date_range": "Apr 1997 - Jan 2006 • 8 years and 9 months"
},
{
"title": "Junior Researcher",
"company": "University of Utrecht",
"date_range": "Jan 1997 - Jan 2000 • 3 years",
"description": "Research and production of publication of Black and migrant women's movement in the Netherlands, titled: Caleidoscopic Visions, together with Maayke Botman and Gloria Wekker at GEM: the expertise centre for Gender, Ethnicity and Multiculturality."
},
{
"title": "Coordinator",
"company": "Foundation Papua Peoples",
"date_range": "Jan 1996 - Dec 1997 • 1 year and 11 months",
"description": "Inter/national lobby and information dissemination on the current situation of the people of Papua."
}
],
"education": [
{
"degree": "Master in gender studies",
"institution": "University of York",
"date_range": "1992 - 1993 • 1 year"
},
{
"degree": "master, Master in Gender Studies, minor in cultural history and English",
"institution": "Utrecht University",
"date_range": "1988 - 1994 • 6 years"
},
{
"institution": "at Grotius college",
"date_range": "1979 - 1985 • 6 years"
}
],
"linkedin_url": "https://www.linkedin.com/in/nancy-jouwe-6329935"
},
"affiliations": [
{
"custodian_name": "Raad voor Cultuur",
"custodian_slug": "raad-voor-cultuur",
"role_title": "Freelance researcher, writer, curator",
"affiliation_provenance": {
"source": "LinkedIn company people page",
"source_url": "https://www.linkedin.com/in/nancy-jouwe-6329935",
"retrieved_on": "2025-12-13T10:47:24.080000+00:00",
"retrieval_agent": "extract_persons_with_provenance.py"
}
}
],
"heritage_relevance": {
"is_heritage_relevant": true,
"heritage_types": [
"M"
],
"rationale": "Identified as heritage staff at Raad voor Cultuur"
},
"web_claims": [
{
"claim_type": "linkedin_url",
"claim_value": "https://www.linkedin.com/in/nancy-jouwe-6329935",
"source_url": "https://www.linkedin.com/company/raad-voor-cultuur/people/",
"retrieved_on": "2025-12-13T10:47:24.080000+00:00",
"statement_created_at": "2026-01-09T22:46:26.647428+00:00",
"source_archived_at": "2025-12-13T10:47:24.080000+00:00",
"xpath": "/html[1]/head[1]/meta[1]/meta[2]/meta[3]/meta[4]/meta[5]/meta[6]/meta[7]/meta[8]/meta[9]/meta[10]/meta[11]/meta[12]/meta[13]/meta[14]/link[1]/link[2]/link[3]/link[4]/link[5]/link[6]/link[7]/meta[15]/meta[16]/meta[17]/meta[18]/meta[19]/meta[20]/meta[21]/meta[22]/meta[23]/meta[24]/meta[25]/meta[26]/link[8]/link[9]/link[10]/link[11]/link[12]/meta[27]/meta[28]/meta[29]/meta[30]/meta[31]/meta[32]/meta[33]/meta[34]/meta[35]/meta[36]/meta[37]/meta[38]/meta[39]/meta[40]/meta[41]/meta[42]/meta[43]/meta[44]/meta[45]/meta[46]/meta[47]/meta[48]/meta[49]/meta[50]/meta[51]/meta[52]/meta[53]/meta[54]/meta[55]/meta[56]/meta[57]/meta[58]/meta[59]/meta[60]/meta[61]/meta[62]/meta[63]/meta[64]/meta[65]/meta[66]/meta[67]/meta[68]/meta[69]/meta[70]/meta[71]/meta[72]/meta[73]/meta[74]/meta[75]/meta[76]/meta[77]/meta[78]/meta[79]/meta[80]/meta[81]/meta[82]/meta[83]/meta[84]/meta[85]/meta[86]/meta[87]/meta[88]/meta[89]/meta[90]/meta[91]/meta[92]/meta[93]/meta[94]/meta[95]/meta[96]/meta[97]/meta[98]/meta[99]/meta[100]/meta[101]/meta[102]/meta[103]/meta[104]/meta[105]/meta[106]/meta[107]/meta[108]/meta[109]/meta[110]/meta[111]/meta[112]/meta[113]/meta[114]/meta[115]/meta[116]/meta[117]/meta[118]/meta[119]/meta[120]/meta[121]/meta[122]/meta[123]/meta[124]/meta[125]/meta[126]/meta[127]/meta[128]/meta[129]/meta[130]/meta[131]/meta[132]/meta[133]/meta[134]/meta[135]/meta[136]/meta[137]/meta[138]/meta[139]/meta[140]/meta[141]/link[13]/link[14]/meta[142]/meta[143]/link[15]/link[16]/link[17]/link[18]/link[19]/link[20]/link[21]/link[22]/link[23]/link[24]/link[25]/link[26]/link[27]/link[28]/link[29]/link[30]/link[31]/link[32]/link[33]/link[34]/link[35]/link[36]/link[37]/link[38]/link[39]/link[40]/link[41]/link[42]/link[43]/link[44]/link[45]/link[46]/link[47]/link[48]/link[49]/link[50]/body[1]/img[1]/img[2]/img[3]/img[4]/img[5]/img[6]/div[27]/header[2]/div[31]/div[62]/div[63]/div[65]/div[66]/div[67]/div[87]/main[1]/div[88]/section[2]/div[89]/div[90]/div[127]/div[128]/div[129]/div[177]/div[178]/div[179]/ul[6]/li[33]/div[180]/li[34]/div[194]/li[35]/div[208]/section[6]/img[17]/div[209]/div[210]/div[211]/a[26]",
"html_file": "/Volumes/KINGSTON/data/glam/data/custodian/person/affiliated/manual/(9) Raad voor Cultuur_ People _ LinkedIn.html",
"xpath_match_score": 1.0,
"retrieval_agent": "extract_persons_with_provenance.py"
},
{
"claim_type": "full_name",
"claim_value": "Nancy Jouwe",
"source_url": "https://www.linkedin.com/company/raad-voor-cultuur/people/",
"retrieved_on": "2025-12-13T10:47:24.080000+00:00",
"statement_created_at": "2026-01-09T22:46:26.647450+00:00",
"source_archived_at": "2025-12-13T10:47:24.080000+00:00",
"xpath": "/html[1]/head[1]/meta[1]/meta[2]/meta[3]/meta[4]/meta[5]/meta[6]/meta[7]/meta[8]/meta[9]/meta[10]/meta[11]/meta[12]/meta[13]/meta[14]/link[1]/link[2]/link[3]/link[4]/link[5]/link[6]/link[7]/meta[15]/meta[16]/meta[17]/meta[18]/meta[19]/meta[20]/meta[21]/meta[22]/meta[23]/meta[24]/meta[25]/meta[26]/link[8]/link[9]/link[10]/link[11]/link[12]/meta[27]/meta[28]/meta[29]/meta[30]/meta[31]/meta[32]/meta[33]/meta[34]/meta[35]/meta[36]/meta[37]/meta[38]/meta[39]/meta[40]/meta[41]/meta[42]/meta[43]/meta[44]/meta[45]/meta[46]/meta[47]/meta[48]/meta[49]/meta[50]/meta[51]/meta[52]/meta[53]/meta[54]/meta[55]/meta[56]/meta[57]/meta[58]/meta[59]/meta[60]/meta[61]/meta[62]/meta[63]/meta[64]/meta[65]/meta[66]/meta[67]/meta[68]/meta[69]/meta[70]/meta[71]/meta[72]/meta[73]/meta[74]/meta[75]/meta[76]/meta[77]/meta[78]/meta[79]/meta[80]/meta[81]/meta[82]/meta[83]/meta[84]/meta[85]/meta[86]/meta[87]/meta[88]/meta[89]/meta[90]/meta[91]/meta[92]/meta[93]/meta[94]/meta[95]/meta[96]/meta[97]/meta[98]/meta[99]/meta[100]/meta[101]/meta[102]/meta[103]/meta[104]/meta[105]/meta[106]/meta[107]/meta[108]/meta[109]/meta[110]/meta[111]/meta[112]/meta[113]/meta[114]/meta[115]/meta[116]/meta[117]/meta[118]/meta[119]/meta[120]/meta[121]/meta[122]/meta[123]/meta[124]/meta[125]/meta[126]/meta[127]/meta[128]/meta[129]/meta[130]/meta[131]/meta[132]/meta[133]/meta[134]/meta[135]/meta[136]/meta[137]/meta[138]/meta[139]/meta[140]/meta[141]/link[13]/link[14]/meta[142]/meta[143]/link[15]/link[16]/link[17]/link[18]/link[19]/link[20]/link[21]/link[22]/link[23]/link[24]/link[25]/link[26]/link[27]/link[28]/link[29]/link[30]/link[31]/link[32]/link[33]/link[34]/link[35]/link[36]/link[37]/link[38]/link[39]/link[40]/link[41]/link[42]/link[43]/link[44]/link[45]/link[46]/link[47]/link[48]/link[49]/link[50]/body[1]/img[1]/img[2]/img[3]/img[4]/img[5]/img[6]/div[27]/header[2]/div[31]/div[62]/div[63]/div[65]/div[66]/div[67]/div[87]/main[1]/div[88]/section[2]/div[89]/div[90]/div[127]/div[128]/div[129]/div[177]/div[178]/div[179]/ul[6]/li[33]/div[180]/li[34]/div[194]/li[35]/div[208]/section[6]/img[17]/div[209]/div[210]/div[211]/a[26]/img[18]/@alt",
"html_file": "/Volumes/KINGSTON/data/glam/data/custodian/person/affiliated/manual/(9) Raad voor Cultuur_ People _ LinkedIn.html",
"xpath_match_score": 1.0,
"retrieval_agent": "extract_persons_with_provenance.py"
},
{
"claim_type": "connection_degree",
"claim_value": "2nd",
"source_url": "https://www.linkedin.com/company/raad-voor-cultuur/people/",
"retrieved_on": "2025-12-13T10:47:24.080000+00:00",
"statement_created_at": "2026-01-09T22:46:26.647518+00:00",
"source_archived_at": "2025-12-13T10:47:24.080000+00:00",
"xpath": "/html[1]/head[1]/meta[1]/meta[2]/meta[3]/meta[4]/meta[5]/meta[6]/meta[7]/meta[8]/meta[9]/meta[10]/meta[11]/meta[12]/meta[13]/meta[14]/link[1]/link[2]/link[3]/link[4]/link[5]/link[6]/link[7]/meta[15]/meta[16]/meta[17]/meta[18]/meta[19]/meta[20]/meta[21]/meta[22]/meta[23]/meta[24]/meta[25]/meta[26]/link[8]/link[9]/link[10]/link[11]/link[12]/meta[27]/meta[28]/meta[29]/meta[30]/meta[31]/meta[32]/meta[33]/meta[34]/meta[35]/meta[36]/meta[37]/meta[38]/meta[39]/meta[40]/meta[41]/meta[42]/meta[43]/meta[44]/meta[45]/meta[46]/meta[47]/meta[48]/meta[49]/meta[50]/meta[51]/meta[52]/meta[53]/meta[54]/meta[55]/meta[56]/meta[57]/meta[58]/meta[59]/meta[60]/meta[61]/meta[62]/meta[63]/meta[64]/meta[65]/meta[66]/meta[67]/meta[68]/meta[69]/meta[70]/meta[71]/meta[72]/meta[73]/meta[74]/meta[75]/meta[76]/meta[77]/meta[78]/meta[79]/meta[80]/meta[81]/meta[82]/meta[83]/meta[84]/meta[85]/meta[86]/meta[87]/meta[88]/meta[89]/meta[90]/meta[91]/meta[92]/meta[93]/meta[94]/meta[95]/meta[96]/meta[97]/meta[98]/meta[99]/meta[100]/meta[101]/meta[102]/meta[103]/meta[104]/meta[105]/meta[106]/meta[107]/meta[108]/meta[109]/meta[110]/meta[111]/meta[112]/meta[113]/meta[114]/meta[115]/meta[116]/meta[117]/meta[118]/meta[119]/meta[120]/meta[121]/meta[122]/meta[123]/meta[124]/meta[125]/meta[126]/meta[127]/meta[128]/meta[129]/meta[130]/meta[131]/meta[132]/meta[133]/meta[134]/meta[135]/meta[136]/meta[137]/meta[138]/meta[139]/meta[140]/meta[141]/link[13]/link[14]/meta[142]/meta[143]/link[15]/link[16]/link[17]/link[18]/link[19]/link[20]/link[21]/link[22]/link[23]/link[24]/link[25]/link[26]/link[27]/link[28]/link[29]/link[30]/link[31]/link[32]/link[33]/link[34]/link[35]/link[36]/link[37]/link[38]/link[39]/link[40]/link[41]/link[42]/link[43]/link[44]/link[45]/link[46]/link[47]/link[48]/link[49]/link[50]/body[1]/img[1]/img[2]/img[3]/img[4]/img[5]/img[6]/div[27]/header[2]/div[31]/div[62]/div[63]/div[65]/div[66]/div[67]/div[87]/main[1]/div[88]/section[2]/div[89]/div[90]/div[127]/div[128]/div[129]/div[177]/div[178]/div[179]/ul[6]/li[33]/div[180]/li[34]/div[194]/li[35]/div[208]/section[6]/img[17]/div[209]/div[210]/div[211]/div[212]/div[215]",
"html_file": "/Volumes/KINGSTON/data/glam/data/custodian/person/affiliated/manual/(9) Raad voor Cultuur_ People _ LinkedIn.html",
"xpath_match_score": 1.0,
"retrieval_agent": "extract_persons_with_provenance.py"
},
{
"claim_type": "headline",
"claim_value": "Freelance researcher, writer, curator",
"source_url": "https://www.linkedin.com/company/raad-voor-cultuur/people/",
"retrieved_on": "2025-12-13T10:47:24.080000+00:00",
"statement_created_at": "2026-01-09T22:46:26.647547+00:00",
"source_archived_at": "2025-12-13T10:47:24.080000+00:00",
"xpath": "/html[1]/head[1]/meta[1]/meta[2]/meta[3]/meta[4]/meta[5]/meta[6]/meta[7]/meta[8]/meta[9]/meta[10]/meta[11]/meta[12]/meta[13]/meta[14]/link[1]/link[2]/link[3]/link[4]/link[5]/link[6]/link[7]/meta[15]/meta[16]/meta[17]/meta[18]/meta[19]/meta[20]/meta[21]/meta[22]/meta[23]/meta[24]/meta[25]/meta[26]/link[8]/link[9]/link[10]/link[11]/link[12]/meta[27]/meta[28]/meta[29]/meta[30]/meta[31]/meta[32]/meta[33]/meta[34]/meta[35]/meta[36]/meta[37]/meta[38]/meta[39]/meta[40]/meta[41]/meta[42]/meta[43]/meta[44]/meta[45]/meta[46]/meta[47]/meta[48]/meta[49]/meta[50]/meta[51]/meta[52]/meta[53]/meta[54]/meta[55]/meta[56]/meta[57]/meta[58]/meta[59]/meta[60]/meta[61]/meta[62]/meta[63]/meta[64]/meta[65]/meta[66]/meta[67]/meta[68]/meta[69]/meta[70]/meta[71]/meta[72]/meta[73]/meta[74]/meta[75]/meta[76]/meta[77]/meta[78]/meta[79]/meta[80]/meta[81]/meta[82]/meta[83]/meta[84]/meta[85]/meta[86]/meta[87]/meta[88]/meta[89]/meta[90]/meta[91]/meta[92]/meta[93]/meta[94]/meta[95]/meta[96]/meta[97]/meta[98]/meta[99]/meta[100]/meta[101]/meta[102]/meta[103]/meta[104]/meta[105]/meta[106]/meta[107]/meta[108]/meta[109]/meta[110]/meta[111]/meta[112]/meta[113]/meta[114]/meta[115]/meta[116]/meta[117]/meta[118]/meta[119]/meta[120]/meta[121]/meta[122]/meta[123]/meta[124]/meta[125]/meta[126]/meta[127]/meta[128]/meta[129]/meta[130]/meta[131]/meta[132]/meta[133]/meta[134]/meta[135]/meta[136]/meta[137]/meta[138]/meta[139]/meta[140]/meta[141]/link[13]/link[14]/meta[142]/meta[143]/link[15]/link[16]/link[17]/link[18]/link[19]/link[20]/link[21]/link[22]/link[23]/link[24]/link[25]/link[26]/link[27]/link[28]/link[29]/link[30]/link[31]/link[32]/link[33]/link[34]/link[35]/link[36]/link[37]/link[38]/link[39]/link[40]/link[41]/link[42]/link[43]/link[44]/link[45]/link[46]/link[47]/link[48]/link[49]/link[50]/body[1]/img[1]/img[2]/img[3]/img[4]/img[5]/img[6]/div[27]/header[2]/div[31]/div[62]/div[63]/div[65]/div[66]/div[67]/div[87]/main[1]/div[88]/section[2]/div[89]/div[90]/div[127]/div[128]/div[129]/div[177]/div[178]/div[179]/ul[6]/li[33]/div[180]/li[34]/div[194]/li[35]/div[208]/section[6]/img[17]/div[209]/div[210]/div[211]/div[212]/div[216]/div[217]/div[218]",
"html_file": "/Volumes/KINGSTON/data/glam/data/custodian/person/affiliated/manual/(9) Raad voor Cultuur_ People _ LinkedIn.html",
"xpath_match_score": 1.0,
"retrieval_agent": "extract_persons_with_provenance.py"
}
],
"linkedin_slug": "nancy-jouwe-6329935"
}

View file

@ -0,0 +1,234 @@
{
"ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_PAUL-VAN-CAPELLEVEEN-4559eaa5",
"ppid_type": "ID",
"ppid_components": {
"type": "ID",
"first_location": "XX-XX-XXX",
"first_date": "XXXX",
"last_location": "XX-XX-XXX",
"last_date": "XXXX",
"name_tokens": [
"PAUL",
"VAN",
"CAPELLEVEEN"
],
"collision_uuid": "4559eaa5"
},
"name": "Paul van Capelleveen",
"birth_date": {
"edtf": "XXXX",
"precision": "unknown",
"note": "Not available from WCMS"
},
"is_living": true,
"is_anonymous": false,
"wcms_identifiers": {
"user_id": "176116",
"username": "Paul van Capelleveen",
"username_url": "/user/176116",
"abs_id": "110.333528",
"crm_id": "e952a237-b932-4fe6-907e-d378099aac94"
},
"contact_details": {
"email": "paul.vancapelleveen@kb.nl",
"email_domain": "kb.nl"
},
"wcms_activity": {
"status": "Active",
"roles": [],
"registered_since": "ma 08-02-2016 - 17:25",
"last_access": "7 jaar 9 maanden ago",
"operations": [
{
"text": "Bewerken",
"url": "/en/user/176116/edit?destination=/admin/people%3Fpage%3D4147"
},
{
"text": "Rollen",
"url": "/user/176116/roles?destination=/admin/people%3Fpage%3D4147"
}
]
},
"entity_resolution": {
"potential_linkedin_matches": 2,
"match_candidates": [
{
"linkedin_ppid": "ID_XX-XX-XXX_196X_NL-ZH-TH_XXXX_PAUL-CAPELLEVEEN",
"linkedin_name": "Paul Van Capelleveen",
"linkedin_slug": "paul-van-capelleveen-0bb9b610",
"confidence_score": 0.6,
"match_signals": [
"exact_name_match"
],
"requires_review": true,
"reviewed": true,
"review_decision": "match",
"reviewed_by": "reviewer",
"reviewed_at": "2026-01-13T11:24:26.364904+00:00"
},
{
"linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_PAUL-CAPELLEVEEN",
"linkedin_name": {
"full_name": "Paul Van Capelleveen",
"display_name": "Paul Van Capelleveen",
"name_romanized": null,
"name_tokens": [
"PAUL",
"CAPELLEVEEN"
],
"source": "linkedin_profile"
},
"linkedin_slug": "paul-van-capelleveen-0bb9b610",
"confidence_score": 0.6,
"match_signals": [
"exact_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
}
],
"requires_manual_review": true,
"auto_merged": false,
"reviewed": false,
"review_notes": null,
"annotation_date": "2026-01-12T10:17:24.975185+00:00",
"annotation_script": "annotate_match_candidates.py",
"resolved": true,
"resolved_linkedin_ppid": "ID_XX-XX-XXX_196X_NL-ZH-TH_XXXX_PAUL-CAPELLEVEEN",
"resolved_linkedin_slug": "paul-van-capelleveen-0bb9b610",
"resolution_confidence": 0.65,
"resolution_signals": [
"email_name_parts",
"exact_name_match",
"email_institution",
"email_institutional"
],
"resolution_decision": "match",
"resolved_by": "reviewer",
"resolved_at": "2026-01-13T11:24:26.364904+00:00",
"merge_timestamp": "2026-01-15T10:49:18.569853+00:00",
"merge_script": "merge_reviewed_profiles.py"
},
"profile_classification": {
"primary_classification": "human",
"confidence": 0.95,
"indicators": [
{
"type": "wcms_user",
"reason": "Registered user in heritage CMS system"
}
],
"reasoning": "WCMS user profile - registered heritage sector CMS user"
},
"data_sources": [
"wcms",
"linkedin"
],
"extraction_metadata": {
"extraction_agent": "migrate_wcms_users.py",
"extraction_date": "2026-01-11T17:10:07.247954+00:00",
"source_file": "users/user_176116.json",
"source_system": "WCMS",
"schema_version": "1.0.0"
},
"migration_metadata": {
"original_wcms_file": "users/user_176116.json",
"original_user_id": "176116",
"migrated_at": "2026-01-11T17:10:07.247962+00:00",
"migration_script": "migrate_wcms_users.py",
"migration_version": "1.0"
},
"profile_data": {
"headline": "Conservator at Koninklijke Bibliotheek",
"location": "The Hague, South Holland, Netherlands (NL)",
"about": "Total Experience: 26 years",
"experience": [
{
"title": "Curator",
"company": "Koninklijke Bibliotheek",
"date_range": "Jan 1985 - Present • 40 years and 9 months"
},
{
"title": "Curator",
"company": "Museum Meermanno",
"date_range": "Jan 2006 - Jan 2011 • 5 years"
}
],
"profile_image_url": "https://static.licdn.com/aero-v1/sc/h/9c8pery4andzj6ohjkjp54ma2",
"linkedin_url": "https://www.linkedin.com/in/paul-van-capelleveen-0bb9b610"
},
"affiliations": [
{
"custodian_name": "KB nationale bibliotheek",
"custodian_slug": "kb-nationale-bibliotheek",
"role_title": "Conservator at Koninklijke Bibliotheek",
"affiliation_provenance": {
"source": "LinkedIn company people page",
"source_url": "https://www.linkedin.com/in/paul-van-capelleveen-0bb9b610",
"retrieved_on": "2025-12-10T14:51:23.110000+00:00",
"retrieval_agent": "extract_persons_with_provenance.py"
}
}
],
"heritage_relevance": {
"is_heritage_relevant": true,
"heritage_types": [
"L"
],
"rationale": "Identified as staff at KB nationale bibliotheek"
},
"web_claims": [
{
"claim_type": "linkedin_url",
"claim_value": "https://www.linkedin.com/in/paul-van-capelleveen-0bb9b610",
"source_url": "https://www.linkedin.com/company/kb-nationale-bibliotheek/people/",
"retrieved_on": "2025-12-10T14:51:23.110000+00:00",
"statement_created_at": "2026-01-09T22:45:58.481952+00:00",
"source_archived_at": "2025-12-10T14:51:23.110000+00:00",
"xpath": "/html[1]/head[1]/meta[1]/meta[2]/meta[3]/meta[4]/meta[5]/meta[6]/meta[7]/meta[8]/meta[9]/meta[10]/meta[11]/meta[12]/meta[13]/meta[14]/link[1]/link[2]/link[3]/link[4]/link[5]/link[6]/link[7]/meta[15]/meta[16]/meta[17]/meta[18]/meta[19]/meta[20]/meta[21]/meta[22]/meta[23]/meta[24]/meta[25]/meta[26]/link[8]/link[9]/link[10]/link[11]/link[12]/meta[27]/meta[28]/meta[29]/meta[30]/meta[31]/meta[32]/meta[33]/meta[34]/meta[35]/meta[36]/meta[37]/meta[38]/meta[39]/meta[40]/meta[41]/meta[42]/meta[43]/meta[44]/meta[45]/meta[46]/meta[47]/meta[48]/meta[49]/meta[50]/meta[51]/meta[52]/meta[53]/meta[54]/meta[55]/meta[56]/meta[57]/meta[58]/meta[59]/meta[60]/meta[61]/meta[62]/meta[63]/meta[64]/meta[65]/meta[66]/meta[67]/meta[68]/meta[69]/meta[70]/meta[71]/meta[72]/meta[73]/meta[74]/meta[75]/meta[76]/meta[77]/meta[78]/meta[79]/meta[80]/meta[81]/meta[82]/meta[83]/meta[84]/meta[85]/meta[86]/meta[87]/meta[88]/meta[89]/meta[90]/meta[91]/meta[92]/meta[93]/meta[94]/meta[95]/meta[96]/meta[97]/meta[98]/meta[99]/meta[100]/meta[101]/meta[102]/meta[103]/meta[104]/meta[105]/meta[106]/meta[107]/meta[108]/meta[109]/meta[110]/meta[111]/meta[112]/meta[113]/meta[114]/meta[115]/meta[116]/meta[117]/meta[118]/meta[119]/meta[120]/meta[121]/meta[122]/meta[123]/meta[124]/meta[125]/meta[126]/meta[127]/meta[128]/meta[129]/meta[130]/meta[131]/meta[132]/meta[133]/meta[134]/meta[135]/meta[136]/meta[137]/meta[138]/meta[139]/meta[140]/meta[141]/link[13]/link[14]/meta[142]/meta[143]/link[15]/link[16]/link[17]/link[18]/link[19]/link[20]/link[21]/link[22]/link[23]/link[24]/link[25]/link[26]/link[27]/link[28]/link[29]/link[30]/link[31]/link[32]/link[33]/link[34]/link[35]/link[36]/link[37]/link[38]/link[39]/link[40]/link[41]/link[42]/body[1]/img[1]/img[2]/img[3]/img[4]/img[5]/img[6]/img[7]/img[8]/img[9]/img[10]/img[11]/img[12]/img[13]/div[28]/header[2]/div[32]/div[35]/div[36]/div[37]/input[1]/div[40]/div[85]/div[86]/div[88]/div[89]/div[90]/div[110]/main[1]/div[111]/section[2]/div[148]/div[149]/div[150]/div[198]/div[199]/div[200]/ul[8]/li[41]/div[201]/li[42]/div[213]/li[43]/div[225]/li[44]/div[237]/li[45]/div[249]/li[46]/div[261]/li[47]/div[273]/li[48]/div[285]/li[49]/div[297]/li[50]/div[309]/li[51]/div[321]/li[52]/div[335]/li[53]/div[347]/li[54]/div[359]/li[55]/div[373]/li[56]/div[387]/li[57]/div[399]/li[58]/div[411]/li[59]/div[423]/li[60]/div[435]/li[61]/div[447]/li[62]/div[459]/li[63]/div[471]/li[64]/div[483]/li[65]/div[495]/li[66]/div[507]/li[67]/div[519]/li[68]/div[533]/li[69]/div[545]/li[70]/div[557]/li[71]/div[571]/li[72]/div[583]/li[73]/div[595]/li[74]/div[607]/li[75]/div[619]/li[76]/div[631]/li[77]/div[643]/li[78]/div[655]/li[79]/div[667]/li[80]/div[679]/li[81]/div[691]/li[82]/div[703]/li[83]/div[715]/li[84]/div[727]/li[85]/div[739]/li[86]/div[751]/li[87]/div[763]/li[88]/div[775]/li[89]/div[787]/li[90]/div[799]/li[91]/div[811]/li[92]/div[823]/li[93]/div[835]/li[94]/div[847]/li[95]/div[859]/li[96]/div[871]/li[97]/div[883]/li[98]/div[895]/li[99]/div[907]/li[100]/div[919]/li[101]/div[931]/li[102]/div[943]/li[103]/div[955]/li[104]/div[967]/li[105]/div[979]/li[106]/div[991]/li[107]/div[1003]/li[108]/div[1015]/li[109]/div[1027]/li[110]/div[1039]/li[111]/div[1051]/li[112]/div[1063]/li[113]/div[1075]/li[114]/div[1087]/li[115]/div[1099]/li[116]/div[1111]/section[79]/img[173]/div[1112]/div[1113]/div[1114]/a[173]",
"html_file": "/Volumes/KINGSTON/data/glam/data/custodian/person/affiliated/manual/(8) KB nationale bibliotheek_ People _ LinkedIn.html",
"xpath_match_score": 1.0,
"retrieval_agent": "extract_persons_with_provenance.py"
},
{
"claim_type": "full_name",
"claim_value": "Paul Van Capelleveen",
"source_url": "https://www.linkedin.com/company/kb-nationale-bibliotheek/people/",
"retrieved_on": "2025-12-10T14:51:23.110000+00:00",
"statement_created_at": "2026-01-09T22:45:58.481976+00:00",
"source_archived_at": "2025-12-10T14:51:23.110000+00:00",
"xpath": "/html[1]/head[1]/meta[1]/meta[2]/meta[3]/meta[4]/meta[5]/meta[6]/meta[7]/meta[8]/meta[9]/meta[10]/meta[11]/meta[12]/meta[13]/meta[14]/link[1]/link[2]/link[3]/link[4]/link[5]/link[6]/link[7]/meta[15]/meta[16]/meta[17]/meta[18]/meta[19]/meta[20]/meta[21]/meta[22]/meta[23]/meta[24]/meta[25]/meta[26]/link[8]/link[9]/link[10]/link[11]/link[12]/meta[27]/meta[28]/meta[29]/meta[30]/meta[31]/meta[32]/meta[33]/meta[34]/meta[35]/meta[36]/meta[37]/meta[38]/meta[39]/meta[40]/meta[41]/meta[42]/meta[43]/meta[44]/meta[45]/meta[46]/meta[47]/meta[48]/meta[49]/meta[50]/meta[51]/meta[52]/meta[53]/meta[54]/meta[55]/meta[56]/meta[57]/meta[58]/meta[59]/meta[60]/meta[61]/meta[62]/meta[63]/meta[64]/meta[65]/meta[66]/meta[67]/meta[68]/meta[69]/meta[70]/meta[71]/meta[72]/meta[73]/meta[74]/meta[75]/meta[76]/meta[77]/meta[78]/meta[79]/meta[80]/meta[81]/meta[82]/meta[83]/meta[84]/meta[85]/meta[86]/meta[87]/meta[88]/meta[89]/meta[90]/meta[91]/meta[92]/meta[93]/meta[94]/meta[95]/meta[96]/meta[97]/meta[98]/meta[99]/meta[100]/meta[101]/meta[102]/meta[103]/meta[104]/meta[105]/meta[106]/meta[107]/meta[108]/meta[109]/meta[110]/meta[111]/meta[112]/meta[113]/meta[114]/meta[115]/meta[116]/meta[117]/meta[118]/meta[119]/meta[120]/meta[121]/meta[122]/meta[123]/meta[124]/meta[125]/meta[126]/meta[127]/meta[128]/meta[129]/meta[130]/meta[131]/meta[132]/meta[133]/meta[134]/meta[135]/meta[136]/meta[137]/meta[138]/meta[139]/meta[140]/meta[141]/link[13]/link[14]/meta[142]/meta[143]/link[15]/link[16]/link[17]/link[18]/link[19]/link[20]/link[21]/link[22]/link[23]/link[24]/link[25]/link[26]/link[27]/link[28]/link[29]/link[30]/link[31]/link[32]/link[33]/link[34]/link[35]/link[36]/link[37]/link[38]/link[39]/link[40]/link[41]/link[42]/body[1]/img[1]/img[2]/img[3]/img[4]/img[5]/img[6]/img[7]/img[8]/img[9]/img[10]/img[11]/img[12]/img[13]/div[28]/header[2]/div[32]/div[35]/div[36]/div[37]/input[1]/div[40]/div[85]/div[86]/div[88]/div[89]/div[90]/div[110]/main[1]/div[111]/section[2]/div[148]/div[149]/div[150]/div[198]/div[199]/div[200]/ul[8]/li[41]/div[201]/li[42]/div[213]/li[43]/div[225]/li[44]/div[237]/li[45]/div[249]/li[46]/div[261]/li[47]/div[273]/li[48]/div[285]/li[49]/div[297]/li[50]/div[309]/li[51]/div[321]/li[52]/div[335]/li[53]/div[347]/li[54]/div[359]/li[55]/div[373]/li[56]/div[387]/li[57]/div[399]/li[58]/div[411]/li[59]/div[423]/li[60]/div[435]/li[61]/div[447]/li[62]/div[459]/li[63]/div[471]/li[64]/div[483]/li[65]/div[495]/li[66]/div[507]/li[67]/div[519]/li[68]/div[533]/li[69]/div[545]/li[70]/div[557]/li[71]/div[571]/li[72]/div[583]/li[73]/div[595]/li[74]/div[607]/li[75]/div[619]/li[76]/div[631]/li[77]/div[643]/li[78]/div[655]/li[79]/div[667]/li[80]/div[679]/li[81]/div[691]/li[82]/div[703]/li[83]/div[715]/li[84]/div[727]/li[85]/div[739]/li[86]/div[751]/li[87]/div[763]/li[88]/div[775]/li[89]/div[787]/li[90]/div[799]/li[91]/div[811]/li[92]/div[823]/li[93]/div[835]/li[94]/div[847]/li[95]/div[859]/li[96]/div[871]/li[97]/div[883]/li[98]/div[895]/li[99]/div[907]/li[100]/div[919]/li[101]/div[931]/li[102]/div[943]/li[103]/div[955]/li[104]/div[967]/li[105]/div[979]/li[106]/div[991]/li[107]/div[1003]/li[108]/div[1015]/li[109]/div[1027]/li[110]/div[1039]/li[111]/div[1051]/li[112]/div[1063]/li[113]/div[1075]/li[114]/div[1087]/li[115]/div[1099]/li[116]/div[1111]/section[79]/img[173]/div[1112]/div[1113]/div[1114]/a[173]/img[174]/@alt",
"html_file": "/Volumes/KINGSTON/data/glam/data/custodian/person/affiliated/manual/(8) KB nationale bibliotheek_ People _ LinkedIn.html",
"xpath_match_score": 1.0,
"retrieval_agent": "extract_persons_with_provenance.py"
},
{
"claim_type": "connection_degree",
"claim_value": "2nd",
"source_url": "https://www.linkedin.com/company/kb-nationale-bibliotheek/people/",
"retrieved_on": "2025-12-10T14:51:23.110000+00:00",
"statement_created_at": "2026-01-09T22:45:58.482044+00:00",
"source_archived_at": "2025-12-10T14:51:23.110000+00:00",
"xpath": "/html[1]/head[1]/meta[1]/meta[2]/meta[3]/meta[4]/meta[5]/meta[6]/meta[7]/meta[8]/meta[9]/meta[10]/meta[11]/meta[12]/meta[13]/meta[14]/link[1]/link[2]/link[3]/link[4]/link[5]/link[6]/link[7]/meta[15]/meta[16]/meta[17]/meta[18]/meta[19]/meta[20]/meta[21]/meta[22]/meta[23]/meta[24]/meta[25]/meta[26]/link[8]/link[9]/link[10]/link[11]/link[12]/meta[27]/meta[28]/meta[29]/meta[30]/meta[31]/meta[32]/meta[33]/meta[34]/meta[35]/meta[36]/meta[37]/meta[38]/meta[39]/meta[40]/meta[41]/meta[42]/meta[43]/meta[44]/meta[45]/meta[46]/meta[47]/meta[48]/meta[49]/meta[50]/meta[51]/meta[52]/meta[53]/meta[54]/meta[55]/meta[56]/meta[57]/meta[58]/meta[59]/meta[60]/meta[61]/meta[62]/meta[63]/meta[64]/meta[65]/meta[66]/meta[67]/meta[68]/meta[69]/meta[70]/meta[71]/meta[72]/meta[73]/meta[74]/meta[75]/meta[76]/meta[77]/meta[78]/meta[79]/meta[80]/meta[81]/meta[82]/meta[83]/meta[84]/meta[85]/meta[86]/meta[87]/meta[88]/meta[89]/meta[90]/meta[91]/meta[92]/meta[93]/meta[94]/meta[95]/meta[96]/meta[97]/meta[98]/meta[99]/meta[100]/meta[101]/meta[102]/meta[103]/meta[104]/meta[105]/meta[106]/meta[107]/meta[108]/meta[109]/meta[110]/meta[111]/meta[112]/meta[113]/meta[114]/meta[115]/meta[116]/meta[117]/meta[118]/meta[119]/meta[120]/meta[121]/meta[122]/meta[123]/meta[124]/meta[125]/meta[126]/meta[127]/meta[128]/meta[129]/meta[130]/meta[131]/meta[132]/meta[133]/meta[134]/meta[135]/meta[136]/meta[137]/meta[138]/meta[139]/meta[140]/meta[141]/link[13]/link[14]/meta[142]/meta[143]/link[15]/link[16]/link[17]/link[18]/link[19]/link[20]/link[21]/link[22]/link[23]/link[24]/link[25]/link[26]/link[27]/link[28]/link[29]/link[30]/link[31]/link[32]/link[33]/link[34]/link[35]/link[36]/link[37]/link[38]/link[39]/link[40]/link[41]/link[42]/body[1]/img[1]/img[2]/img[3]/img[4]/img[5]/img[6]/img[7]/img[8]/img[9]/img[10]/img[11]/img[12]/img[13]/div[28]/header[2]/div[32]/div[35]/div[36]/div[37]/input[1]/div[40]/div[85]/div[86]/div[88]/div[89]/div[90]/div[110]/main[1]/div[111]/section[2]/div[148]/div[149]/div[150]/div[198]/div[199]/div[200]/ul[8]/li[41]/div[201]/li[42]/div[213]/li[43]/div[225]/li[44]/div[237]/li[45]/div[249]/li[46]/div[261]/li[47]/div[273]/li[48]/div[285]/li[49]/div[297]/li[50]/div[309]/li[51]/div[321]/li[52]/div[335]/li[53]/div[347]/li[54]/div[359]/li[55]/div[373]/li[56]/div[387]/li[57]/div[399]/li[58]/div[411]/li[59]/div[423]/li[60]/div[435]/li[61]/div[447]/li[62]/div[459]/li[63]/div[471]/li[64]/div[483]/li[65]/div[495]/li[66]/div[507]/li[67]/div[519]/li[68]/div[533]/li[69]/div[545]/li[70]/div[557]/li[71]/div[571]/li[72]/div[583]/li[73]/div[595]/li[74]/div[607]/li[75]/div[619]/li[76]/div[631]/li[77]/div[643]/li[78]/div[655]/li[79]/div[667]/li[80]/div[679]/li[81]/div[691]/li[82]/div[703]/li[83]/div[715]/li[84]/div[727]/li[85]/div[739]/li[86]/div[751]/li[87]/div[763]/li[88]/div[775]/li[89]/div[787]/li[90]/div[799]/li[91]/div[811]/li[92]/div[823]/li[93]/div[835]/li[94]/div[847]/li[95]/div[859]/li[96]/div[871]/li[97]/div[883]/li[98]/div[895]/li[99]/div[907]/li[100]/div[919]/li[101]/div[931]/li[102]/div[943]/li[103]/div[955]/li[104]/div[967]/li[105]/div[979]/li[106]/div[991]/li[107]/div[1003]/li[108]/div[1015]/li[109]/div[1027]/li[110]/div[1039]/li[111]/div[1051]/li[112]/div[1063]/li[113]/div[1075]/li[114]/div[1087]/li[115]/div[1099]/li[116]/div[1111]/section[79]/img[173]/div[1112]/div[1113]/div[1114]/div[1115]/div[1118]",
"html_file": "/Volumes/KINGSTON/data/glam/data/custodian/person/affiliated/manual/(8) KB nationale bibliotheek_ People _ LinkedIn.html",
"xpath_match_score": 1.0,
"retrieval_agent": "extract_persons_with_provenance.py"
},
{
"claim_type": "headline",
"claim_value": "Conservator at Koninklijke Bibliotheek",
"source_url": "https://www.linkedin.com/company/kb-nationale-bibliotheek/people/",
"retrieved_on": "2025-12-10T14:51:23.110000+00:00",
"statement_created_at": "2026-01-09T22:45:58.482075+00:00",
"source_archived_at": "2025-12-10T14:51:23.110000+00:00",
"xpath": "/html[1]/head[1]/meta[1]/meta[2]/meta[3]/meta[4]/meta[5]/meta[6]/meta[7]/meta[8]/meta[9]/meta[10]/meta[11]/meta[12]/meta[13]/meta[14]/link[1]/link[2]/link[3]/link[4]/link[5]/link[6]/link[7]/meta[15]/meta[16]/meta[17]/meta[18]/meta[19]/meta[20]/meta[21]/meta[22]/meta[23]/meta[24]/meta[25]/meta[26]/link[8]/link[9]/link[10]/link[11]/link[12]/meta[27]/meta[28]/meta[29]/meta[30]/meta[31]/meta[32]/meta[33]/meta[34]/meta[35]/meta[36]/meta[37]/meta[38]/meta[39]/meta[40]/meta[41]/meta[42]/meta[43]/meta[44]/meta[45]/meta[46]/meta[47]/meta[48]/meta[49]/meta[50]/meta[51]/meta[52]/meta[53]/meta[54]/meta[55]/meta[56]/meta[57]/meta[58]/meta[59]/meta[60]/meta[61]/meta[62]/meta[63]/meta[64]/meta[65]/meta[66]/meta[67]/meta[68]/meta[69]/meta[70]/meta[71]/meta[72]/meta[73]/meta[74]/meta[75]/meta[76]/meta[77]/meta[78]/meta[79]/meta[80]/meta[81]/meta[82]/meta[83]/meta[84]/meta[85]/meta[86]/meta[87]/meta[88]/meta[89]/meta[90]/meta[91]/meta[92]/meta[93]/meta[94]/meta[95]/meta[96]/meta[97]/meta[98]/meta[99]/meta[100]/meta[101]/meta[102]/meta[103]/meta[104]/meta[105]/meta[106]/meta[107]/meta[108]/meta[109]/meta[110]/meta[111]/meta[112]/meta[113]/meta[114]/meta[115]/meta[116]/meta[117]/meta[118]/meta[119]/meta[120]/meta[121]/meta[122]/meta[123]/meta[124]/meta[125]/meta[126]/meta[127]/meta[128]/meta[129]/meta[130]/meta[131]/meta[132]/meta[133]/meta[134]/meta[135]/meta[136]/meta[137]/meta[138]/meta[139]/meta[140]/meta[141]/link[13]/link[14]/meta[142]/meta[143]/link[15]/link[16]/link[17]/link[18]/link[19]/link[20]/link[21]/link[22]/link[23]/link[24]/link[25]/link[26]/link[27]/link[28]/link[29]/link[30]/link[31]/link[32]/link[33]/link[34]/link[35]/link[36]/link[37]/link[38]/link[39]/link[40]/link[41]/link[42]/body[1]/img[1]/img[2]/img[3]/img[4]/img[5]/img[6]/img[7]/img[8]/img[9]/img[10]/img[11]/img[12]/img[13]/div[28]/header[2]/div[32]/div[35]/div[36]/div[37]/input[1]/div[40]/div[85]/div[86]/div[88]/div[89]/div[90]/div[110]/main[1]/div[111]/section[2]/div[148]/div[149]/div[150]/div[198]/div[199]/div[200]/ul[8]/li[41]/div[201]/li[42]/div[213]/li[43]/div[225]/li[44]/div[237]/li[45]/div[249]/li[46]/div[261]/li[47]/div[273]/li[48]/div[285]/li[49]/div[297]/li[50]/div[309]/li[51]/div[321]/li[52]/div[335]/li[53]/div[347]/li[54]/div[359]/li[55]/div[373]/li[56]/div[387]/li[57]/div[399]/li[58]/div[411]/li[59]/div[423]/li[60]/div[435]/li[61]/div[447]/li[62]/div[459]/li[63]/div[471]/li[64]/div[483]/li[65]/div[495]/li[66]/div[507]/li[67]/div[519]/li[68]/div[533]/li[69]/div[545]/li[70]/div[557]/li[71]/div[571]/li[72]/div[583]/li[73]/div[595]/li[74]/div[607]/li[75]/div[619]/li[76]/div[631]/li[77]/div[643]/li[78]/div[655]/li[79]/div[667]/li[80]/div[679]/li[81]/div[691]/li[82]/div[703]/li[83]/div[715]/li[84]/div[727]/li[85]/div[739]/li[86]/div[751]/li[87]/div[763]/li[88]/div[775]/li[89]/div[787]/li[90]/div[799]/li[91]/div[811]/li[92]/div[823]/li[93]/div[835]/li[94]/div[847]/li[95]/div[859]/li[96]/div[871]/li[97]/div[883]/li[98]/div[895]/li[99]/div[907]/li[100]/div[919]/li[101]/div[931]/li[102]/div[943]/li[103]/div[955]/li[104]/div[967]/li[105]/div[979]/li[106]/div[991]/li[107]/div[1003]/li[108]/div[1015]/li[109]/div[1027]/li[110]/div[1039]/li[111]/div[1051]/li[112]/div[1063]/li[113]/div[1075]/li[114]/div[1087]/li[115]/div[1099]/li[116]/div[1111]/section[79]/img[173]/div[1112]/div[1113]/div[1114]/div[1115]/div[1119]/div[1120]/div[1121]",
"html_file": "/Volumes/KINGSTON/data/glam/data/custodian/person/affiliated/manual/(8) KB nationale bibliotheek_ People _ LinkedIn.html",
"xpath_match_score": 1.0,
"retrieval_agent": "extract_persons_with_provenance.py"
}
],
"linkedin_slug": "paul-van-capelleveen-0bb9b610"
}

View file

@ -0,0 +1,104 @@
{
"ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_PETER-VERBRUGGE-3d35f627",
"ppid_type": "ID",
"ppid_components": {
"type": "ID",
"first_location": "XX-XX-XXX",
"first_date": "XXXX",
"last_location": "XX-XX-XXX",
"last_date": "XXXX",
"name_tokens": [
"PETER",
"VERBRUGGE"
],
"collision_uuid": "3d35f627"
},
"name": "Peter Verbrugge",
"birth_date": {
"edtf": "XXXX",
"precision": "unknown",
"note": "Not available from WCMS"
},
"is_living": true,
"is_anonymous": false,
"wcms_identifiers": {
"user_id": "181400",
"username": "PVerbrugge",
"username_url": "/user/181400",
"abs_id": "110.952215",
"crm_id": "b2d457ad-278c-4814-8d8e-f6da32431132"
},
"contact_details": {
"email": "peterverbrugge@ziggo.nl",
"email_domain": "ziggo.nl"
},
"wcms_activity": {
"status": "Active",
"roles": [],
"registered_since": "vr 20-01-2017 - 11:46",
"last_access": "8 jaar 10 maanden ago",
"operations": [
{
"text": "Bewerken",
"url": "/en/user/181400/edit?destination=/admin/people%3Fpage%3D4052"
},
{
"text": "Rollen",
"url": "/user/181400/roles?destination=/admin/people%3Fpage%3D4052"
}
]
},
"entity_resolution": {
"potential_linkedin_matches": 1,
"match_candidates": [
{
"linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_PETER-VERBRUGGE",
"linkedin_name": "Peter Verbrugge",
"linkedin_slug": "peter-verbrugge-93222514",
"confidence_score": 0.6,
"match_signals": [
"exact_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
}
],
"requires_manual_review": true,
"auto_merged": false,
"reviewed": false,
"review_notes": null,
"annotation_date": "2026-01-12T10:17:25.290438+00:00",
"annotation_script": "annotate_match_candidates.py"
},
"profile_classification": {
"primary_classification": "human",
"confidence": 0.95,
"indicators": [
{
"type": "wcms_user",
"reason": "Registered user in heritage CMS system"
}
],
"reasoning": "WCMS user profile - registered heritage sector CMS user"
},
"data_sources": [
"wcms"
],
"extraction_metadata": {
"extraction_agent": "migrate_wcms_users.py",
"extraction_date": "2026-01-11T17:11:03.287896+00:00",
"source_file": "users/user_181400.json",
"source_system": "WCMS",
"schema_version": "1.0.0"
},
"migration_metadata": {
"original_wcms_file": "users/user_181400.json",
"original_user_id": "181400",
"migrated_at": "2026-01-11T17:11:03.287911+00:00",
"migration_script": "migrate_wcms_users.py",
"migration_version": "1.0"
}
}

View file

@ -0,0 +1,105 @@
{
"ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_QUINSY-GARIO-3a522d24",
"ppid_type": "ID",
"ppid_components": {
"type": "ID",
"first_location": "XX-XX-XXX",
"first_date": "XXXX",
"last_location": "XX-XX-XXX",
"last_date": "XXXX",
"name_tokens": [
"QUINSY",
"GARIO"
],
"collision_uuid": "3a522d24"
},
"name": "Quinsy Gario",
"birth_date": {
"edtf": "XXXX",
"precision": "unknown",
"note": "Not available from WCMS"
},
"is_living": true,
"is_anonymous": false,
"wcms_identifiers": {
"user_id": "273045",
"username": "quinsy.gario",
"username_url": "/user/273045",
"abs_id": "110.1058239",
"crm_id": "ad3f71dd-1ed3-ed11-815c-8eb83bda5b05"
},
"contact_details": {
"email": "q.gario@vu.nl",
"email_domain": "vu.nl"
},
"wcms_activity": {
"status": "Active",
"roles": [],
"registered_since": "di 04-04-2023 - 21:28",
"last_access": "8 maanden 2 weken ago",
"operations": [
{
"text": "Bewerken",
"url": "/user/273045/edit?destination=/admin/people%3Fpage%3D2499"
},
{
"text": "Rollen",
"url": "/user/273045/roles?destination=/admin/people%3Fpage%3D2499"
}
]
},
"entity_resolution": {
"potential_linkedin_matches": 1,
"wikipedia_url": null,
"match_candidates": [
{
"linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_QUINSY-GARIO",
"linkedin_name": "Quinsy Gario",
"linkedin_slug": "qgario",
"confidence_score": 0.6,
"match_signals": [
"exact_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
}
],
"requires_manual_review": true,
"auto_merged": false,
"reviewed": false,
"review_notes": null,
"annotation_date": "2026-01-12T10:17:24.774275+00:00",
"annotation_script": "annotate_match_candidates.py"
},
"profile_classification": {
"primary_classification": "human",
"confidence": 0.95,
"indicators": [
{
"type": "wcms_user",
"reason": "Registered user in heritage CMS system"
}
],
"reasoning": "WCMS user profile - registered heritage sector CMS user"
},
"data_sources": [
"wcms"
],
"extraction_metadata": {
"extraction_agent": "migrate_wcms_resume.py",
"extraction_date": "2026-01-11T20:47:59.055633+00:00",
"source_file": "users/user_273045.json",
"source_system": "WCMS",
"schema_version": "1.0.0"
},
"migration_metadata": {
"original_wcms_file": "users/user_273045.json",
"original_user_id": "273045",
"migrated_at": "2026-01-11T20:47:59.055648+00:00",
"migration_script": "migrate_wcms_resume.py",
"migration_version": "2.0"
}
}

View file

@ -0,0 +1,104 @@
{
"ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_RIVKA-BAUM-d210ea12",
"ppid_type": "ID",
"ppid_components": {
"type": "ID",
"first_location": "XX-XX-XXX",
"first_date": "XXXX",
"last_location": "XX-XX-XXX",
"last_date": "XXXX",
"name_tokens": [
"RIVKA",
"BAUM"
],
"collision_uuid": "d210ea12"
},
"name": "Rivka Baum",
"birth_date": {
"edtf": "XXXX",
"precision": "unknown",
"note": "Not available from WCMS"
},
"is_living": true,
"is_anonymous": false,
"wcms_identifiers": {
"user_id": "195139",
"username": "RivkaBaum",
"username_url": "/user/195139",
"abs_id": "110.978364",
"crm_id": "1a96759e-0144-e911-810b-cd3e0bfadf9c"
},
"contact_details": {
"email": "rivka.baum@gmail.com",
"email_domain": "gmail.com"
},
"wcms_activity": {
"status": "Active",
"roles": [],
"registered_since": "ma 11-03-2019 - 14:28",
"last_access": "3 jaar 3 maanden ago",
"operations": [
{
"text": "Bewerken",
"url": "/user/195139/edit?destination=/admin/people%3Fpage%3D3758"
},
{
"text": "Rollen",
"url": "/user/195139/roles?destination=/admin/people%3Fpage%3D3758"
}
]
},
"entity_resolution": {
"potential_linkedin_matches": 1,
"match_candidates": [
{
"linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_RIVKA-BAUM",
"linkedin_name": "Rivka Baum",
"linkedin_slug": "rivka-baum-54572811a",
"confidence_score": 0.6,
"match_signals": [
"exact_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
}
],
"requires_manual_review": true,
"auto_merged": false,
"reviewed": false,
"review_notes": null,
"annotation_date": "2026-01-12T10:17:26.019378+00:00",
"annotation_script": "annotate_match_candidates.py"
},
"profile_classification": {
"primary_classification": "human",
"confidence": 0.95,
"indicators": [
{
"type": "wcms_user",
"reason": "Registered user in heritage CMS system"
}
],
"reasoning": "WCMS user profile - registered heritage sector CMS user"
},
"data_sources": [
"wcms"
],
"extraction_metadata": {
"extraction_agent": "migrate_wcms_users.py",
"extraction_date": "2026-01-11T17:14:21.999163+00:00",
"source_file": "users/user_195139.json",
"source_system": "WCMS",
"schema_version": "1.0.0"
},
"migration_metadata": {
"original_wcms_file": "users/user_195139.json",
"original_user_id": "195139",
"migrated_at": "2026-01-11T17:14:21.999172+00:00",
"migration_script": "migrate_wcms_users.py",
"migration_version": "1.0"
}
}

View file

@ -0,0 +1,118 @@
{
"ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_ROB-CAMPS-db710ad9",
"ppid_type": "ID",
"ppid_components": {
"type": "ID",
"first_location": "XX-XX-XXX",
"first_date": "XXXX",
"last_location": "XX-XX-XXX",
"last_date": "XXXX",
"name_tokens": [
"ROB",
"CAMPS"
],
"collision_uuid": "db710ad9"
},
"name": "Rob Camps",
"birth_date": {
"edtf": "XXXX",
"precision": "unknown",
"note": "Not available from WCMS"
},
"is_living": true,
"is_anonymous": false,
"wcms_identifiers": {
"user_id": "195553",
"username": "rcampie",
"username_url": "/user/195553",
"abs_id": "110.975740",
"crm_id": "8ef6bc0c-b115-e911-8109-f1cdc9802167"
},
"contact_details": {
"email": "campsglorie@glazenkamp.net",
"email_domain": "glazenkamp.net"
},
"wcms_activity": {
"status": "Active",
"roles": [],
"registered_since": "vr 11-01-2019 - 15:56",
"last_access": "1 jaar 7 maanden ago",
"operations": [
{
"text": "Bewerken",
"url": "/en/user/195553/edit?destination=/admin/people%3Fpage%3D3791"
},
{
"text": "Rollen",
"url": "/user/195553/roles?destination=/admin/people%3Fpage%3D3791"
}
]
},
"entity_resolution": {
"potential_linkedin_matches": 2,
"match_candidates": [
{
"linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_ROB-CAMPS",
"linkedin_name": "Rob Camps",
"linkedin_slug": "robcamps",
"confidence_score": 0.6,
"match_signals": [
"exact_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
},
{
"linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_ROBINSON-CAMPS",
"linkedin_name": "Robinson Camps",
"linkedin_slug": "robinson-camps-60398b31a",
"confidence_score": 0.51,
"match_signals": [
"strong_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
}
],
"requires_manual_review": true,
"auto_merged": false,
"reviewed": false,
"review_notes": null,
"annotation_date": "2026-01-12T10:17:25.156236+00:00",
"annotation_script": "annotate_match_candidates.py"
},
"profile_classification": {
"primary_classification": "human",
"confidence": 0.95,
"indicators": [
{
"type": "wcms_user",
"reason": "Registered user in heritage CMS system"
}
],
"reasoning": "WCMS user profile - registered heritage sector CMS user"
},
"data_sources": [
"wcms"
],
"extraction_metadata": {
"extraction_agent": "migrate_wcms_users.py",
"extraction_date": "2026-01-11T17:13:54.568276+00:00",
"source_file": "users/user_195553.json",
"source_system": "WCMS",
"schema_version": "1.0.0"
},
"migration_metadata": {
"original_wcms_file": "users/user_195553.json",
"original_user_id": "195553",
"migrated_at": "2026-01-11T17:13:54.568285+00:00",
"migration_script": "migrate_wcms_users.py",
"migration_version": "1.0"
}
}

View file

@ -0,0 +1,104 @@
{
"ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_RUTGER-VAN-KOERT",
"ppid_type": "ID",
"ppid_components": {
"type": "ID",
"first_location": "XX-XX-XXX",
"first_date": "XXXX",
"last_location": "XX-XX-XXX",
"last_date": "XXXX",
"name_tokens": [
"RUTGER",
"VAN",
"KOERT"
]
},
"name": "Rutger van Koert",
"birth_date": {
"edtf": "XXXX",
"precision": "unknown",
"note": "Not available from WCMS"
},
"is_living": true,
"is_anonymous": false,
"wcms_identifiers": {
"user_id": "180154",
"username": "rutgervankoert",
"username_url": "/user/180154",
"abs_id": "110.339728",
"crm_id": "dcd30873-f5a2-4973-bd26-a518fa04d5d2"
},
"contact_details": {
"email": "r.c.van.koert@gmail.com",
"email_domain": "gmail.com"
},
"wcms_activity": {
"status": "Active",
"roles": [],
"registered_since": "ma 07-11-2016 - 15:38",
"last_access": "7 maanden 3 weken ago",
"operations": [
{
"text": "Bewerken",
"url": "/user/180154/edit?destination=/admin/people%3Fpage%3D4074"
},
{
"text": "Rollen",
"url": "/user/180154/roles?destination=/admin/people%3Fpage%3D4074"
}
]
},
"entity_resolution": {
"potential_linkedin_matches": 1,
"match_candidates": [
{
"linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_RUTGER-KOERT",
"linkedin_name": "Rutger van Koert",
"linkedin_slug": "rutgervankoert",
"confidence_score": 0.6,
"match_signals": [
"exact_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
}
],
"requires_manual_review": true,
"auto_merged": false,
"reviewed": false,
"review_notes": null,
"annotation_date": "2026-01-12T10:17:25.116254+00:00",
"annotation_script": "annotate_match_candidates.py"
},
"profile_classification": {
"primary_classification": "human",
"confidence": 0.95,
"indicators": [
{
"type": "wcms_user",
"reason": "Registered user in heritage CMS system"
}
],
"reasoning": "WCMS user profile - registered heritage sector CMS user"
},
"data_sources": [
"wcms"
],
"extraction_metadata": {
"extraction_agent": "migrate_wcms_users.py",
"extraction_date": "2026-01-11T17:10:51.650180+00:00",
"source_file": "users/user_180154.json",
"source_system": "WCMS",
"schema_version": "1.0.0"
},
"migration_metadata": {
"original_wcms_file": "users/user_180154.json",
"original_user_id": "180154",
"migrated_at": "2026-01-11T17:10:51.650195+00:00",
"migration_script": "migrate_wcms_users.py",
"migration_version": "1.0"
}
}

View file

@ -0,0 +1,104 @@
{
"ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_SIGNE-TROOST-568421e0",
"ppid_type": "ID",
"ppid_components": {
"type": "ID",
"first_location": "XX-XX-XXX",
"first_date": "XXXX",
"last_location": "XX-XX-XXX",
"last_date": "XXXX",
"name_tokens": [
"SIGNE",
"TROOST"
],
"collision_uuid": "568421e0"
},
"name": "Signe Troost",
"birth_date": {
"edtf": "XXXX",
"precision": "unknown",
"note": "Not available from WCMS"
},
"is_living": true,
"is_anonymous": false,
"wcms_identifiers": {
"user_id": "158559",
"username": "SigneTroost",
"username_url": "/user/158559",
"abs_id": "110.299296",
"crm_id": "DCE64867-511C-E211-B361-005056930016"
},
"contact_details": {
"email": "signe.troost@gmail.com",
"email_domain": "gmail.com"
},
"wcms_activity": {
"status": "Active",
"roles": [],
"registered_since": "ma 22-10-2012 - 16:04",
"last_access": "13 jaar 1 maand ago",
"operations": [
{
"text": "Bewerken",
"url": "/en/user/158559/edit?destination=/admin/people%3Fpage%3D4497"
},
{
"text": "Rollen",
"url": "/user/158559/roles?destination=/admin/people%3Fpage%3D4497"
}
]
},
"entity_resolution": {
"potential_linkedin_matches": 1,
"match_candidates": [
{
"linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_SIGNE-TROOST",
"linkedin_name": "Signe Troost",
"linkedin_slug": "signe-troost",
"confidence_score": 0.6,
"match_signals": [
"exact_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
}
],
"requires_manual_review": true,
"auto_merged": false,
"reviewed": false,
"review_notes": null,
"annotation_date": "2026-01-12T10:17:25.382456+00:00",
"annotation_script": "annotate_match_candidates.py"
},
"profile_classification": {
"primary_classification": "human",
"confidence": 0.95,
"indicators": [
{
"type": "wcms_user",
"reason": "Registered user in heritage CMS system"
}
],
"reasoning": "WCMS user profile - registered heritage sector CMS user"
},
"data_sources": [
"wcms"
],
"extraction_metadata": {
"extraction_agent": "migrate_wcms_users.py",
"extraction_date": "2026-01-11T17:07:31.010029+00:00",
"source_file": "users/user_158559.json",
"source_system": "WCMS",
"schema_version": "1.0.0"
},
"migration_metadata": {
"original_wcms_file": "users/user_158559.json",
"original_user_id": "158559",
"migrated_at": "2026-01-11T17:07:31.010033+00:00",
"migration_script": "migrate_wcms_users.py",
"migration_version": "1.0"
}
}

View file

@ -0,0 +1,106 @@
{
"ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_SUSAN-DE-THOUARS-88d52e11",
"ppid_type": "ID",
"ppid_components": {
"type": "ID",
"first_location": "XX-XX-XXX",
"first_date": "XXXX",
"last_location": "XX-XX-XXX",
"last_date": "XXXX",
"name_tokens": [
"SUSAN",
"DE",
"THOUARS"
],
"collision_uuid": "88d52e11"
},
"name": "Susan de Thouars",
"birth_date": {
"edtf": "XXXX",
"precision": "unknown",
"note": "Not available from WCMS"
},
"is_living": true,
"is_anonymous": false,
"wcms_identifiers": {
"user_id": "286966",
"username": "susandet",
"username_url": "/user/286966",
"abs_id": "110.1072470",
"crm_id": "cc88105e-e67e-ee11-816c-c2af9f731bbb"
},
"contact_details": {
"email": "susan.de.thouars@wo2net.nl",
"email_domain": "wo2net.nl"
},
"wcms_activity": {
"status": "Active",
"roles": [],
"registered_since": "do 09-11-2023 - 10:57",
"last_access": "2 jaar 1 maand ago",
"operations": [
{
"text": "Bewerken",
"url": "/user/286966/edit?destination=/admin/people%3Fpage%3D2226"
},
{
"text": "Rollen",
"url": "/user/286966/roles?destination=/admin/people%3Fpage%3D2226"
}
]
},
"entity_resolution": {
"potential_linkedin_matches": 1,
"wikipedia_url": null,
"match_candidates": [
{
"linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_SUSAN-DE-THOUARS",
"linkedin_name": "Susan de Thouars",
"linkedin_slug": "susan-de-thouars-41b201167",
"confidence_score": 0.6,
"match_signals": [
"exact_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
}
],
"requires_manual_review": true,
"auto_merged": false,
"reviewed": false,
"review_notes": null,
"annotation_date": "2026-01-12T10:17:25.143910+00:00",
"annotation_script": "annotate_match_candidates.py"
},
"profile_classification": {
"primary_classification": "human",
"confidence": 0.95,
"indicators": [
{
"type": "wcms_user",
"reason": "Registered user in heritage CMS system"
}
],
"reasoning": "WCMS user profile - registered heritage sector CMS user"
},
"data_sources": [
"wcms"
],
"extraction_metadata": {
"extraction_agent": "migrate_wcms_resume.py",
"extraction_date": "2026-01-11T21:24:11.094792+00:00",
"source_file": "users/user_286966.json",
"source_system": "WCMS",
"schema_version": "1.0.0"
},
"migration_metadata": {
"original_wcms_file": "users/user_286966.json",
"original_user_id": "286966",
"migrated_at": "2026-01-11T21:24:11.094805+00:00",
"migration_script": "migrate_wcms_resume.py",
"migration_version": "2.0"
}
}

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,104 @@
{
"ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_THOMAS-BERGHUIS-c586002f",
"ppid_type": "ID",
"ppid_components": {
"type": "ID",
"first_location": "XX-XX-XXX",
"first_date": "XXXX",
"last_location": "XX-XX-XXX",
"last_date": "XXXX",
"name_tokens": [
"THOMAS",
"BERGHUIS"
],
"collision_uuid": "c586002f"
},
"name": "Thomas Berghuis",
"birth_date": {
"edtf": "XXXX",
"precision": "unknown",
"note": "Not available from WCMS"
},
"is_living": true,
"is_anonymous": false,
"wcms_identifiers": {
"user_id": "191371",
"username": "ThoBergh73",
"username_url": "/user/191371",
"abs_id": "110.968898",
"crm_id": "59a65ec8-2384-e811-8101-8ee32d505d2e"
},
"contact_details": {
"email": "dr.t.j.berghuis@gmail.com",
"email_domain": "gmail.com"
},
"wcms_activity": {
"status": "Active",
"roles": [],
"registered_since": "di 10-07-2018 - 11:29",
"last_access": "7 jaar 5 maanden ago",
"operations": [
{
"text": "Bewerken",
"url": "/en/user/191371/edit?destination=/admin/people%3Fpage%3D3874"
},
{
"text": "Rollen",
"url": "/user/191371/roles?destination=/admin/people%3Fpage%3D3874"
}
]
},
"entity_resolution": {
"potential_linkedin_matches": 1,
"match_candidates": [
{
"linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_THOMAS-BERGHUIS",
"linkedin_name": "Thomas Berghuis",
"linkedin_slug": "thomasberghuis",
"confidence_score": 0.6,
"match_signals": [
"exact_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
}
],
"requires_manual_review": true,
"auto_merged": false,
"reviewed": false,
"review_notes": null,
"annotation_date": "2026-01-12T10:17:25.962020+00:00",
"annotation_script": "annotate_match_candidates.py"
},
"profile_classification": {
"primary_classification": "human",
"confidence": 0.95,
"indicators": [
{
"type": "wcms_user",
"reason": "Registered user in heritage CMS system"
}
],
"reasoning": "WCMS user profile - registered heritage sector CMS user"
},
"data_sources": [
"wcms"
],
"extraction_metadata": {
"extraction_agent": "migrate_wcms_users.py",
"extraction_date": "2026-01-11T17:12:49.644146+00:00",
"source_file": "users/user_191371.json",
"source_system": "WCMS",
"schema_version": "1.0.0"
},
"migration_metadata": {
"original_wcms_file": "users/user_191371.json",
"original_user_id": "191371",
"migrated_at": "2026-01-11T17:12:49.644155+00:00",
"migration_script": "migrate_wcms_users.py",
"migration_version": "1.0"
}
}

View file

@ -0,0 +1,218 @@
{
"ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_VINCENT-ROBIJN-d4baeb1b",
"ppid_type": "ID",
"ppid_components": {
"type": "ID",
"first_location": "XX-XX-XXX",
"first_date": "XXXX",
"last_location": "XX-XX-XXX",
"last_date": "XXXX",
"name_tokens": [
"VINCENT",
"ROBIJN"
],
"collision_uuid": "d4baeb1b"
},
"name": "Vincent Robijn",
"birth_date": {
"edtf": "XXXX",
"precision": "unknown",
"note": "Not available from WCMS"
},
"is_living": true,
"is_anonymous": false,
"wcms_identifiers": {
"user_id": "156262",
"username": "vincentrobijn",
"username_url": "/user/156262",
"abs_id": "110.295393",
"crm_id": "399FFC92-88AE-E111-877B-005056930016"
},
"contact_details": {
"email": "vincentrobijn@gmail.com",
"email_domain": "gmail.com"
},
"wcms_activity": {
"status": "Active",
"roles": [
"Beta gebruiker"
],
"registered_since": "ma 04-06-2012 - 23:02",
"last_access": "10 maanden 1 week ago",
"operations": [
{
"text": "Bewerken",
"url": "/user/156262/edit?destination=/admin/people%3Fpage%3D4543"
},
{
"text": "Rollen",
"url": "/user/156262/roles?destination=/admin/people%3Fpage%3D4543"
}
]
},
"entity_resolution": {
"potential_linkedin_matches": 2,
"match_candidates": [
{
"linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_VINCENT-ROBIJN",
"linkedin_name": {
"full_name": "Vincent Robijn",
"display_name": "Vincent Robijn",
"name_romanized": null,
"name_tokens": [
"VINCENT",
"ROBIJN"
],
"source": "linkedin_profile"
},
"linkedin_slug": "vincent-robijn-7b22a220",
"confidence_score": 0.6,
"match_signals": [
"exact_name_match"
],
"requires_review": true,
"reviewed": true,
"review_decision": "match",
"reviewed_by": "reviewer",
"reviewed_at": "2026-01-13T12:36:10.247619+00:00"
},
{
"linkedin_ppid": "ID_NL-GR-GRO_197X_NL-OV-ZWO_XXXX_VINCENT-ROBIJN",
"linkedin_name": "Vincent Robijn",
"linkedin_slug": "vincent-robijn-7b22a220",
"confidence_score": 0.6,
"match_signals": [
"exact_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
}
],
"requires_manual_review": true,
"auto_merged": false,
"reviewed": false,
"review_notes": null,
"annotation_date": "2026-01-12T10:17:25.009400+00:00",
"annotation_script": "annotate_match_candidates.py",
"resolved": true,
"resolved_linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_VINCENT-ROBIJN",
"resolved_linkedin_slug": "vincent-robijn-7b22a220",
"resolution_confidence": 0.65,
"resolution_signals": [
"email_name_parts",
"exact_name_match"
],
"resolution_decision": "match",
"resolved_by": "reviewer",
"resolved_at": "2026-01-13T12:36:10.247619+00:00",
"merge_timestamp": "2026-01-15T10:49:18.579568+00:00",
"merge_script": "merge_reviewed_profiles.py"
},
"profile_classification": {
"primary_classification": "human",
"confidence": 0.95,
"indicators": [
{
"type": "wcms_user",
"reason": "Registered user in heritage CMS system"
}
],
"reasoning": "WCMS user profile - registered heritage sector CMS user"
},
"data_sources": [
"wcms",
"linkedin"
],
"extraction_metadata": {
"extraction_agent": "migrate_wcms_users.py",
"extraction_date": "2026-01-11T17:07:25.864987+00:00",
"source_file": "users/user_156262.json",
"source_system": "WCMS",
"schema_version": "1.0.0"
},
"migration_metadata": {
"original_wcms_file": "users/user_156262.json",
"original_user_id": "156262",
"migrated_at": "2026-01-11T17:07:25.864991+00:00",
"migration_script": "migrate_wcms_users.py",
"migration_version": "1.0"
},
"profile_data": {
"headline": "Directeur bij Collectie Overijssel",
"linkedin_url": "https://www.linkedin.com/in/vincent-robijn-7b22a220"
},
"affiliations": [
{
"custodian_name": "Collectie Overijssel",
"custodian_slug": "collectie-overijssel",
"role_title": "Directeur bij Collectie Overijssel",
"affiliation_provenance": {
"source": "LinkedIn company people page",
"source_url": "https://www.linkedin.com/in/vincent-robijn-7b22a220",
"retrieved_on": "2025-12-10T14:20:38.900000+00:00",
"retrieval_agent": "extract_persons_with_provenance.py"
}
}
],
"heritage_relevance": {
"is_heritage_relevant": true,
"heritage_types": [
"M"
],
"rationale": "Identified as staff at Collectie Overijssel"
},
"web_claims": [
{
"claim_type": "linkedin_url",
"claim_value": "https://www.linkedin.com/in/vincent-robijn-7b22a220",
"source_url": "https://www.linkedin.com/company/collectie-overijssel/people/",
"retrieved_on": "2025-12-10T14:20:38.900000+00:00",
"statement_created_at": "2026-01-09T22:45:57.123295+00:00",
"source_archived_at": "2025-12-10T14:20:38.900000+00:00",
"xpath": "/html[1]/head[1]/meta[1]/meta[2]/meta[3]/meta[4]/meta[5]/meta[6]/meta[7]/meta[8]/meta[9]/meta[10]/meta[11]/meta[12]/meta[13]/meta[14]/link[1]/link[2]/link[3]/link[4]/link[5]/link[6]/link[7]/meta[15]/meta[16]/meta[17]/meta[18]/meta[19]/meta[20]/meta[21]/meta[22]/meta[23]/meta[24]/meta[25]/meta[26]/link[8]/link[9]/link[10]/link[11]/link[12]/meta[27]/meta[28]/meta[29]/meta[30]/meta[31]/meta[32]/meta[33]/meta[34]/meta[35]/meta[36]/meta[37]/meta[38]/meta[39]/meta[40]/meta[41]/meta[42]/meta[43]/meta[44]/meta[45]/meta[46]/meta[47]/meta[48]/meta[49]/meta[50]/meta[51]/meta[52]/meta[53]/meta[54]/meta[55]/meta[56]/meta[57]/meta[58]/meta[59]/meta[60]/meta[61]/meta[62]/meta[63]/meta[64]/meta[65]/meta[66]/meta[67]/meta[68]/meta[69]/meta[70]/meta[71]/meta[72]/meta[73]/meta[74]/meta[75]/meta[76]/meta[77]/meta[78]/meta[79]/meta[80]/meta[81]/meta[82]/meta[83]/meta[84]/meta[85]/meta[86]/meta[87]/meta[88]/meta[89]/meta[90]/meta[91]/meta[92]/meta[93]/meta[94]/meta[95]/meta[96]/meta[97]/meta[98]/meta[99]/meta[100]/meta[101]/meta[102]/meta[103]/meta[104]/meta[105]/meta[106]/meta[107]/meta[108]/meta[109]/meta[110]/meta[111]/meta[112]/meta[113]/meta[114]/meta[115]/meta[116]/meta[117]/meta[118]/meta[119]/meta[120]/meta[121]/meta[122]/meta[123]/meta[124]/meta[125]/meta[126]/meta[127]/meta[128]/meta[129]/meta[130]/meta[131]/meta[132]/meta[133]/meta[134]/meta[135]/meta[136]/meta[137]/meta[138]/meta[139]/meta[140]/meta[141]/link[13]/link[14]/meta[142]/meta[143]/link[15]/link[16]/link[17]/link[18]/link[19]/link[20]/link[21]/link[22]/link[23]/link[24]/link[25]/link[26]/link[27]/link[28]/link[29]/link[30]/link[31]/link[32]/link[33]/link[34]/body[1]/img[1]/img[2]/img[3]/img[4]/img[5]/img[6]/img[7]/img[8]/img[9]/img[10]/img[11]/img[12]/img[13]/div[28]/header[2]/div[32]/div[63]/div[64]/div[66]/div[67]/div[68]/div[88]/main[1]/div[89]/section[2]/div[125]/div[126]/div[127]/div[175]/div[176]/div[177]/ul[6]/li[33]/div[178]/li[34]/div[190]/li[35]/div[202]/li[36]/div[214]/li[37]/div[228]/li[38]/div[240]/li[39]/div[252]/li[40]/div[264]/li[41]/div[276]/li[42]/div[288]/li[43]/div[300]/li[44]/div[312]/section[15]/img[40]/div[313]/div[314]/div[315]/a[44]",
"html_file": "/Volumes/KINGSTON/data/glam/data/custodian/person/affiliated/manual/(8) Collectie Overijssel_ People _ LinkedIn.html",
"xpath_match_score": 1.0,
"retrieval_agent": "extract_persons_with_provenance.py"
},
{
"claim_type": "full_name",
"claim_value": "Vincent Robijn",
"source_url": "https://www.linkedin.com/company/collectie-overijssel/people/",
"retrieved_on": "2025-12-10T14:20:38.900000+00:00",
"statement_created_at": "2026-01-09T22:45:57.123380+00:00",
"source_archived_at": "2025-12-10T14:20:38.900000+00:00",
"xpath": "/html[1]/head[1]/meta[1]/meta[2]/meta[3]/meta[4]/meta[5]/meta[6]/meta[7]/meta[8]/meta[9]/meta[10]/meta[11]/meta[12]/meta[13]/meta[14]/link[1]/link[2]/link[3]/link[4]/link[5]/link[6]/link[7]/meta[15]/meta[16]/meta[17]/meta[18]/meta[19]/meta[20]/meta[21]/meta[22]/meta[23]/meta[24]/meta[25]/meta[26]/link[8]/link[9]/link[10]/link[11]/link[12]/meta[27]/meta[28]/meta[29]/meta[30]/meta[31]/meta[32]/meta[33]/meta[34]/meta[35]/meta[36]/meta[37]/meta[38]/meta[39]/meta[40]/meta[41]/meta[42]/meta[43]/meta[44]/meta[45]/meta[46]/meta[47]/meta[48]/meta[49]/meta[50]/meta[51]/meta[52]/meta[53]/meta[54]/meta[55]/meta[56]/meta[57]/meta[58]/meta[59]/meta[60]/meta[61]/meta[62]/meta[63]/meta[64]/meta[65]/meta[66]/meta[67]/meta[68]/meta[69]/meta[70]/meta[71]/meta[72]/meta[73]/meta[74]/meta[75]/meta[76]/meta[77]/meta[78]/meta[79]/meta[80]/meta[81]/meta[82]/meta[83]/meta[84]/meta[85]/meta[86]/meta[87]/meta[88]/meta[89]/meta[90]/meta[91]/meta[92]/meta[93]/meta[94]/meta[95]/meta[96]/meta[97]/meta[98]/meta[99]/meta[100]/meta[101]/meta[102]/meta[103]/meta[104]/meta[105]/meta[106]/meta[107]/meta[108]/meta[109]/meta[110]/meta[111]/meta[112]/meta[113]/meta[114]/meta[115]/meta[116]/meta[117]/meta[118]/meta[119]/meta[120]/meta[121]/meta[122]/meta[123]/meta[124]/meta[125]/meta[126]/meta[127]/meta[128]/meta[129]/meta[130]/meta[131]/meta[132]/meta[133]/meta[134]/meta[135]/meta[136]/meta[137]/meta[138]/meta[139]/meta[140]/meta[141]/link[13]/link[14]/meta[142]/meta[143]/link[15]/link[16]/link[17]/link[18]/link[19]/link[20]/link[21]/link[22]/link[23]/link[24]/link[25]/link[26]/link[27]/link[28]/link[29]/link[30]/link[31]/link[32]/link[33]/link[34]/body[1]/img[1]/img[2]/img[3]/img[4]/img[5]/img[6]/img[7]/img[8]/img[9]/img[10]/img[11]/img[12]/img[13]/div[28]/header[2]/div[32]/div[63]/div[64]/div[66]/div[67]/div[68]/div[88]/main[1]/div[89]/section[2]/div[125]/div[126]/div[127]/div[175]/div[176]/div[177]/ul[6]/li[33]/div[178]/li[34]/div[190]/li[35]/div[202]/li[36]/div[214]/li[37]/div[228]/li[38]/div[240]/li[39]/div[252]/li[40]/div[264]/li[41]/div[276]/li[42]/div[288]/li[43]/div[300]/li[44]/div[312]/section[15]/img[40]/div[313]/div[314]/div[315]/a[44]/img[41]/@alt",
"html_file": "/Volumes/KINGSTON/data/glam/data/custodian/person/affiliated/manual/(8) Collectie Overijssel_ People _ LinkedIn.html",
"xpath_match_score": 1.0,
"retrieval_agent": "extract_persons_with_provenance.py"
},
{
"claim_type": "connection_degree",
"claim_value": "1st",
"source_url": "https://www.linkedin.com/company/collectie-overijssel/people/",
"retrieved_on": "2025-12-10T14:20:38.900000+00:00",
"statement_created_at": "2026-01-09T22:45:57.123600+00:00",
"source_archived_at": "2025-12-10T14:20:38.900000+00:00",
"xpath": "/html[1]/head[1]/meta[1]/meta[2]/meta[3]/meta[4]/meta[5]/meta[6]/meta[7]/meta[8]/meta[9]/meta[10]/meta[11]/meta[12]/meta[13]/meta[14]/link[1]/link[2]/link[3]/link[4]/link[5]/link[6]/link[7]/meta[15]/meta[16]/meta[17]/meta[18]/meta[19]/meta[20]/meta[21]/meta[22]/meta[23]/meta[24]/meta[25]/meta[26]/link[8]/link[9]/link[10]/link[11]/link[12]/meta[27]/meta[28]/meta[29]/meta[30]/meta[31]/meta[32]/meta[33]/meta[34]/meta[35]/meta[36]/meta[37]/meta[38]/meta[39]/meta[40]/meta[41]/meta[42]/meta[43]/meta[44]/meta[45]/meta[46]/meta[47]/meta[48]/meta[49]/meta[50]/meta[51]/meta[52]/meta[53]/meta[54]/meta[55]/meta[56]/meta[57]/meta[58]/meta[59]/meta[60]/meta[61]/meta[62]/meta[63]/meta[64]/meta[65]/meta[66]/meta[67]/meta[68]/meta[69]/meta[70]/meta[71]/meta[72]/meta[73]/meta[74]/meta[75]/meta[76]/meta[77]/meta[78]/meta[79]/meta[80]/meta[81]/meta[82]/meta[83]/meta[84]/meta[85]/meta[86]/meta[87]/meta[88]/meta[89]/meta[90]/meta[91]/meta[92]/meta[93]/meta[94]/meta[95]/meta[96]/meta[97]/meta[98]/meta[99]/meta[100]/meta[101]/meta[102]/meta[103]/meta[104]/meta[105]/meta[106]/meta[107]/meta[108]/meta[109]/meta[110]/meta[111]/meta[112]/meta[113]/meta[114]/meta[115]/meta[116]/meta[117]/meta[118]/meta[119]/meta[120]/meta[121]/meta[122]/meta[123]/meta[124]/meta[125]/meta[126]/meta[127]/meta[128]/meta[129]/meta[130]/meta[131]/meta[132]/meta[133]/meta[134]/meta[135]/meta[136]/meta[137]/meta[138]/meta[139]/meta[140]/meta[141]/link[13]/link[14]/meta[142]/meta[143]/link[15]/link[16]/link[17]/link[18]/link[19]/link[20]/link[21]/link[22]/link[23]/link[24]/link[25]/link[26]/link[27]/link[28]/link[29]/link[30]/link[31]/link[32]/link[33]/link[34]/body[1]/img[1]/img[2]/img[3]/img[4]/img[5]/img[6]/img[7]/img[8]/img[9]/img[10]/img[11]/img[12]/img[13]/div[28]/header[2]/div[32]/div[63]/div[64]/div[66]/div[67]/div[68]/div[88]/main[1]/div[89]/section[2]/div[125]/div[126]/div[127]/div[175]/div[176]/div[177]/ul[6]/li[33]/div[178]/li[34]/div[190]/li[35]/div[202]/li[36]/div[214]/li[37]/div[228]/li[38]/div[240]/li[39]/div[252]/li[40]/div[264]/li[41]/div[276]/li[42]/div[288]/li[43]/div[300]/li[44]/div[312]/section[15]/img[40]/div[313]/div[314]/div[315]/div[316]/div[319]",
"html_file": "/Volumes/KINGSTON/data/glam/data/custodian/person/affiliated/manual/(8) Collectie Overijssel_ People _ LinkedIn.html",
"xpath_match_score": 1.0,
"retrieval_agent": "extract_persons_with_provenance.py"
},
{
"claim_type": "headline",
"claim_value": "Directeur bij Collectie Overijssel",
"source_url": "https://www.linkedin.com/company/collectie-overijssel/people/",
"retrieved_on": "2025-12-10T14:20:38.900000+00:00",
"statement_created_at": "2026-01-09T22:45:57.123689+00:00",
"source_archived_at": "2025-12-10T14:20:38.900000+00:00",
"xpath": "/html[1]/head[1]/meta[1]/meta[2]/meta[3]/meta[4]/meta[5]/meta[6]/meta[7]/meta[8]/meta[9]/meta[10]/meta[11]/meta[12]/meta[13]/meta[14]/link[1]/link[2]/link[3]/link[4]/link[5]/link[6]/link[7]/meta[15]/meta[16]/meta[17]/meta[18]/meta[19]/meta[20]/meta[21]/meta[22]/meta[23]/meta[24]/meta[25]/meta[26]/link[8]/link[9]/link[10]/link[11]/link[12]/meta[27]/meta[28]/meta[29]/meta[30]/meta[31]/meta[32]/meta[33]/meta[34]/meta[35]/meta[36]/meta[37]/meta[38]/meta[39]/meta[40]/meta[41]/meta[42]/meta[43]/meta[44]/meta[45]/meta[46]/meta[47]/meta[48]/meta[49]/meta[50]/meta[51]/meta[52]/meta[53]/meta[54]/meta[55]/meta[56]/meta[57]/meta[58]/meta[59]/meta[60]/meta[61]/meta[62]/meta[63]/meta[64]/meta[65]/meta[66]/meta[67]/meta[68]/meta[69]/meta[70]/meta[71]/meta[72]/meta[73]/meta[74]/meta[75]/meta[76]/meta[77]/meta[78]/meta[79]/meta[80]/meta[81]/meta[82]/meta[83]/meta[84]/meta[85]/meta[86]/meta[87]/meta[88]/meta[89]/meta[90]/meta[91]/meta[92]/meta[93]/meta[94]/meta[95]/meta[96]/meta[97]/meta[98]/meta[99]/meta[100]/meta[101]/meta[102]/meta[103]/meta[104]/meta[105]/meta[106]/meta[107]/meta[108]/meta[109]/meta[110]/meta[111]/meta[112]/meta[113]/meta[114]/meta[115]/meta[116]/meta[117]/meta[118]/meta[119]/meta[120]/meta[121]/meta[122]/meta[123]/meta[124]/meta[125]/meta[126]/meta[127]/meta[128]/meta[129]/meta[130]/meta[131]/meta[132]/meta[133]/meta[134]/meta[135]/meta[136]/meta[137]/meta[138]/meta[139]/meta[140]/meta[141]/link[13]/link[14]/meta[142]/meta[143]/link[15]/link[16]/link[17]/link[18]/link[19]/link[20]/link[21]/link[22]/link[23]/link[24]/link[25]/link[26]/link[27]/link[28]/link[29]/link[30]/link[31]/link[32]/link[33]/link[34]/body[1]/img[1]/img[2]/img[3]/img[4]/img[5]/img[6]/img[7]/img[8]/img[9]/img[10]/img[11]/img[12]/img[13]/div[28]/header[2]/div[32]/div[63]/div[64]/div[66]/div[67]/div[68]/div[88]/main[1]/div[89]/section[2]/div[125]/div[126]/div[127]/div[175]/div[176]/div[177]/ul[6]/li[33]/div[178]/li[34]/div[190]/li[35]/div[202]/li[36]/div[214]/li[37]/div[228]/li[38]/div[240]/li[39]/div[252]/li[40]/div[264]/li[41]/div[276]/li[42]/div[288]/li[43]/div[300]/li[44]/div[312]/section[15]/img[40]/div[313]/div[314]/div[315]/div[316]/div[320]/div[321]/div[322]",
"html_file": "/Volumes/KINGSTON/data/glam/data/custodian/person/affiliated/manual/(8) Collectie Overijssel_ People _ LinkedIn.html",
"xpath_match_score": 1.0,
"retrieval_agent": "extract_persons_with_provenance.py"
}
],
"linkedin_slug": "vincent-robijn-7b22a220"
}

View file

@ -0,0 +1,104 @@
{
"ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_YAIR-DA-COSTA",
"ppid_type": "ID",
"ppid_components": {
"type": "ID",
"first_location": "XX-XX-XXX",
"first_date": "XXXX",
"last_location": "XX-XX-XXX",
"last_date": "XXXX",
"name_tokens": [
"YAIR",
"DA",
"COSTA"
]
},
"name": "Yair da Costa",
"birth_date": {
"edtf": "XXXX",
"precision": "unknown",
"note": "Not available from WCMS"
},
"is_living": true,
"is_anonymous": false,
"wcms_identifiers": {
"user_id": "160478",
"username": "yairdacosta",
"username_url": "/user/160478",
"abs_id": "110.302328",
"crm_id": "E7F9E89A-AF81-E211-B615-005056930016"
},
"contact_details": {
"email": "yair.da.costa@gmail.com",
"email_domain": "gmail.com"
},
"wcms_activity": {
"status": "Active",
"roles": [],
"registered_since": "do 28-02-2013 - 15:03",
"last_access": "12 jaar 10 maanden ago",
"operations": [
{
"text": "Bewerken",
"url": "/en/user/160478/edit?destination=/admin/people%3Fpage%3D4459"
},
{
"text": "Rollen",
"url": "/user/160478/roles?destination=/admin/people%3Fpage%3D4459"
}
]
},
"entity_resolution": {
"potential_linkedin_matches": 1,
"match_candidates": [
{
"linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_YAIR-COSTA",
"linkedin_name": "Yair da Costa",
"linkedin_slug": "yair-da-costa-8b179918",
"confidence_score": 0.6,
"match_signals": [
"exact_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
}
],
"requires_manual_review": true,
"auto_merged": false,
"reviewed": false,
"review_notes": null,
"annotation_date": "2026-01-12T10:17:25.000550+00:00",
"annotation_script": "annotate_match_candidates.py"
},
"profile_classification": {
"primary_classification": "human",
"confidence": 0.95,
"indicators": [
{
"type": "wcms_user",
"reason": "Registered user in heritage CMS system"
}
],
"reasoning": "WCMS user profile - registered heritage sector CMS user"
},
"data_sources": [
"wcms"
],
"extraction_metadata": {
"extraction_agent": "migrate_wcms_users.py",
"extraction_date": "2026-01-11T17:07:34.859477+00:00",
"source_file": "users/user_160478.json",
"source_system": "WCMS",
"schema_version": "1.0.0"
},
"migration_metadata": {
"original_wcms_file": "users/user_160478.json",
"original_user_id": "160478",
"migrated_at": "2026-01-11T17:07:34.859480+00:00",
"migration_script": "migrate_wcms_users.py",
"migration_version": "1.0"
}
}

View file

@ -0,0 +1,104 @@
{
"ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_YENTE-SIERKSMA-ab4e4e8a",
"ppid_type": "ID",
"ppid_components": {
"type": "ID",
"first_location": "XX-XX-XXX",
"first_date": "XXXX",
"last_location": "XX-XX-XXX",
"last_date": "XXXX",
"name_tokens": [
"YENTE",
"SIERKSMA"
],
"collision_uuid": "ab4e4e8a"
},
"name": "Yente Sierksma",
"birth_date": {
"edtf": "XXXX",
"precision": "unknown",
"note": "Not available from WCMS"
},
"is_living": true,
"is_anonymous": false,
"wcms_identifiers": {
"user_id": "164026",
"username": "Yente Sierksma",
"username_url": "/user/164026",
"abs_id": "110.307926",
"crm_id": "38A89225-D04D-E311-983B-005056930016"
},
"contact_details": {
"email": "yente.sierksma@nationaalarchief.nl",
"email_domain": "nationaalarchief.nl"
},
"wcms_activity": {
"status": "Active",
"roles": [],
"registered_since": "vr 15-11-2013 - 09:30",
"last_access": "11 jaar 4 maanden ago",
"operations": [
{
"text": "Bewerken",
"url": "/user/164026/edit?destination=/admin/people%3Fpage%3D4388"
},
{
"text": "Rollen",
"url": "/user/164026/roles?destination=/admin/people%3Fpage%3D4388"
}
]
},
"entity_resolution": {
"potential_linkedin_matches": 1,
"match_candidates": [
{
"linkedin_ppid": "ID_XX-XX-XXX_XXXX_XX-XX-XXX_XXXX_YENTE-SIERKSMA",
"linkedin_name": "Yente Sierksma",
"linkedin_slug": "yente-sierksma-6bb9a84b",
"confidence_score": 0.6,
"match_signals": [
"exact_name_match"
],
"requires_review": true,
"reviewed": false,
"review_decision": null,
"reviewed_by": null,
"reviewed_at": null
}
],
"requires_manual_review": true,
"auto_merged": false,
"reviewed": false,
"review_notes": null,
"annotation_date": "2026-01-12T10:17:24.767229+00:00",
"annotation_script": "annotate_match_candidates.py"
},
"profile_classification": {
"primary_classification": "human",
"confidence": 0.95,
"indicators": [
{
"type": "wcms_user",
"reason": "Registered user in heritage CMS system"
}
],
"reasoning": "WCMS user profile - registered heritage sector CMS user"
},
"data_sources": [
"wcms"
],
"extraction_metadata": {
"extraction_agent": "migrate_wcms_users.py",
"extraction_date": "2026-01-11T17:09:54.842805+00:00",
"source_file": "users/user_164026.json",
"source_system": "WCMS",
"schema_version": "1.0.0"
},
"migration_metadata": {
"original_wcms_file": "users/user_164026.json",
"original_user_id": "164026",
"migrated_at": "2026-01-11T17:09:54.842807+00:00",
"migration_script": "migrate_wcms_users.py",
"migration_version": "1.0"
}
}

View file

@ -1,12 +1,12 @@
{
"generated": "2026-01-14T19:01:57.459Z",
"generated": "2026-01-15T10:42:35.646Z",
"schemaRoot": "/schemas/20251121/linkml",
"totalFiles": 2957,
"totalFiles": 3026,
"categoryCounts": {
"main": 4,
"class": 718,
"class": 760,
"enum": 151,
"slot": 2080,
"slot": 2107,
"module": 4
},
"categories": [
@ -300,6 +300,11 @@
"path": "modules/classes/Asserter.yaml",
"category": "class"
},
{
"name": "Assertor",
"path": "modules/classes/Assertor.yaml",
"category": "class"
},
{
"name": "AssociationArchive",
"path": "modules/classes/AssociationArchive.yaml",
@ -660,6 +665,11 @@
"path": "modules/classes/ComarcalArchiveRecordSetTypes.yaml",
"category": "class"
},
{
"name": "Comment",
"path": "modules/classes/Comment.yaml",
"category": "class"
},
{
"name": "CommercialOrganizationType",
"path": "modules/classes/CommercialOrganizationType.yaml",
@ -1150,6 +1160,11 @@
"path": "modules/classes/EncompassingBodyTypes.yaml",
"category": "class"
},
{
"name": "Entity",
"path": "modules/classes/Entity.yaml",
"category": "class"
},
{
"name": "EnvironmentalZone",
"path": "modules/classes/EnvironmentalZone.yaml",
@ -1215,6 +1230,21 @@
"path": "modules/classes/ExtractionSourceInfo.yaml",
"category": "class"
},
{
"name": "Facility",
"path": "modules/classes/Facility.yaml",
"category": "class"
},
{
"name": "FacilityType",
"path": "modules/classes/FacilityType.yaml",
"category": "class"
},
{
"name": "FacilityTypes",
"path": "modules/classes/FacilityTypes.yaml",
"category": "class"
},
{
"name": "FeatureCustodianType",
"path": "modules/classes/FeatureCustodianType.yaml",
@ -1420,6 +1450,16 @@
"path": "modules/classes/GovernmentArchiveRecordSetTypes.yaml",
"category": "class"
},
{
"name": "GrantRange",
"path": "modules/classes/GrantRange.yaml",
"category": "class"
},
{
"name": "Group",
"path": "modules/classes/Group.yaml",
"category": "class"
},
{
"name": "HeritageExperienceEntry",
"path": "modules/classes/HeritageExperienceEntry.yaml",
@ -1700,6 +1740,11 @@
"path": "modules/classes/LightArchivesRecordSetTypes.yaml",
"category": "class"
},
{
"name": "LikelihoodScore",
"path": "modules/classes/LikelihoodScore.yaml",
"category": "class"
},
{
"name": "LinkedInProfile",
"path": "modules/classes/LinkedInProfile.yaml",
@ -2115,6 +2160,11 @@
"path": "modules/classes/OnlineNewsArchiveRecordSetTypes.yaml",
"category": "class"
},
{
"name": "OpeningHour",
"path": "modules/classes/OpeningHour.yaml",
"category": "class"
},
{
"name": "OpeningHours",
"path": "modules/classes/OpeningHours.yaml",
@ -2170,6 +2220,11 @@
"path": "modules/classes/OrganizationBranch.yaml",
"category": "class"
},
{
"name": "OrganizationUnit",
"path": "modules/classes/OrganizationUnit.yaml",
"category": "class"
},
{
"name": "OriginalEntry",
"path": "modules/classes/OriginalEntry.yaml",
@ -2440,6 +2495,21 @@
"path": "modules/classes/ProfileData.yaml",
"category": "class"
},
{
"name": "Program",
"path": "modules/classes/Program.yaml",
"category": "class"
},
{
"name": "ProgramType",
"path": "modules/classes/ProgramType.yaml",
"category": "class"
},
{
"name": "ProgramTypes",
"path": "modules/classes/ProgramTypes.yaml",
"category": "class"
},
{
"name": "Project",
"path": "modules/classes/Project.yaml",
@ -2555,6 +2625,11 @@
"path": "modules/classes/RadioArchiveRecordSetTypes.yaml",
"category": "class"
},
{
"name": "Rationale",
"path": "modules/classes/Rationale.yaml",
"category": "class"
},
{
"name": "RawSource",
"path": "modules/classes/RawSource.yaml",
@ -2730,6 +2805,16 @@
"path": "modules/classes/ResearchSourceData.yaml",
"category": "class"
},
{
"name": "Restriction",
"path": "modules/classes/Restriction.yaml",
"category": "class"
},
{
"name": "Revenue",
"path": "modules/classes/Revenue.yaml",
"category": "class"
},
{
"name": "ReviewBreakdown",
"path": "modules/classes/ReviewBreakdown.yaml",
@ -2825,11 +2910,31 @@
"path": "modules/classes/SecurityArchivesRecordSetTypes.yaml",
"category": "class"
},
{
"name": "SecurityLevel",
"path": "modules/classes/SecurityLevel.yaml",
"category": "class"
},
{
"name": "Service",
"path": "modules/classes/Service.yaml",
"category": "class"
},
{
"name": "ServiceArea",
"path": "modules/classes/ServiceArea.yaml",
"category": "class"
},
{
"name": "ServiceType",
"path": "modules/classes/ServiceType.yaml",
"category": "class"
},
{
"name": "ServiceTypes",
"path": "modules/classes/ServiceTypes.yaml",
"category": "class"
},
{
"name": "Settlement",
"path": "modules/classes/Settlement.yaml",
@ -2915,6 +3020,11 @@
"path": "modules/classes/SourceStaffEntry.yaml",
"category": "class"
},
{
"name": "SourceWork",
"path": "modules/classes/SourceWork.yaml",
"category": "class"
},
{
"name": "SpecialCollection",
"path": "modules/classes/SpecialCollection.yaml",
@ -3135,6 +3245,11 @@
"path": "modules/classes/TentativeWorldHeritageSite.yaml",
"category": "class"
},
{
"name": "TextSegment",
"path": "modules/classes/TextSegment.yaml",
"category": "class"
},
{
"name": "TextType",
"path": "modules/classes/TextType.yaml",
@ -3180,6 +3295,16 @@
"path": "modules/classes/Timestamp.yaml",
"category": "class"
},
{
"name": "TitleType",
"path": "modules/classes/TitleType.yaml",
"category": "class"
},
{
"name": "TitleTypes",
"path": "modules/classes/TitleTypes.yaml",
"category": "class"
},
{
"name": "TradeRegister",
"path": "modules/classes/TradeRegister.yaml",
@ -3220,6 +3345,11 @@
"path": "modules/classes/TransitionTypes.yaml",
"category": "class"
},
{
"name": "Treatment",
"path": "modules/classes/Treatment.yaml",
"category": "class"
},
{
"name": "TreatmentType",
"path": "modules/classes/TreatmentType.yaml",
@ -3270,11 +3400,31 @@
"path": "modules/classes/URL.yaml",
"category": "class"
},
{
"name": "UserCommunity",
"path": "modules/classes/UserCommunity.yaml",
"category": "class"
},
{
"name": "UserCommunityType",
"path": "modules/classes/UserCommunityType.yaml",
"category": "class"
},
{
"name": "UserCommunityTypes",
"path": "modules/classes/UserCommunityTypes.yaml",
"category": "class"
},
{
"name": "ValidationMetadata",
"path": "modules/classes/ValidationMetadata.yaml",
"category": "class"
},
{
"name": "ValidationStatus",
"path": "modules/classes/ValidationStatus.yaml",
"category": "class"
},
{
"name": "Vereinsarchiv",
"path": "modules/classes/Vereinsarchiv.yaml",
@ -3285,6 +3435,16 @@
"path": "modules/classes/VereinsarchivRecordSetType.yaml",
"category": "class"
},
{
"name": "VerificationStatus",
"path": "modules/classes/VerificationStatus.yaml",
"category": "class"
},
{
"name": "Verifier",
"path": "modules/classes/Verifier.yaml",
"category": "class"
},
{
"name": "Verlagsarchiv",
"path": "modules/classes/Verlagsarchiv.yaml",
@ -3295,6 +3455,11 @@
"path": "modules/classes/VerlagsarchivRecordSetType.yaml",
"category": "class"
},
{
"name": "VersionNumber",
"path": "modules/classes/VersionNumber.yaml",
"category": "class"
},
{
"name": "Verwaltungsarchiv",
"path": "modules/classes/Verwaltungsarchiv.yaml",
@ -3305,6 +3470,11 @@
"path": "modules/classes/VerwaltungsarchivRecordSetType.yaml",
"category": "class"
},
{
"name": "ViabilityStatus",
"path": "modules/classes/ViabilityStatus.yaml",
"category": "class"
},
{
"name": "VideoAnnotation",
"path": "modules/classes/VideoAnnotation.yaml",
@ -3320,6 +3490,11 @@
"path": "modules/classes/VideoAudioAnnotation.yaml",
"category": "class"
},
{
"name": "VideoCategoryIdentifier",
"path": "modules/classes/VideoCategoryIdentifier.yaml",
"category": "class"
},
{
"name": "VideoChapter",
"path": "modules/classes/VideoChapter.yaml",
@ -3330,6 +3505,11 @@
"path": "modules/classes/VideoChapterList.yaml",
"category": "class"
},
{
"name": "VideoIdentifier",
"path": "modules/classes/VideoIdentifier.yaml",
"category": "class"
},
{
"name": "VideoPost",
"path": "modules/classes/VideoPost.yaml",
@ -3445,6 +3625,11 @@
"path": "modules/classes/WebSource.yaml",
"category": "class"
},
{
"name": "WhatsAppProfile",
"path": "modules/classes/WhatsAppProfile.yaml",
"category": "class"
},
{
"name": "WikidataAlignment",
"path": "modules/classes/WikidataAlignment.yaml",
@ -3575,21 +3760,46 @@
"path": "modules/classes/WomensArchivesRecordSetTypes.yaml",
"category": "class"
},
{
"name": "WordCount",
"path": "modules/classes/WordCount.yaml",
"category": "class"
},
{
"name": "WorkExperience",
"path": "modules/classes/WorkExperience.yaml",
"category": "class"
},
{
"name": "WorkRevision",
"path": "modules/classes/WorkRevision.yaml",
"category": "class"
},
{
"name": "WorldCatIdentifier",
"path": "modules/classes/WorldCatIdentifier.yaml",
"category": "class"
},
{
"name": "WorldHeritageSite",
"path": "modules/classes/WorldHeritageSite.yaml",
"category": "class"
},
{
"name": "WritingSystem",
"path": "modules/classes/WritingSystem.yaml",
"category": "class"
},
{
"name": "XPath",
"path": "modules/classes/XPath.yaml",
"category": "class"
},
{
"name": "XPathScore",
"path": "modules/classes/XPathScore.yaml",
"category": "class"
},
{
"name": "YoutubeChannel",
"path": "modules/classes/YoutubeChannel.yaml",
@ -4437,6 +4647,11 @@
"path": "modules/slots/allows_or_allowed.yaml",
"category": "slot"
},
{
"name": "analyzes_or_analyzed",
"path": "modules/slots/analyzes_or_analyzed.yaml",
"category": "slot"
},
{
"name": "applies_or_applied_to_call",
"path": "modules/slots/applies_or_applied_to_call.yaml",
@ -4472,6 +4687,11 @@
"path": "modules/slots/benefit.yaml",
"category": "slot"
},
{
"name": "benefits_provided",
"path": "modules/slots/benefits_provided.yaml",
"category": "slot"
},
{
"name": "bio_custodian_subtype",
"path": "modules/slots/bio_custodian_subtype.yaml",
@ -5382,6 +5602,11 @@
"path": "modules/slots/construction_date_precision.yaml",
"category": "slot"
},
{
"name": "consumes_or_consumed",
"path": "modules/slots/consumes_or_consumed.yaml",
"category": "slot"
},
{
"name": "contact",
"path": "modules/slots/contact.yaml",
@ -8347,6 +8572,11 @@
"path": "modules/slots/has_or_had_comprehensive_overview.yaml",
"category": "slot"
},
{
"name": "has_or_had_condition",
"path": "modules/slots/has_or_had_condition.yaml",
"category": "slot"
},
{
"name": "has_or_had_condition_note",
"path": "modules/slots/has_or_had_condition_note.yaml",
@ -8357,6 +8587,11 @@
"path": "modules/slots/has_or_had_conservation_record.yaml",
"category": "slot"
},
{
"name": "has_or_had_contact_details",
"path": "modules/slots/has_or_had_contact_details.yaml",
"category": "slot"
},
{
"name": "has_or_had_conversion_rate",
"path": "modules/slots/has_or_had_conversion_rate.yaml",
@ -8462,6 +8697,11 @@
"path": "modules/slots/has_or_had_documentation_source.yaml",
"category": "slot"
},
{
"name": "has_or_had_domain",
"path": "modules/slots/has_or_had_domain.yaml",
"category": "slot"
},
{
"name": "has_or_had_encompass",
"path": "modules/slots/has_or_had_encompass.yaml",
@ -8517,6 +8757,11 @@
"path": "modules/slots/has_or_had_facility.yaml",
"category": "slot"
},
{
"name": "has_or_had_feature",
"path": "modules/slots/has_or_had_feature.yaml",
"category": "slot"
},
{
"name": "has_or_had_featured_item",
"path": "modules/slots/has_or_had_featured_item.yaml",
@ -8597,6 +8842,11 @@
"path": "modules/slots/has_or_had_implementing_organisation.yaml",
"category": "slot"
},
{
"name": "has_or_had_investment",
"path": "modules/slots/has_or_had_investment.yaml",
"category": "slot"
},
{
"name": "has_or_had_involved_actor",
"path": "modules/slots/has_or_had_involved_actor.yaml",
@ -8632,6 +8882,16 @@
"path": "modules/slots/has_or_had_language.yaml",
"category": "slot"
},
{
"name": "has_or_had_liability",
"path": "modules/slots/has_or_had_liability.yaml",
"category": "slot"
},
{
"name": "has_or_had_likelihood_score",
"path": "modules/slots/has_or_had_likelihood_score.yaml",
"category": "slot"
},
{
"name": "has_or_had_linked_data_endpoint",
"path": "modules/slots/has_or_had_linked_data_endpoint.yaml",
@ -8642,6 +8902,11 @@
"path": "modules/slots/has_or_had_loaned_object.yaml",
"category": "slot"
},
{
"name": "has_or_had_location",
"path": "modules/slots/has_or_had_location.yaml",
"category": "slot"
},
{
"name": "has_or_had_managed_by_cm",
"path": "modules/slots/has_or_had_managed_by_cm.yaml",
@ -8677,6 +8942,11 @@
"path": "modules/slots/has_or_had_membership.yaml",
"category": "slot"
},
{
"name": "has_or_had_method",
"path": "modules/slots/has_or_had_method.yaml",
"category": "slot"
},
{
"name": "has_or_had_methodology",
"path": "modules/slots/has_or_had_methodology.yaml",
@ -8687,6 +8957,11 @@
"path": "modules/slots/has_or_had_music_segment.yaml",
"category": "slot"
},
{
"name": "has_or_had_net_asset",
"path": "modules/slots/has_or_had_net_asset.yaml",
"category": "slot"
},
{
"name": "has_or_had_note",
"path": "modules/slots/has_or_had_note.yaml",
@ -8822,6 +9097,11 @@
"path": "modules/slots/has_or_had_quantity.yaml",
"category": "slot"
},
{
"name": "has_or_had_range",
"path": "modules/slots/has_or_had_range.yaml",
"category": "slot"
},
{
"name": "has_or_had_rationale",
"path": "modules/slots/has_or_had_rationale.yaml",
@ -8877,6 +9157,11 @@
"path": "modules/slots/has_or_had_research_attempt.yaml",
"category": "slot"
},
{
"name": "has_or_had_responsibility",
"path": "modules/slots/has_or_had_responsibility.yaml",
"category": "slot"
},
{
"name": "has_or_had_restriction",
"path": "modules/slots/has_or_had_restriction.yaml",
@ -8887,6 +9172,11 @@
"path": "modules/slots/has_or_had_resulting_unit.yaml",
"category": "slot"
},
{
"name": "has_or_had_revenue",
"path": "modules/slots/has_or_had_revenue.yaml",
"category": "slot"
},
{
"name": "has_or_had_safeguard",
"path": "modules/slots/has_or_had_safeguard.yaml",
@ -8977,6 +9267,11 @@
"path": "modules/slots/has_or_had_staff_member.yaml",
"category": "slot"
},
{
"name": "has_or_had_standard",
"path": "modules/slots/has_or_had_standard.yaml",
"category": "slot"
},
{
"name": "has_or_had_status",
"path": "modules/slots/has_or_had_status.yaml",
@ -9067,6 +9362,11 @@
"path": "modules/slots/has_or_had_transmission_method.yaml",
"category": "slot"
},
{
"name": "has_or_had_treatment",
"path": "modules/slots/has_or_had_treatment.yaml",
"category": "slot"
},
{
"name": "has_or_had_type",
"path": "modules/slots/has_or_had_type.yaml",
@ -9087,6 +9387,21 @@
"path": "modules/slots/has_or_had_used_source.yaml",
"category": "slot"
},
{
"name": "has_or_had_venue",
"path": "modules/slots/has_or_had_venue.yaml",
"category": "slot"
},
{
"name": "has_or_had_verification_status",
"path": "modules/slots/has_or_had_verification_status.yaml",
"category": "slot"
},
{
"name": "has_or_had_version",
"path": "modules/slots/has_or_had_version.yaml",
"category": "slot"
},
{
"name": "has_or_had_web_claim",
"path": "modules/slots/has_or_had_web_claim.yaml",
@ -9767,6 +10082,11 @@
"path": "modules/slots/is_or_was_affected_by_event.yaml",
"category": "slot"
},
{
"name": "is_or_was_affiliated_with",
"path": "modules/slots/is_or_was_affiliated_with.yaml",
"category": "slot"
},
{
"name": "is_or_was_aggregated_by",
"path": "modules/slots/is_or_was_aggregated_by.yaml",
@ -9782,11 +10102,21 @@
"path": "modules/slots/is_or_was_allocated_by.yaml",
"category": "slot"
},
{
"name": "is_or_was_allocated_to",
"path": "modules/slots/is_or_was_allocated_to.yaml",
"category": "slot"
},
{
"name": "is_or_was_also_allocation_agency",
"path": "modules/slots/is_or_was_also_allocation_agency.yaml",
"category": "slot"
},
{
"name": "is_or_was_alternative_form_of",
"path": "modules/slots/is_or_was_alternative_form_of.yaml",
"category": "slot"
},
{
"name": "is_or_was_approved_by",
"path": "modules/slots/is_or_was_approved_by.yaml",
@ -9827,6 +10157,11 @@
"path": "modules/slots/is_or_was_available.yaml",
"category": "slot"
},
{
"name": "is_or_was_categorized_as",
"path": "modules/slots/is_or_was_categorized_as.yaml",
"category": "slot"
},
{
"name": "is_or_was_collection_of",
"path": "modules/slots/is_or_was_collection_of.yaml",
@ -9922,6 +10257,16 @@
"path": "modules/slots/is_or_was_transferred.yaml",
"category": "slot"
},
{
"name": "is_or_was_used_by",
"path": "modules/slots/is_or_was_used_by.yaml",
"category": "slot"
},
{
"name": "is_or_was_verified_by",
"path": "modules/slots/is_or_was_verified_by.yaml",
"category": "slot"
},
{
"name": "is_or_was_webarchived_at",
"path": "modules/slots/is_or_was_webarchived_at.yaml",
@ -10667,6 +11012,11 @@
"path": "modules/slots/max_likelihood_score.yaml",
"category": "slot"
},
{
"name": "maximal_of_maximal",
"path": "modules/slots/maximal_of_maximal.yaml",
"category": "slot"
},
{
"name": "maximum_amount",
"path": "modules/slots/maximum_amount.yaml",
@ -10727,6 +11077,11 @@
"path": "modules/slots/michelin_star.yaml",
"category": "slot"
},
{
"name": "minimal_of_minimal",
"path": "modules/slots/minimal_of_minimal.yaml",
"category": "slot"
},
{
"name": "minimum_amount",
"path": "modules/slots/minimum_amount.yaml",
@ -13232,6 +13587,11 @@
"path": "modules/slots/serves_function_of.yaml",
"category": "slot"
},
{
"name": "serves_or_served",
"path": "modules/slots/serves_or_served.yaml",
"category": "slot"
},
{
"name": "serves_staff",
"path": "modules/slots/serves_staff.yaml",
@ -14232,11 +14592,6 @@
"path": "modules/slots/total_net_asset.yaml",
"category": "slot"
},
{
"name": "total_revenue",
"path": "modules/slots/total_revenue.yaml",
"category": "slot"
},
{
"name": "total_token",
"path": "modules/slots/total_token.yaml",
@ -14352,11 +14707,6 @@
"path": "modules/slots/typical_domain.yaml",
"category": "slot"
},
{
"name": "typical_grant_range",
"path": "modules/slots/typical_grant_range.yaml",
"category": "slot"
},
{
"name": "typical_http_methods",
"path": "modules/slots/typical_http_methods.yaml",
@ -14432,11 +14782,6 @@
"path": "modules/slots/unit_name.yaml",
"category": "slot"
},
{
"name": "unit_type",
"path": "modules/slots/unit_type.yaml",
"category": "slot"
},
{
"name": "updated_at",
"path": "modules/slots/updated_at.yaml",
@ -14637,6 +14982,11 @@
"path": "modules/slots/was_generated_by.yaml",
"category": "slot"
},
{
"name": "was_last_updated_at",
"path": "modules/slots/was_last_updated_at.yaml",
"category": "slot"
},
{
"name": "was_revision_of",
"path": "modules/slots/was_revision_of.yaml",
@ -14777,11 +15127,6 @@
"path": "modules/slots/xpath_matched_text.yaml",
"category": "slot"
},
{
"name": "years_restricted",
"path": "modules/slots/years_restricted.yaml",
"category": "slot"
},
{
"name": "zone_description",
"path": "modules/slots/zone_description.yaml",

View file

@ -0,0 +1,62 @@
# Assertor - Entity that makes assertions class
#
# Created per slot_fixes.yaml migration for: was_asserted_by
# Creation date: 2026-01-14
id: https://nde.nl/ontology/hc/class/Assertor
name: Assertor
title: Assertor
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
prov: http://www.w3.org/ns/prov#
schema: http://schema.org/
default_prefix: hc
imports:
- linkml:types
classes:
Assertor:
class_uri: prov:Agent
description: |
An agent that makes assertions or claims.
**USAGE**:
Used for:
- Assertion attribution
- Claim sources
- Statement authors
attributes:
assertor_name:
range: string
description: Name of the assertor
assertor_type:
range: string
description: Type of assertor (PERSON, ORGANIZATION, SOFTWARE)
assertor_uri:
range: uriorcurie
description: URI identifying the assertor
exact_mappings:
- prov:Agent
close_mappings:
- schema:Person
- schema:Organization
annotations:
specificity_score: "0.45"
specificity_rationale: "Moderately specific - provenance attribution common."
examples:
- value:
assertor_name: "OpenCode Claude"
assertor_type: SOFTWARE
assertor_uri: https://nde.nl/agent/opencode-claude
description: Software agent assertor

View file

@ -45,7 +45,11 @@ imports:
- ../slots/template_specificity
- ../slots/thematic_area
- ../slots/total_budget
- ../slots/typical_grant_range
- ../slots/has_or_had_range
- ./GrantRange
- ./Quantity
- ./MeasureUnit
- ../enums/MeasureUnitEnum
- ../slots/web_observation
- ./SpecificityAnnotation
- ./TemplateSpecificityScores
@ -122,7 +126,7 @@ classes:
- template_specificity
- thematic_area
- total_budget
- typical_grant_range
- has_or_had_range
- web_observation
slot_usage:
call_id:
@ -249,7 +253,17 @@ classes:
application_deadline: '2025-09-16'
results_expected_date: '2026-03-01'
total_budget: 82.5M EUR
typical_grant_range: 2M-4M EUR per project
has_or_had_range:
- minimal_of_minimal:
quantity_value: 2000000
has_or_had_measurement_unit:
unit_label: EUR
maximal_of_maximal:
quantity_value: 4000000
has_or_had_measurement_unit:
unit_label: EUR
range_description: Typical project funding range
range_currency: EUR
eligible_applicant:
- Public bodies
- Research organisations
@ -309,7 +323,17 @@ classes:
call_status: OPEN
call_url: https://www.heritagefund.org.uk/funding/medium-grants
application_deadline: '2025-12-31'
typical_grant_range: £250K-£5M
has_or_had_range:
- minimal_of_minimal:
quantity_value: 250000
has_or_had_measurement_unit:
unit_label: GBP
maximal_of_maximal:
quantity_value: 5000000
has_or_had_measurement_unit:
unit_label: GBP
range_description: Medium grants funding range
range_currency: GBP
eligible_applicant:
- Not-for-profit organisations
- Local authorities

View file

@ -0,0 +1,62 @@
# Comment - Comment/annotation class
#
# Created per slot_fixes.yaml migration for: video_comment
# Creation date: 2026-01-14
id: https://nde.nl/ontology/hc/class/Comment
name: Comment
title: Comment
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
schema: http://schema.org/
default_prefix: hc
imports:
- linkml:types
classes:
Comment:
class_uri: schema:Comment
description: |
A comment or annotation on content.
**USAGE**:
Used for:
- Video comments
- Review comments
- Annotations
attributes:
comment_text:
range: string
required: true
description: Text content of the comment
comment_author:
range: string
description: Author of the comment
comment_date:
range: datetime
description: Date/time the comment was made
likes_count:
range: integer
description: Number of likes on the comment
exact_mappings:
- schema:Comment
annotations:
specificity_score: "0.35"
specificity_rationale: "Low specificity - comments are common web concept."
examples:
- value:
comment_text: "Great video about the collection!"
comment_author: "Visitor123"
comment_date: "2025-01-14T10:30:00Z"
description: User comment on video

View file

@ -0,0 +1,61 @@
# Entity - Generic entity class
#
# Created per slot_fixes.yaml migration for: used_by
# Creation date: 2026-01-14
id: https://nde.nl/ontology/hc/class/Entity
name: Entity
title: Entity
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
prov: http://www.w3.org/ns/prov#
schema: http://schema.org/
default_prefix: hc
imports:
- linkml:types
classes:
Entity:
class_uri: prov:Entity
description: |
A generic entity in the provenance model.
**USAGE**:
Used for:
- Generic entity references
- Provenance entity tracking
- Abstract entity representation
attributes:
entity_name:
range: string
description: Name of the entity
entity_uri:
range: uriorcurie
description: URI of the entity
entity_type:
range: string
description: Type of entity
exact_mappings:
- prov:Entity
close_mappings:
- schema:Thing
annotations:
specificity_score: "0.20"
specificity_rationale: "Low specificity - generic entity concept."
examples:
- value:
entity_name: "Dataset A"
entity_uri: https://nde.nl/dataset/a
entity_type: DATASET
description: Generic entity reference

View file

@ -0,0 +1,71 @@
# Facility - Facility/amenity class
#
# Created per slot_fixes.yaml migration for: visitor_facility
# Creation date: 2026-01-14
id: https://nde.nl/ontology/hc/class/Facility
name: Facility
title: Facility
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
schema: http://schema.org/
default_prefix: hc
imports:
- linkml:types
- ../slots/has_or_had_type
classes:
Facility:
class_uri: schema:Place
description: |
A facility or amenity at an institution.
**USAGE**:
Used for:
- Visitor facilities (café, shop, parking)
- Research facilities (reading room, lab)
- Accessibility facilities
slots:
- has_or_had_type
slot_usage:
has_or_had_type:
range: FacilityType
description: Type of facility
attributes:
facility_name:
range: string
required: true
description: Name of the facility
facility_description:
range: string
description: Description of the facility
capacity:
range: integer
description: Capacity of the facility
accessibility:
range: string
description: Accessibility features
close_mappings:
- schema:Place
annotations:
specificity_score: "0.40"
specificity_rationale: "Moderately specific - facilities common in institutions."
examples:
- value:
facility_name: "Museum Café"
facility_description: "On-site café with terrace"
capacity: 50
description: Café facility at museum

View file

@ -0,0 +1,48 @@
# FacilityType - Abstract facility type base class
#
# Created per slot_fixes.yaml migration for: visitor_facility
# Creation date: 2026-01-14
id: https://nde.nl/ontology/hc/class/FacilityType
name: FacilityType
title: Facility Type
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
skos: http://www.w3.org/2004/02/skos/core#
default_prefix: hc
imports:
- linkml:types
- ../slots/type_id
- ../slots/type_label
- ../slots/type_description
classes:
FacilityType:
class_uri: skos:Concept
abstract: true
description: |
Abstract base class for facility type classifications.
**FACILITY CATEGORIES**:
- FOOD_SERVICE: Cafés, restaurants, vending
- RETAIL: Gift shops, bookstores
- PARKING: Car parks, bike storage
- RESEARCH: Reading rooms, study areas
- STORAGE: Collection storage facilities
- ACCESSIBILITY: Wheelchair access, assistive devices
slots:
- type_id
- type_label
- type_description
exact_mappings:
- skos:Concept
annotations:
specificity_score: "0.40"
specificity_rationale: "Moderately specific - facility types common in institutions."

View file

@ -0,0 +1,51 @@
# FacilityTypes - Concrete facility type subclasses
#
# Created per slot_fixes.yaml migration for: visitor_facility
# Creation date: 2026-01-14
id: https://nde.nl/ontology/hc/class/FacilityTypes
name: FacilityTypes
title: Facility Type Subclasses
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
default_prefix: hc
imports:
- linkml:types
- ./FacilityType
classes:
FoodServiceFacility:
is_a: FacilityType
description: Food and beverage facilities (café, restaurant).
RetailFacility:
is_a: FacilityType
description: Retail facilities (gift shop, bookstore).
ParkingFacility:
is_a: FacilityType
description: Vehicle parking facilities.
ResearchFacility:
is_a: FacilityType
description: Research facilities (reading room, study area).
StorageFacility:
is_a: FacilityType
description: Collection storage facilities.
AccessibilityFacility:
is_a: FacilityType
description: Accessibility features and facilities.
RestroomFacility:
is_a: FacilityType
description: Restroom facilities.
EventFacility:
is_a: FacilityType
description: Event and function spaces.

View file

@ -41,7 +41,8 @@ imports:
- ../slots/total_expense
- ../slots/total_liability
- ../slots/total_net_asset
- ../slots/total_revenue
- ../slots/has_or_had_revenue
- ./Revenue
- ../slots/valid_from
- ../slots/valid_to
- ../slots/was_derived_from
@ -139,7 +140,7 @@ classes:
- total_expense
- total_liability
- total_net_asset
- total_revenue
- has_or_had_revenue
- valid_from
- valid_to
- was_derived_from
@ -173,9 +174,31 @@ classes:
- value: EUR
- value: USD
- value: GBP
total_revenue:
range: decimal
has_or_had_revenue:
range: Revenue
multivalued: true
inlined: true
inlined_as_list: true
required: false
description: >-
Structured revenue data with amount, currency, and time period.
Replaces simple decimal total_revenue field with rich Revenue class.
Rule 53: Branch 1 = Currency, Branch 2 = TimeInterval.
examples:
- value:
- has_or_had_label: "Total Revenue FY2023"
has_or_had_quantity:
quantity_value: 78500000.0
quantity_type: BUDGET_AMOUNT
has_or_had_currency:
currency_code: EUR
has_or_had_label: Euro
currency_symbol: "€"
has_or_had_time_interval:
duration_value: "P1Y"
duration_description: "fiscal year 2023"
revenue_category: TOTAL
description: Total revenue for Dutch museum annual report
total_expense:
range: decimal
required: false
@ -303,7 +326,19 @@ classes:
reporting_period_end: '2023-12-31'
publication_date: '2024-04-15'
statement_currency: EUR
total_revenue: 78500000.0
has_or_had_revenue:
- has_or_had_label: "Total Revenue FY2023"
has_or_had_quantity:
quantity_value: 78500000.0
quantity_type: BUDGET_AMOUNT
has_or_had_currency:
currency_code: EUR
has_or_had_label: Euro
currency_symbol: "€"
has_or_had_time_interval:
duration_value: "P1Y"
duration_description: "fiscal year 2023"
revenue_category: TOTAL
total_expenses: 75200000.0
change_in_net_assets: 3300000.0
total_assets: 125000000.0
@ -342,7 +377,19 @@ classes:
reporting_period_end: '2023-06-30'
publication_date: '2024-02-15'
statement_currency: USD
total_revenue: 439000000.0
has_or_had_revenue:
- has_or_had_label: "Form 990 Total Revenue FY2022"
has_or_had_quantity:
quantity_value: 439000000.0
quantity_type: BUDGET_AMOUNT
has_or_had_currency:
currency_code: USD
has_or_had_label: US Dollar
currency_symbol: "$"
has_or_had_time_interval:
duration_value: "P1Y"
duration_description: "fiscal year July 2022 - June 2023"
revenue_category: TOTAL
total_expenses: 412000000.0
change_in_net_assets: 27000000.0
total_assets: 5200000000.0

View file

@ -141,7 +141,8 @@ imports:
- ../slots/validation_status
- ../slots/wikidata
- ../slots/wikidata_class
- ../slots/years_restricted
- ../slots/has_or_had_restriction
- ./Restriction
- ./FindingAid
- ./PersonWebClaim
- ./SpecificityAnnotation
@ -611,12 +612,15 @@ classes:
- restriction_type
- specificity_annotation
- template_specificity
- years_restricted
- has_or_had_restriction
slot_usage:
restriction_type:
required: true
years_restricted:
range: integer
has_or_had_restriction:
range: Restriction
description: |
Structured restriction with temporal extent.
Replaces years_restricted (integer) with Restriction class.
permission_required:
range: boolean
ExternalResource:

View file

@ -0,0 +1,155 @@
# GrantRange - Structured representation of funding/grant amount ranges
# Created per slot_fixes.yaml migration for: typical_grant_range
# Creation date: 2026-01-14
#
# REVISION FROM slot_fixes.yaml (lines 2166-2183):
# - label: GrantRange (class) ← THIS FILE
# - link_branch 1: minimal_of_minimal → Quantity
# - link_branch 2: maximal_of_maximal → Quantity
#
# Rule compliance: 38 (slot centralization), 51 (ontology verification), 53 (slot_fixes.yaml)
id: https://nde.nl/ontology/hc/class/GrantRange
name: grant_range_class
title: GrantRange Class
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
crm: http://www.cidoc-crm.org/cidoc-crm/
schema: http://schema.org/
imports:
- linkml:types
- ../slots/minimal_of_minimal
- ../slots/maximal_of_maximal
- ./Quantity
- ./MeasureUnit
- ../enums/MeasureUnitEnum
default_prefix: hc
classes:
GrantRange:
class_uri: crm:E54_Dimension
description: |
Structured representation of a funding or grant amount range.
**PURPOSE**:
Replaces string-based grant ranges like "€100K-€500K" with structured data
enabling comparison, filtering, and currency-aware analytics.
**STRUCTURE** (per slot_fixes.yaml):
- `minimal_of_minimal` → Quantity (branch 1): Lower bound with amount and currency
- `maximal_of_maximal` → Quantity (branch 2): Upper bound with amount and currency
**CIDOC-CRM Alignment**:
Maps to E54_Dimension which represents quantifiable properties,
using P90a/P90b for lower/upper value limits.
**USE CASES**:
- Heritage grant programs (Mondriaan Fund, EU Creative Europe)
- Digitization funding ranges
- Conservation project budgets
- Research grant parameters
**EXAMPLE** - Creative Europe Grant:
```yaml
has_or_had_range:
- minimal_of_minimal:
quantity_value: 60000
has_or_had_measurement_unit:
unit_label: "EUR"
maximal_of_maximal:
quantity_value: 200000
has_or_had_measurement_unit:
unit_label: "EUR"
range_description: "Small-scale cooperation projects"
```
exact_mappings:
- crm:E54_Dimension
close_mappings:
- schema:MonetaryAmount
- schema:QuantitativeValue
slots:
- minimal_of_minimal
- maximal_of_maximal
attributes:
range_description:
range: string
description: Human-readable description of what this range represents.
examples:
- value: "Typical project funding range"
- value: "Small-scale cooperation projects"
- value: "Heritage digitization grants"
range_currency:
range: string
description: |
ISO 4217 currency code for the range (convenience field).
Should match currency in minimal_of_minimal/maximal_of_maximal Quantities.
pattern: "^[A-Z]{3}$"
examples:
- value: "EUR"
- value: "USD"
- value: "GBP"
range_notes:
range: string
description: Additional notes about range applicability or conditions.
examples:
- value: "Maximum 80% of total project budget"
- value: "Co-financing required"
slot_usage:
minimal_of_minimal:
range: Quantity
inlined: true
required: false
description: Lower bound of the grant range (e.g., minimum funding amount).
maximal_of_maximal:
range: Quantity
inlined: true
required: false
description: Upper bound of the grant range (e.g., maximum funding amount).
comments:
- Created from slot_fixes.yaml migration (2026-01-14)
- Replaces string-based typical_grant_range slot
- Enables structured comparison and filtering of funding opportunities
- Currency-aware through Quantity class integration
see_also:
- https://cidoc-crm.org/html/cidoc_crm_v7.1.3.html#E54
examples:
- value:
minimal_of_minimal:
quantity_value: 100000
has_or_had_measurement_unit:
unit_label: "EUR"
maximal_of_maximal:
quantity_value: 500000
has_or_had_measurement_unit:
unit_label: "EUR"
range_description: "Medium-scale heritage projects"
range_currency: "EUR"
description: EU Creative Europe medium project grant range
- value:
minimal_of_minimal:
quantity_value: 250000
has_or_had_measurement_unit:
unit_label: "GBP"
maximal_of_maximal:
quantity_value: 5000000
has_or_had_measurement_unit:
unit_label: "GBP"
range_description: "National Lottery Heritage Fund grants"
range_currency: "GBP"
range_notes: "Maximum 90% of total costs for projects over £1M"
description: UK National Lottery Heritage Fund grant range

View file

@ -0,0 +1,63 @@
# Group - Organizational group class
#
# Created per slot_fixes.yaml migration for: warehouse_managed_by
# Creation date: 2026-01-14
id: https://nde.nl/ontology/hc/class/Group
name: Group
title: Group
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
org: http://www.w3.org/ns/org#
schema: http://schema.org/
default_prefix: hc
imports:
- linkml:types
classes:
Group:
class_uri: org:OrganizationalUnit
description: |
An organizational group or team.
**USAGE**:
Used for:
- Management groups
- Teams
- Departments
- Committees
attributes:
group_name:
range: string
required: true
description: Name of the group
group_type:
range: string
description: Type of group (TEAM, DEPARTMENT, COMMITTEE)
member_count:
range: integer
description: Number of members
exact_mappings:
- org:OrganizationalUnit
close_mappings:
- schema:Organization
annotations:
specificity_score: "0.35"
specificity_rationale: "Low specificity - groups are common organizational concept."
examples:
- value:
group_name: "Storage Team"
group_type: TEAM
member_count: 5
description: Warehouse management team

View file

@ -0,0 +1,61 @@
# LikelihoodScore - Likelihood/probability score class
#
# Created per slot_fixes.yaml migration for: whatsapp_business_likelihood
# Creation date: 2026-01-14
id: https://nde.nl/ontology/hc/class/LikelihoodScore
name: LikelihoodScore
title: Likelihood Score
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
schema: http://schema.org/
default_prefix: hc
imports:
- linkml:types
- ../slots/has_or_had_likelihood_score
classes:
LikelihoodScore:
class_uri: schema:Rating
description: |
A likelihood or probability score.
**USAGE**:
Used for:
- Business likelihood assessments
- Probability estimates
- Confidence scores
slots:
- has_or_had_likelihood_score
slot_usage:
has_or_had_likelihood_score:
minimum_value: 0.0
maximum_value: 1.0
attributes:
assessment_type:
range: string
description: Type of assessment (BUSINESS, MATCH, RELEVANCE)
assessment_method:
range: string
description: Method used for assessment
close_mappings:
- schema:Rating
annotations:
specificity_score: "0.45"
specificity_rationale: "Moderately specific - likelihood scores common in ML/enrichment."
examples:
- value:
has_or_had_likelihood_score: 0.85
assessment_type: BUSINESS
description: 85% business likelihood

View file

@ -0,0 +1,65 @@
# OpeningHour - Opening hours specification class
#
# Created per slot_fixes.yaml migration for: visiting_hour
# Creation date: 2026-01-14
id: https://nde.nl/ontology/hc/class/OpeningHour
name: OpeningHour
title: Opening Hour
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
schema: http://schema.org/
default_prefix: hc
imports:
- linkml:types
classes:
OpeningHour:
class_uri: schema:OpeningHoursSpecification
description: |
Opening hours specification for a location or service.
**USAGE**:
Used for:
- Visiting hours
- Research room hours
- Service availability
attributes:
day_of_week:
range: string
description: Day of the week (Monday, Tuesday, etc.)
opens:
range: string
description: Opening time (HH:MM format)
closes:
range: string
description: Closing time (HH:MM format)
valid_from:
range: date
description: Start date of this schedule
valid_through:
range: date
description: End date of this schedule
exact_mappings:
- schema:OpeningHoursSpecification
annotations:
specificity_score: "0.40"
specificity_rationale: "Moderately specific - opening hours common for public institutions."
examples:
- value:
day_of_week: "Monday"
opens: "10:00"
closes: "17:00"
description: Monday opening hours

View file

@ -0,0 +1,62 @@
# OrganizationUnit - Organizational unit class
#
# Created per slot_fixes.yaml migration for: unit_affiliation
# Creation date: 2026-01-14
id: https://nde.nl/ontology/hc/class/OrganizationUnit
name: OrganizationUnit
title: Organization Unit
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
org: http://www.w3.org/ns/org#
schema: http://schema.org/
default_prefix: hc
imports:
- linkml:types
classes:
OrganizationUnit:
class_uri: org:OrganizationalUnit
description: |
An organizational unit or department.
**USAGE**:
Used for:
- Departments
- Divisions
- Teams
- Units
attributes:
unit_name:
range: string
required: true
description: Name of the organizational unit
unit_type:
range: string
description: Type of unit (DEPARTMENT, DIVISION, TEAM)
parent_organization:
range: uriorcurie
description: Parent organization
exact_mappings:
- org:OrganizationalUnit
close_mappings:
- schema:Organization
annotations:
specificity_score: "0.35"
specificity_rationale: "Low specificity - organizational units common concept."
examples:
- value:
unit_name: "Collections Department"
unit_type: DEPARTMENT
description: Collections department unit

View file

@ -11,10 +11,10 @@ imports:
- ./PersonObservation
- ./CustodianCollection
- ./Custodian
- ../enums/OrganizationalUnitTypeEnum
- ./OrganizationalUnitType
- ../slots/located_at
- ../slots/unit_name
- ../slots/unit_type
- ../slots/has_or_had_type
- ../slots/parent_unit
- ../slots/staff_count
- ../slots/has_or_had_staff_member
@ -61,7 +61,7 @@ classes:
- has_or_had_staff_member
- template_specificity
- unit_name
- unit_type
- has_or_had_type
- valid_from
- valid_to
slot_usage:
@ -78,8 +78,12 @@ classes:
- value: Digital Preservation Department
- value: Public Services Team
- value: Research and Documentation Division
unit_type:
range: OrganizationalUnitTypeEnum
has_or_had_type:
range: OrganizationalUnitType
description: |
Type classification of this organizational unit.
Uses OrganizationalUnitType class hierarchy.
Replaces unit_type slot per slot_fixes.yaml migration.
examples:
- value: DEPARTMENT
- value: TEAM
@ -159,7 +163,7 @@ classes:
- value:
id: https://nde.nl/ontology/hc/org-unit/na-digital-pres
unit_name: Digital Preservation Department
unit_type: DEPARTMENT
has_or_had_type: DEPARTMENT
staff_count: 15
contact_point: digipres@nationalarchives.nl
valid_from: '2010-01-01'
@ -169,7 +173,7 @@ classes:
- value:
id: https://nde.nl/ontology/hc/org-unit/rijks-conservation
unit_name: Conservation Lab
unit_type: LAB
has_or_had_type: LAB
parent_unit:
unit_name: Collections Care Division
staff_count: 8
@ -180,7 +184,7 @@ classes:
- value:
id: https://nde.nl/ontology/hc/org-unit/rijks-conservation
unit_name: Conservation Lab
unit_type: LAB
has_or_had_type: LAB
parent_unit:
unit_name: Collections Care Division
description: Painting, paper, and textile conservation

View file

@ -0,0 +1,75 @@
# Program - Program/initiative class
#
# Created per slot_fixes.yaml migration for: volunteer_program
# Creation date: 2026-01-14
id: https://nde.nl/ontology/hc/class/Program
name: Program
title: Program
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
schema: http://schema.org/
default_prefix: hc
imports:
- linkml:types
- ../slots/has_or_had_type
classes:
Program:
class_uri: schema:Event
description: |
A program or initiative offered by an institution.
**USAGE**:
Used for:
- Volunteer programs
- Educational programs
- Outreach initiatives
slots:
- has_or_had_type
slot_usage:
has_or_had_type:
range: ProgramType
description: Type of program
attributes:
program_name:
range: string
required: true
description: Name of the program
program_description:
range: string
description: Description of the program
start_date:
range: date
description: Program start date
end_date:
range: date
description: Program end date
participant_count:
range: integer
description: Number of participants
close_mappings:
- schema:Event
annotations:
specificity_score: "0.45"
specificity_rationale: "Moderately specific - programs common in heritage institutions."
examples:
- value:
program_name: "Heritage Volunteer Program"
program_description: "Volunteer opportunities in collection care"
start_date: "2025-01-01"
description: Volunteer program at museum

View file

@ -0,0 +1,53 @@
# ProgramType - Abstract program type base class
#
# Created per slot_fixes.yaml migration for: volunteer_program
# Creation date: 2026-01-14
id: https://nde.nl/ontology/hc/class/ProgramType
name: ProgramType
title: Program Type
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
skos: http://www.w3.org/2004/02/skos/core#
default_prefix: hc
imports:
- linkml:types
- ../slots/type_id
- ../slots/type_label
- ../slots/type_description
classes:
ProgramType:
class_uri: skos:Concept
abstract: true
description: |
Abstract base class for program type classifications.
**PROGRAM CATEGORIES**:
- VOLUNTEER: Volunteer engagement programs
- EDUCATIONAL: Learning and teaching programs
- OUTREACH: Community engagement programs
- INTERNSHIP: Training programs
- FELLOWSHIP: Research fellowship programs
slots:
- type_id
- type_label
- type_description
exact_mappings:
- skos:Concept
annotations:
specificity_score: "0.45"
specificity_rationale: "Moderately specific - program types common in institutions."
examples:
- value:
type_id: https://nde.nl/program-type/volunteer
type_label: ["Volunteer@en", "vrijwilliger@nl"]
description: Volunteer program type

View file

@ -0,0 +1,47 @@
# ProgramTypes - Concrete program type subclasses
#
# Created per slot_fixes.yaml migration for: volunteer_program
# Creation date: 2026-01-14
id: https://nde.nl/ontology/hc/class/ProgramTypes
name: ProgramTypes
title: Program Type Subclasses
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
default_prefix: hc
imports:
- linkml:types
- ./ProgramType
classes:
VolunteerProgram:
is_a: ProgramType
description: Volunteer engagement programs for public participation.
EducationalProgram:
is_a: ProgramType
description: Learning and teaching programs for various audiences.
OutreachProgram:
is_a: ProgramType
description: Community engagement and outreach initiatives.
InternshipProgram:
is_a: ProgramType
description: Training programs for students and early-career professionals.
FellowshipProgram:
is_a: ProgramType
description: Research fellowship programs for scholars.
MembershipProgram:
is_a: ProgramType
description: Membership and patron programs.
AccessibilityProgram:
is_a: ProgramType
description: Programs focused on accessibility and inclusion.

View file

@ -0,0 +1,63 @@
# Rationale - Rationale/justification class
#
# Created per slot_fixes.yaml migration for: wikidata_mapping_rationale
# Creation date: 2026-01-14
id: https://nde.nl/ontology/hc/class/Rationale
name: Rationale
title: Rationale
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
skos: http://www.w3.org/2004/02/skos/core#
prov: http://www.w3.org/ns/prov#
default_prefix: hc
imports:
- linkml:types
- ../slots/has_or_had_rationale
classes:
Rationale:
class_uri: skos:note
description: |
A rationale or justification for a decision.
**USAGE**:
Used for:
- Mapping rationale (Wikidata, ontology alignments)
- Decision justifications
- Methodology explanations
slots:
- has_or_had_rationale
attributes:
decision_type:
range: string
description: Type of decision (MAPPING, CLASSIFICATION, EXCLUSION)
confidence:
range: float
description: Confidence level in the decision (0.0-1.0)
alternatives_considered:
range: string
multivalued: true
description: Alternative options that were considered
close_mappings:
- prov:wasInfluencedBy
annotations:
specificity_score: "0.45"
specificity_rationale: "Moderately specific - rationale documentation is common."
examples:
- value:
has_or_had_rationale: "Mapped based on exact name match and location"
decision_type: MAPPING
confidence: 0.95
description: Wikidata mapping rationale

View file

@ -0,0 +1,85 @@
# Restriction - Access/use restriction class
#
# Created per slot_fixes.yaml migration for: years_restricted
# Creation date: 2026-01-14
# Updated: 2026-01-14 - Added temporal_extent → TimeSpan per revision spec
id: https://nde.nl/ontology/hc/class/Restriction
name: Restriction
title: Restriction
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
schema: http://schema.org/
dct: http://purl.org/dc/terms/
crm: http://www.cidoc-crm.org/cidoc-crm/
default_prefix: hc
imports:
- linkml:types
- ../slots/temporal_extent
- ./TimeSpan
classes:
Restriction:
class_uri: dct:RightsStatement
description: |
An access or use restriction on a resource.
**USAGE**:
Used for:
- Embargo periods (years restricted) with temporal extent
- Access restrictions
- Use limitations
**TEMPORAL MODELING**:
The temporal_extent slot uses TimeSpan (CIDOC-CRM E52) to model
when the restriction applies, with fuzzy boundary support:
- begin_of_the_begin: Earliest start of restriction
- end_of_the_end: Latest end of restriction period
slots:
- temporal_extent
slot_usage:
temporal_extent:
range: TimeSpan
description: |
Time period during which the restriction applies.
For embargo restrictions, models the restriction duration.
attributes:
restriction_type:
range: string
description: Type of restriction (EMBARGO, ACCESS, USE)
examples:
- value: "EMBARGO"
years:
range: integer
description: Number of years for time-based restrictions (legacy, prefer temporal_extent)
examples:
- value: 25
restriction_reason:
range: string
description: Reason for the restriction
exact_mappings:
- dct:RightsStatement
annotations:
specificity_score: "0.45"
specificity_rationale: "Moderately specific - restrictions are common in heritage domain."
examples:
- value:
restriction_type: EMBARGO
years: 25
restriction_reason: "Privacy protection"
temporal_extent:
begin_of_the_begin: "2025-01-01T00:00:00Z"
end_of_the_end: "2050-01-01T00:00:00Z"
description: 25-year embargo restriction from 2025-2050

View file

@ -0,0 +1,259 @@
# Revenue - Structured revenue/income for financial reporting
# Created per slot_fixes.yaml migration for: total_revenue
# Creation date: 2026-01-14
id: https://nde.nl/ontology/hc/class/Revenue
name: Revenue
title: Revenue Class
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
schema: http://schema.org/
frapo: http://purl.org/cerif/frapo/
time: http://www.w3.org/2006/time#
imports:
- linkml:types
- ../slots/has_or_had_identifier
- ../slots/has_or_had_label
- ../slots/has_or_had_description
- ../slots/has_or_had_quantity
- ../slots/has_or_had_currency
- ../slots/has_or_had_time_interval
- ../slots/specificity_annotation
- ../slots/template_specificity
- ./Quantity
- ./Currency
- ./TimeInterval
- ./SpecificityAnnotation
- ./TemplateSpecificityScores
default_prefix: hc
classes:
Revenue:
class_uri: schema:MonetaryAmount
description: >-
Structured revenue/income data for financial reporting.
**WHY STRUCTURED REVENUE?**
Simple decimal fields like `total_revenue: 78500000.0` lose important context:
- What currency? (EUR, USD, GBP?)
- What time period? (FY2023, Q1 2024?)
- What type of revenue? (grants, program, investment?)
The Revenue class captures this richness:
- `has_or_had_quantity`: Monetary amount with value and optional unit
- `has_or_had_currency`: ISO 4217 currency (EUR, USD, etc.)
- `has_or_had_time_interval`: Reporting period (annual, quarterly)
**REVENUE CATEGORIES** (nonprofit context):
| Category | Description |
|----------|-------------|
| CONTRIBUTIONS | Donations and gifts |
| GRANTS | Foundation and government grants |
| PROGRAM_SERVICE | Earned income from programs |
| INVESTMENT | Interest, dividends, gains |
| OTHER | Miscellaneous income |
**SCHEMA.ORG ALIGNMENT**:
Maps to `schema:MonetaryAmount` - "A monetary value or range."
**EXAMPLE**:
```yaml
Revenue:
has_or_had_identifier: https://nde.nl/ontology/hc/revenue/rm/fy2023
has_or_had_label: "Total Revenue FY2023"
has_or_had_quantity:
quantity_value: 78500000.0
quantity_type: BUDGET_AMOUNT
has_or_had_currency:
currency_code: EUR
currency_symbol: "€"
has_or_had_time_interval:
duration_value: "P1Y"
duration_description: "fiscal year 2023"
revenue_category: TOTAL
```
**RULE 53 COMPLIANT**: Created per slot_fixes.yaml revision for total_revenue.
Branch 1: has_or_had_currency → Currency
Branch 2: has_or_had_time_interval → TimeInterval
exact_mappings:
- schema:MonetaryAmount
close_mappings:
- frapo:Funding
related_mappings:
- schema:priceSpecification
slots:
- has_or_had_identifier
- has_or_had_label
- has_or_had_description
- has_or_had_quantity
- has_or_had_currency
- has_or_had_time_interval
- revenue_category
- specificity_annotation
- template_specificity
slot_usage:
has_or_had_identifier:
range: uriorcurie
required: false
identifier: true
description: >-
Optional identifier for this revenue record.
examples:
- value: https://nde.nl/ontology/hc/revenue/rm/fy2023
description: Rijksmuseum FY2023 total revenue
has_or_had_label:
range: string
required: false
description: >-
Human-readable label for this revenue.
examples:
- value: "Total Revenue FY2023"
- value: "Q1 2024 Program Revenue"
has_or_had_description:
range: string
required: false
description: >-
Detailed description of what this revenue represents.
examples:
- value: "Total revenue including contributions, grants, program service revenue, and investment income"
has_or_had_quantity:
range: Quantity
required: true
inlined: true
description: >-
The monetary amount of revenue.
Uses Quantity class for value with optional unit.
examples:
- value:
quantity_value: 78500000.0
quantity_type: BUDGET_AMOUNT
description: Total revenue amount
has_or_had_currency:
range: Currency
required: true
inlined: true
description: >-
The currency for this revenue amount.
Branch 1 from slot_fixes.yaml revision.
examples:
- value:
currency_code: EUR
has_or_had_label: Euro
currency_symbol: "€"
description: Euro currency
- value:
currency_code: USD
has_or_had_label: US Dollar
currency_symbol: "$"
description: US Dollar currency
has_or_had_time_interval:
range: TimeInterval
required: false
inlined: true
description: >-
The reporting period for this revenue.
Branch 2 from slot_fixes.yaml revision.
examples:
- value:
duration_value: "P1Y"
duration_description: "annual"
description: Annual revenue
- value:
duration_value: "P3M"
duration_description: "quarterly"
description: Quarterly revenue
revenue_category:
range: string
required: false
description: >-
Category of revenue (TOTAL, CONTRIBUTIONS, GRANTS, PROGRAM_SERVICE, INVESTMENT, OTHER).
examples:
- value: TOTAL
description: Total revenue (sum of all categories)
- value: CONTRIBUTIONS
description: Donations and gifts
- value: GRANTS
description: Foundation and government grants
- value: PROGRAM_SERVICE
description: Earned income from programs
comments:
- Revenue models structured monetary income with currency and time period
- Replaces simple decimal total_revenue field
- Uses Schema.org MonetaryAmount as primary ontology mapping
- Supports nonprofit revenue categories (contributions, grants, program, investment)
- Rule 53: Branch 1 = Currency, Branch 2 = TimeInterval
see_also:
- https://schema.org/MonetaryAmount
- https://nde.nl/ontology/hc/class/FinancialStatement
- https://nde.nl/ontology/hc/class/Budget
annotations:
custodian_types: '["*"]'
custodian_types_rationale: >-
Revenue tracking applicable to all heritage custodian types with financial reporting.
custodian_types_primary: M
specificity_score: 0.55
specificity_rationale: >-
Moderate specificity - primarily relevant for financial statement contexts.
examples:
- value:
has_or_had_identifier: https://nde.nl/ontology/hc/revenue/rm/fy2023
has_or_had_label: "Total Revenue FY2023"
has_or_had_description: "Total revenue including contributions, grants, program service revenue, and investment income for fiscal year 2023"
has_or_had_quantity:
quantity_value: 78500000.0
quantity_type: BUDGET_AMOUNT
has_or_had_currency:
currency_code: EUR
has_or_had_label: Euro
currency_symbol: "€"
has_or_had_time_interval:
duration_value: "P1Y"
duration_description: "fiscal year 2023"
revenue_category: TOTAL
description: Major museum annual total revenue (Rule 53 pattern)
- value:
has_or_had_label: "Form 990 Total Revenue FY2022"
has_or_had_quantity:
quantity_value: 439000000.0
quantity_type: BUDGET_AMOUNT
has_or_had_currency:
currency_code: USD
has_or_had_label: US Dollar
currency_symbol: "$"
has_or_had_time_interval:
duration_value: "P1Y"
duration_description: "fiscal year July 2022 - June 2023"
revenue_category: TOTAL
description: US nonprofit Form 990 total revenue
slots:
revenue_category:
description: >-
Category of revenue (TOTAL, CONTRIBUTIONS, GRANTS, PROGRAM_SERVICE, INVESTMENT, OTHER).
range: string
slot_uri: hc:revenueCategory

View file

@ -0,0 +1,65 @@
# SecurityLevel - Security classification class
#
# Created per slot_fixes.yaml migration for: warehouse_security_level
# Creation date: 2026-01-14
id: https://nde.nl/ontology/hc/class/SecurityLevel
name: SecurityLevel
title: Security Level
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
schema: http://schema.org/
skos: http://www.w3.org/2004/02/skos/core#
default_prefix: hc
imports:
- linkml:types
- ../slots/has_or_had_code
classes:
SecurityLevel:
class_uri: skos:Concept
description: |
A security classification or level.
**USAGE**:
Used for:
- Warehouse security levels
- Document classifications
- Access control tiers
slots:
- has_or_had_code
attributes:
level_name:
range: string
description: Human-readable security level name
examples:
- value: "High Security"
level_rank:
range: integer
description: Numeric rank (higher = more secure)
access_requirements:
range: string
multivalued: true
description: Requirements for access at this level
exact_mappings:
- skos:Concept
annotations:
specificity_score: "0.50"
specificity_rationale: "Moderately specific - security relevant to storage facilities."
examples:
- value:
has_or_had_code: "HIGH"
level_name: "High Security"
level_rank: 3
description: High security level

View file

@ -0,0 +1,71 @@
# Service - Service offering class
#
# Created per slot_fixes.yaml migration for: visitor_service
# Creation date: 2026-01-14
id: https://nde.nl/ontology/hc/class/Service
name: Service
title: Service
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
schema: http://schema.org/
default_prefix: hc
imports:
- linkml:types
- ../slots/has_or_had_type
classes:
Service:
class_uri: schema:Service
description: |
A service offered by an institution.
**USAGE**:
Used for:
- Visitor services (guided tours, audio guides)
- Research services (reference, reproductions)
- Conservation services
slots:
- has_or_had_type
slot_usage:
has_or_had_type:
range: ServiceType
description: Type of service
attributes:
service_name:
range: string
required: true
description: Name of the service
service_description:
range: string
description: Description of the service
price:
range: string
description: Price or fee for the service
availability:
range: string
description: Availability schedule
exact_mappings:
- schema:Service
annotations:
specificity_score: "0.40"
specificity_rationale: "Moderately specific - services common in public institutions."
examples:
- value:
service_name: "Guided Tours"
service_description: "Expert-led tours of the collection"
price: "€15 per person"
description: Guided tour service

View file

@ -0,0 +1,47 @@
# ServiceType - Abstract service type base class
#
# Created per slot_fixes.yaml migration for: visitor_service
# Creation date: 2026-01-14
id: https://nde.nl/ontology/hc/class/ServiceType
name: ServiceType
title: Service Type
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
skos: http://www.w3.org/2004/02/skos/core#
default_prefix: hc
imports:
- linkml:types
- ../slots/type_id
- ../slots/type_label
- ../slots/type_description
classes:
ServiceType:
class_uri: skos:Concept
abstract: true
description: |
Abstract base class for service type classifications.
**SERVICE CATEGORIES**:
- VISITOR: Public-facing visitor services
- RESEARCH: Research support services
- CONSERVATION: Conservation services
- REPRODUCTION: Reproduction/digitization services
- EDUCATIONAL: Educational services
slots:
- type_id
- type_label
- type_description
exact_mappings:
- skos:Concept
annotations:
specificity_score: "0.45"
specificity_rationale: "Moderately specific - service types common in institutions."

View file

@ -0,0 +1,47 @@
# ServiceTypes - Concrete service type subclasses
#
# Created per slot_fixes.yaml migration for: visitor_service
# Creation date: 2026-01-14
id: https://nde.nl/ontology/hc/class/ServiceTypes
name: ServiceTypes
title: Service Type Subclasses
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
default_prefix: hc
imports:
- linkml:types
- ./ServiceType
classes:
VisitorService:
is_a: ServiceType
description: Public-facing services for visitors (tours, audio guides).
ResearchService:
is_a: ServiceType
description: Research support services (reference, consultations).
ConservationService:
is_a: ServiceType
description: Conservation and restoration services.
ReproductionService:
is_a: ServiceType
description: Reproduction and digitization services.
EducationalService:
is_a: ServiceType
description: Educational and learning services.
LoanService:
is_a: ServiceType
description: Loan services for exhibitions or research.
AccessibilityService:
is_a: ServiceType
description: Accessibility services for visitors with disabilities.

View file

@ -0,0 +1,61 @@
# SourceWork - Source work for derivation class
#
# Created per slot_fixes.yaml migration for: was_derived_from
# Creation date: 2026-01-14
id: https://nde.nl/ontology/hc/class/SourceWork
name: SourceWork
title: Source Work
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
prov: http://www.w3.org/ns/prov#
schema: http://schema.org/
default_prefix: hc
imports:
- linkml:types
classes:
SourceWork:
class_uri: prov:Entity
description: |
A source work from which another work is derived.
**USAGE**:
Used for:
- Source datasets
- Original documents
- Primary sources
attributes:
source_title:
range: string
description: Title of the source work
source_uri:
range: uriorcurie
description: URI of the source work
source_type:
range: string
description: Type of source (DATASET, DOCUMENT, RECORD)
exact_mappings:
- prov:Entity
close_mappings:
- schema:CreativeWork
annotations:
specificity_score: "0.40"
specificity_rationale: "Moderately specific - source tracking common in data management."
examples:
- value:
source_title: "Original Dataset v1"
source_uri: https://nde.nl/dataset/original-v1
source_type: DATASET
description: Source dataset reference

View file

@ -0,0 +1,61 @@
# TextSegment - Text segment/fragment class
#
# Created per slot_fixes.yaml migration for: xpath_matched_text
# Creation date: 2026-01-14
id: https://nde.nl/ontology/hc/class/TextSegment
name: TextSegment
title: Text Segment
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
schema: http://schema.org/
oa: http://www.w3.org/ns/oa#
default_prefix: hc
imports:
- linkml:types
- ../slots/has_or_had_text
classes:
TextSegment:
class_uri: oa:TextualBody
description: |
A segment or fragment of text extracted from a source.
**USAGE**:
Used for:
- XPath matched text
- Extracted text fragments
- Annotation bodies
slots:
- has_or_had_text
attributes:
source_xpath:
range: string
description: XPath expression that selected this text
start_offset:
range: integer
description: Character offset where segment starts
end_offset:
range: integer
description: Character offset where segment ends
exact_mappings:
- oa:TextualBody
annotations:
specificity_score: "0.50"
specificity_rationale: "Moderately specific - text extraction common in web scraping."
examples:
- value:
has_or_had_text: "The museum collection includes..."
source_xpath: "//div[@class='content']/p[1]"
description: Text segment from webpage

View file

@ -0,0 +1,46 @@
# TitleType - Abstract title type base class
#
# Created per slot_fixes.yaml migration for: uniform_title
# Creation date: 2026-01-14
id: https://nde.nl/ontology/hc/class/TitleType
name: TitleType
title: Title Type
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
skos: http://www.w3.org/2004/02/skos/core#
default_prefix: hc
imports:
- linkml:types
- ../slots/type_id
- ../slots/type_label
- ../slots/type_description
classes:
TitleType:
class_uri: skos:Concept
abstract: true
description: |
Abstract base class for title type classifications.
**TITLE CATEGORIES**:
- UNIFORM: Standardized/controlled title
- VARIANT: Alternative title form
- TRANSLATED: Title in another language
- ABBREVIATED: Short form of title
slots:
- type_id
- type_label
- type_description
exact_mappings:
- skos:Concept
annotations:
specificity_score: "0.50"
specificity_rationale: "Moderately specific - title types library/archive domain."

View file

@ -0,0 +1,43 @@
# TitleTypes - Concrete title type subclasses
#
# Created per slot_fixes.yaml migration for: uniform_title
# Creation date: 2026-01-14
id: https://nde.nl/ontology/hc/class/TitleTypes
name: TitleTypes
title: Title Type Subclasses
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
default_prefix: hc
imports:
- linkml:types
- ./TitleType
classes:
UniformTitle:
is_a: TitleType
description: Standardized/controlled form of title.
VariantTitle:
is_a: TitleType
description: Alternative form of a title.
TranslatedTitle:
is_a: TitleType
description: Title in a different language.
AbbreviatedTitle:
is_a: TitleType
description: Shortened form of title.
ParallelTitle:
is_a: TitleType
description: Title in another language appearing on the resource.
FormerTitle:
is_a: TitleType
description: Previous title of a continuing resource.

View file

@ -0,0 +1,68 @@
# Treatment - Conservation treatment class
#
# Created per slot_fixes.yaml migration for: treatment_description
# Creation date: 2026-01-14
id: https://nde.nl/ontology/hc/class/Treatment
name: Treatment
title: Treatment
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
crm: http://www.cidoc-crm.org/cidoc-crm/
default_prefix: hc
imports:
- linkml:types
classes:
Treatment:
class_uri: crm:E11_Modification
description: |
A conservation or processing treatment applied to an object.
**USAGE**:
Used for:
- Conservation treatments
- Restoration work
- Processing activities
attributes:
treatment_type:
range: string
description: Type of treatment (CONSERVATION, RESTORATION, CLEANING)
treatment_description:
range: string
required: true
description: Description of the treatment
treatment_date:
range: date
description: Date of treatment
treated_by:
range: string
description: Conservator or entity that performed treatment
materials_used:
range: string
multivalued: true
description: Materials used in treatment
exact_mappings:
- crm:E11_Modification
annotations:
specificity_score: "0.60"
specificity_rationale: "More specific - conservation treatments are heritage-domain."
examples:
- value:
treatment_type: CONSERVATION
treatment_description: "Surface cleaning and stabilization"
treatment_date: "2025-01-10"
treated_by: "Conservation Lab"
description: Conservation treatment record

View file

@ -0,0 +1,65 @@
# UserCommunity - User community class
#
# Created per slot_fixes.yaml migration for: user_community
# Creation date: 2026-01-14
id: https://nde.nl/ontology/hc/class/UserCommunity
name: UserCommunity
title: User Community
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
schema: http://schema.org/
default_prefix: hc
imports:
- linkml:types
- ../slots/has_or_had_type
classes:
UserCommunity:
class_uri: schema:Audience
description: |
A user community or audience served by an institution.
**USAGE**:
Used for:
- Target audiences
- User groups
- Stakeholder communities
slots:
- has_or_had_type
slot_usage:
has_or_had_type:
range: UserCommunityType
attributes:
community_name:
range: string
required: true
description: Name of the user community
community_description:
range: string
description: Description of the community
estimated_size:
range: integer
description: Estimated size of the community
exact_mappings:
- schema:Audience
annotations:
specificity_score: "0.40"
specificity_rationale: "Moderately specific - user communities relevant to all institutions."
examples:
- value:
community_name: "Academic Researchers"
community_description: "Scholars and researchers in heritage studies"
description: Academic research community

View file

@ -0,0 +1,47 @@
# UserCommunityType - Abstract user community type base class
#
# Created per slot_fixes.yaml migration for: user_community
# Creation date: 2026-01-14
id: https://nde.nl/ontology/hc/class/UserCommunityType
name: UserCommunityType
title: User Community Type
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
skos: http://www.w3.org/2004/02/skos/core#
default_prefix: hc
imports:
- linkml:types
- ../slots/type_id
- ../slots/type_label
- ../slots/type_description
classes:
UserCommunityType:
class_uri: skos:Concept
abstract: true
description: |
Abstract base class for user community type classifications.
**COMMUNITY CATEGORIES**:
- RESEARCH: Academic and research users
- PUBLIC: General public visitors
- EDUCATIONAL: Students and educators
- PROFESSIONAL: Heritage professionals
- GENEALOGY: Family history researchers
slots:
- type_id
- type_label
- type_description
exact_mappings:
- skos:Concept
annotations:
specificity_score: "0.40"
specificity_rationale: "Moderately specific - user types relevant to institutions."

View file

@ -0,0 +1,47 @@
# UserCommunityTypes - Concrete user community type subclasses
#
# Created per slot_fixes.yaml migration for: user_community
# Creation date: 2026-01-14
id: https://nde.nl/ontology/hc/class/UserCommunityTypes
name: UserCommunityTypes
title: User Community Type Subclasses
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
default_prefix: hc
imports:
- linkml:types
- ./UserCommunityType
classes:
ResearchCommunity:
is_a: UserCommunityType
description: Academic and research users.
PublicCommunity:
is_a: UserCommunityType
description: General public visitors.
EducationalCommunity:
is_a: UserCommunityType
description: Students and educators.
ProfessionalCommunity:
is_a: UserCommunityType
description: Heritage and museum professionals.
GenealogyCommunity:
is_a: UserCommunityType
description: Family history and genealogy researchers.
ArtistCommunity:
is_a: UserCommunityType
description: Artists and creative practitioners.
JournalistCommunity:
is_a: UserCommunityType
description: Journalists and media professionals.

View file

@ -0,0 +1,66 @@
# ValidationStatus - Validation status class
#
# Created per slot_fixes.yaml migration for: validation_status
# Creation date: 2026-01-14
id: https://nde.nl/ontology/hc/class/ValidationStatus
name: ValidationStatus
title: Validation Status
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
skos: http://www.w3.org/2004/02/skos/core#
default_prefix: hc
imports:
- linkml:types
- ../slots/has_or_had_code
classes:
ValidationStatus:
class_uri: skos:Concept
description: |
A validation status for data or records.
**USAGE**:
Used for:
- Schema validation results
- Data quality validation
- Record validation status
slots:
- has_or_had_code
attributes:
status_name:
range: string
description: Human-readable status name
validation_date:
range: datetime
description: Date/time of validation
error_count:
range: integer
description: Number of validation errors
warning_count:
range: integer
description: Number of validation warnings
exact_mappings:
- skos:Concept
annotations:
specificity_score: "0.45"
specificity_rationale: "Moderately specific - validation common in data management."
examples:
- value:
has_or_had_code: "VALID"
status_name: "Valid"
validation_date: "2025-01-14T10:30:00Z"
error_count: 0
description: Valid status with no errors

View file

@ -0,0 +1,63 @@
# VerificationStatus - Verification status class
#
# Created per slot_fixes.yaml migration for: verified
# Creation date: 2026-01-14
id: https://nde.nl/ontology/hc/class/VerificationStatus
name: VerificationStatus
title: Verification Status
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
schema: http://schema.org/
skos: http://www.w3.org/2004/02/skos/core#
default_prefix: hc
imports:
- linkml:types
classes:
VerificationStatus:
class_uri: skos:Concept
description: |
Verification status of a record or entity.
**USAGE**:
Used for:
- Data verification status
- Quality assurance flags
- Approval status
attributes:
status:
range: string
required: true
description: Status value (VERIFIED, UNVERIFIED, PENDING, REJECTED)
verified_date:
range: datetime
description: Date of verification
verifier:
range: string
description: Entity that performed verification
verification_notes:
range: string
description: Notes about the verification
exact_mappings:
- skos:Concept
annotations:
specificity_score: "0.40"
specificity_rationale: "Moderately specific - verification common in data quality."
examples:
- value:
status: VERIFIED
verified_date: "2025-01-14T10:30:00Z"
verifier: "curator@museum.nl"
description: Verified status record

View file

@ -0,0 +1,56 @@
# Verifier - Entity that verifies class
#
# Created per slot_fixes.yaml migration for: verified_by
# Creation date: 2026-01-14
id: https://nde.nl/ontology/hc/class/Verifier
name: Verifier
title: Verifier
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
prov: http://www.w3.org/ns/prov#
default_prefix: hc
imports:
- linkml:types
classes:
Verifier:
class_uri: prov:Agent
description: |
An agent that verifies or validates data.
**USAGE**:
Used for:
- Data verifiers
- Quality assurance agents
- Approval authorities
attributes:
verifier_name:
range: string
description: Name of the verifier
verifier_type:
range: string
description: Type of verifier (PERSON, ORGANIZATION, SOFTWARE)
verifier_uri:
range: uriorcurie
description: URI identifying the verifier
exact_mappings:
- prov:Agent
annotations:
specificity_score: "0.45"
specificity_rationale: "Moderately specific - verification common in data quality."
examples:
- value:
verifier_name: "Quality Assurance Team"
verifier_type: ORGANIZATION
description: QA team as verifier

View file

@ -0,0 +1,62 @@
# VersionNumber - Version number class
#
# Created per slot_fixes.yaml migration for: version_number
# Creation date: 2026-01-14
id: https://nde.nl/ontology/hc/class/VersionNumber
name: VersionNumber
title: Version Number
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
schema: http://schema.org/
default_prefix: hc
imports:
- linkml:types
- ../slots/has_or_had_version
classes:
VersionNumber:
class_uri: schema:version
description: |
A version number or identifier.
**USAGE**:
Used for:
- Software versions
- Document versions
- Schema versions
slots:
- has_or_had_version
attributes:
major:
range: integer
description: Major version number
minor:
range: integer
description: Minor version number
patch:
range: integer
description: Patch version number
close_mappings:
- schema:version
annotations:
specificity_score: "0.35"
specificity_rationale: "Low specificity - versioning common across domains."
examples:
- value:
has_or_had_version: "2.1.0"
major: 2
minor: 1
patch: 0
description: Semantic version 2.1.0

View file

@ -0,0 +1,61 @@
# ViabilityStatus - Viability status class
#
# Created per slot_fixes.yaml migration for: viability_status
# Creation date: 2026-01-14
id: https://nde.nl/ontology/hc/class/ViabilityStatus
name: ViabilityStatus
title: Viability Status
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
skos: http://www.w3.org/2004/02/skos/core#
default_prefix: hc
imports:
- linkml:types
- ../slots/has_or_had_code
classes:
ViabilityStatus:
class_uri: skos:Concept
description: |
A viability status assessment.
**USAGE**:
Used for:
- Intangible heritage viability (UNESCO)
- Organizational viability
- Collection viability
slots:
- has_or_had_code
attributes:
status_name:
range: string
description: Human-readable status name
assessment_date:
range: date
description: Date of viability assessment
assessment_notes:
range: string
description: Notes on the assessment
exact_mappings:
- skos:Concept
annotations:
specificity_score: "0.55"
specificity_rationale: "More specific - viability relevant to UNESCO heritage lists."
examples:
- value:
has_or_had_code: "ENDANGERED"
status_name: "Endangered"
assessment_date: "2024-12-01"
description: Endangered viability status

View file

@ -0,0 +1,56 @@
# VideoCategoryIdentifier - Video category identifier class
#
# Created per slot_fixes.yaml migration for: video_category_id
# Creation date: 2026-01-14
id: https://nde.nl/ontology/hc/class/VideoCategoryIdentifier
name: VideoCategoryIdentifier
title: Video Category Identifier
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
schema: http://schema.org/
default_prefix: hc
imports:
- linkml:types
- ../slots/has_or_had_code
classes:
VideoCategoryIdentifier:
class_uri: schema:identifier
description: |
An identifier for a video category.
**USAGE**:
Used for:
- YouTube category IDs
- Platform category classifications
slots:
- has_or_had_code
attributes:
category_name:
range: string
description: Human-readable category name
platform:
range: string
description: Video platform
close_mappings:
- schema:identifier
annotations:
specificity_score: "0.55"
specificity_rationale: "More specific - video categories for content classification."
examples:
- value:
has_or_had_code: "27"
category_name: "Education"
platform: "YouTube"
description: YouTube Education category

View file

@ -0,0 +1,52 @@
# VideoIdentifier - Video identifier class
#
# Created per slot_fixes.yaml migration for: video_id
# Creation date: 2026-01-14
id: https://nde.nl/ontology/hc/class/VideoIdentifier
name: VideoIdentifier
title: Video Identifier
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
schema: http://schema.org/
default_prefix: hc
imports:
- linkml:types
- ../slots/has_or_had_code
classes:
VideoIdentifier:
class_uri: schema:identifier
description: |
An identifier for a video resource.
**USAGE**:
Used for:
- YouTube video IDs
- Vimeo video IDs
- Platform-specific identifiers
slots:
- has_or_had_code
attributes:
platform:
range: string
description: Video platform (YouTube, Vimeo, etc.)
close_mappings:
- schema:identifier
annotations:
specificity_score: "0.50"
specificity_rationale: "Moderately specific - video identifiers common in digital heritage."
examples:
- value:
has_or_had_code: "dQw4w9WgXcQ"
platform: "YouTube"
description: YouTube video identifier

View file

@ -0,0 +1,60 @@
# WhatsAppProfile - WhatsApp business profile class
#
# Created per slot_fixes.yaml migration for: whatsapp_enrichment
# Creation date: 2026-01-14
id: https://nde.nl/ontology/hc/class/WhatsAppProfile
name: WhatsAppProfile
title: WhatsApp Profile
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
schema: http://schema.org/
default_prefix: hc
imports:
- linkml:types
- ../slots/has_or_had_contact_details
classes:
WhatsAppProfile:
class_uri: schema:ContactPoint
description: |
A WhatsApp business profile.
**USAGE**:
Used for:
- WhatsApp business accounts
- Contact enrichment
slots:
- has_or_had_contact_details
attributes:
phone_number:
range: string
description: Phone number associated with WhatsApp
is_business_account:
range: boolean
description: Whether this is a business account
business_name:
range: string
description: Business name on profile
close_mappings:
- schema:ContactPoint
annotations:
specificity_score: "0.55"
specificity_rationale: "More specific - WhatsApp enrichment for contact data."
examples:
- value:
phone_number: "+31612345678"
is_business_account: true
business_name: "Rijksmuseum"
description: WhatsApp business profile

View file

@ -0,0 +1,56 @@
# WordCount - Word count class
#
# Created per slot_fixes.yaml migration for: word_count
# Creation date: 2026-01-14
id: https://nde.nl/ontology/hc/class/WordCount
name: WordCount
title: Word Count
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
schema: http://schema.org/
default_prefix: hc
imports:
- linkml:types
- ../slots/has_or_had_quantity
classes:
WordCount:
class_uri: schema:QuantitativeValue
description: |
A word count measurement.
**USAGE**:
Used for:
- Document word counts
- Text length metrics
- Content statistics
slots:
- has_or_had_quantity
slot_usage:
has_or_had_quantity:
description: Number of words
attributes:
count_method:
range: string
description: Method used for counting (e.g., whitespace-separated)
close_mappings:
- schema:QuantitativeValue
annotations:
specificity_score: "0.40"
specificity_rationale: "Moderately specific - word counts common in text analysis."
examples:
- value:
has_or_had_quantity:
value: 15000
description: Document with 15,000 words

View file

@ -0,0 +1,65 @@
# WorkRevision - Work revision class
#
# Created per slot_fixes.yaml migration for: was_revision_of
# Creation date: 2026-01-14
id: https://nde.nl/ontology/hc/class/WorkRevision
name: WorkRevision
title: Work Revision
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
prov: http://www.w3.org/ns/prov#
schema: http://schema.org/
default_prefix: hc
imports:
- linkml:types
- ../slots/is_or_was_revision_of
classes:
WorkRevision:
class_uri: prov:Entity
description: |
A revision of a work or document.
**USAGE**:
Used for:
- Document revisions
- Record updates
- Version tracking
slots:
- is_or_was_revision_of
attributes:
revision_number:
range: string
description: Revision or version number
revision_date:
range: datetime
description: Date of this revision
revision_notes:
range: string
description: Notes about changes in this revision
exact_mappings:
- prov:Entity
close_mappings:
- schema:CreativeWork
annotations:
specificity_score: "0.40"
specificity_rationale: "Moderately specific - revisions common in documentation."
examples:
- value:
revision_number: "2.0"
revision_date: "2025-01-14T10:30:00Z"
revision_notes: "Updated metadata fields"
description: Second revision of a document

View file

@ -0,0 +1,50 @@
# WorldCatIdentifier - WorldCat identifier class
#
# Created per slot_fixes.yaml migration for: worldcat_id
# Creation date: 2026-01-14
id: https://nde.nl/ontology/hc/class/WorldCatIdentifier
name: WorldCatIdentifier
title: WorldCat Identifier
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
schema: http://schema.org/
default_prefix: hc
imports:
- linkml:types
- ../slots/has_or_had_code
classes:
WorldCatIdentifier:
class_uri: schema:identifier
description: |
A WorldCat OCLC identifier.
**USAGE**:
Used for:
- OCLC control numbers
- WorldCat record identifiers
slots:
- has_or_had_code
slot_usage:
has_or_had_code:
pattern: "^[0-9]+$"
description: OCLC control number
close_mappings:
- schema:identifier
annotations:
specificity_score: "0.55"
specificity_rationale: "More specific - WorldCat identifiers library-domain."
examples:
- value:
has_or_had_code: "123456789"
description: WorldCat OCLC number

View file

@ -0,0 +1,68 @@
# WritingSystem - Writing system/script class
#
# Created per slot_fixes.yaml migration for: writing_system
# Creation date: 2026-01-14
id: https://nde.nl/ontology/hc/class/WritingSystem
name: WritingSystem
title: Writing System
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
schema: http://schema.org/
skos: http://www.w3.org/2004/02/skos/core#
default_prefix: hc
imports:
- linkml:types
- ../slots/has_or_had_code
classes:
WritingSystem:
class_uri: skos:Concept
description: |
A writing system or script (ISO 15924).
**USAGE**:
Used for:
- Script identification (Latin, Cyrillic, Arabic, etc.)
- Writing direction (LTR, RTL)
- Historical scripts
slots:
- has_or_had_code
slot_usage:
has_or_had_code:
pattern: "^[A-Z][a-z]{3}$"
description: ISO 15924 4-letter script code
examples:
- value: "Latn"
description: Latin script
- value: "Cyrl"
description: Cyrillic script
attributes:
script_name:
range: string
description: Human-readable name of the script
writing_direction:
range: string
description: Writing direction (LTR, RTL, TTB)
exact_mappings:
- skos:Concept
annotations:
specificity_score: "0.40"
specificity_rationale: "Moderately specific - writing systems relevant across domains."
examples:
- value:
has_or_had_code: "Latn"
script_name: "Latin"
writing_direction: "LTR"
description: Latin writing system

View file

@ -0,0 +1,58 @@
# XPathScore - XPath match score class
#
# Created per slot_fixes.yaml migration for: xpath_match_score
# Creation date: 2026-01-14
id: https://nde.nl/ontology/hc/class/XPathScore
name: XPathScore
title: XPath Match Score
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
schema: http://schema.org/
default_prefix: hc
imports:
- linkml:types
- ../slots/has_or_had_score
classes:
XPathScore:
class_uri: schema:Rating
description: |
A confidence score for an XPath match.
**USAGE**:
Used for:
- XPath match confidence (0.0-1.0)
- Fuzzy matching scores
- Extraction confidence
slots:
- has_or_had_score
slot_usage:
has_or_had_score:
minimum_value: 0.0
maximum_value: 1.0
description: Confidence score between 0.0 and 1.0
attributes:
match_type:
range: string
description: Type of match (EXACT, FUZZY, PARTIAL)
close_mappings:
- schema:Rating
annotations:
specificity_score: "0.60"
specificity_rationale: "More specific - XPath scoring is technical/heritage-domain."
examples:
- value:
has_or_had_score: 0.95
match_type: EXACT
description: High-confidence exact match

View file

@ -0,0 +1,33 @@
# analyzes_or_analyzed - Analysis activity slot
#
# Created per slot_fixes.yaml migration for: total_frames_analyzed
# Creation date: 2026-01-14
id: https://nde.nl/ontology/hc/slot/analyzes_or_analyzed
name: analyzes_or_analyzed
title: Analyzes or Analyzed
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
schema: http://schema.org/
default_prefix: hc
slots:
analyzes_or_analyzed:
slot_uri: schema:object
description: |
Items analyzed by an activity or process.
**USAGE**:
Used for:
- Frames analyzed in video processing
- Documents analyzed
- Items processed
range: integer
examples:
- value: 24000
description: Total video frames analyzed

Some files were not shown because too many files have changed in this diff Show more