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.
This commit is contained in:
kempersc 2026-01-15 12:25:27 +01:00
parent 916f8e7247
commit 043ea868b5
104 changed files with 8821 additions and 249 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

@ -67,8 +67,9 @@ imports:
- modules/slots/has_auxiliary_platform
- modules/slots/located_at
- modules/slots/organizational_structure
- modules/slots/unit_name
- modules/slots/unit_type
# unit_name ARCHIVED (2026-01-14) - migrated to has_or_had_label (Rule 53)
# unit_type ARCHIVED (2026-01-15) - migrated to has_or_had_type (Rule 53)
# See: archive/slots/unit_type_archived_20260114.yaml for historical reference
- modules/slots/parent_unit
- modules/slots/staff_count
- modules/slots/contact_point
@ -87,7 +88,7 @@ imports:
- modules/slots/identifier_value
- modules/slots/identifier
- modules/slots/has_or_had_alternative_name
- modules/slots/variant_of_name
# variant_of_name ARCHIVED (2026-01-14) - migrated to has_or_had_variant_name (Rule 53)
- modules/slots/justification
- modules/slots/language
- modules/slots/language_code
@ -134,8 +135,7 @@ imports:
- modules/slots/used
- modules/slots/preferred_label
- modules/slots/place_designation
- modules/slots/valid_from
- modules/slots/valid_to
# valid_from and valid_to ARCHIVED (2026-01-14) - migrated to temporal_extent (Rule 53)
- modules/slots/was_derived_from
- modules/slots/was_generated_by
- modules/slots/was_revision_of
@ -524,7 +524,7 @@ imports:
# New slots for registration info
- modules/slots/country
- modules/slots/description
- modules/slots/website
# website ARCHIVED (2025-01-15) - migrated to has_or_had_official_website (Rule 53)
- modules/slots/jurisdiction
- modules/slots/primary_register
- modules/slots/legal_jurisdiction
@ -534,7 +534,7 @@ imports:
- modules/slots/is_or_was_allocated_by
- modules/slots/identifier_format_used
- modules/slots/canonical_value
- modules/slots/also_identifies_name
# also_identifies_name ARCHIVED (2026-01-15) - migrated (Rule 53)
- modules/slots/has_allocation_date
# Web portal relationship slots (NEW v0.9.5)
@ -578,7 +578,8 @@ imports:
- modules/slots/preservation_note
- modules/slots/privacy_note
- modules/slots/legal_note
- modules/slots/broader_type
# broader_type ARCHIVED (2026-01-14) - migrated to has_or_had_hypernym (Rule 53)
# See: archive/slots/broader_type_archived_20260114.yaml for historical reference
- modules/slots/narrower_type
# custodian_type_broader ARCHIVED (2026-01-09) - SKOS hierarchy now defined locally in CustodianType.yaml
# See: archive/slots/custodian_type_broader.yaml for historical reference

View file

@ -1,5 +1,5 @@
{
"generated": "2026-01-15T10:42:35.646Z",
"generated": "2026-01-15T11:25:29.119Z",
"schemaRoot": "/schemas/20251121/linkml",
"totalFiles": 3026,
"categoryCounts": {

View file

@ -14,7 +14,7 @@ imports:
- ./Country
- ./Subregion
- ../slots/description
- ../slots/website
# REMOVED: ../slots/website - using inline attribute definition (Rule 53, migrated 2025-01-15)
- ../slots/contact_email
- ../slots/specificity_annotation
- ../slots/template_specificity

View file

@ -41,7 +41,7 @@ imports:
- ../slots/extent_item
- ../slots/has_or_had_finding_aid
- ../slots/item
- ../slots/parent_collection
- ../slots/is_or_was_sub_collection_of # was: parent_collection - migrated per Rule 53 (2025-01-15)
- ../slots/part_of_custodian_collection
- ../slots/provenance_statement
- ../slots/record_set_type
@ -117,7 +117,7 @@ classes:
- extent_item
- has_or_had_finding_aid
- item
- parent_collection
- is_or_was_sub_collection_of # was: parent_collection - migrated per Rule 53 (2025-01-15)
- part_of_custodian_collection
- provenance_statement
- record_set_type
@ -271,8 +271,11 @@ classes:
examples:
- value: https://www.nationaalarchief.nl/onderzoeken/archief/1.04.02/download
description: Digital scans of VOC records
parent_collection:
is_or_was_sub_collection_of:
range: Collection
description: |
Parent collection in hierarchical arrangement.
MIGRATED from parent_collection slot per slot_fixes.yaml (Rule 53, 2025-01-15).
examples:
- value: https://nde.nl/ontology/hc/collection/nationaal-archief-voc-fonds
description: Series within VOC fonds

View file

@ -19,7 +19,8 @@ imports:
- ./SpecificityAnnotation
- ./TemplateSpecificityScores
- ../slots/description
- ../slots/website
- ../slots/has_or_had_url # was: website - migrated per Rule 53 (2025-01-15)
- ./URL
- ../slots/specificity_annotation
- ../slots/template_specificity
- ../slots/contributor_code
@ -217,7 +218,7 @@ classes:
- contribution_start_date
- is_active
- governance_representative
- website
- has_or_had_url # was: website - migrated per Rule 53 (2025-01-15)
- description
- is_or_was_also_allocation_agency
- member_of
@ -231,3 +232,10 @@ classes:
range: AllocationAgency
member_of:
range: StandardsOrganization
has_or_had_url:
range: URL
inlined: true
multivalued: false
description: |
Official website of the contributing agency.
MIGRATED from website slot per slot_fixes.yaml (Rule 53, 2025-01-15).

View file

@ -24,7 +24,9 @@ imports:
- ../slots/retention_schedule
- ../slots/specificity_annotation
- ../slots/template_specificity
- ../slots/transfer_policy
# REMOVED 2026-01-15: transfer_policy - migrated to has_or_had_policy with range TransferPolicy (Rule 53)
- ../slots/has_or_had_policy
- ./TransferPolicy
- ../slots/wikidata_entity
- ./SpecificityAnnotation
- ./TemplateSpecificityScores
@ -41,7 +43,8 @@ classes:
- retention_schedule
- specificity_annotation
- template_specificity
- transfer_policy
# MIGRATED 2026-01-15: transfer_policy → has_or_had_policy with range TransferPolicy (Rule 53)
- has_or_had_policy
- wikidata_entity
description: "Archive maintaining records still in active/current use by the creating organization.\n\n**Wikidata**: Q3621648\
\ (current archive / archivo corriente / archivio corrente)\n\n**DEFINITION**:\n\nCurrent Archive (also called \"active\

View file

@ -47,7 +47,7 @@ imports:
- ../slots/has_or_had_registration_number
- ../slots/dissolution_date
- ../slots/temporal_extent
- ../slots/parent_custodian
- ../slots/is_or_was_suborganization_of # was: parent_custodian - migrated per Rule 53 (2025-01-15)
- ../slots/legal_status
- ../slots/governance_structure
- ../slots/reconstruction_method
@ -118,7 +118,7 @@ classes:
- legal_jurisdiction
- legal_name
- legal_status
- parent_custodian
- is_or_was_suborganization_of # was: parent_custodian - migrated per Rule 53 (2025-01-15)
- primary_register
- reconstruction_method
- refers_to_custodian
@ -226,8 +226,11 @@ classes:
begin_of_the_end: '1950-01-01'
end_of_the_end: '1955-12-31'
description: Museum founded sometime between 1800-1805, closed between 1950-1955
parent_custodian:
is_or_was_suborganization_of:
range: CustodianLegalStatus
description: |
Parent organization in hierarchical structure.
MIGRATED from parent_custodian slot per slot_fixes.yaml (Rule 53, 2025-01-15).
legal_status:
range: LegalStatus
required: true

View file

@ -15,7 +15,8 @@ imports:
- ../slots/data_license_policy
- ../slots/funding_source
- ../slots/description
- ../slots/website
- ../slots/has_or_had_url # was: website - migrated per Rule 53 (2025-01-15)
- ./URL
- ../slots/legal_jurisdiction
- ../slots/external_identifier
- ../slots/has_or_had_area_served
@ -102,7 +103,7 @@ classes:
- service_offering
- specificity_annotation
- template_specificity
- website
- has_or_had_url # was: website - migrated per Rule 53 (2025-01-15)
slot_usage:
id:
identifier: true
@ -187,10 +188,17 @@ classes:
examples:
- value: http://www.wikidata.org/entity/Q2294910
description: Wikidata URI for Dutch Ministry OCW
website:
range: uri
has_or_had_url:
range: URL
inlined: true
multivalued: false
description: |
Official website of the encompassing body.
MIGRATED from website slot per slot_fixes.yaml (Rule 53, 2025-01-15).
examples:
- value: https://www.rijksoverheid.nl/ministeries/ministerie-van-onderwijs-cultuur-en-wetenschap
- value:
url_value: https://www.rijksoverheid.nl/ministeries/ministerie-van-onderwijs-cultuur-en-wetenschap
url_type: website
description: Ministry OCW website
has_or_had_project:
range: Project

View file

@ -29,8 +29,11 @@ imports:
- ../slots/observation
- ../slots/part_of_facility
- ../slots/specificity_annotation
- ../slots/target_relative_humidity
- ../slots/target_temperature_celsius
# REMOVED 2026-01-15: target_relative_humidity, target_temperature_celsius - migrated to has_or_had_setpoint with Setpoint class (Rule 53)
- ../slots/has_or_had_setpoint
- ./Setpoint
- ../enums/SetpointTypeEnum
- ../enums/MeasureUnitEnum
- ../slots/template_specificity
- ../slots/temporal_extent # was: valid_from + valid_to - migrated per Rule 53
- ./TimeSpan
@ -107,8 +110,8 @@ classes:
- observation
- part_of_facility
- specificity_annotation
- target_relative_humidity
- target_temperature_celsius
# REMOVED 2026-01-15: target_relative_humidity, target_temperature_celsius - migrated to has_or_had_setpoint
- has_or_had_setpoint
- temperature_tolerance
- template_specificity
- temporal_extent # was: valid_from + valid_to - migrated per Rule 53
@ -155,31 +158,38 @@ classes:
description: |
Free-text description of this environmental zone.
Replaces zone_description per slot_fixes.yaml migration.
target_temperature_celsius:
range: float
# REMOVED 2026-01-15: target_temperature_celsius, target_relative_humidity
# Migrated to has_or_had_setpoint with Setpoint class per Rule 53
has_or_had_setpoint:
range: Setpoint
multivalued: true
inlined: true
inlined_as_list: true
description: |
Environmental control setpoints for this zone.
MIGRATED 2026-01-15: Replaces target_temperature_celsius, target_relative_humidity.
Uses Setpoint class for structured setpoint data.
examples:
- value: 18.0
description: Standard archive temperature
- value: -5.0
description: Cold storage for film
- value: 15.0
description: Photographic materials
- value:
- setpoint_type: TEMPERATURE
setpoint_value: 18.0
setpoint_min: 16.0
setpoint_max: 20.0
setpoint_tolerance: 2.0
setpoint_unit: DEGREE_CELSIUS
- setpoint_type: RELATIVE_HUMIDITY
setpoint_value: 50.0
setpoint_min: 45.0
setpoint_max: 55.0
setpoint_tolerance: 5.0
setpoint_unit: PERCENT
description: Standard archive zone setpoints
temperature_tolerance:
range: float
examples:
- value: 2.0
- value: 3.0
target_relative_humidity:
range: float
minimum_value: 0.0
maximum_value: 100.0
examples:
- value: 50.0
description: Standard archive humidity
- value: 35.0
description: Photographic materials
- value: 30.0
description: Cold storage
# REMOVED 2026-01-15: target_relative_humidity - migrated to has_or_had_setpoint above
humidity_tolerance:
range: float
examples:
@ -244,10 +254,20 @@ classes:
Paper-based collections from 1800-1950.
'
target_temperature_celsius: 18.0
temperature_tolerance: 2.0
target_relative_humidity: 50.0
humidity_tolerance: 5.0
has_or_had_setpoint: # MIGRATED 2026-01-15: was target_temperature_celsius, target_relative_humidity
- setpoint_type: TEMPERATURE
setpoint_value: 18.0
setpoint_min: 16.0
setpoint_max: 20.0
setpoint_tolerance: 2.0
setpoint_unit: DEGREE_CELSIUS
iso_standard_reference: "ISO 11799"
- setpoint_type: RELATIVE_HUMIDITY
setpoint_value: 50.0
setpoint_min: 45.0
setpoint_max: 55.0
setpoint_tolerance: 5.0
setpoint_unit: PERCENT
max_light_lux: 50.0
environmental_requirement: https://nde.nl/ontology/hc/StandardArchiveEnvironment
monitoring_platform: Hanwell RadioLog monitoring system
@ -263,10 +283,20 @@ classes:
Maintained at -5°C, 30% RH per ISO 18911.
'
target_temperature_celsius: -5.0
temperature_tolerance: 3.0
target_relative_humidity: 30.0
humidity_tolerance: 5.0
has_or_had_setpoint: # MIGRATED 2026-01-15: was target_temperature_celsius, target_relative_humidity
- setpoint_type: TEMPERATURE
setpoint_value: -5.0
setpoint_min: -8.0
setpoint_max: -2.0
setpoint_tolerance: 3.0
setpoint_unit: DEGREE_CELSIUS
iso_standard_reference: "ISO 18911"
- setpoint_type: RELATIVE_HUMIDITY
setpoint_value: 30.0
setpoint_min: 25.0
setpoint_max: 35.0
setpoint_tolerance: 5.0
setpoint_unit: PERCENT
max_light_lux: 0.0
environmental_requirement: https://nde.nl/ontology/hc/ColdStorageEnvironment
part_of_facility: https://nde.nl/ontology/hc/storage/ef-main-depot

View file

@ -38,13 +38,12 @@ imports:
- ../slots/has_or_had_short_code
- ../slots/has_or_had_label
- ../slots/has_or_had_description
# Domain-specific slots (kept)
- ../slots/temperature_min
- ../slots/temperature_max
- ../slots/temperature_target
- ../slots/humidity_min
- ../slots/humidity_max
- ../slots/humidity_target
# REMOVED 2026-01-15: Domain-specific temperature/humidity slots migrated to has_or_had_setpoint with Setpoint class (Rule 53)
# Old slots: temperature_min, temperature_max, temperature_target, humidity_min, humidity_max, humidity_target
- ../slots/has_or_had_setpoint
- ./Setpoint
- ../enums/SetpointTypeEnum
- ../enums/MeasureUnitEnum
- ../slots/max_light_lux
- ../slots/max_annual_light_exposure
- ../slots/iso_standard
@ -181,13 +180,9 @@ classes:
- has_or_had_short_code
- has_or_had_label
- has_or_had_description
# Environmental setpoints (MIGRATED 2026-01-15 per Rule 53)
- has_or_had_setpoint
# Domain-specific slots
- temperature_min
- temperature_max
- temperature_target
- humidity_min
- humidity_max
- humidity_target
- max_light_lux
- max_annual_light_exposure
- iso_standard
@ -235,19 +230,30 @@ classes:
examples:
- value: "Standard climate-controlled environment for paper-based archival materials"
temperature_target:
# REMOVED 2026-01-15: temperature_target, humidity_target - migrated to has_or_had_setpoint
has_or_had_setpoint:
range: Setpoint
multivalued: true
inlined: true
inlined_as_list: true
description: |
Environmental setpoints for this zone type.
MIGRATED 2026-01-15: Replaces temperature_min, temperature_max, temperature_target,
humidity_min, humidity_max, humidity_target with structured Setpoint class.
examples:
- value: 18.0
description: Standard archive storage
- value: -5.0
description: Cold storage for film
humidity_target:
examples:
- value: 50.0
description: Standard archive storage
- value: 30.0
description: Cold storage for film
- value:
- setpoint_type: TEMPERATURE
setpoint_value: 18.0
setpoint_min: 16.0
setpoint_max: 20.0
setpoint_unit: DEGREE_CELSIUS
iso_standard_reference: "ISO 11799"
- setpoint_type: RELATIVE_HUMIDITY
setpoint_value: 50.0
setpoint_min: 45.0
setpoint_max: 55.0
setpoint_unit: PERCENT
description: Standard archive zone type setpoints
max_light_lux:
examples:
@ -300,6 +306,9 @@ classes:
- environmental_zone_type_code → has_or_had_short_code
- environmental_zone_type_label → has_or_had_label
- environmental_zone_type_description → has_or_had_description
2026-01-15: Migrated temperature/humidity slots to has_or_had_setpoint (Rule 53)
- temperature_min, temperature_max, temperature_target → has_or_had_setpoint + Setpoint
- humidity_min, humidity_max, humidity_target → has_or_had_setpoint + Setpoint
comments:
- "Abstract base class - use specific subclasses (ArchiveStandardStorageEnvironment, etc.)"
@ -308,6 +317,7 @@ classes:
- "Replaces EnvironmentalZoneTypeEnum for richer semantic modeling"
- "Environmental parameters align with conservation standards (EN 16893, ISO 11799, ISO 18911)"
- "MIGRATED 2026-01-13: Now uses shared slots (Rule 38)"
- "MIGRATED 2026-01-15: Temperature/humidity slots → has_or_had_setpoint + Setpoint (Rule 53)"
see_also:
- https://www.iso.org/standard/63810.html
@ -327,12 +337,18 @@ classes:
- Archive Standard Storage Environment@en
- Standaard archiefbewaaromgeving@nl
has_or_had_description: "Standard climate-controlled environment for paper-based archival materials"
temperature_min: 16.0
temperature_max: 20.0
temperature_target: 18.0
humidity_min: 45.0
humidity_max: 55.0
humidity_target: 50.0
has_or_had_setpoint: # MIGRATED 2026-01-15: was temperature_min/max/target, humidity_min/max/target
- setpoint_type: TEMPERATURE
setpoint_value: 18.0
setpoint_min: 16.0
setpoint_max: 20.0
setpoint_unit: DEGREE_CELSIUS
iso_standard_reference: "ISO 11799"
- setpoint_type: RELATIVE_HUMIDITY
setpoint_value: 50.0
setpoint_min: 45.0
setpoint_max: 55.0
setpoint_unit: PERCENT
max_light_lux: 50.0
iso_standard:
- ISO 11799

View file

@ -19,9 +19,11 @@ imports:
- ../slots/description
- ../slots/has_or_had_amount
- ../slots/has_or_had_currency
- ../slots/valid_from
- ../slots/valid_to
# ARCHIVED: ../slots/valid_from - use temporal_extent instead
# ARCHIVED: ../slots/valid_to - use temporal_extent instead
- ../slots/temporal_extent # was: valid_from + valid_to
- ../enums/ExpenseTypeEnum
- ./TimeSpan
default_prefix: hc
@ -106,8 +108,7 @@ classes:
- amount
- currency
- description
- valid_from
- valid_to
- temporal_extent # was: valid_from + valid_to
slot_usage:
id:
identifier: true
@ -132,14 +133,12 @@ classes:
range: string
required: false
description: Human-readable description of the expense.
valid_from:
range: date
required: false
description: Start of period this expense applies to.
valid_to:
range: date
required: false
description: End of period this expense applies to.
temporal_extent:
range: TimeSpan
inlined: true
description: >-
Time period this expense applies to.
Use begin_of_the_begin for start date, end_of_the_end for end date.
annotations:
custodian_types: '["*"]'
custodian_types_rationale: Financial expenses applicable to all heritage custodian types.
@ -154,16 +153,18 @@ classes:
amount: 10000000.0
currency: EUR
description: "Management and general expenses for FY2023"
valid_from: "2023-01-01"
valid_to: "2023-12-31"
temporal_extent:
begin_of_the_begin: "2023-01-01"
end_of_the_end: "2023-12-31"
description: Administrative expense for Dutch museum
- value:
expense_type: PROGRAM
amount: 62000000.0
currency: EUR
description: "Program service expenses including exhibitions, conservation, education"
valid_from: "2023-01-01"
valid_to: "2023-12-31"
temporal_extent:
begin_of_the_begin: "2023-01-01"
end_of_the_end: "2023-12-31"
description: Program expense for major museum
- value:
expense_type: FUNDRAISING

View file

@ -140,7 +140,9 @@ imports:
- ./Label
- ../slots/topic
- ../slots/type
- ../slots/url
# REMOVED: ../slots/url - migrated to has_or_had_url with URL class (2025-01-15, Rule 53)
- ../slots/has_or_had_url
- ./URL
# REMOVED 2026-01-14: ../slots/validation_status - migrated to has_or_had_status with ValidationStatus
- ../slots/has_or_had_status
- ./ValidationStatus
@ -269,7 +271,7 @@ classes:
- finding_aid_temporal_coverage
- has_or_had_label # was: title
- topic
- url
- has_or_had_url # was: url - migrated per Rule 53 (2025-01-15)
- temporal_extent # was: valid_from + valid_to - migrated per Rule 53
- has_or_had_web_claim
# REMOVED: wikidata_class - migrated to is_or_was_instance_of with WikiDataEntry (2026-01-14, Rule 53)
@ -288,8 +290,13 @@ classes:
Uses FindingAidType class hierarchy.
has_or_had_label: # was: title
required: true
url:
has_or_had_url:
range: URL
inlined: true
required: true
description: |
URL of the finding aid web resource.
MIGRATED from url slot per slot_fixes.yaml (Rule 53, 2025-01-15).
custodian:
required: true
finding_aid_description:
@ -535,7 +542,7 @@ classes:
- template_specificity
# REMOVED: title_en, title_nl - migrated to has_or_had_label with Label (2026-01-14, Rule 53)
- has_or_had_label
- url
- has_or_had_url # was: url - migrated per Rule 53 (2025-01-15)
slot_usage:
slug:
required: true
@ -558,8 +565,13 @@ classes:
label_value: "Civil Registry"
language_code: "en"
description: English title
url:
has_or_had_url:
range: URL
inlined: true
required: true
description: |
URL of the sub-guide web resource.
MIGRATED from url slot per slot_fixes.yaml (Rule 53, 2025-01-15).
has_or_had_type:
range: SubGuideType
description: |
@ -589,13 +601,17 @@ classes:
- specificity_annotation
- sub_guide_temporal_coverage
- template_specificity
- url
- has_or_had_url # was: url - migrated per Rule 53 (2025-01-15)
slot_usage:
name:
required: true
url:
range: uri
has_or_had_url:
range: URL
inlined: true
required: false
description: |
URL of the archive reference.
MIGRATED from url slot per slot_fixes.yaml (Rule 53, 2025-01-15).
isil:
pattern: ^[A-Z]{2}-[A-Za-z0-9]+$
exact_mappings:
@ -671,13 +687,17 @@ classes:
- specificity_annotation
- template_specificity
- type
- url
- has_or_had_url # was: url - migrated per Rule 53 (2025-01-15)
slot_usage:
name:
required: true
url:
range: uri
has_or_had_url:
range: URL
inlined: true
required: true
description: |
URL of the external resource.
MIGRATED from url slot per slot_fixes.yaml (Rule 53, 2025-01-15).
type:
range: ExternalResourceTypeEnum
exact_mappings:

View file

@ -17,8 +17,10 @@ imports:
- linkml:types
- ../slots/id
- ../slots/description
- ../slots/valid_from
- ../slots/valid_to
# ARCHIVED: ../slots/valid_from - use temporal_extent instead
# ARCHIVED: ../slots/valid_to - use temporal_extent instead
- ../slots/temporal_extent # was: valid_from + valid_to
- ./TimeSpan
default_prefix: hc
@ -106,8 +108,7 @@ classes:
- function_category
- function_name
- description
- valid_from
- valid_to
- temporal_extent # was: valid_from + valid_to
slot_usage:
id:
identifier: true
@ -124,14 +125,12 @@ classes:
range: string
required: false
description: Human-readable description of the function.
valid_from:
range: date
required: false
description: Start date when this function was established.
valid_to:
range: date
required: false
description: End date when this function was discontinued.
temporal_extent:
range: TimeSpan
inlined: true
description: >-
Time period when this function was active.
Use begin_of_the_begin for start date, end_of_the_end for end date.
annotations:
custodian_types: '["*"]'
custodian_types_rationale: Organizational functions applicable to all heritage custodian types.

View file

@ -40,7 +40,7 @@ imports:
- ./SpecificityAnnotation
- ./TemplateSpecificityScores
- ../slots/has_or_had_identifier
- ./CustodianIdentifier
- ./Identifier # Contains CustodianIdentifier class
default_prefix: hc
classes:
FundingAgenda:

View file

@ -23,13 +23,15 @@ imports:
- linkml:types
- ../slots/id
- ../slots/description
- ../slots/valid_from
- ../slots/valid_to
# ARCHIVED: ../slots/valid_from - use temporal_extent instead
# ARCHIVED: ../slots/valid_to - use temporal_extent instead
- ../slots/temporal_extent # was: valid_from + valid_to
- ../slots/condition
- ../slots/specificity_annotation
- ../slots/template_specificity
- ./SpecificityAnnotation
- ./TemplateSpecificityScores
- ./TimeSpan
default_prefix: hc
default_range: string
@ -82,8 +84,7 @@ classes:
- is_permitted
- description
- condition
- valid_from
- valid_to
- temporal_extent # was: valid_from + valid_to
- specificity_annotation
- template_specificity
@ -134,7 +135,8 @@ classes:
condition:
- "Silent operation required"
- "Power outlets available at each desk"
valid_from: "2010-01-01"
temporal_extent:
begin_of_the_begin: "2010-01-01"
description: Archive laptop-friendly policy
- value:
@ -144,7 +146,8 @@ classes:
condition:
- "Pencils only for note-taking"
- "Institution-provided terminals available"
valid_from: "2020-01-01"
temporal_extent:
begin_of_the_begin: "2020-01-01"
description: Restricted laptop policy for special collections
slots:

View file

@ -23,7 +23,7 @@ imports:
- ../slots/event_description
- ../slots/has_or_had_affected_unit
- ../slots/has_or_had_resulting_unit
- ../slots/parent_custodian
- ../slots/has_or_had_associated_custodian # was: parent_custodian - migrated per Rule 53 (2025-01-15)
- ../slots/change_rationale
- ../slots/staff_impact
- ../slots/documentation_source
@ -137,7 +137,7 @@ classes:
- event_type
- from_location
- id
- parent_custodian
- has_or_had_associated_custodian # was: parent_custodian - migrated per Rule 53 (2025-01-15)
- has_or_had_resulting_unit
- specificity_annotation
- staff_impact
@ -190,9 +190,15 @@ classes:
- id: https://nde.nl/ontology/hc/org-unit/rijks-conservation-research
unit_name: Conservation and Research Department
description: New department created from merger
parent_custodian:
has_or_had_associated_custodian:
required: true
range: Custodian
multivalued: false
description: |
The custodian institution where this organizational change event occurred.
MIGRATED from parent_custodian slot per slot_fixes.yaml (Rule 53, 2025-01-15).
Per Rule 39: Uses PROV-O event association pattern (not hierarchy).
examples:
- value:
hc_id: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804

View file

@ -39,8 +39,9 @@ imports:
- ../slots/description
- ../slots/has_or_had_label # was: title - migrated per Rule 53
- ../slots/includes_or_included
- ../slots/valid_from
- ../slots/valid_to
# ARCHIVED: ../slots/valid_from - use temporal_extent instead
# ARCHIVED: ../slots/valid_to - use temporal_extent instead
- ../slots/temporal_extent # was: valid_from + valid_to
- ../slots/source_url
- ../slots/date_retrieved
- ../slots/specificity_annotation
@ -48,6 +49,7 @@ imports:
- ./WebLink
- ./SpecificityAnnotation
- ./TemplateSpecificityScores
- ./TimeSpan
default_prefix: hc
default_range: string
@ -110,8 +112,7 @@ classes:
- source_url
- date_retrieved
- link_count
- valid_from
- valid_to
- temporal_extent # was: valid_from + valid_to
- specificity_annotation
- template_specificity

View file

@ -23,13 +23,15 @@ imports:
- linkml:types
- ../slots/id
- ../slots/description
- ../slots/valid_from
- ../slots/valid_to
# ARCHIVED: ../slots/valid_from - use temporal_extent instead
# ARCHIVED: ../slots/valid_to - use temporal_extent instead
- ../slots/temporal_extent # was: valid_from + valid_to
- ../slots/condition
- ../slots/specificity_annotation
- ../slots/template_specificity
- ./SpecificityAnnotation
- ./TemplateSpecificityScores
- ./TimeSpan
default_prefix: hc
default_range: string
@ -95,8 +97,7 @@ classes:
- condition
- requires_declaration
- excluded_materials
- valid_from
- valid_to
- temporal_extent # was: valid_from + valid_to
- specificity_annotation
- template_specificity
@ -158,7 +159,8 @@ classes:
- "Personal research use only"
- "No commercial use without permission"
requires_declaration: true
valid_from: "2015-01-01"
temporal_extent:
begin_of_the_begin: "2015-01-01"
description: Archive photography-friendly policy
- value:
@ -170,7 +172,8 @@ classes:
- "Digital scans may be ordered"
excluded_materials:
- "All materials in this reading room"
valid_from: "2020-01-01"
temporal_extent:
begin_of_the_begin: "2020-01-01"
description: Restricted photography policy for fragile materials
- value:
@ -184,7 +187,8 @@ classes:
excluded_materials:
- "Loan items marked with no-photography symbol"
- "Temporary exhibitions unless noted"
valid_from: "2018-06-01"
temporal_extent:
begin_of_the_begin: "2018-06-01"
description: Museum gallery photography policy
slots:

View file

@ -45,8 +45,8 @@ imports:
- ../slots/template_specificity
- ../slots/to_owner
- ../slots/to_owner_text
- ../slots/transfer_location
- ../slots/transfer_location_text
# REMOVED 2026-01-15: transfer_location, transfer_location_text - migrated to event_location (Rule 53)
- ../slots/event_location
- ./SpecificityAnnotation
- ./TemplateSpecificityScores
default_prefix: hc
@ -108,8 +108,8 @@ classes:
- template_specificity
- to_owner
- to_owner_text
- transfer_location
- transfer_location_text
# MIGRATED 2026-01-15: transfer_location, transfer_location_text → event_location (Rule 53)
- event_location
slot_usage:
event_id:
identifier: true
@ -181,21 +181,27 @@ classes:
examples:
- value: Mauritshuis, The Hague
- value: Maria de Knuijt, widow of van Ruijven
transfer_location:
# MIGRATED 2026-01-15: transfer_location, transfer_location_text → event_location (Rule 53)
event_location:
description: |
Location where the provenance event (ownership/custody transfer) occurred.
Replaces bespoke transfer_location and transfer_location_text slots.
required: false
range: CustodianPlace
multivalued: true
inlined: true
examples:
- value:
place_name: Amsterdam
country: NL
transfer_location_text:
required: false
range: string
examples:
- value: Amsterdam
- value: Dissius sale, Amsterdam
- value: Christie's, London
description: Event at auction in Amsterdam
- value:
place_name: Dissius sale, Amsterdam
description: Specific sale event location
- value:
place_name: Christie's, London
country: GB
description: Auction house location
price:
required: false
range: decimal
@ -334,7 +340,10 @@ classes:
end_of_the_end: '1667-12-31'
from_owner_text: null
to_owner_text: Johannes Vermeer, Delft
transfer_location_text: Delft
# MIGRATED 2026-01-15: transfer_location_text → event_location (Rule 53)
event_location:
- place_name: Delft
country: NL
certainty_level: CERTAIN
provenance_text: Created by Johannes Vermeer, Delft, c. 1665
description: Creation of Girl with a Pearl Earring
@ -359,7 +368,10 @@ classes:
event_date_text: May 16, 1696
from_owner_text: Estate of Jacob Dissius
to_owner_text: Unknown buyer
transfer_location_text: Amsterdam
# MIGRATED 2026-01-15: transfer_location_text → event_location (Rule 53)
event_location:
- place_name: Amsterdam
country: NL
auction_sale_name: Dissius sale
lot_number: '36'
price_text: Unknown

View file

@ -25,7 +25,7 @@ imports:
- ../slots/was_generated_by
- ./SpecificityAnnotation
- ./TemplateSpecificityScores
- ./CustodianIdentifier
- ./Identifier # Contains CustodianIdentifier class
- ../enums/ReadingRoomAnnexReasonEnum
prefixes:
linkml: https://w3id.org/linkml/

View file

@ -11,7 +11,7 @@ imports:
- ../metadata
- ./Country
- ../slots/description
- ../slots/website
# REMOVED: ../slots/website - using inline attribute definition (Rule 53, migrated 2025-01-15)
- ../slots/specificity_annotation
- ../slots/template_specificity
- ./SpecificityAnnotation

View file

@ -26,7 +26,7 @@ imports:
- ./RegistrationAuthority
- ../slots/jurisdiction
- ../slots/description
- ../slots/website
# REMOVED: ../slots/website - unused import (Rule 53, migrated 2025-01-15)
- ../slots/specificity_annotation
- ../slots/template_specificity
- ./SpecificityAnnotation

View file

@ -0,0 +1,190 @@
id: https://nde.nl/ontology/hc/class/Setpoint
name: setpoint_class
title: Setpoint Class
description: |
Environmental control setpoint for storage conditions.
Created per slot_fixes.yaml migration for:
- temperature_target → has_or_had_setpoint + Setpoint
- temperature_min → has_or_had_setpoint + Setpoint
- temperature_max → has_or_had_setpoint + Setpoint
- target_temperature_celsius → has_or_had_setpoint + Setpoint
- target_relative_humidity → has_or_had_setpoint + Setpoint
This class models environmental control parameters (temperature, humidity, etc.)
as first-class entities with proper unit handling, tolerances, and ISO standard references.
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
qudt: http://qudt.org/schema/qudt/
brick: https://brickschema.org/schema/Brick#
sosa: http://www.w3.org/ns/sosa/
schema: http://schema.org/
dcterms: http://purl.org/dc/terms/
default_prefix: hc
imports:
- linkml:types
- ../enums/SetpointTypeEnum
- ../enums/MeasureUnitEnum
classes:
Setpoint:
class_uri: brick:Setpoint
description: |
An environmental control setpoint specifying a target value, acceptable range,
and tolerance for a measurable property (temperature, humidity, light, etc.).
**BRICK SCHEMA ALIGNMENT**:
brick:Setpoint - "A point that represents a value used to guide the
operation of equipment and/or systems"
**PRESERVATION CONTEXT**:
Setpoints define target environmental conditions for heritage preservation.
HVAC systems maintain conditions around setpoints within tolerance bands.
**ISO STANDARD REFERENCES**:
- ISO 11799:2015 (Archives): 16-18°C, 30-45% RH
- ISO 18911:2010 (Cold storage): 0 to +4°C, 30% RH
- ISO 18920:2011 (Photographs): 15-18°C, 30-40% RH
- BS 4971:2017 (UK Standard): 13-16°C, 35-60% RH
- EN 15757:2010 (Climate control): historic climate principle
exact_mappings:
- brick:Setpoint
- qudt:Quantity
close_mappings:
- sosa:ObservableProperty
slots:
- setpoint_type
- setpoint_value
- setpoint_min
- setpoint_max
- setpoint_tolerance
- setpoint_unit
- iso_standard_reference
slot_usage:
setpoint_type:
range: SetpointTypeEnum
required: true
description: The type of environmental parameter (temperature, humidity, etc.)
examples:
- value: TEMPERATURE
- value: RELATIVE_HUMIDITY
- value: LIGHT_LUX
setpoint_value:
range: float
required: true
description: The target setpoint value.
examples:
- value: 18.0
description: Target temperature 18°C
- value: 50.0
description: Target humidity 50% RH
setpoint_min:
range: float
required: false
description: Minimum acceptable value.
examples:
- value: 16.0
setpoint_max:
range: float
required: false
description: Maximum acceptable value.
examples:
- value: 20.0
setpoint_tolerance:
range: float
required: false
description: Acceptable deviation from target (±).
examples:
- value: 2.0
description: ±2°C tolerance
setpoint_unit:
range: MeasureUnitEnum
required: true
description: Unit of measurement for the setpoint value.
examples:
- value: DEGREE_CELSIUS
- value: PERCENT
- value: LUX
iso_standard_reference:
range: string
required: false
description: ISO or other standard reference for this setpoint.
examples:
- value: "ISO 11799:2015"
- value: "EN 15757:2010"
examples:
- value:
setpoint_type: TEMPERATURE
setpoint_value: 18.0
setpoint_min: 16.0
setpoint_max: 20.0
setpoint_tolerance: 2.0
setpoint_unit: DEGREE_CELSIUS
iso_standard_reference: "ISO 11799:2015"
description: Standard archive temperature setpoint
- value:
setpoint_type: RELATIVE_HUMIDITY
setpoint_value: 50.0
setpoint_min: 45.0
setpoint_max: 55.0
setpoint_tolerance: 5.0
setpoint_unit: PERCENT
iso_standard_reference: "ISO 11799:2015"
description: Standard archive humidity setpoint
- value:
setpoint_type: TEMPERATURE
setpoint_value: -18.0
setpoint_min: -20.0
setpoint_max: -15.0
setpoint_tolerance: 2.0
setpoint_unit: DEGREE_CELSIUS
iso_standard_reference: "ISO 18911:2010"
description: Cold storage temperature setpoint
slots:
setpoint_type:
description: The type of environmental parameter being controlled.
range: SetpointTypeEnum
slot_uri: hc:setpointType
setpoint_value:
description: The target setpoint value.
range: float
slot_uri: hc:setpointValue
exact_mappings:
- qudt:value
- schema:value
setpoint_min:
description: Minimum acceptable value.
range: float
slot_uri: hc:setpointMinimum
exact_mappings:
- schema:minValue
setpoint_max:
description: Maximum acceptable value.
range: float
slot_uri: hc:setpointMaximum
exact_mappings:
- schema:maxValue
setpoint_tolerance:
description: Acceptable deviation from target (±).
range: float
slot_uri: hc:setpointTolerance
setpoint_unit:
description: Unit of measurement for the setpoint.
range: MeasureUnitEnum
slot_uri: qudt:unit
iso_standard_reference:
description: ISO or other preservation standard reference.
range: string
slot_uri: dcterms:conformsTo

View file

@ -15,7 +15,7 @@ imports:
- ./Country
- ./Subregion
- ../slots/description
- ../slots/website
# REMOVED: ../slots/website - using inline attribute definition (Rule 53, migrated 2025-01-15)
- ../slots/specificity_annotation
- ../slots/template_specificity
- ./SpecificityAnnotation

View file

@ -11,7 +11,7 @@ imports:
- linkml:types
- ../metadata
- ../slots/description
- ../slots/website
# REMOVED: ../slots/website - using inline attribute definition (Rule 53, migrated 2025-01-15)
- ../slots/specificity_annotation
- ../slots/template_specificity
- ./SpecificityAnnotation

View file

@ -39,9 +39,10 @@ imports:
- ../slots/specificity_annotation
- ../slots/standards_compliance
- ../slots/storage_security_level
- ../slots/temperature_max
- ../slots/temperature_min
- ../slots/temperature_target
# REMOVED 2026-01-15: temperature_max, temperature_min, temperature_target - migrated to has_or_had_setpoint with Setpoint class (Rule 53)
- ../slots/has_or_had_setpoint
- ./Setpoint
- ../enums/SetpointTypeEnum
- ../slots/template_specificity
# REMOVED 2026-01-14: ../slots/uv_filtered_required - migrated to is_or_was_required with RequirementStatus
- ../slots/is_or_was_required
@ -104,9 +105,8 @@ classes:
- specificity_annotation
- standards_compliance
- storage_security_level
- temperature_max
- temperature_min
- temperature_target
# REMOVED 2026-01-15: temperature_max, temperature_min, temperature_target - migrated to has_or_had_setpoint
- has_or_had_setpoint
- temperature_tolerance
- template_specificity
# REMOVED 2026-01-14: uv_filtered_required - migrated to is_or_was_required with RequirementStatus
@ -130,27 +130,27 @@ classes:
- value: Climate control policy for main art storage depot at Amersfoort. Designed to maintain stable conditions for
mixed media collections including oil paintings, works on paper, and decorative arts. Based on EN 15757:2010 and
museum industry best practices.
temperature_target:
range: float
unit:
ucum_code: Cel
# REMOVED 2026-01-15: temperature_target, temperature_min, temperature_max
# Migrated to has_or_had_setpoint with Setpoint class per Rule 53
has_or_had_setpoint:
range: Setpoint
multivalued: true
inlined: true
inlined_as_list: true
description: |
Environmental control setpoints for this storage policy.
MIGRATED 2026-01-15: Replaces temperature_target, temperature_min, temperature_max.
Uses Setpoint class for structured setpoint data with types (TEMPERATURE, RELATIVE_HUMIDITY, etc.).
examples:
- value: 18.0
description: 18°C for archive storage
- value: -18.0
description: -18°C for cold storage
temperature_min:
range: float
unit:
ucum_code: Cel
examples:
- value: 16.0
temperature_max:
range: float
unit:
ucum_code: Cel
examples:
- value: 22.0
- value:
- setpoint_type: TEMPERATURE
setpoint_value: 18.0
setpoint_min: 16.0
setpoint_max: 22.0
setpoint_tolerance: 2.0
setpoint_unit: DEGREE_CELSIUS
iso_standard_reference: "ISO 11799:2015"
description: Archive temperature setpoint
temperature_tolerance:
range: float
unit:
@ -295,8 +295,14 @@ classes:
and decorative arts. Based on EN 15757:2010 and museum best practices.
'
temperature_target: 18.0
temperature_tolerance: 2.0
has_or_had_setpoint: # MIGRATED 2026-01-15: was temperature_target
- setpoint_type: TEMPERATURE
setpoint_value: 18.0
setpoint_min: 16.0
setpoint_max: 20.0
setpoint_tolerance: 2.0
setpoint_unit: DEGREE_CELSIUS
iso_standard_reference: "EN 15757:2010"
humidity_target: 50.0
humidity_tolerance: 5.0
light_max_lux: 50.0
@ -325,8 +331,14 @@ classes:
Permanence Institute guidelines for extended preservation.
'
temperature_target: -18.0
temperature_tolerance: 2.0
has_or_had_setpoint: # MIGRATED 2026-01-15: was temperature_target
- setpoint_type: TEMPERATURE
setpoint_value: -18.0
setpoint_min: -20.0
setpoint_max: -16.0
setpoint_tolerance: 2.0
setpoint_unit: DEGREE_CELSIUS
iso_standard_reference: "ISO 18911:2010"
humidity_target: 30.0
humidity_tolerance: 5.0
light_max_lux: 0.0

View file

@ -15,7 +15,9 @@ imports:
- ./Storage
- ../enums/StorageUnitTypeEnum
- ../slots/has_or_had_label # was: unit_name - migrated per Rule 53
- ../slots/unit_type
- ../slots/has_or_had_type # was: unit_type - migrated per Rule 53
# REMOVED - unit_type migrated to has_or_had_type (2026-01-15, Rule 53)
# - ../slots/unit_type
- ../slots/capacity_item
# REMOVED - migrated to has_or_had_identifier with range BayNumber (Rule 53)
# - ../slots/bay_number
@ -105,7 +107,9 @@ classes:
# - unit_id
# - unit_identifier
- has_or_had_label # was: unit_name
- unit_type
- has_or_had_type # was: unit_type - migrated per Rule 53
# REMOVED - unit_type migrated to has_or_had_type (2026-01-15, Rule 53)
# - unit_type
- temporal_extent # was: valid_from + valid_to - migrated per Rule 53
slot_usage:
# MIGRATED from unit_id and unit_identifier (2026-01-14, Rule 53)

View file

@ -7,19 +7,25 @@ imports:
- ./CustodianObservation
- ./ReconstructionActivity
- ./TimeSpan
- ./Description
# actual_end and actual_start REMOVED - migrated to temporal_extent with TimeSpan (Rule 53)
# TimeSpan uses begin_of_the_begin/end_of_the_end for CIDOC-CRM compliant temporal modeling
# temp_location_* slots REMOVED - migrated to generic slots (Rule 53, 2026-01-15):
# temp_location_id → has_or_had_identifier
# temp_location_name → has_or_had_label
# temp_location_description → has_or_had_description
# temp_location_reason → has_or_had_rationale + reason_type (enum)
- ../slots/has_or_had_identifier
- ../slots/has_or_had_label
- ../slots/has_or_had_description
- ../slots/has_or_had_rationale
- ../slots/has_or_had_type
- ../slots/is_active
- ../slots/planned_end
- ../slots/planned_start
- ../slots/reason_description
- ../slots/replaces_primary_location
- ../slots/serves_function_of
- ../slots/specificity_annotation
- ../slots/temp_location_description
- ../slots/temp_location_id
- ../slots/temp_location_name
- ../slots/temp_location_reason
- ../slots/template_specificity
- ../slots/temporal_extent
- ../slots/was_derived_from
@ -75,32 +81,42 @@ classes:
slots:
# actual_end and actual_start REMOVED - use temporal_extent with TimeSpan (Rule 53)
# TimeSpan provides begin_of_the_begin, end_of_the_begin, begin_of_the_end, end_of_the_end
# temp_location_* slots REMOVED - migrated to generic slots (Rule 53, 2026-01-15)
- has_or_had_identifier
- has_or_had_label
- has_or_had_description
- has_or_had_rationale
- has_or_had_type
- is_active
- planned_end
- planned_start
- reason_description
- replaces_primary_location
- serves_function_of
- specificity_annotation
- temp_location_description
- temp_location_id
- temp_location_name
- temp_location_reason
- template_specificity
- temporal_extent
- was_derived_from
- was_generated_by
slot_usage:
temp_location_id:
# Migration notes (2026-01-15, Rule 53):
# temp_location_id → has_or_had_identifier
# temp_location_name → has_or_had_label
# temp_location_description → has_or_had_description
# temp_location_reason → has_or_had_type (with TemporaryLocationReasonEnum)
# reason_description → has_or_had_rationale
has_or_had_identifier:
range: uriorcurie
required: true
identifier: true
description: Unique identifier for this temporary location.
examples:
- value: https://nde.nl/ontology/hc/aux/stedelijk-temp-2020
description: Stedelijk Museum renovation temporary location
temp_location_name:
has_or_had_label:
range: string
required: true
multivalued: true
description: Human-readable name(s) for this temporary location.
examples:
- value: Stedelijk Museum Temporary Entrance
description: Renovation interim access
@ -108,22 +124,31 @@ classes:
description: Traveling exhibition
- value: Emergency Collection Storage - Watersnood 2024
description: Emergency relocation
temp_location_description:
range: string
has_or_had_description:
range: Description
inlined: true
description: Detailed description of the temporary location.
examples:
- value: Temporary entrance during main entrance renovation. Access collections via garden entrance, Paulus Potterstraat
side.
- value:
description_text: Temporary entrance during main entrance renovation. Access collections via garden entrance, Paulus Potterstraat side.
description_type: location
language: en
description: Renovation interim description
temp_location_reason:
has_or_had_type:
range: TemporaryLocationReasonEnum
required: true
multivalued: false
description: The reason/type for this temporary location (renovation, emergency, pop-up, etc.)
examples:
- value: RENOVATION
description: Building renovation
- value: POP_UP_PROGRAM
description: Pop-up exhibition
reason_description:
- value: EMERGENCY
description: Emergency relocation
has_or_had_rationale:
range: string
description: Detailed explanation of the reason for the temporary location.
examples:
- value: Main entrance renovation including new accessibility features. Expected completion Q4 2021.
description: Renovation reason
@ -201,11 +226,15 @@ classes:
- http://www.cidoc-crm.org/html/cidoc_crm_v7.1.3.html#E7
examples:
- value:
temp_location_id: https://nde.nl/ontology/hc/aux/stedelijk-temp-2020
temp_location_name: Stedelijk Museum Temporary Entrance
temp_location_description: Temporary entrance during main entrance renovation. Access via garden entrance.
temp_location_reason: RENOVATION
reason_description: Main entrance renovation including new accessibility features.
has_or_had_identifier: https://nde.nl/ontology/hc/aux/stedelijk-temp-2020
has_or_had_label:
- Stedelijk Museum Temporary Entrance
has_or_had_description:
- description_text: Temporary entrance during main entrance renovation. Access via garden entrance.
description_type: location
language: en
has_or_had_type: RENOVATION
has_or_had_rationale: Main entrance renovation including new accessibility features.
planned_start: '2020-06-01'
planned_end: '2021-12-31'
temporal_extent:
@ -220,11 +249,15 @@ classes:
- Ticket sales
description: Museum renovation temporary entrance (completed) - actual dates via temporal_extent
- value:
temp_location_id: https://nde.nl/ontology/hc/aux/rijksmuseum-popup-groningen
temp_location_name: Rijksmuseum Pop-up Groningen
temp_location_description: Summer pop-up exhibition in Groninger Forum featuring highlights from the Golden Age collection.
temp_location_reason: POP_UP_PROGRAM
reason_description: Outreach program bringing collection highlights to northern Netherlands.
has_or_had_identifier: https://nde.nl/ontology/hc/aux/rijksmuseum-popup-groningen
has_or_had_label:
- Rijksmuseum Pop-up Groningen
has_or_had_description:
- description_text: Summer pop-up exhibition in Groninger Forum featuring highlights from the Golden Age collection.
description_type: location
language: en
has_or_had_type: POP_UP_PROGRAM
has_or_had_rationale: Outreach program bringing collection highlights to northern Netherlands.
planned_start: '2024-07-01'
planned_end: '2024-09-30'
temporal_extent:
@ -236,12 +269,15 @@ classes:
- Exhibition space
description: Pop-up exhibition (active) - actual start via temporal_extent, no end yet
- value:
temp_location_id: https://nde.nl/ontology/hc/aux/emergency-storage-2024
temp_location_name: Emergency Collection Storage - Watersnood 2024
temp_location_description: Emergency relocation of collection materials following flooding at main depot.
temp_location_reason: EMERGENCY
reason_description: Flooding on 2024-01-14 damaged main storage facility. Collections evacuated to temporary climate-controlled
space.
has_or_had_identifier: https://nde.nl/ontology/hc/aux/emergency-storage-2024
has_or_had_label:
- Emergency Collection Storage - Watersnood 2024
has_or_had_description:
- description_text: Emergency relocation of collection materials following flooding at main depot.
description_type: location
language: en
has_or_had_type: EMERGENCY
has_or_had_rationale: Flooding on 2024-01-14 damaged main storage facility. Collections evacuated to temporary climate-controlled space.
temporal_extent:
begin_of_the_begin: '2024-01-15'
end_of_the_begin: '2024-01-15'

View file

@ -13,7 +13,8 @@ imports:
- ../metadata
- ../slots/jurisdiction
- ../slots/description
- ../slots/website
- ../slots/has_or_had_url # was: website - migrated per Rule 53 (2025-01-15)
- ./URL
- ../slots/has_or_had_api_endpoint
- ../slots/specificity_annotation
- ../slots/template_specificity
@ -77,7 +78,7 @@ classes:
- register_type
- specificity_annotation
- template_specificity
- website
- has_or_had_url # was: website - migrated per Rule 53 (2025-01-15)
slot_usage:
register_id:
identifier: true
@ -96,3 +97,10 @@ classes:
required: true
gleif_ra_code:
required: false
has_or_had_url:
range: URL
inlined: true
multivalued: false
description: |
Official website of the trade register.
MIGRATED from website slot per slot_fixes.yaml (Rule 53, 2025-01-15).

View file

@ -36,19 +36,23 @@ imports:
- linkml:types
- ../slots/id
- ../slots/description
- ../slots/url
# REMOVED: ../slots/url - migrated to has_or_had_url with URL class (2025-01-15, Rule 53)
- ../slots/has_or_had_url
- ./URL
- ../slots/has_or_had_label # was: title - migrated per Rule 53
- ../slots/link_text
- ../slots/link_type
- ../slots/link_context
- ../slots/xpath
- ../slots/valid_from
- ../slots/valid_to
# ARCHIVED: ../slots/valid_from - use temporal_extent instead
# ARCHIVED: ../slots/valid_to - use temporal_extent instead
- ../slots/temporal_extent # was: valid_from + valid_to
- ../slots/specificity_annotation
- ../slots/template_specificity
- ./SpecificityAnnotation
- ./TemplateSpecificityScores
- ../enums/LinkTypeEnum
- ./TimeSpan
default_prefix: hc
default_range: string
@ -92,15 +96,14 @@ classes:
slots:
- id
- url
- has_or_had_url # was: url - migrated per Rule 53 (2025-01-15)
- link_text
- has_or_had_label # was: title
- description
- link_type
- link_context
- xpath
- valid_from
- valid_to
- temporal_extent # was: valid_from + valid_to
- specificity_annotation
- template_specificity
@ -108,11 +111,13 @@ classes:
id:
identifier: true
range: uriorcurie
url:
range: uri
has_or_had_url:
range: URL
inlined: true
required: true
description: >-
The URL of the web resource.
MIGRATED from url slot per slot_fixes.yaml (Rule 53, 2025-01-15).
link_text:
range: string
description: >-

View file

@ -13,7 +13,7 @@ prefixes:
imports:
- linkml:types
- ./WebClaim
- ../slots/is_or_was_is_or_was_archived_at # MIGRATED: was ../slots/is_or_was_archived_at (2026-01-15)
- ../slots/is_or_was_archived_at
- ../slots/extraction_confidence
- ../slots/extraction_note
- ../slots/source_url
@ -75,7 +75,7 @@ classes:
- pav:sourceAccessedAt
- dcterms:source
slots:
- is_or_was_is_or_was_archived_at # MIGRATED: was is_or_was_archived_at (2026-01-15)
- is_or_was_archived_at
- claim
- content_changed
- content_hash

View file

@ -0,0 +1,48 @@
id: https://nde.nl/ontology/hc/enum/SetpointTypeEnum
name: setpoint_type_enum
title: Setpoint Type Enumeration
description: |
Types of environmental control setpoints for heritage storage conditions.
Created per slot_fixes.yaml migration to support the Setpoint class.
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
qudt: http://qudt.org/schema/qudt/
quantitykind: http://qudt.org/vocab/quantitykind/
default_prefix: hc
imports:
- linkml:types
enums:
SetpointTypeEnum:
description: Types of environmental parameters that can have setpoints.
enum_uri: hc:SetpointType
permissible_values:
TEMPERATURE:
description: Temperature setpoint in degrees Celsius.
meaning: quantitykind:ThermodynamicTemperature
RELATIVE_HUMIDITY:
description: Relative humidity setpoint as percentage.
meaning: quantitykind:RelativeHumidity
LIGHT_LUX:
description: Light level setpoint in lux.
meaning: quantitykind:LuminousIntensity
UV_LEVEL:
description: UV light level setpoint.
meaning: hc:UVLevel
AIR_CHANGES_PER_HOUR:
description: Air change rate setpoint.
meaning: hc:AirChangesPerHour
PARTICULATE_COUNT:
description: Particulate count setpoint (air quality).
meaning: hc:ParticulateCount
OXYGEN_LEVEL:
description: Oxygen level setpoint (for inert atmospheres).
meaning: quantitykind:OxygenConcentration
CO2_LEVEL:
description: Carbon dioxide level setpoint.
meaning: quantitykind:CO2Concentration

View file

@ -21,7 +21,7 @@ default_prefix: hc
imports:
- linkml:types
- ./classes/Timestamp
- ../classes/Timestamp
slots:
begin_of_the_begin:

View file

@ -20,7 +20,7 @@ default_prefix: hc
imports:
- linkml:types
- ./classes/Timestamp
- ../classes/Timestamp
slots:
begin_of_the_end:

View file

@ -20,7 +20,7 @@ default_prefix: hc
imports:
- linkml:types
- ./classes/Timestamp
- ../classes/Timestamp
slots:
end_of_the_begin:

View file

@ -21,7 +21,7 @@ default_prefix: hc
imports:
- linkml:types
- ./classes/Timestamp
- ../classes/Timestamp
slots:
end_of_the_end:

View file

@ -23,7 +23,7 @@ default_prefix: hc
imports:
- linkml:types
- ./classes/Description
- ../classes/Description
slots:
has_or_had_description:

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