#!/usr/bin/env python3 """ Enrich Palestinian Heritage Consolidated dataset with LAP Gaza Report 2024 data. This script: 1. Adds new institutions from Gaza Report 2024 (archives, libraries, museums) 2. Adds conflict_status to existing Gaza institutions 3. Adds martyred information workers section 4. Updates metadata (version, sources, statistics) Source: https://librarianswithpalestine.org/gaza-report-2024/ """ import json from datetime import datetime, timezone from pathlib import Path # File paths DATA_FILE = Path("/Users/kempersc/apps/glam/data/extracted/palestinian_heritage_consolidated.json") OUTPUT_FILE = DATA_FILE # Overwrite in place # Source reference LAP_SOURCE = { "name": "Librarians with Palestine - Gaza Report 2024", "url": "https://librarianswithpalestine.org/gaza-report-2024/", "extraction_date": datetime.now(timezone.utc).isoformat(), "method": "Manual extraction from LAP documentation", "note": "Documents cultural heritage destruction in Gaza 2023-2024" } # Conflict status template def make_conflict_status(status, date, description, reported_date=None): return { "status": status, # "destroyed", "damaged", "unknown" "date": date, "reported_date": reported_date or "2024-12-01", "description": description, "sources": ["Librarians with Palestine - Gaza Report 2024"] } # NEW INSTITUTIONS FROM GAZA REPORT 2024 # Starting from PS-HER-039 NEW_INSTITUTIONS = [ # ============ ARCHIVES (2) ============ { "id": "PS-HER-039", "name": "Central Archives of Gaza City", "name_arabic": "الأرشيف المركزي لمدينة غزة", "type": "GRP.HER.ARC", "subtype": "archive", "country": "PS", "city": "Gaza City", "location": "Gaza Strip, Palestine", "description": "Municipal archives holding 150 years of historical records including Ottoman-era documents, British Mandate records, and modern Palestinian administrative documents.", "conflict_status": make_conflict_status( "destroyed", "2023-11-01", "Destroyed by Israeli bombardment in November 2023. An estimated 150 years of historical records were lost, including irreplaceable Ottoman-era documents and British Mandate records." ), "confidence": 0.95, "sources": ["lap_gaza_report_2024"], "enrichment_status": "partial" }, { "id": "PS-HER-040", "name": "Great Omari Mosque and Library", "name_arabic": "المسجد العمري الكبير ومكتبته", "type": "GRP.HER.LIB", "subtype": "mosque_library", "country": "PS", "city": "Gaza City", "location": "Gaza Strip, Palestine", "description": "Historic mosque dating to 7th century CE, converted from Byzantine church. The library contained rare 14th century manuscripts and historical Islamic texts.", "conflict_status": make_conflict_status( "destroyed", "2023-12-08", "Destroyed by Israeli bombardment on December 8, 2023. The mosque was one of Gaza's oldest structures, and its library contained irreplaceable 14th century manuscripts." ), "confidence": 0.95, "sources": ["lap_gaza_report_2024"], "enrichment_status": "partial" }, # ============ LIBRARIES (11) ============ { "id": "PS-HER-041", "name": "Ataa Library / IBBY Children in Crisis Library", "name_arabic": "مكتبة عطاء / مكتبة أطفال IBBY في الأزمات", "type": "GRP.HER.LIB", "subtype": "children_library", "country": "PS", "city": "Beit Hanoun", "location": "Gaza Strip, Palestine", "description": "Children's library supported by International Board on Books for Young People (IBBY). Provided reading programs and educational resources for children in crisis.", "conflict_status": make_conflict_status( "destroyed", "2023-10-15", "Destroyed in early Israeli bombardment of Beit Hanoun, October 2023." ), "confidence": 0.90, "sources": ["lap_gaza_report_2024"], "enrichment_status": "partial" }, { "id": "PS-HER-042", "name": "Diana Tamari Sabbagh Library", "name_arabic": "مكتبة ديانا تماري صباغ", "type": "GRP.HER.LIB", "subtype": "public_library", "country": "PS", "city": "Gaza City", "location": "Gaza Strip, Palestine", "description": "Public library named after Palestinian-American philanthropist Diana Tamari Sabbagh.", "conflict_status": make_conflict_status( "destroyed", "2023-11-01", "Destroyed during Israeli military operations in Gaza City, November 2023." ), "confidence": 0.85, "sources": ["lap_gaza_report_2024"], "enrichment_status": "partial" }, { "id": "PS-HER-043", "name": "Edward Said Library", "name_arabic": "مكتبة إدوارد سعيد", "type": "GRP.HER.LIB", "subtype": "public_library", "country": "PS", "city": "Gaza City", "location": "Gaza Strip, Palestine", "description": "Library named after renowned Palestinian-American literary theorist and public intellectual Edward Said.", "conflict_status": make_conflict_status( "destroyed", "2023-11-01", "Destroyed during Israeli military operations in Gaza, late 2023." ), "confidence": 0.85, "sources": ["lap_gaza_report_2024"], "enrichment_status": "partial" }, { "id": "PS-HER-044", "name": "Enaim Library", "name_arabic": "مكتبة عنايم", "type": "GRP.HER.LIB", "subtype": "public_library", "country": "PS", "city": "Gaza City", "location": "Gaza Strip, Palestine", "description": "Public library serving the Gaza community.", "conflict_status": make_conflict_status( "destroyed", "2023-11-01", "Destroyed during Israeli military operations in Gaza, 2023-2024." ), "confidence": 0.80, "sources": ["lap_gaza_report_2024"], "enrichment_status": "partial" }, { "id": "PS-HER-045", "name": "Gaza Municipal Library", "name_arabic": "مكتبة بلدية غزة", "type": "GRP.HER.LIB", "subtype": "municipal_library", "country": "PS", "city": "Gaza City", "location": "Gaza Strip, Palestine", "description": "Main municipal public library of Gaza City, part of the Gaza Municipality Public Library System.", "conflict_status": make_conflict_status( "destroyed", "2023-11-01", "Destroyed during Israeli bombardment of Gaza City municipal infrastructure." ), "confidence": 0.90, "sources": ["lap_gaza_report_2024"], "notes": "Related to PS-HER-021 Gaza Municipality Public Library System", "enrichment_status": "partial" }, { "id": "PS-HER-046", "name": "Al-Kalima Library", "name_arabic": "مكتبة الكلمة", "type": "GRP.HER.LIB", "subtype": "public_library", "country": "PS", "city": "Gaza City", "location": "Gaza Strip, Palestine", "description": "Public library ('Al-Kalima' means 'The Word' in Arabic).", "conflict_status": make_conflict_status( "destroyed", "2023-11-01", "Destroyed during Israeli military operations in Gaza, 2023-2024." ), "confidence": 0.80, "sources": ["lap_gaza_report_2024"], "enrichment_status": "partial" }, { "id": "PS-HER-047", "name": "Kana'an Educational Development Institute", "name_arabic": "معهد كنعان للتنمية التعليمية", "type": "GRP.HER.LIB", "subtype": "educational_library", "country": "PS", "city": "Gaza City", "location": "Gaza Strip, Palestine", "description": "Educational institute with library resources focused on Palestinian educational development.", "conflict_status": make_conflict_status( "destroyed", "2023-11-01", "Destroyed during Israeli military operations in Gaza, 2023-2024." ), "confidence": 0.85, "sources": ["lap_gaza_report_2024"], "enrichment_status": "partial" }, { "id": "PS-HER-048", "name": "Lubbud Library", "name_arabic": "مكتبة لبد", "type": "GRP.HER.LIB", "subtype": "public_library", "country": "PS", "city": "Gaza City", "location": "Gaza Strip, Palestine", "description": "Public library serving the Gaza community.", "conflict_status": make_conflict_status( "destroyed", "2023-11-01", "Destroyed during Israeli military operations in Gaza, 2023-2024." ), "confidence": 0.80, "sources": ["lap_gaza_report_2024"], "enrichment_status": "partial" }, { "id": "PS-HER-049", "name": "Al-Nahda Library", "name_arabic": "مكتبة النهضة", "type": "GRP.HER.LIB", "subtype": "public_library", "country": "PS", "city": "Gaza City", "location": "Gaza Strip, Palestine", "description": "Public library ('Al-Nahda' means 'The Renaissance' in Arabic).", "conflict_status": make_conflict_status( "destroyed", "2023-11-01", "Destroyed during Israeli military operations in Gaza, 2023-2024." ), "confidence": 0.80, "sources": ["lap_gaza_report_2024"], "enrichment_status": "partial" }, { "id": "PS-HER-050", "name": "Samir Mansour Bookshop and Publishing", "name_arabic": "مكتبة ودار نشر سمير منصور", "type": "GRP.HER.LIB", "subtype": "bookshop_publisher", "country": "PS", "city": "Gaza City", "location": "Gaza Strip, Palestine", "description": "Major bookshop and publishing house in Gaza, important distributor of Arabic literature and Palestinian publications. Destroyed and rebuilt after 2021, then destroyed again in 2023.", "conflict_status": make_conflict_status( "destroyed", "2023-10-15", "Destroyed in early Israeli bombardment, October 2023. This was the second destruction - the bookshop had been rebuilt after being destroyed in May 2021." ), "confidence": 0.95, "sources": ["lap_gaza_report_2024"], "enrichment_status": "partial" }, { "id": "PS-HER-051", "name": "Al-Shorouq Al-Daem Library", "name_arabic": "مكتبة الشروق الدائم", "type": "GRP.HER.LIB", "subtype": "public_library", "country": "PS", "city": "Gaza City", "location": "Gaza Strip, Palestine", "description": "Public library ('Al-Shorouq Al-Daem' means 'The Eternal Sunrise' in Arabic).", "conflict_status": make_conflict_status( "destroyed", "2023-11-01", "Destroyed during Israeli military operations in Gaza, 2023-2024." ), "confidence": 0.80, "sources": ["lap_gaza_report_2024"], "enrichment_status": "partial" }, # ============ UNIVERSITY LIBRARIES (4) ============ { "id": "PS-HER-052", "name": "Al-Aqsa University Library", "name_arabic": "مكتبة جامعة الأقصى", "type": "GRP.HER.LIB", "subtype": "university_library", "country": "PS", "city": "Gaza City", "location": "Gaza Strip, Palestine", "description": "University library of Al-Aqsa University, one of Gaza's major higher education institutions.", "conflict_status": make_conflict_status( "destroyed", "2023-11-01", "Al-Aqsa University campus and library destroyed during Israeli military operations in Gaza." ), "confidence": 0.90, "sources": ["lap_gaza_report_2024"], "enrichment_status": "partial" }, { "id": "PS-HER-053", "name": "Al-Israa University Library and National Museum", "name_arabic": "مكتبة جامعة الإسراء والمتحف الوطني", "type": "GRP.HER.MIX", "subtype": "university_library_museum", "country": "PS", "city": "Gaza City", "location": "Gaza Strip, Palestine", "description": "Combined university library and national museum at Al-Israa University. The museum housed significant Palestinian archaeological and cultural artifacts.", "conflict_status": make_conflict_status( "destroyed", "2024-01-17", "Al-Israa University, including its library and national museum, was deliberately targeted and destroyed by Israeli forces on January 17, 2024. The destruction was documented and appears to have been a controlled demolition." ), "confidence": 0.95, "sources": ["lap_gaza_report_2024"], "enrichment_status": "partial" }, { "id": "PS-HER-054", "name": "Al-Quds Open University Library - Gaza", "name_arabic": "مكتبة جامعة القدس المفتوحة - غزة", "type": "GRP.HER.LIB", "subtype": "university_library", "country": "PS", "city": "Gaza City", "location": "Gaza Strip, Palestine", "description": "Gaza branch library of Al-Quds Open University, providing distance education resources.", "conflict_status": make_conflict_status( "destroyed", "2023-11-01", "Gaza campus and library destroyed during Israeli military operations." ), "confidence": 0.85, "sources": ["lap_gaza_report_2024"], "enrichment_status": "partial" }, { "id": "PS-HER-055", "name": "Jawaharlal Nehru Library - Al-Azhar University Gaza", "name_arabic": "مكتبة جواهر لال نهرو - جامعة الأزهر غزة", "type": "GRP.HER.LIB", "subtype": "university_library", "country": "PS", "city": "Gaza City", "location": "Gaza Strip, Palestine", "description": "University library at Al-Azhar University Gaza, named after Indian independence leader Jawaharlal Nehru.", "conflict_status": make_conflict_status( "destroyed", "2023-11-01", "Al-Azhar University Gaza campus and Jawaharlal Nehru Library destroyed during Israeli military operations." ), "confidence": 0.90, "sources": ["lap_gaza_report_2024"], "enrichment_status": "partial" }, # ============ MUSEUMS (10) ============ { "id": "PS-HER-056", "name": "Akkad Museum", "name_arabic": "متحف أكاد", "type": "GRP.HER.MUS", "subtype": "heritage_museum", "country": "PS", "city": "Gaza City", "location": "Gaza Strip, Palestine", "description": "Private heritage museum preserving Palestinian cultural artifacts.", "conflict_status": make_conflict_status( "destroyed", "2023-11-01", "Destroyed during Israeli military operations in Gaza, 2023-2024." ), "confidence": 0.85, "sources": ["lap_gaza_report_2024"], "enrichment_status": "partial" }, { "id": "PS-HER-057", "name": "Cultural Kararah Museum", "name_arabic": "متحف كرارة الثقافي", "type": "GRP.HER.MUS", "subtype": "cultural_museum", "country": "PS", "city": "Khan Yunis", "location": "Gaza Strip, Palestine", "description": "Cultural museum in the Kararah area, preserving local heritage and traditions.", "conflict_status": make_conflict_status( "destroyed", "2024-01-01", "Destroyed during Israeli ground operations in Khan Yunis area, early 2024." ), "confidence": 0.85, "sources": ["lap_gaza_report_2024"], "enrichment_status": "partial" }, { "id": "PS-HER-058", "name": "Deir Al-Balah Museum", "name_arabic": "متحف دير البلح", "type": "GRP.HER.MUS", "subtype": "archaeological_museum", "country": "PS", "city": "Deir al-Balah", "location": "Gaza Strip, Palestine", "description": "Archaeological museum housing artifacts from the ancient site of Deir al-Balah, including Bronze Age Egyptian and Canaanite remains.", "conflict_status": make_conflict_status( "destroyed", "2024-01-01", "Destroyed during Israeli military operations in central Gaza." ), "confidence": 0.85, "sources": ["lap_gaza_report_2024"], "enrichment_status": "partial" }, { "id": "PS-HER-059", "name": "Ibrahim Abu Sha'ar Heritage Diwan", "name_arabic": "ديوان إبراهيم أبو شعر التراثي", "type": "GRP.HER.MUS", "subtype": "heritage_house", "country": "PS", "city": "Gaza City", "location": "Gaza Strip, Palestine", "description": "Traditional heritage house (diwan) preserving Palestinian cultural traditions and family history.", "conflict_status": make_conflict_status( "destroyed", "2023-11-01", "Destroyed during Israeli military operations in Gaza, 2023-2024." ), "confidence": 0.80, "sources": ["lap_gaza_report_2024"], "enrichment_status": "partial" }, { "id": "PS-HER-060", "name": "Khudari Museum", "name_arabic": "متحف الخضري", "type": "GRP.HER.MUS", "subtype": "heritage_museum", "country": "PS", "city": "Gaza City", "location": "Gaza Strip, Palestine", "description": "Heritage museum preserving Palestinian cultural artifacts and family collections.", "conflict_status": make_conflict_status( "destroyed", "2023-11-01", "Destroyed during Israeli military operations in Gaza, 2023-2024." ), "confidence": 0.85, "sources": ["lap_gaza_report_2024"], "enrichment_status": "partial" }, { "id": "PS-HER-061", "name": "Palestinian Costume Museum", "name_arabic": "متحف الأزياء الفلسطينية", "type": "GRP.HER.MUS", "subtype": "costume_museum", "country": "PS", "city": "Gaza City", "location": "Gaza Strip, Palestine", "description": "Museum dedicated to preserving traditional Palestinian dress and embroidery (tatreez), an important UNESCO-recognized element of intangible cultural heritage.", "conflict_status": make_conflict_status( "destroyed", "2023-11-01", "Destroyed during Israeli military operations in Gaza. Loss includes irreplaceable historic garments and embroidery examples." ), "confidence": 0.90, "sources": ["lap_gaza_report_2024"], "enrichment_status": "partial" }, { "id": "PS-HER-062", "name": "Al-Qarara Cultural Museum", "name_arabic": "متحف القرارة الثقافي", "type": "GRP.HER.MUS", "subtype": "cultural_museum", "country": "PS", "city": "Khan Yunis", "location": "Al-Qarara, Gaza Strip, Palestine", "description": "Cultural museum in Al-Qarara area preserving local heritage and traditions.", "conflict_status": make_conflict_status( "destroyed", "2024-01-01", "Destroyed during Israeli ground operations in Khan Yunis area, early 2024." ), "confidence": 0.85, "sources": ["lap_gaza_report_2024"], "enrichment_status": "partial" }, { "id": "PS-HER-063", "name": "Rafah Museum", "name_arabic": "متحف رفح", "type": "GRP.HER.MUS", "subtype": "heritage_museum", "country": "PS", "city": "Rafah", "location": "Gaza Strip, Palestine", "description": "Heritage museum in Rafah preserving local cultural artifacts and history.", "conflict_status": make_conflict_status( "destroyed", "2024-05-01", "Destroyed during Israeli military operations in Rafah, May 2024." ), "confidence": 0.85, "sources": ["lap_gaza_report_2024"], "enrichment_status": "partial" }, { "id": "PS-HER-064", "name": "Shahwan Museum", "name_arabic": "متحف شهوان", "type": "GRP.HER.MUS", "subtype": "heritage_museum", "country": "PS", "city": "Gaza City", "location": "Gaza Strip, Palestine", "description": "Private heritage museum preserving Palestinian cultural artifacts and family collections.", "conflict_status": make_conflict_status( "destroyed", "2023-11-01", "Destroyed during Israeli military operations in Gaza, 2023-2024." ), "confidence": 0.85, "sources": ["lap_gaza_report_2024"], "enrichment_status": "partial" }, ] # MARTYRED INFORMATION WORKERS MARTYRED_WORKERS = [ { "name": "Abdul Karim Hashash", "name_arabic": "عبد الكريم حشاش", "role": "Librarian", "institution": "Unknown", "date_of_death": "2023-2024", "circumstances": "Killed during Israeli military operations in Gaza", "source": "Librarians with Palestine - Gaza Report 2024" }, { "name": "Bilal Jadallah", "name_arabic": "بلال جادالله", "role": "Journalist and Information Professional", "institution": "Press House - Palestine", "date_of_death": "2023-11-19", "circumstances": "Killed in Israeli airstrike on his home in Gaza City", "source": "Librarians with Palestine - Gaza Report 2024" }, { "name": "Doaa Al-Masri", "name_arabic": "دعاء المصري", "role": "Librarian", "institution": "Unknown", "date_of_death": "2023-2024", "circumstances": "Killed during Israeli military operations in Gaza", "source": "Librarians with Palestine - Gaza Report 2024" }, { "name": "Dr. Jihad Suleiman Al-Masri", "name_arabic": "د. جهاد سليمان المصري", "role": "Academic and Library Professional", "institution": "University library", "date_of_death": "2023-2024", "circumstances": "Killed during Israeli military operations in Gaza", "source": "Librarians with Palestine - Gaza Report 2024" }, { "name": "Iman Abu Saeed", "name_arabic": "إيمان أبو سعيد", "role": "Librarian", "institution": "Unknown", "date_of_death": "2023-2024", "circumstances": "Killed during Israeli military operations in Gaza", "source": "Librarians with Palestine - Gaza Report 2024" }, { "name": "Marwan Tarazi", "name_arabic": "مروان طرازي", "role": "Archivist/Information Professional", "institution": "Unknown", "date_of_death": "2023-2024", "circumstances": "Killed during Israeli military operations in Gaza", "source": "Librarians with Palestine - Gaza Report 2024" }, ] # EXISTING GAZA INSTITUTIONS NEEDING conflict_status EXISTING_UPDATES = { "PS-HER-006": { "name": "Iwan Center for Cultural Heritage", "conflict_status": make_conflict_status( "destroyed", "2023-10-15", "Located at the Islamic University of Gaza. The Iwan Center and its digital heritage archives were destroyed when the university was bombed in October 2023." ) }, "PS-HER-012": { "name": "Gaza Municipality Central Archives", "conflict_status": make_conflict_status( "destroyed", "2023-11-01", "Municipal archives destroyed during Israeli bombardment of Gaza City municipal infrastructure. Loss includes decades of administrative records and historical documents." ) }, "PS-HER-021": { "name": "Gaza Municipality Public Library System", "conflict_status": make_conflict_status( "destroyed", "2023-11-01", "The public library system, including multiple branch libraries, was destroyed during Israeli military operations in Gaza City." ) }, "PS-HER-025": { "name": "Islamic University of Gaza Libraries", "conflict_status": make_conflict_status( "destroyed", "2023-10-11", "Islamic University of Gaza was one of the first educational institutions targeted. The university libraries were destroyed in early October 2023 bombardments." ) }, } def load_data(): """Load the existing JSON file.""" with open(DATA_FILE, 'r', encoding='utf-8') as f: return json.load(f) def update_existing_institutions(data): """Add conflict_status to existing Gaza institutions.""" updated_count = 0 for institution in data['institutions']: inst_id = institution.get('id') if inst_id in EXISTING_UPDATES: institution['conflict_status'] = EXISTING_UPDATES[inst_id]['conflict_status'] # Add source if not present if 'lap_gaza_report_2024' not in institution.get('sources', []): institution.setdefault('sources', []).append('lap_gaza_report_2024') updated_count += 1 print(f" Updated: {inst_id} - {EXISTING_UPDATES[inst_id]['name']}") return updated_count def add_new_institutions(data): """Add new institutions from Gaza Report 2024.""" added_count = 0 for institution in NEW_INSTITUTIONS: data['institutions'].append(institution) added_count += 1 print(f" Added: {institution['id']} - {institution['name']}") return added_count def add_martyred_workers(data): """Add martyred information workers section.""" data['martyred_information_workers'] = { "description": "Information professionals (librarians, archivists, journalists) killed during Israeli military operations in Gaza 2023-2024", "source": "Librarians with Palestine - Gaza Report 2024", "count": len(MARTYRED_WORKERS), "workers": MARTYRED_WORKERS } print(f" Added {len(MARTYRED_WORKERS)} martyred information workers") def update_metadata(data, added_count, updated_count): """Update metadata with new version and statistics.""" now = datetime.now(timezone.utc).isoformat() # Update version data['metadata']['version'] = "2.4.0" data['metadata']['updated'] = now # Add new source data['metadata']['sources'].append(LAP_SOURCE) # Update statistics old_total = data['metadata']['statistics']['total_unique_institutions'] old_palestinian = data['metadata']['statistics']['palestinian_institutions'] data['metadata']['statistics']['total_unique_institutions'] = old_total + added_count data['metadata']['statistics']['palestinian_institutions'] = old_palestinian + added_count data['metadata']['statistics']['gaza_institutions_destroyed'] = added_count + updated_count data['metadata']['statistics']['martyred_information_workers'] = len(MARTYRED_WORKERS) print(f"\nMetadata updated:") print(f" Version: 2.3.0 -> 2.4.0") print(f" Total institutions: {old_total} -> {old_total + added_count}") print(f" Palestinian institutions: {old_palestinian} -> {old_palestinian + added_count}") def save_data(data): """Save the updated JSON file.""" with open(OUTPUT_FILE, 'w', encoding='utf-8') as f: json.dump(data, f, indent=2, ensure_ascii=False) print(f"\nSaved to: {OUTPUT_FILE}") def main(): print("=" * 60) print("Palestinian Heritage Dataset - Gaza Report 2024 Enrichment") print("=" * 60) print("\n1. Loading existing data...") data = load_data() print(f" Loaded {len(data['institutions'])} institutions") print("\n2. Updating existing Gaza institutions with conflict_status...") updated_count = update_existing_institutions(data) print(f" Updated {updated_count} existing institutions") print("\n3. Adding new institutions from Gaza Report 2024...") added_count = add_new_institutions(data) print(f" Added {added_count} new institutions") print("\n4. Adding martyred information workers section...") add_martyred_workers(data) print("\n5. Updating metadata...") update_metadata(data, added_count, updated_count) print("\n6. Saving updated data...") save_data(data) print("\n" + "=" * 60) print("ENRICHMENT COMPLETE") print("=" * 60) print(f"\nSummary:") print(f" - Existing institutions updated: {updated_count}") print(f" - New institutions added: {added_count}") print(f" - Martyred workers documented: {len(MARTYRED_WORKERS)}") print(f" - New version: 2.4.0") if __name__ == "__main__": main()