From 74ba23a90ef8a5107aaa2920a41410914ae3f076 Mon Sep 17 00:00:00 2001 From: Theo Beers <32523293+theodore-s-beers@users.noreply.github.com> Date: Mon, 11 Mar 2024 22:29:26 +0100 Subject: [PATCH] Updates --- _app/immutable/chunks/ENTRIES.B7c5x1cf.js | 1 + _app/immutable/chunks/ENTRIES.DrMUelaC.js | 1 - _app/immutable/chunks/entry.CIRDAXcJ.js | 3 --- _app/immutable/chunks/entry.Cnm33kj4.js | 3 +++ ...{stores.DUT6qJ-9.js => stores.B3dUkItk.js} | 2 +- .../{app.2kowUB4t.js => app.DOsh1JLo.js} | 4 ++-- _app/immutable/entry/start.D3LilFFa.js | 1 + _app/immutable/entry/start.bFiNSXCE.js | 1 - _app/immutable/nodes/0.MH34aTo-.js | 1 + _app/immutable/nodes/0.tYS1zPvx.js | 1 - .../nodes/{1.go2KgLB-.js => 1.C1_-bDqQ.js} | 2 +- .../nodes/{2.BxZTDYhj.js => 2.CWb2TeJB.js} | 2 +- .../nodes/{5.D6My8LMJ.js => 5.lKEo7j0f.js} | 2 +- .../nodes/{6.BTcaBkny.js => 6.DkAcEZfH.js} | 14 ++++++------ .../nodes/{7.CVrWY7Kg.js => 7.CYkEQhly.js} | 2 +- .../nodes/{8.CXYtvyRl.js => 8.C-8QNMUP.js} | 2 +- _app/version.json | 2 +- about/index.html | 18 +++++++-------- contribute/index.html | 18 +++++++-------- entry/index.html | 22 +++++++++---------- index.html | 22 +++++++++---------- map/index.html | 22 +++++++++---------- timeline/index.html | 22 +++++++++---------- vis/index.html | 20 ++++++++--------- 24 files changed, 94 insertions(+), 94 deletions(-) create mode 100644 _app/immutable/chunks/ENTRIES.B7c5x1cf.js delete mode 100644 _app/immutable/chunks/ENTRIES.DrMUelaC.js delete mode 100644 _app/immutable/chunks/entry.CIRDAXcJ.js create mode 100644 _app/immutable/chunks/entry.Cnm33kj4.js rename _app/immutable/chunks/{stores.DUT6qJ-9.js => stores.B3dUkItk.js} (72%) rename _app/immutable/entry/{app.2kowUB4t.js => app.DOsh1JLo.js} (83%) create mode 100644 _app/immutable/entry/start.D3LilFFa.js delete mode 100644 _app/immutable/entry/start.bFiNSXCE.js create mode 100644 _app/immutable/nodes/0.MH34aTo-.js delete mode 100644 _app/immutable/nodes/0.tYS1zPvx.js rename _app/immutable/nodes/{1.go2KgLB-.js => 1.C1_-bDqQ.js} (92%) rename _app/immutable/nodes/{2.BxZTDYhj.js => 2.CWb2TeJB.js} (99%) rename _app/immutable/nodes/{5.D6My8LMJ.js => 5.lKEo7j0f.js} (64%) rename _app/immutable/nodes/{6.BTcaBkny.js => 6.DkAcEZfH.js} (97%) rename _app/immutable/nodes/{7.CVrWY7Kg.js => 7.CYkEQhly.js} (99%) rename _app/immutable/nodes/{8.CXYtvyRl.js => 8.C-8QNMUP.js} (67%) diff --git a/_app/immutable/chunks/ENTRIES.B7c5x1cf.js b/_app/immutable/chunks/ENTRIES.B7c5x1cf.js new file mode 100644 index 000000000..a7df14200 --- /dev/null +++ b/_app/immutable/chunks/ENTRIES.B7c5x1cf.js @@ -0,0 +1 @@ +const e=[["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/a_digital_synopsis_of_the_mishnah_and_tosefta/71ff37e4-7e16-4c1f-b0a9-9bf47778d41f.json",{schema_version:"0.2.2",record_metadata:{uuid:"71ff37e4-7e16-4c1f-b0a9-9bf47778d41f",record_created_on:"2022-07-26",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"A Digital Synopsis of the Mishnah and Tosefta",abbr:"",type:"project",ref:[],date:[{from:"2015-01-12",to:"2018-01-12"}],maintained:!1,websites:["https://www.geschkult.fu-berlin.de/e/judaistik/Forschung/Digitalization/index.html","https://gepris.dfg.de/gepris/projekt/273844901"],project_desc:"The aim of this project is to provide scholars and students of early rabbinic literature with digital tools to study and determine relationships between two central texts of rabbinic Judaism: the Mishnah (200 CE) and the Tosefta (250 CE) which share the same overall structure, the parallel organization, similar language and terminology and yet their relationship is tantalizingly problematic. The Synopsis Project will build upon and test computational methods for identifying “text reuse”; it will develop strategies and tools for presentation and visualization of overlapping texts which will provide access to the parallel and interrelated traditions of both texts.",places:[{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}},{place_name:{text:"College Park",ref:["https://www.geonames.org/4351977/college-park.html"]},coordinates:{lat:"38.98067",lng:"-76.93692"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Freie Universität Berlin",ref:["https://ror.org/046ak2485","https://www.wikidata.org/wiki/Q153006"]},websites:["https://www.fu-berlin.de/"]},{relation_type:"host",org_name:{text:"University of Maryland, College Park",ref:["https://ror.org/010prmy50","https://www.wikidata.org/wiki/Q503415"]},websites:["https://www.umd.edu/"]}],related_entities:[{relation_type:"sibling",title:"Patterns of Knowledge Circulation: The Transmission and Reception of Jewish Esoteric Knowledge in Manuscript and Print in Early Modern East-Central Europe (1500-1750)",uuid:"c2c309a5-923c-4759-ae83-f870b10dceff"}],contacts:[{pers_name:{text:"Ilan, Tal",ref:["https://d-nb.info/gnd/121164306"]},roles:["supervision"],websites:["https://www.geschkult.fu-berlin.de/e/judaistik/Forschung/talmudbavli/contacts/contacts_tal/"]},{pers_name:{text:"Lapin, Hayim",ref:["https://d-nb.info/gnd/1026148820"]},roles:["supervision"],websites:["https://history.umd.edu/directory/hayim-lapin"]}],research_data:{lang:["heb"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["computational_text_analysis","jewish_studies","machine_learning","nlp","religion_studies","text_reuse"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/a_digital_typology_of_arabic_documents/72bf1192-8af5-4df0-bd88-cf4d62d13d66.json",{schema_version:"0.2.2",record_metadata:{uuid:"72bf1192-8af5-4df0-bd88-cf4d62d13d66",record_created_on:"2021-11-11",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-02-14"},project:{title:"A Digital Typology of Arabic Documents",abbr:"",type:"project",ref:[],date:[{from:"2003",to:""}],maintained:null,websites:["https://www.apd.gwi.uni-muenchen.de/apd/project.jsp"],project_desc:"The latest phase of the project Arabic Papyrology Database (APD). Its aim is to create digital diplomatic charts for structuring formulaic and layout features of Arabic documents.",places:[{place_name:{text:"Basel",ref:["https://www.geonames.org/2661604/basel.html"]},coordinates:{lat:"47.55839",lng:"7.57327"}},{place_name:{text:"Munich",ref:["https://www.geonames.org/2867714/munich.html"]},coordinates:{lat:"48.13743",lng:"11.57549"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Universität Basel",ref:["https://ror.org/02s6k3f65","https://www.wikidata.org/wiki/Q372608"]},websites:["https://www.unibas.ch/de"]}],related_entities:[{relation_type:"parent",title:"Arabic Papyrology Database",uuid:"e9bf3427-1c16-4bec-9d2d-22836ae7a4b9"}],contacts:[{pers_name:{text:"Kaplony, Andreas",ref:["https://d-nb.info/gnd/115211942"]},roles:["supervision"],websites:["https://daw.philhist.unibas.ch/en/ancienthistory/research/research-projects/ancient-history-goes-digital/arabic-papyrology/","https://www.naher-osten.uni-muenchen.de/personen/professoren/andreas_kaplony/index.html"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","corpus_output","digital_preservation","lexicon","manuscript","translation"],comment:"The start date recorded for this project is approximate."}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/the_literary_history_of_medicine_online/e9e4a759-5a0c-4d7d-aa61-49051477ab2f.json",{schema_version:"0.2.2",record_metadata:{uuid:"e9e4a759-5a0c-4d7d-aa61-49051477ab2f",record_created_on:"2021-11-01",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-05-06"},project:{title:"A Literary History of Medicine Online",abbr:"",type:"project",ref:[],date:[{from:"2013",to:"2017"}],maintained:null,websites:["https://scholarlyeditions.brill.com/lhom/"],project_desc:"A Literary History of Medicine Online offers a digital edition of The ‘Uyūn al-anbā’ fī ṭabaqāt al-aṭibbā’ written by famous Syrian physician Ibn Abī Uṣaybi‘ah (d. 1270) along with its annotated English translation.",places:[{place_name:{text:"Coventry",ref:["https://www.geonames.org/2652221/coventry.html"]},coordinates:{lat:"52.40656",lng:"-1.51217"}},{place_name:{text:"Oxford",ref:["https://www.geonames.org/2640729/oxford.html"]},coordinates:{lat:"51.75222",lng:"-1.25596"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Warwick University",ref:["https://ror.org/01a77tt86","https://www.wikidata.org/wiki/Q865528"]},websites:["https://www2.warwick.ac.uk/"]},{relation_type:"host",org_name:{text:"University of Oxford",ref:["https://www.wikidata.org/wiki/Q34433","https://ror.org/052gg0110"]},websites:["https://www.ox.ac.uk/"]}],related_entities:[],contacts:[{pers_name:{text:"Savage-Smith, Emilie",ref:["https://www.wikidata.org/wiki/Q64437299"]},roles:["supervision"],websites:["https://www.orinst.ox.ac.uk/people/emilie-savage-smith"]},{pers_name:{text:"Swain, Simon",ref:["https://www.wikidata.org/wiki/Q55386758"]},roles:["supervision"],websites:["https://warwick.ac.uk/fac/arts/classics/intranets/staff/simonswain/"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["annotation","arabic_studies","classical_text","digital_edition","digital_preservation","history_studies","literary_studies","manuscript","medicine_history","science_history","translation","vre"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/ada_center/173631fa-ddc3-4762-bfd9-5bf40ccef41a.json",{schema_version:"0.2.2",record_metadata:{uuid:"173631fa-ddc3-4762-bfd9-5bf40ccef41a",record_created_on:"2021-10-29",record_created_by:"Mueller-Laackman, Jonas",last_edited_on:"2022-03-25"},project:{title:"Ada Lovelace Center for Digital Humanities",abbr:"ADA",type:"organization",ref:[],date:[{from:"2021",to:""}],maintained:!0,websites:["https://www.ada.fu-berlin.de/"],project_desc:"The main objective of Ada Lovelace Center for Digital Humanities is to connect and promote all activities in the Digital Humanities taking place not only at the FU but also at the national and international level. By providing a social and communicative infrastructure for collaboration (co-working hours), developing interdisciplinary lab culture within the humanities (ADA.Labs) and bringing together all projects, teaching and training programs in the Digital Humanities at the FU it enhances and coordinates the transfer of project-based, personal expertise into a sustainable, interdisciplinary knowledge management.",places:[{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}}],lang:["deu","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Freie Universität Berlin",ref:["https://ror.org/046ak2485","https://www.wikidata.org/wiki/Q153006"]},websites:["https://www.fu-berlin.de/"]}],related_entities:[],contacts:[{pers_name:{text:"Mischke, Dennis",ref:["https://d-nb.info/gnd/1011172860"]},roles:["supervision"],websites:["https://www.fu-berlin.de/en/sites/ub/ueber-uns/team/mischke/"]}],research_data:{lang:[],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["collaboration_platform"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/afrikanische_stimmen_in_islamischen_manuskripten/eaf36ccc-5ee4-4749-80ea-7f71f479c968.json",{schema_version:"0.2.2",record_metadata:{uuid:"eaf36ccc-5ee4-4749-80ea-7f71f479c968",record_created_on:"2022-02-28",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Afrikanische Stimmen in islamischen Manuskripten aus Mali: Erschließung und Erforschung afrikanischer Sprachen in arabischer Schrift (Ajami)",abbr:"",type:"project",ref:[],date:[{from:"2017",to:"2029"}],maintained:!0,websites:["https://gepris.dfg.de/gepris/projekt/344888349","https://www.gw.uni-hamburg.de/forschung/forschungsschwerpunkte/manuscript-cultures.html","https://www.csmc.uni-hamburg.de/ajami-lab/projects/ajami-2029.html"],project_desc:"This project is dedicated to research on manuscripts produced in African languages written in Arabic script (Ajami). The main focus of the study is the collection of rescued manuscripts form Timbuktu currently hosted in Bamako. The project aims at their historical and linguistic analyses, in-depth cataloguing, and establishment of a foundation for the interdisciplinary field of Ajami Studies.",places:[{place_name:{text:"Bamako",ref:["https://www.geonames.org/2460596/bamako.html"]},coordinates:{lat:"12.65",lng:"-8"}},{place_name:{text:"Hamburg",ref:["https://www.geonames.org/2911298/hamburg.html"]},coordinates:{lat:"53.55073",lng:"9.99302"}}],lang:["deu","eng","fra"],related_institutions:[{relation_type:"host",org_name:{text:"Universität Hamburg",ref:["https://ror.org/00g30e956","https://www.wikidata.org/wiki/Q156725"]},websites:["https://www.uni-hamburg.de/"]}],related_entities:[{relation_type:"sibling",title:"Beta maṣāḥǝft Manuscripts of Ethiopia and Eritrea",uuid:"169677fd-14f9-46e7-b8f1-2202fb91397c"},{relation_type:"sibling",title:"Demarginalizing Medieval Africa: Images, Texts, and Identity in Early Solomonic Ethiopia",uuid:"46121edb-516b-4dbf-ba49-e2c5f07cec2e"},{relation_type:"sibling",title:"The Evolution of Islamic Societies (c. 600–1600 CE): Algorithmic Analysis into Social History",uuid:"659c0aba-3bdd-43eb-937d-dad4ad63e3fc"},{relation_type:"sibling",title:"The intertwined world of the oral and written transmission of sacred traditions in the Middle East",uuid:"bb852d81-0c6d-4413-8c20-1bb38c4db4e7"},{relation_type:"sibling",title:"Understanding Written Artefacts",uuid:"9ca46873-3089-4a04-99fa-89c0c1b01213"},{relation_type:"sibling",title:"Audition Certificates Platform",uuid:"b333a11d-b9fc-4379-9e21-fbddfa9500b1"},{relation_type:"sibling",title:"Methoden der Bildverarbeitung zur Bestimmung von visuellen Manuskript- und Zeichenmerkmalen",uuid:"eb8e91fe-952e-48b7-af0d-c026ebe37826"},{relation_type:"sibling",title:"Datenrepositorium Manuskriptkulturen",uuid:"894dcf0c-7295-4fb8-b4ba-866a5ebe3310"},{relation_type:"sibling",title:"Documentation of Gorani, an endangered language of West Iran",uuid:"17fa004d-c9d2-4ce3-8116-b7bfff5d14ed"},{relation_type:"sibling",title:"Islamic Painted Page",uuid:"31534c48-6b74-4cc5-8aff-ea8dbc60c445"},{relation_type:"sibling",title:"Methoden der Manuskriptanalyse zur Wiedergewinnung verlorener Schrift",uuid:"892b783d-1788-451f-9efd-1c58bfb4b064"},{relation_type:"sibling",title:"SfarData",uuid:"81d8ad85-5da8-457f-99a3-6ab11128ef03"},{relation_type:"sibling",title:"SIHAFA: The Ideosphere of the Late Ottoman Arabic Press: Mapping the Discursive Field of Authors and Texts through Computational Approaches",uuid:"20ee58f5-f699-4262-a473-7765e249c871"},{relation_type:"sibling",title:"Ethio-SPaRe: Cultural Heritage of Christian Ethiopia. Salvation, Preservation, Research",uuid:"fbf007e0-7eee-4bb1-801d-568785d43d04"},{relation_type:"sibling",title:"From Translation to Creation: Changes in Ethiopic Style and Lexicon from Late Antiquity to the Middle Ages",uuid:"77ae1011-1b54-46b5-b676-02895e3300fc"},{relation_type:"sibling",title:"Corpus dei Manoscritti Copti Letterari",uuid:"c4f41a6d-9fb9-4c31-85f0-b66acfe41289"}],contacts:[{pers_name:{text:"Bondarev, Dmitry",ref:["https://d-nb.info/gnd/1185835431"]},roles:["supervision"],websites:["https://www.csmc.uni-hamburg.de/about/people/bondarev.html"]}],research_data:{lang:["mku","snk"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["african_studies","catalog","digital_preservation","manuscript"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/al_turayya_project/8682a8f5-b601-4a6c-808c-aa4b7ce8a7c4.json",{schema_version:"0.2.2",record_metadata:{uuid:"8682a8f5-b601-4a6c-808c-aa4b7ce8a7c4",record_created_on:"2022-10-31",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"al-Ṯurayyā Project",abbr:"",type:"project",ref:[],date:[{from:"2013",to:""}],maintained:null,websites:["https://althurayya.github.io/#home","https://alraqmiyyat.github.io/althurayya/"],project_desc:"This project aims to reconstruct the geospatial characteristics of the early Islamic world by creating a digital gazetteer with includes over 2,000 toponyms, their descriptions from Arabic sources and technical information which is used for placing them on the map. The visualization is enriched by a geospatial model which plots routes and itineraries as well as networks of reachable places from selected centers, allowing to find paths between two or more locations.",places:[{place_name:{text:"Vienna",ref:["https://www.geonames.org/2761369/vienna.html"]},coordinates:{lat:"48.20849",lng:"16.37208"}},{place_name:{text:"Leipzig",ref:["https://www.geonames.org/2879139/leipzig.html"]},coordinates:{lat:"51.33962",lng:"12.37129"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Universität Wien",ref:["https://ror.org/04d836q62","https://www.wikidata.org/wiki/Q165980"]},websites:["https://www.univie.ac.at/en/"]}],related_entities:[],contacts:[{pers_name:{text:"Romanov, Maxim",ref:[]},roles:["investigation"],websites:["https://www.aai.uni-hamburg.de/voror/personen/romanov.html"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:100,licensing:[]},data:{datatypes:[{label:"JSON",stage:"final",licensing:[],open_access:100},{label:"geoJSON",stage:"final",licensing:[],open_access:100}],repositories:[{label:"GitHub",accessibility:"public",ref:["https://github.com/althurayya"],licensing:[],description:""}]}},stack:{database:["JSON"],backend:["Python"],frontend:["D3","Leaflet"],tools:[{label:"QGIS",self_developed:!1,ref:["https://www.qgis.org/de/site/"],description:""}],languages:["JS","Python"]},policies:[{description:"",ref:[]}],keywords:["geodata","geography","islamic_studies","visualization"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/altaegyptisches_woerterbuch/a4d189e4-f03f-4db0-8742-b777e22da760.json",{schema_version:"0.2.2",record_metadata:{uuid:"a4d189e4-f03f-4db0-8742-b777e22da760",record_created_on:"2022-01-17",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-02-18"},project:{title:"Altägyptisches Wörterbuch",abbr:"",type:"project",ref:[],date:[{from:"1992",to:"2012"}],maintained:null,websites:["https://www.bbaw.de/forschung/altaegyptisches-woerterbuch","https://aaew.bbaw.de/tla/index.html","https://thesaurus-linguae-aegyptiae.de/info/project"],project_desc:"Altägyptisches Wörterbuch is a digital corpus of religious, juristic and administrative texts form ancient Egypt which were originally found in temples, tombs or on papyrus documents and which cover over 3000 years of Egyptian language history. The corpus together with a vast documentation of vocabulary and the ways it was used has been made available by open access and is updated regularly.",places:[{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}}],lang:["deu"],related_institutions:[{relation_type:"host",org_name:{text:"Zentrum Grundlagenforschung Alte Welt",ref:[]},websites:["https://www.bbaw.de/forschung/zentren/zentrum-alte-welt"]}],related_entities:[{relation_type:"sibling",title:"Corpus Coranicum",uuid:"0fd7b9cd-fdae-441b-a6fd-a791d4583ce0"},{relation_type:"sibling",title:"Strukturen und Transformationen des Wortschatzes der ägyptischen Sprache: Text- und Wissenskultur im Alten Ägypten",uuid:"85d053c3-4ce6-4130-bc6a-63f96acfb067"}],contacts:[{pers_name:{text:"Seidlmayer, Stephan Johannes",ref:["https://www.wikidata.org/wiki/Q2343850"]},roles:["supervision"],websites:["https://www.geschkult.fu-berlin.de/e/aegyptologie/personen/Professorinnen-und-Professoren/seidlmayer/"]}],research_data:{lang:["egy"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["annotation","corpus_resource","egyptology","lexicon","translation"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/apsearch/e3fec817-a269-4359-b028-a542387b1cce.json",{schema_version:"0.2.2",record_metadata:{uuid:"e3fec817-a269-4359-b028-a542387b1cce",record_created_on:"2023-10-30",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"APSearch",abbr:"",type:"project",ref:[],date:[{from:"2021",to:""}],maintained:null,websites:["https://apsearch.org/?size=n_20_n"],project_desc:"APSearch is a cataloge of musical recordings from the MENA region dating from the beginning of the 20th century until present. It provides a sophisticated search engine which enables to filter the recordings by a variety of categories.",places:[{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}}],lang:["ara","eng","deu","fra","heb","spa"],related_institutions:[{relation_type:"host",org_name:{text:"Berlin-Brandenburgische Akademie der Wissenschaften",ref:["https://ror.org/05jgq9443","https://www.wikidata.org/wiki/Q219989"]},websites:["https://www.bbaw.de/"]},{relation_type:"host",org_name:{text:"The Arab-German Young Academy of Sciences and Humanities",ref:["https://www.wikidata.org/wiki/Q61876973"]},websites:["https://agya.info/"]}],related_entities:[],contacts:[{pers_name:{text:"Pasdzierny, Matthias",ref:["https://d-nb.info/gnd/1023725061"]},roles:["supervision"],websites:["https://www.udk-berlin.de/person/matthias-pasdzierny/"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[]},data:{datatypes:[{label:"",stage:"raw",licensing:[],open_access:0}],repositories:[{label:"",accessibility:"public",ref:[],licensing:[],description:""}]}},stack:{database:[],backend:[],frontend:[],tools:[{label:"",self_developed:!1,ref:[],description:""}],languages:[]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","catalog","digital_preservation","islamic_studies","music_studies"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/arabic_latin_corpus/e52825b6-9bd6-4206-b99c-964521b5e773.json",{schema_version:"0.2.2",record_metadata:{uuid:"e52825b6-9bd6-4206-b99c-964521b5e773",record_created_on:"2022-09-01",record_created_by:"Müller-Laackman, Jonas",last_edited_on:""},project:{title:"Arabic and Latin Corpus",abbr:"",type:"project",ref:[],date:[{from:"2016",to:""}],maintained:null,websites:["https://www.arabic-latin-corpus.philosophie.uni-wuerzburg.de/index.xhtml"],project_desc:"The project is a digital collection of medieval Arabic-Latin translations to offer a deeper insight into the Arabic influence on Europe in the 10th to 14th centuries AD.",places:[{place_name:{text:"Würzburg",ref:["https://www.geonames.org/2805615"]},coordinates:{lat:"49.79391",lng:"9.95121"}}],related_institutions:[{relation_type:"host",org_name:{text:"Julius Maximilian University of Würzburg",ref:["https://ror.org/00fbnyb24","https://www.wikidata.org/wiki/Q161976"]},websites:["https://www.uni-wuerzburg.de/startseite"]}],lang:["eng"],related_entities:[{relation_type:"sibling",title:"Arabic and Latin Glossary",uuid:"6a7e308d-0588-40b5-9a22-09354d313806"}],contacts:[{pers_name:{text:"Hasse, Dag Nikolaus",ref:["https://d-nb.info/gnd/11800638X"]},roles:["supervision"],websites:["https://www.philosophie.uni-wuerzburg.de/institut/allelehrsthlefrphilosophie/profdrdagnikolaushasse/"]}],research_data:{lang:["ara","lat"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","corpus_output","digital_preservation","manuscript","science_history","translation","translation_studies"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/arabic_latin_glossary/6a7e308d-0588-40b5-9a22-09354d313806.json",{schema_version:"0.2.2",record_metadata:{uuid:"6a7e308d-0588-40b5-9a22-09354d313806",record_created_on:"2022-09-01",record_created_by:"Müller-Laackman, Jonas",last_edited_on:""},project:{title:"Arabic and Latin Glossary",abbr:"",type:"project",ref:[],date:[{from:"2005",to:"2013"},{from:"2013",to:""}],maintained:null,websites:["https://algloss.de.dariah.eu/"],project_desc:"The Arabic and Latin Glossary is a dictionary of medieval Arabic–Latin translations and corresponds to the project “Arabic and Latin Corpus” in terms of examining the Arabic influence on medieval Europe.",places:[{place_name:{text:"Würzburg",ref:["https://www.geonames.org/2805615"]},coordinates:{lat:"49.79391",lng:"9.95121"}}],related_institutions:[{relation_type:"host",org_name:{text:"Julius Maximilian University of Würzburg",ref:["https://ror.org/00fbnyb24","https://www.wikidata.org/wiki/Q161976"]},websites:["https://www.uni-wuerzburg.de/startseite"]}],lang:["eng"],related_entities:[{relation_type:"sibling",title:"Arabic and Latin Corpus",uuid:"e52825b6-9bd6-4206-b99c-964521b5e773"}],contacts:[{pers_name:{text:"Hasse, Dag Nikolaus",ref:["https://d-nb.info/gnd/11800638X"]},roles:["supervision"],websites:["https://www.philosophie.uni-wuerzburg.de/institut/allelehrsthlefrphilosophie/profdrdagnikolaushasse/"]}],research_data:{lang:["ara","lat"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","corpus_resource","lexicon","science_history","translation","translation_studies"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/alc/46aff246-b6ef-4632-90c2-0993a9f9b1f5.json",{schema_version:"0.2.2",record_metadata:{uuid:"46aff246-b6ef-4632-90c2-0993a9f9b1f5",record_created_on:"2023-10-23",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Arabic Literature Cosmopolitan",abbr:"ALC",type:"project",ref:[],date:[{from:"2020",to:"2027"}],maintained:!0,websites:["https://www.geschkult.fu-berlin.de/en/e/kalila-wa-dimna/index.html"],project_desc:"Arabic Literature Cosmopolitan and AnonymClassic jointly are the first ever comprehensive study of Kalila and Dimna, one of the most important text of premodern world literature which passed from Hinduism and Buddhism via Islam to Christianity. Its Arabic versions constitute a source of all further translations into European languages and are also the main focus of the project, which analyzes the transmission processes of the work from India to Europe with Arabic as cultural bridge.",places:[{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}}],lang:["deu","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Freie Universität Berlin",ref:["https://ror.org/046ak2485","https://www.wikidata.org/wiki/Q153006"]},websites:["https://www.fu-berlin.de/"]}],related_entities:[{relation_type:"sibling",title:"Verse und Sprueche: Impulse und Reichweiten wissenschaftlicher und popularisierender Diskurse im arabischen Sprachraum",uuid:"a2984fec-9396-488e-ad56-d3d21dc49052"},{relation_type:"sibling",title:"Country of Words: Reading and Reception of Palestinian Literature from 1948 to the Present",uuid:"2adf7ddc-9dd5-49b3-842c-9dc48dbbf36e"},{relation_type:"sibling",title:"Keywords for the Study of the Arabic Literary and Manuscript Tradition",uuid:"7050ac6d-523c-4ba0-b381-48ec200ff6c4"},{relation_type:"cooperation",title:"Kalila and Dimna – AnonymClassic",uuid:"d1e6d69b-5e9a-4b4a-85ad-09aac56ed2d9"},{relation_type:"sibling",title:"Memory Spaces: Mapping Oral History in Mosul",uuid:"aec92ee9-7c8a-49ce-8491-46667fc75505"}],contacts:[{pers_name:{text:"Gruendler, Beatrice",ref:["https://d-nb.info/gnd/111749344X"]},roles:["supervision"],websites:["https://www.geschkult.fu-berlin.de/e/semiarab/arabistik/Seminar/Mitarbeiterinnen-und-Mitarbeiter/Professuren/Gruendler/"]}],research_data:{lang:["ara","fas"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","classical_text","digital_edition","digital_preservation","literary_studies","manuscript","translation","vre"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/arabic_papyrology_database/e9bf3427-1c16-4bec-9d2d-22836ae7a4b9.json",{schema_version:"0.2.2",record_metadata:{uuid:"e9bf3427-1c16-4bec-9d2d-22836ae7a4b9",record_created_on:"2021-11-08",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-02-14"},project:{title:"Arabic Papyrology Database",abbr:"ADP",type:"project",ref:[],date:[{from:"2003",to:""}],maintained:null,websites:["https://www.naher-osten.uni-muenchen.de/forschung/papyrologie/apd/index.html","https://www.apd.gwi.uni-muenchen.de/apd/about.jsp"],project_desc:"The Arabic Papyrology database is a digital compilation of pre-modern Arabic manuscripts written between 7th and 16th century CE. It comprises a total of 13286 documents which can be search by their metadata and content.",places:[{place_name:{text:"Munich",ref:["https://www.geonames.org/2867714/munich.html"]},coordinates:{lat:"48.13743",lng:"11.57549"}},{place_name:{text:"Zürich",ref:["https://www.geonames.org/7287650/zuerich.html"]},coordinates:{lat:"47.38283",lng:"8.53071"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Ludwig-Maximilians-Universität Munich",ref:["https://www.wikidata.org/wiki/Q156598","https://ror.org/05591te55"]},websites:["https://www.lmu.de/de/index.html"]},{relation_type:"host",org_name:{text:"Universität Zürich",ref:["https://www.wikidata.org/wiki/Q206702","https://ror.org/02crff812"]},websites:["https://www.uzh.ch/de.html"]}],related_entities:[{relation_type:"child",title:"A Digital Typology of Arabic Documents",uuid:"72bf1192-8af5-4df0-bd88-cf4d62d13d66"}],contacts:[{pers_name:{text:"Kaplony, Andreas",ref:["https://d-nb.info/gnd/115211942"]},roles:["supervision"],websites:["https://www.naher-osten.uni-muenchen.de/personen/professoren/andreas_kaplony/index.html"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","corpus_output","digital_preservation","lexicon","manuscript","translation"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/arbeitsstelle_kleine_faecher/4a8c71d9-bdf0-4df1-9980-b13fb5b1af3b.json",{schema_version:"0.2.2",record_metadata:{uuid:"4a8c71d9-bdf0-4df1-9980-b13fb5b1af3b",record_created_on:"2021-11-11",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-02-21"},project:{title:"Arbeitsstelle Kleine Fächer",abbr:"",type:"project",ref:[],date:[{from:"2005",to:""}],maintained:null,websites:["https://www.kleinefaecher.de/kartierung/arbeitsstelle-kleine-faecher"],project_desc:"This project focuses on “small subjects” or less known fields of study in German universities. Its main objective it to collect data about the current situation of small subjects in Germany as well as its documentation.",places:[{place_name:{text:"Mainz",ref:["https://www.geonames.org/2874224/mainz.html"]},coordinates:{lat:"50.00133",lng:"8.25865"}}],lang:["deu"],related_institutions:[{relation_type:"host",org_name:{text:"Johannes Gutenberg-Universität Mainz",ref:["https://www.wikidata.org/wiki/Q161982","https://ror.org/023b0x485"]},websites:["https://www.uni-mainz.de/"]}],related_entities:[],contacts:[{pers_name:{text:"Schmidt, Uwe",ref:[]},roles:["supervision"],websites:["https://www.zq.uni-mainz.de/ueber-uns/team/univ-prof-dr-uwe-schmidt/"]},{pers_name:{text:"Bahlmann, Katharina",ref:["https://d-nb.info/gnd/1026820677"]},roles:["supervision"],websites:["https://www.zq.uni-mainz.de/dr-katharina-bahlmann/"]}],research_data:{lang:["deu"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["research_infrastructure"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/arche/a0e93701-b975-4760-b3cc-0204f54be3d1.json",{schema_version:"0.2.2",record_metadata:{uuid:"a0e93701-b975-4760-b3cc-0204f54be3d1",record_created_on:"2022-06-02",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"ARCHE",abbr:"",type:"organization",ref:[],date:[{from:"2017",to:""}],maintained:!0,websites:["https://arche.acdh.oeaw.ac.at/browser/"],project_desc:"ARCHE is a digital archive designed specifically to preserve digital research data from the humanities created in or related to Austria. It also promotes the use of open access and open data policies.",places:[{place_name:{text:"Vienna",ref:["https://www.geonames.org/2761369/vienna.html"]},coordinates:{lat:"48.20849",lng:"16.37208"}}],lang:[],related_institutions:[{relation_type:"host",org_name:{text:"Österreichische Akademie der Wissenschaften",ref:["https://www.wikidata.org/wiki/Q299015","https://ror.org/03anc3s24"]},websites:["https://www.oeaw.ac.at/en/"]}],related_entities:[],contacts:[{pers_name:{text:"Trognitz, Martina",ref:["https://d-nb.info/gnd/116996270X"]},roles:["investigation"],websites:["https://www.oeaw.ac.at/de/acdh/team/current-team/martina-trognitz/"]}],research_data:{lang:[],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["research_data_management","research_infrastructure"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/arches/ce6e74fb-c872-4ab4-a6f2-908232d0099a.json",{schema_version:"0.2.2",record_metadata:{uuid:"ce6e74fb-c872-4ab4-a6f2-908232d0099a",record_created_on:"2021-11-08",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-02-21"},project:{title:"ARCHES",abbr:"",type:"project",ref:[],date:[{from:"2019",to:"2024"}],maintained:!0,websites:["https://www.naher-osten.uni-muenchen.de/forschung/arches-projekt/index.html"],project_desc:"The main objective of this project is the identification and cataloguing of Arabic and Judaeo-Arabic manuscripts related to Bible exegesis and translation, known as the Firkovitch Collection. The series contains approximately 2700 manuscripts dating back to the Golden Age of Arabic lands (between 9th and 13th centuries), which provide an extraordinary window to the intellectual and religious life of the Jewish communities living in those areas in that time. The metadata of the manuscripts will be made accessible for further research.",places:[{place_name:{text:"Munich",ref:["https://www.geonames.org/2867714/munich.html"]},coordinates:{lat:"48.13743",lng:"11.57549"}},{place_name:{text:"Jerusalem",ref:["https://www.geonames.org/281184/jerusalem.html"]},coordinates:{lat:"31.76904",lng:"35.21633"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Ludwig-Maximilians-Universität Munich",ref:["https://www.wikidata.org/wiki/Q156598","https://ror.org/05591te55"]},websites:["https://www.lmu.de/de/index.html"]},{relation_type:"host",org_name:{text:"The Hebrew University of Jerusalem",ref:["https://ror.org/04d0szq68","https://www.wikidata.org/wiki/Q174158"]},websites:["https://en.huji.ac.il/en"]}],related_entities:[],contacts:[{pers_name:{text:"Vollandt, Ronny",ref:["https://d-nb.info/gnd/1173742050"]},roles:["supervision"],websites:["https://www.naher-osten.uni-muenchen.de/personen/professoren/ronny_vollandt/index.html"]},{pers_name:{text:"Goldstein, Miriam",ref:["https://d-nb.info/gnd/1019351853"]},roles:["supervision"],websites:["https://en.arabic-lang.huji.ac.il/people/miriam-goldstein"]},{pers_name:{text:"Sklare, David",ref:["https://d-nb.info/gnd/1158385684"]},roles:["investigation"],websites:["https://biblia-arabica.com/team/david-sklare/"]}],research_data:{lang:["ara","heb"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","catalog","digital_preservation","jewish_studies","manuscript","religion_studies","religious_text"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/ali/5416d598-83e8-4b34-b4d8-6beea3faf6f2.json",{schema_version:"0.2.2",record_metadata:{uuid:"5416d598-83e8-4b34-b4d8-6beea3faf6f2",record_created_on:"2023-09-15",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Atlas of the Languages of Iran",abbr:"ALI",type:"project",ref:[],date:[{from:"2015",to:"2023"}],maintained:!0,websites:["http://iranatlas.net/index.html"],project_desc:"The overall goal of the ALI research programme is to enable work toward a systematic understanding of the language situation in Iran. This initiative is guided by a set of interrelated themes which are: language distribution, linguistic and areal typology, language classification and language documentation. The output of the project can be found online in form of interactive maps and visualizations.",places:[{place_name:{text:"Ottawa",ref:["https://www.geonames.org/6094817/ottawa.html"]},coordinates:{lat:"45.41117",lng:"-75.69812"}},{place_name:{text:"Shahr-e Kord",ref:["https://www.geonames.org/115770/shahr-e-kord.html"]},coordinates:{lat:"32.32612",lng:"50.8572"}},{place_name:{text:"Babmerg",ref:["https://www.geonames.org/2952984/bamberg.html"]},coordinates:{lat:"49.89873",lng:"10.90067"}},{place_name:{text:"Bonn",ref:["https://www.geonames.org/2946447/bonn.html"]},coordinates:{lat:"50.73438",lng:"7.09549"}}],lang:["eng","fas"],related_institutions:[{relation_type:"host",org_name:{text:"Carleton University",ref:["https://www.wikidata.org/wiki/Q1041737","https://ror.org/02qtvee93"]},websites:["https://carleton.ca/"]},{relation_type:"host",org_name:{text:"Shahrekord University",ref:["https://www.wikidata.org/wiki/Q7462208","https://ror.org/051rngw70"]},websites:["https://www.sku.ac.ir/en/"]},{relation_type:"cooperation",org_name:{text:"Otto-Friedrich-Universität Bamberg",ref:["https://www.wikidata.org/wiki/Q707272","https://ror.org/01c1w6d29"]},websites:["https://www.uni-bamberg.de/"]},{relation_type:"cooperation",org_name:{text:"Alexander von Humboldt-Stiftung",ref:["https://www.wikidata.org/wiki/Q60304850","https://ror.org/012kf4317"]},websites:["https://www.humboldt-foundation.de/"]}],related_entities:[],contacts:[{pers_name:{text:"Anonby, Erik",ref:["https://d-nb.info/gnd/1111911843"]},roles:["supervision"],websites:["https://carleton.ca/french/people/erik-anonby-2/","https://www.uni-bamberg.de/aspra/gastforschende/ehemalige-gastforschende/prof-dr-erik-anonby/"]}],research_data:{lang:["fas","hac","kur"],sustainability_plan:null,publications:{open_access:0,licensing:[]},data:{datatypes:[{label:"",stage:"raw",licensing:[],open_access:0}],repositories:[{label:"",accessibility:"public",ref:[],licensing:[],description:""}]}},stack:{database:[],backend:[],frontend:[],tools:[{label:"",self_developed:!1,ref:[],description:""}],languages:[]},policies:[{description:"",ref:[]}],keywords:["geodata","iranian_studies","language_documentation","linguistics","other","visualization"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/acp/b333a11d-b9fc-4379-9e21-fbddfa9500b1.json",{schema_version:"0.2.2",record_metadata:{uuid:"b333a11d-b9fc-4379-9e21-fbddfa9500b1",record_created_on:"2023-10-26",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Audition Certificates Platform",abbr:"ACP",type:"project",ref:[],date:[{from:"2019",to:"2023"}],maintained:!0,websites:["https://www.audition-certificates-platform.org/","https://www.fdr.uni-hamburg.de/record/13525"],project_desc:"The ACP digitizes audition certificates of Arabic manuscripts. These certificates, found in manuscript books, provide rich historical data on authorized text transmissions, and the ACP's digital efforts aim to systematically explore libraries like Staatsbibliothek Berlin, Forschungsbibliothek Gotha, The Bibliothèque nationale de France, and the Syrian National Library to create a searchable corpus, offering unique insights into Middle Eastern social, economic, and urban history, as well as biographical studies.",places:[{place_name:{text:"Hamburg",ref:["https://www.geonames.org/2911298/hamburg.html"]},coordinates:{lat:"53.55073",lng:"9.99302"}}],lang:["eng","ara"],related_institutions:[{relation_type:"host",org_name:{text:"Universität Hamburg",ref:["https://ror.org/00g30e956","https://www.wikidata.org/wiki/Q156725"]},websites:["https://www.uni-hamburg.de/"]}],related_entities:[{relation_type:"sibling",title:"Grasping the World in Ottoman Istanbul: Visual Negotiation and Reading in Practices in Geographic Literature from the Sixteenth Century",uuid:"d1f743f2-7e94-4e00-a8bf-f46e56c7508e"},{relation_type:"sibling",title:"Colophons in Sumerian and Akkadian Literary Manuscripts from 3rd and 2nd Millennium BCE Mesopotamia",uuid:"95a2024b-9fea-4ced-8136-1130b0fb8f51"},{relation_type:"parent",title:"Understanding Written Artefacts",uuid:"9ca46873-3089-4a04-99fa-89c0c1b01213"},{relation_type:"sibling",title:"Afrikanische Stimmen in islamischen Manuskripten aus Mali: Erschließung und Erforschung afrikanischer Sprachen in arabischer Schrift (Ajami)",uuid:"eaf36ccc-5ee4-4749-80ea-7f71f479c968"},{relation_type:"sibling",title:"Beta maṣāḥǝft Manuscripts of Ethiopia and Eritrea",uuid:"169677fd-14f9-46e7-b8f1-2202fb91397c"},{relation_type:"sibling",title:"Methoden der Bildverarbeitung zur Bestimmung von visuellen Manuskript- und Zeichenmerkmalen",uuid:"eb8e91fe-952e-48b7-af0d-c026ebe37826"},{relation_type:"sibling",title:"Datenrepositorium Manuskriptkulturen",uuid:"894dcf0c-7295-4fb8-b4ba-866a5ebe3310"},{relation_type:"sibling",title:"Demarginalizing Medieval Africa: Images, Texts, and Identity in Early Solomonic Ethiopia",uuid:"46121edb-516b-4dbf-ba49-e2c5f07cec2e"},{relation_type:"sibling",title:"Documentation of Gorani, an endangered language of West Iran",uuid:"17fa004d-c9d2-4ce3-8116-b7bfff5d14ed"},{relation_type:"sibling",title:"The Evolution of Islamic Societies (c. 600–1600 CE): Algorithmic Analysis into Social History",uuid:"659c0aba-3bdd-43eb-937d-dad4ad63e3fc"},{relation_type:"sibling",title:"The intertwined world of the oral and written transmission of sacred traditions in the Middle East",uuid:"bb852d81-0c6d-4413-8c20-1bb38c4db4e7"},{relation_type:"sibling",title:"Islamic Painted Page",uuid:"31534c48-6b74-4cc5-8aff-ea8dbc60c445"},{relation_type:"sibling",title:"Methoden der Manuskriptanalyse zur Wiedergewinnung verlorener Schrift",uuid:"892b783d-1788-451f-9efd-1c58bfb4b064"},{relation_type:"sibling",title:"SfarData",uuid:"81d8ad85-5da8-457f-99a3-6ab11128ef03"},{relation_type:"sibling",title:"SIHAFA: The Ideosphere of the Late Ottoman Arabic Press: Mapping the Discursive Field of Authors and Texts through Computational Approaches",uuid:"20ee58f5-f699-4262-a473-7765e249c871"},{relation_type:"sibling",title:"Ethio-SPaRe: Cultural Heritage of Christian Ethiopia. Salvation, Preservation, Research",uuid:"fbf007e0-7eee-4bb1-801d-568785d43d04"},{relation_type:"sibling",title:"From Translation to Creation: Changes in Ethiopic Style and Lexicon from Late Antiquity to the Middle Ages",uuid:"77ae1011-1b54-46b5-b676-02895e3300fc"},{relation_type:"sibling",title:"Corpus dei Manoscritti Copti Letterari",uuid:"c4f41a6d-9fb9-4c31-85f0-b66acfe41289"}],contacts:[{pers_name:{text:"Hirschler, Konrad",ref:["https://d-nb.info/gnd/103830816X"]},roles:["supervision"],websites:["https://www.aai.uni-hamburg.de/voror/personen/hirschler.html"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[]},data:{datatypes:[{label:"",stage:"raw",licensing:[],open_access:0}],repositories:[{label:"",accessibility:"public",ref:[],licensing:[],description:""}]}},stack:{database:[],backend:[],frontend:[],tools:[{label:"",self_developed:!1,ref:[],description:""}],languages:[]},policies:[{description:"",ref:[]}],keywords:["annotation","corpus_output","digital_preservation","geodata","history_studies","islamic_studies","manuscript"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/acdc/5e7ab61a-0c33-44fc-8175-a1930e6d08bc.json",{schema_version:"0.2.2",record_metadata:{uuid:"5e7ab61a-0c33-44fc-8175-a1930e6d08bc",record_created_on:"2022-09-07",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Automatic Collation for Diversifying Corpora",abbr:"ACDC",type:"project",ref:[],date:[{from:"2021-01-01",to:"2023-06-30"}],maintained:!1,websites:["https://openiti.org/projects/ACDC.html"],project_desc:"This project aims to significantly improve the accuracy of handwritten text recognition (HTR) for Arabic-script manuscripts. It will develop a collation tool to automatically create large amounts of training data from existing digital texts and manuscript images without time-consuming human annotation of individual manuscripts.",places:[{place_name:{text:"College Park",ref:["https://www.geonames.org/4351977/college-park.html"]},coordinates:{lat:"38.98067",lng:"-76.93692"}},{place_name:{text:"Leipzig",ref:["https://www.geonames.org/2879139/leipzig.html"]},coordinates:{lat:"51.33962",lng:"12.37129"}},{place_name:{text:"London",ref:["https://www.geonames.org/2643743/london.html"]},coordinates:{lat:"51.50853",lng:"-0.12574"}},{place_name:{text:"Vienna",ref:["https://www.geonames.org/2761369/vienna.html"]},coordinates:{lat:"48.20849",lng:"16.37208"}}],lang:["eng"],related_institutions:[],related_entities:[{relation_type:"parent",title:"Open Islamicate Texts Initiative",uuid:"bef2e507-b663-422e-9dd3-7e49ca299f05"},{relation_type:"sibling",title:"Open Islamicate Texts Initiative Arabic-script OCR Catalyst Project",uuid:"786edd87-476e-42a6-bcc0-521833ec73e5"},{relation_type:"sibling",title:"CorpusBuilder",uuid:"eb1591d7-75b9-4d62-9f67-0679e627587b"}],contacts:[{pers_name:{text:"Allen, Jonathan",ref:[]},roles:["investigation"],websites:["https://sllc.umd.edu/directory/jonathan-allen"]}],research_data:{lang:["ara","fas"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["htr","islamic_studies","machine_learning","ocr","vre"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/averroes_edition/a6e1fb68-e7a5-4125-8cfc-ec3aa16da73b.json",{schema_version:"0.2.2",record_metadata:{uuid:"a6e1fb68-e7a5-4125-8cfc-ec3aa16da73b",record_created_on:"2021-11-08",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-01-21"},project:{title:"Averroes Edition",abbr:"",type:"project",ref:[],date:[{from:"2016",to:"2041"}],maintained:!0,websites:["https://averroes.uni-koeln.de/project/about/"],project_desc:"The project’s main goal is to generate a trilingual critical edition of all commentaries by Ibn Rušd (Averroes) on Aristotle’s Physics, which are the synthesis of the late antique and Arabic reception of Greek philosophy. Next to the Arabic commentaries the edition will also contain their Latin and Hebrew translations.",places:[{place_name:{text:"Düsseldorf",ref:["https://www.geonames.org/2934246/duesseldorf.html"]},coordinates:{lat:"51.22172",lng:"6.77616"}},{place_name:{text:"Köln",ref:["https://www.geonames.org/2886242/koeln.html"]},coordinates:{lat:"50.93333",lng:"6.95"}}],lang:["deu","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Universität zu Köln",ref:["https://ror.org/00rcxh774","https://www.wikidata.org/wiki/Q54096"]},websites:["https://thomasinstitut.uni-koeln.de/"]}],related_entities:[{relation_type:"child",title:"Study of Averroes’s Long Commentary on the Physics in Hebrew and Latin Transmission",uuid:"3992a23d-8426-4b73-8b30-844e471e76e2"},{relation_type:"child",title:"Critical Edition of Ibn Bāğğa’s Commentary on Aristotle’s De generatione et corruptione",uuid:"c3e206ec-9989-4500-ac20-4126e35871f2"},{relation_type:"child",title:"Critical Edition of the Fragmentary Latin Translation of Averroes’s Commentary on De Partibus Animalium and De Generatione Animalium",uuid:"7c7438e6-4172-4059-ad60-54a6d0d61f7c"},{relation_type:"child",title:"Critical Edition of Ibn Bāǧǧa’s Commentary on Aristotle’s Physics",uuid:"f24e806a-0777-4690-b148-1b35ab3745e2"}],contacts:[{pers_name:{text:"Wirmer, David",ref:[]},roles:["supervision"],websites:["https://thomasinstitut.uni-koeln.de/mitarbeiterinnen/david-wirmer"]}],research_data:{lang:["ara","heb","lat"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","digital_edition","digital_preservation","jewish_studies","manuscript","philosophy","science_history"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/avestan_digital_archive/0a2ff403-834b-484f-b961-0822220bab58.json",{schema_version:"0.2.2",record_metadata:{uuid:"0a2ff403-834b-484f-b961-0822220bab58",record_created_on:"2023-02-03",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Avestan Digital Archive",abbr:"ADA",type:"project",ref:[],date:[{from:"2006",to:""}],maintained:null,websites:["https://ada.geschkult.fu-berlin.de/","https://www.geschkult.fu-berlin.de/e/iranistik/news/ada-umsetzung.html"],project_desc:"The ADA project seeks, on the one side, to find, to collect and to digitalize all the extant Avestan manuscripts. On the other hand, the ADA Project is developing a tool to provide all these manuscripts with indexes of the passages and to make them thus available on the web for researchers and for the general public. The electronic tool will allow an easy checking of all the manuscripts containing a concrete passage.",places:[{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Freie Universität Berlin",ref:["https://ror.org/046ak2485","https://www.wikidata.org/wiki/Q153006"]},websites:["https://www.fu-berlin.de/"]}],related_entities:[{relation_type:"sibling",title:"Corpus Avesticum Berolinense",uuid:"4c68f56a-2c44-41c0-acb9-ece91afaf70c"},{relation_type:"cooperation",title:"Tierrecht und Strafen im 'Gesetz zur Abwehr der Dämonen' (Vidçvdâd, Kapitel 13–15)",uuid:"57622367-8250-4932-ab3e-0356615d578a"},{relation_type:"sibling",title:"Tierrecht und Strafen im 'Gesetz zur Abwehr der Dämonen' (Vidçvdâd, Kapitel 13–15)",uuid:"57622367-8250-4932-ab3e-0356615d578a"},{relation_type:"sibling",title:"Zoroastrian Middle Persian Corpus and Dictionary",uuid:"7d8eb5d0-6284-4939-a48b-7ff7a2407989"},{relation_type:"cooperation",title:"Zoroastrian Middle Persian Corpus and Dictionary",uuid:"7d8eb5d0-6284-4939-a48b-7ff7a2407989"},{relation_type:"cooperation",title:"Corpus Avesticum Berolinense",uuid:"4c68f56a-2c44-41c0-acb9-ece91afaf70c"}],contacts:[{pers_name:{text:"Cantera Glera, Alberto",ref:["https://d-nb.info/gnd/1198415282"]},roles:["supervision"],websites:["https://www.geschkult.fu-berlin.de/e/iranistik/mitarbeiter/professoren/cantera/index.html"]}],research_data:{lang:["ave"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["corpus_output","digital_preservation","history_studies","iranian_studies","manuscript","religious_text","vre"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/babmed/942e9692-8e2a-4060-84d8-c8db17eae689.json",{schema_version:"0.2.2",record_metadata:{uuid:"942e9692-8e2a-4060-84d8-c8db17eae689",record_created_on:"2022-07-27",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"BABMED - Babylonische Medizin",abbr:"BABMED",type:"project",ref:[],date:[{from:"2013-07",to:"2018-06"}],maintained:null,websites:["https://www.geschkult.fu-berlin.de/e/babmed/index.html"],project_desc:"BabMed represents the first comprehensive study of ancient Babylonian medical science since the decipherment of the cuneiform writing system. It aims to make Babylonian medical texts available not only for the specialist, but for the wider public as well by publishing them in form of thematic online corpora. Its second objective is to study medicine in the Babylonian Talmud, in order to explore comparisons with later medical traditions from the same region in Aramaic, another language of ancient Mesopotamia.",places:[{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}},{place_name:{text:"Ramat Gan",ref:["https://www.geonames.org/293788/ramat-gan.html"]},coordinates:{lat:"32.08227",lng:"34.81065"}}],lang:["deu","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Freie Universität Berlin",ref:["https://ror.org/046ak2485","https://www.wikidata.org/wiki/Q153006"]},websites:["https://www.fu-berlin.de/"]},{relation_type:"host",org_name:{text:"Bar-Ilan University",ref:["https://www.wikidata.org/wiki/Q1124657","https://ror.org/000ke5995"]},websites:["https://www.biu.ac.il/en"]}],related_entities:[{relation_type:"cooperation",title:"Cuneiform Digital Library Initiative",uuid:"b8097890-6eeb-43ba-890d-28e1490fde08"}],contacts:[{pers_name:{text:"Geller, Markham J.",ref:["https://d-nb.info/gnd/14301918X"]},roles:["supervision"],websites:["https://www.geschkult.fu-berlin.de/e/babmed/Team/FU-Mitarbeiter/geller.html"]}],research_data:{lang:["arc"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["corpus_output","digital_preservation","history_studies","inscription","medicine_history","science_history","semitic_studies"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/bldcil/614f4c99-0d96-48a9-baa5-48a402a8deec.json",{schema_version:"0.2.2",record_metadata:{uuid:"614f4c99-0d96-48a9-baa5-48a402a8deec",record_created_on:"2022-06-16",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Bamberg Lexical Database for Contemporary Iranian Languages",abbr:"BLDCIL",type:"project",ref:[],date:[{from:"2016",to:""}],maintained:null,websites:["https://www.uni-bamberg.de/en/aspra/research/projects/bamberg-lexical-database-for-contemporary-iranian-languages-bldcil/"],project_desc:"The aim of this project is the sub-classification of Iranian languages which has proven to be a particularly recalcitrant problem in historical linguistics. BLDCIL will complement and extend existing scholarship by applying a novel phylogenetic methodology to this old problem. The research will be based on a compilation of standardized lexical data sets, together with sound files, from a representative set of Iranian languages, focusing initially on the West Iranian languages.",places:[{place_name:{text:"Bamberg",ref:["https://www.geonames.org/2952984/bamberg.html"]},coordinates:{lat:"49.89873",lng:"10.90067"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Otto-Friedrich-Universität Bamberg",ref:["https://www.wikidata.org/wiki/Q707272","https://ror.org/01c1w6d29"]},websites:["https://www.uni-bamberg.de/"]}],related_entities:[{relation_type:"sibling",title:"Multilingual Corpus of Annotated Spoken Texts",uuid:"b37c6bd1-90d3-4718-ab58-fb1d60873186"},{relation_type:"sibling",title:"Documentation of Gorani, an endangered language of West Iran",uuid:"17fa004d-c9d2-4ce3-8116-b7bfff5d14ed"},{relation_type:"sibling",title:"Compilation and critical edition of pre-19th century Kurmanji Kurdish",uuid:"d0bda69f-d8c4-4521-ab18-af2c097ffcfc"},{relation_type:"sibling",title:"Post-predicate Elements in Iranian: Inheritance, Contact, and Information Structure",uuid:"c1a2957b-0c24-46e6-9a67-381997525a87"}],contacts:[{pers_name:{text:"Haig, Geoffrey",ref:["https://d-nb.info/gnd/1016008090"]},roles:["supervision"],websites:["https://www.uni-bamberg.de/aspra/team/aktuelles-team/prof-dr-geoffrey-haig/"]}],research_data:{lang:["bqi","fas","kur","mzn","tks","zum"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["audio","corpus_resource","iranian_studies","language_documentation","linguistics"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/barlaam_and_josaphat/2ec36f1f-9f08-4284-964b-2f40a1d3e0db.json",{schema_version:"0.2.2",record_metadata:{uuid:"2ec36f1f-9f08-4284-964b-2f40a1d3e0db",record_created_on:"2023-01-02",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Barlaam and Josaphat in Arabic Literature and Culture",abbr:"",type:"project",ref:[],date:[{from:"2017",to:""}],maintained:null,websites:["https://barlaamandjosaphat.wp.st-andrews.ac.uk/"],project_desc:"The focus of this project lies on Arabic manuscripts of Barlaam and Josaphat, an outstanding work of world literature, and the rich history of its transmission in Arabic sources. In the course of the project the manuscripts will be published online in an open-access research platform ediarum developed at the Berlin Brandenburg Academy of Sciences and Humanities (Berlin, Germany). Along with the photocopies of the manuscripts, the platform will feature full transcriptions of the Arabic texts, an English translation of selected manuscripts as well as analytical metadata and bibliography. This will result in the creation of a comprehensive research tool on the history of Barlaam and Josaphat in Arabic literature.",places:[{place_name:{text:"Fife",ref:["https://www.geonames.org/2649469/fife.html"]},coordinates:{lat:"56.25",lng:"-3.16667"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"University of St Andrews",ref:["https://www.wikidata.org/wiki/Q216273","https://ror.org/02wn5qz54"]},websites:["https://www.st-andrews.ac.uk/"]}],related_entities:[],contacts:[{pers_name:{text:"Dmitriev, Kirill",ref:["https://d-nb.info/gnd/138140030"]},roles:["supervision"],websites:["https://www.st-andrews.ac.uk/modern-languages/people/arabic/kd25"]},{pers_name:{text:"Orfali, Bilal",ref:["https://d-nb.info/gnd/140143777"]},roles:["supervision"],websites:["https://www.bilalorfali.com/en","https://www.aub.edu.lb/fas/arabic/Pages/Bilal-Orfali-Par.aspx"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","classical_text","digital_edition","digital_preservation","literary_studies","manuscript","translation"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/sabaweb/9078ff92-18f1-4019-a9f3-8c7d9aaa0db8.json",{schema_version:"0.2.2",record_metadata:{uuid:"9078ff92-18f1-4019-a9f3-8c7d9aaa0db8",record_created_on:"2022-06-07",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Belegwörterbuch der sabäischen Sprache",abbr:"Sabaweb",type:"project",ref:[],date:[{from:"2012",to:"2024"}],maintained:!0,websites:["http://sabaweb.uni-jena.de/Sabaweb"],project_desc:"This long-term project is dedicated to Sabaic language and aims to create a comprehensive dictionary based on a complete database of all known Sabaic inscriptions covering the period from 14th century BC to 6th century AD. The results of the project are available in an open-access online database which is fully searchable for Sabaic roots, words and forms.",places:[{place_name:{text:"Jena",ref:["https://www.geonames.org/2895044/jena.html"]},coordinates:{lat:"50.92878",lng:"11.5899"}}],lang:["deu","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Friedrich Schiller University Jena",ref:["https://www.wikidata.org/wiki/Q154561","https://ror.org/00zfe1b87"]},websites:["https://www.uni-jena.de/en"]}],related_entities:[],contacts:[{pers_name:{text:"Nebes, Norbert",ref:["https://d-nb.info/gnd/1064027237"]},roles:["supervision"],websites:["https://www.gw.uni-jena.de/nebes-norbert"]}],research_data:{lang:["xsa"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["corpus_resource","lexicon","semitic_studies","translation"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/beta_masaheft_manuscripts_of_ethiopia_and_eritrea/169677fd-14f9-46e7-b8f1-2202fb91397c.json",{schema_version:"0.2.2",record_metadata:{uuid:"169677fd-14f9-46e7-b8f1-2202fb91397c",record_created_on:"2021-11-11",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-02-28"},project:{title:"Beta maṣāḥǝft Manuscripts of Ethiopia and Eritrea",abbr:"",type:"project",ref:[],date:[{from:"2016",to:"2040"}],maintained:!0,websites:["https://www.betamasaheft.uni-hamburg.de/","https://betamasaheft.eu/","https://www.csmc.uni-hamburg.de/research/current-projects/beta-masaheft.html","https://github.com/BetaMasaheft"],project_desc:"The objective of this long-term project is to create a digital XML-based platform on Ethiopian and Eritrean manuscripts. It will provide its users not only with the textual content of the documents but also with all the available information on the documents themselves: authors, owners, scribes, provenance, various physical elements, colophons, notes, etc. The interoperability of the platform will allow search across all existing repositories. The incorporated manuscripts come both from western libraries as well as form Ethiopia and Eritrea.",places:[{place_name:{text:"Hamburg",ref:["https://www.geonames.org/2911298/hamburg.html"]},coordinates:{lat:"53.55073",lng:"9.99302"}}],lang:["deu","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Helmut-Schmidt-Universität",ref:["https://www.wikidata.org/wiki/Q530991","https://ror.org/04e8jbs38"]},websites:["https://www.hsu-hh.de/"]},{relation_type:"host",org_name:{text:"Technische Universität Hamburg",ref:["https://ror.org/04bs1pb34","https://www.wikidata.org/wiki/Q1060"]},websites:["https://www.tuhh.de/"]},{relation_type:"host",org_name:{text:"Universität Hamburg",ref:["https://ror.org/00g30e956","https://www.wikidata.org/wiki/Q156725"]},websites:["https://www.uni-hamburg.de/"]}],related_entities:[{relation_type:"sibling",title:"Understanding Written Artefacts",uuid:"9ca46873-3089-4a04-99fa-89c0c1b01213"},{relation_type:"sibling",title:"Demarginalizing Medieval Africa: Images, Texts, and Identity in Early Solomonic Ethiopia",uuid:"46121edb-516b-4dbf-ba49-e2c5f07cec2e"},{relation_type:"sibling",title:"Grasping the World in Ottoman Istanbul: Visual Negotiation and Reading in Practices in Geographic Literature from the Sixteenth Century",uuid:"d1f743f2-7e94-4e00-a8bf-f46e56c7508e"},{relation_type:"sibling",title:"Afrikanische Stimmen in islamischen Manuskripten aus Mali: Erschließung und Erforschung afrikanischer Sprachen in arabischer Schrift (Ajami)",uuid:"eaf36ccc-5ee4-4749-80ea-7f71f479c968"},{relation_type:"sibling",title:"“The Evolution of Islamic Societies (c. 600–1600 CE): Algorithmic Analysis into Social History”",uuid:"659c0aba-3bdd-43eb-937d-dad4ad63e3fc"},{relation_type:"sibling",title:"The intertwined world of the oral and written transmission of sacred traditions in the Middle East",uuid:"bb852d81-0c6d-4413-8c20-1bb38c4db4e7"},{relation_type:"sibling",title:"The Evolution of Islamic Societies (c. 600–1600 CE): Algorithmic Analysis into Social History",uuid:"659c0aba-3bdd-43eb-937d-dad4ad63e3fc"},{relation_type:"sibling",title:"Audition Certificates Platform",uuid:"b333a11d-b9fc-4379-9e21-fbddfa9500b1"},{relation_type:"sibling",title:"Methoden der Bildverarbeitung zur Bestimmung von visuellen Manuskript- und Zeichenmerkmalen",uuid:"eb8e91fe-952e-48b7-af0d-c026ebe37826"},{relation_type:"sibling",title:"Datenrepositorium Manuskriptkulturen",uuid:"894dcf0c-7295-4fb8-b4ba-866a5ebe3310"},{relation_type:"sibling",title:"Documentation of Gorani, an endangered language of West Iran",uuid:"17fa004d-c9d2-4ce3-8116-b7bfff5d14ed"},{relation_type:"sibling",title:"Islamic Painted Page",uuid:"31534c48-6b74-4cc5-8aff-ea8dbc60c445"},{relation_type:"sibling",title:"Methoden der Manuskriptanalyse zur Wiedergewinnung verlorener Schrift",uuid:"892b783d-1788-451f-9efd-1c58bfb4b064"},{relation_type:"sibling",title:"SfarData",uuid:"81d8ad85-5da8-457f-99a3-6ab11128ef03"},{relation_type:"sibling",title:"SIHAFA: The Ideosphere of the Late Ottoman Arabic Press: Mapping the Discursive Field of Authors and Texts through Computational Approaches",uuid:"20ee58f5-f699-4262-a473-7765e249c871"},{relation_type:"sibling",title:"Ethio-SPaRe: Cultural Heritage of Christian Ethiopia. Salvation, Preservation, Research",uuid:"fbf007e0-7eee-4bb1-801d-568785d43d04"},{relation_type:"sibling",title:"From Translation to Creation: Changes in Ethiopic Style and Lexicon from Late Antiquity to the Middle Ages",uuid:"77ae1011-1b54-46b5-b676-02895e3300fc"},{relation_type:"sibling",title:"Corpus dei Manoscritti Copti Letterari",uuid:"c4f41a6d-9fb9-4c31-85f0-b66acfe41289"}],contacts:[{pers_name:{text:"Bausi, Alessandro",ref:["https://www.wikidata.org/wiki/Q62559559"]},roles:["supervision"],websites:["https://www.aai.uni-hamburg.de/afrika/personen/bausi.html"]}],research_data:{lang:["gez"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["african_studies","corpus_output","digital_preservation","manuscript","vre"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/biblia_arabica/c523675a-0e54-4d1e-8d08-2395d58323e3.json",{schema_version:"0.2.2",record_metadata:{uuid:"c523675a-0e54-4d1e-8d08-2395d58323e3",record_created_on:"2021-11-11",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-02-18"},project:{title:"Biblia Arabica: The Bible in Arabic among Jews, Christians and Muslims",abbr:"Biblia Arabica",type:"project",ref:[],date:[{from:"2012",to:"2018"}],maintained:null,websites:["https://biblia-arabica.com/"],project_desc:"Biblia Arabica serves as a research consortium with focus on Arabic translations of Hebrew, Aramaic, Syriac, Greek and Coptic Bible versions. It examines their stylistic and didactic features, vocabulary, scripts and strategies, as well as the mutual religious and cultural influences between the different religious communities, which were reinforced by the translation movements. The project attempts to set methodological standards on this field of study, charts countless manuscripts from across the globe and analyzes different method of translation form the various source languages.",places:[{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}},{place_name:{text:"Tel Aviv",ref:["https://www.geonames.org/293397/tel-aviv.html"]},coordinates:{lat:"32.08088",lng:"34.78057"}},{place_name:{text:"Munich",ref:["https://www.geonames.org/2867714/munich.html"]},coordinates:{lat:"48.13743",lng:"11.57549"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Freie Universität Berlin",ref:["https://ror.org/046ak2485","https://www.wikidata.org/wiki/Q153006"]},websites:["https://www.fu-berlin.de/"]},{relation_type:"host",org_name:{text:"Tel Aviv University",ref:["https://www.wikidata.org/wiki/Q319239","https://ror.org/04mhzgx49"]},websites:["https://english.tau.ac.il/"]},{relation_type:"host",org_name:{text:"Ludwig-Maximilians-Universität Munich",ref:["https://www.wikidata.org/wiki/Q156598","https://ror.org/05591te55"]},websites:["https://www.lmu.de/de/index.html"]}],related_entities:[],contacts:[{pers_name:{text:"Vollandt, Ronny",ref:["https://d-nb.info/gnd/1173742050"]},roles:["supervision"],websites:["https://www.naher-osten.uni-muenchen.de/personen/professoren/ronny_vollandt/index.html"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","religion_studies","religious_text","tei","translation","translation_studies"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/bibliotheca_arabica/ab7e5659-177f-40ed-befb-5d0eecea737f.json",{schema_version:"0.2.2",record_metadata:{uuid:"ab7e5659-177f-40ed-befb-5d0eecea737f",record_created_on:"2021-11-11",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Bibliotheca Arabica",abbr:"",type:"project",ref:[],date:[{from:"2018",to:"2035"}],maintained:!0,websites:["https://www.saw-leipzig.de/de/projekte/bibliotheca-arabica","https://khizana.bibliotheca-arabica.de/"],project_desc:"This project is dedicated to research on Arabic literatures dating from 1150 to 1850, a period perceived as a steady cultural decline of the region. The project counters this narrative by focusing on manuscripts that were produced and read throughout this time. Next to publication of 16 volumes and numerous articles and working papers, the project will provide a bio-bibliographical research platform that integrates digitized catalogue data and collections of manuscript notes, as well as a curated compilation of bio-bibliographical sources and Linked Data collections.",places:[{place_name:{text:"Leipzig",ref:["https://www.geonames.org/2879139/leipzig.html"]},coordinates:{lat:"51.33962",lng:"12.37129"}}],lang:["deu","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Sächsische Akademie der Wissenschaften zu Leipzig",ref:["https://www.wikidata.org/wiki/Q27891200","https://ror.org/03zxjdk07"]},websites:["https://www.saw-leipzig.de/de"]}],related_entities:[],contacts:[{pers_name:{text:"Klemm, Verena",ref:["https://www.wikidata.org/wiki/Q5675690"]},roles:["supervision"],websites:["https://www.gkr.uni-leipzig.de/orientalisches-institut/ueber-uns/team/prof-dr-verena-klemm"]},{pers_name:{text:"Liebrenz, Boris",ref:["https://d-nb.info/gnd/136837921"]},roles:["supervision"],websites:["https://www.saw-leipzig.de/de/mitarbeiter/liebrenzb"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","catalog","digital_preservation","literary_studies","manuscript"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/borno_and_old_kanembu_islamic_manuscripts/b485ffeb-bcbc-42a0-b141-4450ddc914e6.json",{schema_version:"0.2.2",record_metadata:{uuid:"b485ffeb-bcbc-42a0-b141-4450ddc914e6",record_created_on:"2022-09-05",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Borno and Old Kanembu Islamic Manuscripts",abbr:"",type:"project",ref:[],date:[{from:"2005",to:"2007"},{from:"2009",to:"2011"},{from:"2012",to:"2015"}],maintained:!1,websites:["https://web.archive.org/https://digital.soas.ac.uk/okim/about/"],project_desc:"This digital collection provides access to one of the earliest written sub-Saharan languages in manuscript form - Old Kanembu written in Arabic script was a language of Qur’anic interpretation in the ancient Borno Sultanate. The digitalized corpus contains more than 5000 folios of Old Kanembu Islamic manuscripts from Nigeria, Niger and Republic of Chad and is an outcome of three research projects conducted in SOAS University of London and University Hamburg.",places:[{place_name:{text:"London",ref:["https://www.geonames.org/2643743/london.html"]},coordinates:{lat:"51.50853",lng:"-0.12574"}},{place_name:{text:"Hamburg",ref:["https://www.geonames.org/2911298/hamburg.html"]},coordinates:{lat:"53.55073",lng:"9.99302"}}],lang:["eng"],related_institutions:[],related_entities:[],contacts:[{pers_name:{text:"Bondarev, Dmitry",ref:["https://d-nb.info/gnd/1185835431"]},roles:["supervision"],websites:["https://www.csmc.uni-hamburg.de/about/people/bondarev.html"]}],research_data:{lang:["kbl"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["african_studies","corpus_output","digital_preservation","linguistics","manuscript"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/change_projekt/f87c6596-0ce3-4f2e-8ec5-ea5d17253bba.json",{schema_version:"0.2.2",record_metadata:{uuid:"f87c6596-0ce3-4f2e-8ec5-ea5d17253bba",record_created_on:"2021-11-11",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-03-01"},project:{title:"Change Projekt - Wandel@FU-Bib",abbr:"",type:"project",ref:[],date:[{from:"2019",to:"2021"}],maintained:null,websites:["https://www.fu-berlin.de/sites/ub/ueber-uns/wandel/index.html"],project_desc:"The Change Project’s objective was to reorganize and optimize library infrastructure at FU Berlin. Within the two years of its activity the project’s team worked at improving connection and communication between university libraries and CeDiS (Centre for Digital Systems), simplifying structures, enhancing user orientation and service quality as well as increasing general efficiency and ability to manage future challenges.",places:[{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}}],lang:["deu"],related_institutions:[{relation_type:"host",org_name:{text:"Freie Universität Berlin",ref:["https://ror.org/046ak2485","https://www.wikidata.org/wiki/Q153006"]},websites:["https://www.fu-berlin.de/"]}],related_entities:[],contacts:[{pers_name:{text:"Riesenweber, Christina",ref:["https://www.wikidata.org/wiki/Q57684019"]},roles:["supervision"],websites:["https://web.archive.org/https://www.fu-berlin.de/sites/ub/ueber-uns/team/riesenweber"]},{pers_name:{text:"Lee, Martin",ref:[]},roles:["supervision"],websites:["https://www.ub.hu-berlin.de/de/ueber-uns/kontakt/ansprechpartner/ansprechpartner-leitende-mitarbeiterinnen-und-mitarbeiter/"]}],research_data:{lang:["deu"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["research_infrastructure"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/clariah_de/842dc7b3-020c-47ea-a37e-d5e5aae0bde0.json",{schema_version:"0.2.2",record_metadata:{uuid:"842dc7b3-020c-47ea-a37e-d5e5aae0bde0",record_created_on:"2022-05-24",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"CLARIAH-DE",abbr:"",type:"organization",ref:[],date:[{from:"2019",to:"2021"}],maintained:!0,websites:["https://www.clariah.de/"],project_desc:"CLARIAH-DE is the merger of the two research infrastructure networks CLARIN-D and DARIAH-DE. Over a period of two years, the project will merge the two established research infrastructures. In this way, researchers from the Humanities and cultural sciences will be able to work with complex digital tools and special data sets in a much easier manner.",places:[{place_name:{text:"Göttingen",ref:["https://www.geonames.org/2918632/goettingen.html"]},coordinates:{lat:"51.53443",lng:"9.93228"}},{place_name:{text:"Tübingen",ref:["https://www.geonames.org/2820860/tuebingen.html"]},coordinates:{lat:"48.52266",lng:"9.05222"}}],lang:["deu","eng"],related_institutions:[],related_entities:[{relation_type:"parent",title:"Digital Research Infrastructure for the Arts and Humanities (DARIAH-DE)",uuid:"ea8a1aa5-a2a1-4d4a-9254-f647158c66fa"},{relation_type:"parent",title:"CLARIN-D - European Research Infrastructure for Language Resources and Technology",uuid:"b5604b8b-e9fa-43d3-af0d-ef287cc2fee7"}],contacts:[{pers_name:{text:"Hinrichs, Erhard",ref:["https://d-nb.info/gnd/143840657"]},roles:["supervision"],websites:["https://www.ids-mannheim.de/digspra/personal/hinrichs/","https://www.sfs.uni-tuebingen.de/~eh/"]}],research_data:{lang:[],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["research_data_management","research_infrastructure"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/clarin/7e14a810-7d07-4e60-96eb-01fccf9323e8.json",{schema_version:"0.2.2",record_metadata:{uuid:"7e14a810-7d07-4e60-96eb-01fccf9323e8",record_created_on:"2022-05-09",record_created_by:"",last_edited_on:""},project:{title:"CLARIN - European Research Infrastructure for Language Resources and Technology",abbr:"CLARIN",type:"organization",ref:["https://www.wikidata.org/wiki/Q2986825"],date:[{from:"2012",to:""}],maintained:!0,websites:["https://www.clarin.eu/"],project_desc:"CLARIN (Common Language Resources and Technology Infrastructure) is a pan-European infrastructure which provides access to digital language data and advanced tools to discover, annotate, analyze or combine this data via a network of European repositories. The infrastructure mainly serves for purposes of social sciences and humanities.",places:[{place_name:{text:"Utrecht",ref:["https://www.geonames.org/2745912/utrecht.html"]},coordinates:{lat:"52.09083",lng:"5.12222"}},{place_name:{text:"Vienna",ref:["https://www.geonames.org/2761369/vienna.html"]},coordinates:{lat:"48.20849",lng:"16.37208"}},{place_name:{text:"Leiden",ref:["https://www.geonames.org/2751773/leiden.html"]},coordinates:{lat:"52.15833",lng:"4.49306"}},{place_name:{text:"Sofia",ref:["https://www.geonames.org/727011/sofia.html"]},coordinates:{lat:"42.69751",lng:"23.32415"}},{place_name:{text:"Zagreb",ref:["https://www.geonames.org/3186886/zagreb.html"]},coordinates:{lat:"45.81444",lng:"15.97798"}},{place_name:{text:"Limassol",ref:["https://www.geonames.org/146384/limassol.html"]},coordinates:{lat:"34.68406",lng:"33.03794"}},{place_name:{text:"Prague",ref:["https://www.geonames.org/3067696/prague.html"]},coordinates:{lat:"50.08804",lng:"14.42076"}},{place_name:{text:"Copenhagen",ref:["https://www.geonames.org/2618424/kobenhavn.html"]},coordinates:{lat:"55.6711",lng:"12.56529"}},{place_name:{text:"Tartu",ref:["https://www.geonames.org/588335/tartu.html"]},coordinates:{lat:"58.38062",lng:"26.72509"}},{place_name:{text:"Helsinki",ref:["https://www.geonames.org/658225/helsinki.html"]},coordinates:{lat:"60.16952",lng:"24.93545"}},{place_name:{text:"Mannheim",ref:["https://www.geonames.org/2873891/mannheim.html"]},coordinates:{lat:"49.4891",lng:"8.46694"}},{place_name:{text:"Maroúsi",ref:["https://www.geonames.org/265243/marousi.html"]},coordinates:{lat:"38.05",lng:"23.8"}},{place_name:{text:"Budapest",ref:["https://www.geonames.org/3054643/budapest.html"]},coordinates:{lat:"47.49835",lng:"19.04045"}},{place_name:{text:"Reykjavík",ref:["https://www.geonames.org/3413829/reykjavik.html"]},coordinates:{lat:"64.13548",lng:"-21.89541"}},{place_name:{text:"Pisa",ref:["https://www.geonames.org/3170647/pisa.html"]},coordinates:{lat:"43.70853",lng:"10.4036"}},{place_name:{text:"Riga",ref:["https://www.geonames.org/456172/riga.html"]},coordinates:{lat:"56.946",lng:"24.10589"}},{place_name:{text:"Kaunas",ref:["https://www.geonames.org/598316/kaunas.html"]},coordinates:{lat:"54.90272",lng:"23.90961"}},{place_name:{text:"Bergen",ref:["https://www.geonames.org/3161732/bergen.html"]},coordinates:{lat:"60.39299",lng:"5.32415"}},{place_name:{text:"Wrocław",ref:["https://www.geonames.org/3081368/wroclaw.html"]},coordinates:{lat:"51.1",lng:"17.03333"}},{place_name:{text:"Lisbon",ref:["https://www.geonames.org/2267057/lisbon.html"]},coordinates:{lat:"38.71667",lng:"-9.13333"}},{place_name:{text:"Ljubljana",ref:["https://www.geonames.org/3196359/ljubljana.html"]},coordinates:{lat:"46.05108",lng:"14.50513"}},{place_name:{text:"Gothenburg",ref:["https://www.geonames.org/2711537/goeteborg.html"]},coordinates:{lat:"57.70716",lng:"11.96679"}}],lang:["eng"],related_institutions:[{relation_type:"member",org_name:{text:"Österreichische Akademie der Wissenschaften",ref:["https://www.wikidata.org/wiki/Q299015","https://ror.org/03anc3s24"]},websites:["https://www.oeaw.ac.at/en/"]},{relation_type:"member",org_name:{text:"The Dutch Language Institute",ref:["https://www.wikidata.org/wiki/Q5200436"]},websites:["https://ivdnt.org/"]},{relation_type:"member",org_name:{text:"Bulgarian Academy of Sciences",ref:["https://ror.org/01x8hew03","https://www.wikidata.org/wiki/Q1003730"]},websites:["https://www.bas.bg/"]},{relation_type:"member",org_name:{text:"University of Zagreb",ref:["https://ror.org/00mv6sv71","https://www.wikidata.org/wiki/Q675848"]},websites:["http://www.unizg.hr/"]},{relation_type:"member",org_name:{text:"Cyprus University of Technology",ref:["https://ror.org/05qt8tf94","https://www.wikidata.org/wiki/Q1518320"]},websites:["https://www.cut.ac.cy/?languageId=1"]},{relation_type:"member",org_name:{text:"Charles University",ref:["https://www.wikidata.org/wiki/Q31519","https://ror.org/024d6js02"]},websites:["https://cuni.cz/UKEN-1.html"]},{relation_type:"member",org_name:{text:"University of Copenhagen",ref:["https://www.wikidata.org/wiki/Q186285","https://ror.org/035b05819"]},websites:["https://www.ku.dk/english/"]},{relation_type:"member",org_name:{text:"Center of Estonian Language Resources",ref:[]},websites:["https://keeleressursid.ee/en/"]},{relation_type:"member",org_name:{text:"University of Helsinki",ref:["https://ror.org/040af2s02","https://www.wikidata.org/wiki/Q28695"]},websites:["https://www.helsinki.fi/"]},{relation_type:"member",org_name:{text:"Universität Mannheim",ref:["https://www.wikidata.org/wiki/Q59668","https://ror.org/031bsb921"]},websites:["https://www.uni-mannheim.de/en/"]},{relation_type:"member",org_name:{text:"Institute for Language and Speech Processing",ref:["https://www.wikidata.org/wiki/Q15228720","https://ror.org/00z24kr14"]},websites:["https://www.ilsp.gr/en"]},{relation_type:"member",org_name:{text:"Hungarian Academy of Sciences",ref:["https://www.wikidata.org/wiki/Q265058","https://ror.org/02ks8qq67"]},websites:["https://mta.hu/english/"]},{relation_type:"member",org_name:{text:"Árni Magnússon Institute for Icelandic Studies",ref:["https://ror.org/001jk8698","https://www.wikidata.org/wiki/Q627418"]},websites:["https://www.arnastofnun.is/"]},{relation_type:"member",org_name:{text:"Institute for Computational Linguistics “A. Zampolli”",ref:["https://ror.org/028g3pe33","https://viaf.org/viaf/6050160062454135790009"]},websites:["http://www.ilc.cnr.it/"]},{relation_type:"member",org_name:{text:"University of Latvia",ref:["https://www.wikidata.org/wiki/Q498407","https://ror.org/00ss42h10"]},websites:["https://www.lu.lv"]},{relation_type:"member",org_name:{text:"Vytautas Magnus University",ref:["https://www.wikidata.org/wiki/Q1756541","https://ror.org/04y7eh037"]},websites:["https://www.vdu.lt/en/"]},{relation_type:"member",org_name:{text:"Utrecht University",ref:["https://www.wikidata.org/wiki/Q221653","https://ror.org/04pp8hn57"]},websites:["https://www.uu.nl/en"]},{relation_type:"member",org_name:{text:"University of Bergen",ref:["https://ror.org/03np4e098","https://www.wikidata.org/wiki/Q204457"]},websites:["https://www.uib.no/en"]},{relation_type:"member",org_name:{text:"Wrocław University of Science and Technology",ref:["https://ror.org/008fyn775","https://www.wikidata.org/wiki/Q522109"]},websites:["https://pwr.edu.pl/"]},{relation_type:"member",org_name:{text:"University of Lisbon",ref:["https://ror.org/04bcdt432","https://www.wikidata.org/wiki/Q1122926"]},websites:["https://www.ulisboa.pt/"]},{relation_type:"member",org_name:{text:"Jožef Stefan Institute",ref:["https://ror.org/05060sz93","https://www.wikidata.org/wiki/Q5918873"]},websites:["https://www.ijs.si/ijsw"]},{relation_type:"member",org_name:{text:"University of Gothenburg",ref:["https://ror.org/01tm6cn81","https://www.wikidata.org/wiki/Q371522"]},websites:["https://www.gu.se/en"]}],related_entities:[{relation_type:"child",title:"CLARIN-D - European Research Infrastructure for Language Resources and Technology",uuid:"b5604b8b-e9fa-43d3-af0d-ef287cc2fee7"},{relation_type:"cooperation",title:"European Lexicographic Infrastructure",uuid:"43f49ea7-ec28-4e08-9ff4-57de8c755acd"},{relation_type:"cooperation",title:"Digital Research Infrastructure for the Arts and Humanities (DARIAH)",uuid:"1ae31b2f-5c67-49a7-9fba-c162b314bbcb"}],contacts:[],research_data:{lang:[],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["research_data_management","research_infrastructure"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/clarin_d/b5604b8b-e9fa-43d3-af0d-ef287cc2fee7.json",{schema_version:"0.2.2",record_metadata:{uuid:"b5604b8b-e9fa-43d3-af0d-ef287cc2fee7",record_created_on:"2022-05-24",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"CLARIN-D - European Research Infrastructure for Language Resources and Technology",abbr:"CLARIN-D",type:"organization",ref:[],date:[{from:"2012",to:""}],maintained:null,websites:["https://www.clarin-d.net/en/"],project_desc:"CLARIN-D is a research-oriented infrastructure for the Humanities and Social Sciences which supports researchers with accessing, preparing and analyzing of research data based on all language-related resources. It offers information on a wide range of topics, including teaching material, help on data management plans and other, discipline-specific support and makes available tools for Humanities, Cultural and Social Sciences scholars to analyze their research data in different ways. It is a German center of a pan-European research infrastructure CLARIN.",places:[{place_name:{text:"Tübingen",ref:["https://www.geonames.org/2820860/tuebingen.html"]},coordinates:{lat:"48.52266",lng:"9.05222"}},{place_name:{text:"Leipzig",ref:["https://www.geonames.org/2879139/leipzig.html"]},coordinates:{lat:"51.33962",lng:"12.37129"}},{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}},{place_name:{text:"Stuttgart",ref:["https://www.geonames.org/2825297/stuttgart.html"]},coordinates:{lat:"48.78232",lng:"9.17702"}},{place_name:{text:"Mannheim",ref:["https://www.geonames.org/2873891/mannheim.html"]},coordinates:{lat:"49.4891",lng:"8.46694"}},{place_name:{text:"Munich",ref:["https://www.geonames.org/2867714/munich.html"]},coordinates:{lat:"48.13743",lng:"11.57549"}},{place_name:{text:"Hamburg",ref:["https://www.geonames.org/2911298/hamburg.html"]},coordinates:{lat:"53.55073",lng:"9.99302"}},{place_name:{text:"Saarbrücken",ref:["https://www.geonames.org/6551163/saarbruecken-landeshauptstadt.html"]},coordinates:{lat:"49.23425",lng:"6.9934"}}],lang:["deu","eng"],related_institutions:[],related_entities:[{relation_type:"parent",title:"CLARIN - European Research Infrastructure for Language Resources and Technology",uuid:"7e14a810-7d07-4e60-96eb-01fccf9323e8"},{relation_type:"child",title:"CLARIAH-DE",uuid:"842dc7b3-020c-47ea-a37e-d5e5aae0bde0"}],contacts:[{pers_name:{text:"Hinrichs, Erhard",ref:["https://d-nb.info/gnd/143840657"]},roles:["supervision"],websites:["https://www.ids-mannheim.de/digspra/personal/hinrichs/","https://www.sfs.uni-tuebingen.de/~eh/"]}],research_data:{lang:[],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["research_data_management","research_infrastructure"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/colophons_in_sumerian_and_akkadian/95a2024b-9fea-4ced-8136-1130b0fb8f51.json",{schema_version:"0.2.2",record_metadata:{uuid:"95a2024b-9fea-4ced-8136-1130b0fb8f51",record_created_on:"2022-02-28",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-03-02"},project:{title:"Colophons in Sumerian and Akkadian Literary Manuscripts from 3rd and 2nd Millennium BCE Mesopotamia",abbr:"",type:"project",ref:[],date:[{from:"2019",to:"2025"}],maintained:!0,websites:["https://www.csmc.uni-hamburg.de/written-artefacts/research-fields/field-i/rfi03.html"],project_desc:"The focus of this project are colophons of Sumerian and Akkadian manuscripts dating back to 3rd and 2nd millennium BC, which until now have been neglected in manuscript studies. The objective is to create a database containing a catalogue of respective manuscripts and an edition of the extant colophons. It should serve as solid base for the study of scribal practices in an ancient Mesopotamia and the relevance of colophons in its cultural history.",places:[{place_name:{text:"Hamburg",ref:["https://www.geonames.org/2911298/hamburg.html"]},coordinates:{lat:"53.55073",lng:"9.99302"}}],lang:["eng"],related_institutions:[],related_entities:[{relation_type:"parent",title:"Understanding Written Artefacts",uuid:"9ca46873-3089-4a04-99fa-89c0c1b01213"},{relation_type:"sibling",title:"Grasping the World in Ottoman Istanbul: Visual Negotiation and Reading in Practices in Geographic Literature from the Sixteenth Century",uuid:"d1f743f2-7e94-4e00-a8bf-f46e56c7508e"},{relation_type:"sibling",title:"Audition Certificates Platform",uuid:"b333a11d-b9fc-4379-9e21-fbddfa9500b1"}],contacts:[{pers_name:{text:"Jáka-Sövegjártó, Szilvia",ref:["https://d-nb.info/gnd/1156345170"]},roles:["supervision"],websites:["https://www.csmc.uni-hamburg.de/about/people/soevegjarto.html"]}],research_data:{lang:["akk","sux"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["corpus_output","digital_preservation","inscription","semitic_studies"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/wissensgemeinschaften/5f3c2fbb-ca17-41c9-acdb-d3e147869400.json",{schema_version:"0.2.2",record_metadata:{uuid:"5f3c2fbb-ca17-41c9-acdb-d3e147869400",record_created_on:"2021-11-01",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-05-06"},project:{title:"Communities of Knowledge: Interreligious Networks of Scholars in Ibn Abi Usaybi‘a’s “History of the Physicians”",abbr:"",type:"project",ref:[],date:[{from:"2018",to:"2021"}],maintained:null,websites:["https://usaybia.net/"],project_desc:"This project’s objective is to digitally examine the social encounters of Christian, Muslim, and Jewish scholars in the Abbasid Near East (750–1258) engaged in exchange of medical knowledge as described by Ibn Abi Usaybi‘a (d. 1270), a Muslim physician from Syria in his history of medicine. The project will digitally record these interactions and use network analysis in order to identify the persons most frequently involved in scholar exchange and compare the results with representations from other sources.",places:[{place_name:{text:"Munich",ref:["https://www.geonames.org/2867714/munich.html"]},coordinates:{lat:"48.13743",lng:"11.57549"}}],lang:["deu","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Ludwig-Maximilians-Universität Munich",ref:["https://www.wikidata.org/wiki/Q156598","https://ror.org/05591te55"]},websites:["https://www.lmu.de/"]}],related_entities:[],contacts:[{pers_name:{text:"Gibson, Nathan",ref:["https://id.loc.gov/authorities/names/no2016135689.html"]},roles:["supervision"],websites:["https://biblia-arabica.com/team/nathan-gibson/"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","biographical_data","geodata","network_analysis","science_history","tei","visualization"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/pre_19th_century_kurmanji_kurdish/d0bda69f-d8c4-4521-ab18-af2c097ffcfc.json",{schema_version:"0.2.2",record_metadata:{uuid:"d0bda69f-d8c4-4521-ab18-af2c097ffcfc",record_created_on:"2022-06-16",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Compilation and critical edition of pre-19th century Kurmanji Kurdish",abbr:"",type:"project",ref:[],date:[{from:"2014-10",to:"2016-06"}],maintained:!1,websites:["https://www.uni-bamberg.de/aspra/forschung/projekte/compilation-and-critical-edition-of-pre-19th-century-kurmanji-kurdish/"],project_desc:"The main purpose of this project is to lay a foundation for serious academic research on the history of Kurdish, which until now is severely hampered due to the lack of written attestation prior to the 15th century. The project will thus compile a selection of 10 Kurdish texts from prior to 1800, transliterated in a standardized format and supplied with English translations and an authoritative critical apparatus. The texts will also be made fully accessible as a digital corpus, accompanied by a concordance, and the resulting two volumes will be published on the open-access portal of the University of Bamberg.",places:[{place_name:{text:"Bamberg",ref:["https://www.geonames.org/2952984/bamberg.html"]},coordinates:{lat:"49.89873",lng:"10.90067"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Otto-Friedrich-Universität Bamberg",ref:["https://www.wikidata.org/wiki/Q707272","https://ror.org/01c1w6d29"]},websites:["https://www.uni-bamberg.de/"]}],related_entities:[{relation_type:"sibling",title:"Multilingual Corpus of Annotated Spoken Texts",uuid:"b37c6bd1-90d3-4718-ab58-fb1d60873186"},{relation_type:"sibling",title:"Bamberg Lexical Database for Contemporary Iranian Languages",uuid:"614f4c99-0d96-48a9-baa5-48a402a8deec"},{relation_type:"sibling",title:"Documentation of Gorani, an endangered language of West Iran",uuid:"17fa004d-c9d2-4ce3-8116-b7bfff5d14ed"},{relation_type:"sibling",title:"Post-predicate Elements in Iranian: Inheritance, Contact, and Information Structure",uuid:"c1a2957b-0c24-46e6-9a67-381997525a87"}],contacts:[{pers_name:{text:"Öpengin, Ergin",ref:["https://d-nb.info/gnd/1121608140"]},roles:["supervision"],websites:["https://www.uni-bamberg.de/aspra/team/ehemalige-mitarbeitende/dr-ergin-oepengin/"]}],research_data:{lang:["kur"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["corpus_output","digital_preservation","iranian_studies","linguistics","manuscript","translation"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/cls_infra/894f2c88-1713-480d-99cd-32d30f3c0ac2.json",{schema_version:"0.2.2",record_metadata:{uuid:"894f2c88-1713-480d-99cd-32d30f3c0ac2",record_created_on:"2022-05-24",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Computational Literary Studies Infrastructure (CLS INFRA)",abbr:"CLS INFRA",type:"project",ref:[],date:[{from:"2021-03-01",to:"2025-02-28"}],maintained:!0,websites:["https://clsinfra.io/"],project_desc:"This project is a partnership of various European research institutions to build a shared resource of high-quality data, tools and knowledge to aid new approaches to studying literature in the digital age. It aims to create an infrastructure which will align the diverse resources of Europe’s multilingual and interconnected literary heritage with each other, with the tools needed to interrogate them, and with a widened base of users.",places:[{place_name:{text:"Krakow",ref:["https://www.geonames.org/3094802/krakow.html"]},coordinates:{lat:"50.06143",lng:"19.93658"}},{place_name:{text:"Potsdam",ref:["https://www.geonames.org/2852458/potsdam.html"]},coordinates:{lat:"52.39886",lng:"13.06566"}},{place_name:{text:"Vienna",ref:["https://www.geonames.org/2761369/vienna.html"]},coordinates:{lat:"48.20849",lng:"16.37208"}},{place_name:{text:"Madrid",ref:["https://www.geonames.org/3117735/madrid.html"]},coordinates:{lat:"40.4165",lng:"-3.70256"}},{place_name:{text:"Lyon",ref:["https://www.geonames.org/2996944/lyon.html"]},coordinates:{lat:"45.74846",lng:"4.84671"}},{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}},{place_name:{text:"Prague",ref:["https://www.geonames.org/3067696/prague.html"]},coordinates:{lat:"50.08804",lng:"14.42076"}},{place_name:{text:"Paris",ref:["https://www.geonames.org/2988506/paris.html"]},coordinates:{lat:"48.85339",lng:"2.34864"}},{place_name:{text:"Gent",ref:["https://www.geonames.org/2797656/gent.html"]},coordinates:{lat:"51.05",lng:"3.71667"}},{place_name:{text:"Belgrade",ref:["https://www.geonames.org/792680/belgrade.html"]},coordinates:{lat:"44.80401",lng:"20.46513"}},{place_name:{text:"Amsterdam",ref:["https://www.geonames.org/2759794/amsterdam.html"]},coordinates:{lat:"52.37403",lng:"4.88969"}},{place_name:{text:"Trier",ref:["https://www.geonames.org/2821164/trier.html"]},coordinates:{lat:"49.75565",lng:"6.63935"}},{place_name:{text:"Gaillimh",ref:["https://www.geonames.org/2964180/gaillimh.html"]},coordinates:{lat:"53.27245",lng:"-9.05095"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"The Institute of the Polish Language of the Polish Academy of Sciences",ref:["https://ror.org/01h9sha04","https://www.wikidata.org/wiki/Q941016"]},websites:["https://ijp.pan.pl/"]},{relation_type:"host",org_name:{text:"Universität Potsdam",ref:["https://www.wikidata.org/wiki/Q153012","https://ror.org/03bnmw459"]},websites:["https://www.uni-potsdam.de/en/university-of-potsdam/"]},{relation_type:"host",org_name:{text:"Österreichische Akademie der Wissenschaften",ref:["https://www.wikidata.org/wiki/Q299015","https://ror.org/03anc3s24"]},websites:["https://www.oeaw.ac.at/en/"]},{relation_type:"host",org_name:{text:"National University of Distance Education",ref:["https://www.wikidata.org/wiki/Q421739","https://ror.org/02msb5n36"]},websites:["https://www.uned.es/universidad/inicio.html"]},{relation_type:"host",org_name:{text:"École Normale Supérieure de Lyon",ref:["https://ror.org/04zmssz18","https://www.wikidata.org/wiki/Q10159"]},websites:["https://www.ens-lyon.fr/"]},{relation_type:"host",org_name:{text:"Humboldt-Universität zu Berlin",ref:["https://www.wikidata.org/wiki/Q152087","https://ror.org/01j818n92"]},websites:["https://www.hu-berlin.de/en"]},{relation_type:"host",org_name:{text:"Charles University",ref:["https://www.wikidata.org/wiki/Q31519","https://ror.org/024d6js02"]},websites:["https://cuni.cz/UKEN-1.html"]},{relation_type:"host",org_name:{text:"Ghent University",ref:["https://www.wikidata.org/wiki/Q1137665","https://ror.org/00cv9y106"]},websites:["https://www.ugent.be/en"]},{relation_type:"host",org_name:{text:"Belgrade Centre for Digital Humanities",ref:[]},websites:["https://web.archive.org/web/20211027232432/http://www.humanistika.org/","https://wbc-rti.info/object/link/6612","https://elex.is/rs-bcdh/"]},{relation_type:"host",org_name:{text:"Royal Netherlands Academy of Arts and Sciences",ref:["https://ror.org/030a5r161","https://www.wikidata.org/wiki/Q253439"]},websites:["https://www.knaw.nl/nl"]},{relation_type:"host",org_name:{text:"Universität Trier",ref:["https://ror.org/02778hg05","https://www.wikidata.org/wiki/Q572286"]},websites:["https://www.uni-trier.de/"]},{relation_type:"host",org_name:{text:"National University of Ireland, Galway",ref:["https://ror.org/03bea9k73","https://www.wikidata.org/wiki/Q644478"]},websites:["https://www.nuigalway.ie/"]}],related_entities:[{relation_type:"parent",title:"Digital Research Infrastructure for the Arts and Humanities (DARIAH)",uuid:"1ae31b2f-5c67-49a7-9fba-c162b314bbcb"}],contacts:[{pers_name:{text:"Eder, Maciej",ref:["https://www.wikidata.org/wiki/Q24649708#sitelinks-wikipedia"]},roles:["supervision"],websites:["https://maciejeder.org/","https://ijp.pan.pl/en/pracownicy/maciej-eder/"]}],research_data:{lang:[],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["research_data_management","research_infrastructure"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/coptic_ocr/9fbb8b57-bd55-4b84-ab51-2c8a0d7ec5bc.json",{schema_version:"0.2.2",record_metadata:{uuid:"9fbb8b57-bd55-4b84-ab51-2c8a0d7ec5bc",record_created_on:"2023-01-02",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Copitc OCR",abbr:"",type:"project",ref:[],date:[{from:"2018",to:""}],maintained:null,websites:["https://kellia.uni-goettingen.de/digitalcoptic3/slides/CopticOCR_2020-12-07_Lincke.pdf","https://vcs.etrap.eu/Coptic-OCR/datasets"],project_desc:"The aim of this project is to improve the quality and accessibility of OCR software for Coptic texts and their different fonds using Machine Learning technologies.",places:[{place_name:{text:"Göttingen",ref:["https://www.geonames.org/2918632/goettingen.html"]},coordinates:{lat:"51.53443",lng:"9.93228"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Georg-August-Universität Göttingen",ref:["https://www.wikidata.org/wiki/Q152838","https://ror.org/01y9bpm73"]},websites:["https://www.uni-goettingen.de/"]}],related_entities:[],contacts:[{pers_name:{text:"Lincke, Eliese-Sophia",ref:["https://d-nb.info/gnd/1011716763"]},roles:["supervision"],websites:["https://www.geschkult.fu-berlin.de/e/aegyptologie/personen/Professorinnen-und-Professoren/Lincke"]}],research_data:{lang:["cop"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[{label:"GitLab",accessibility:"public",ref:["https://vcs.etrap.eu/Coptic-OCR/datasets"],licensing:[],description:"A collection of training and test data, OCR models, and documentation"}]}},stack:{database:[],backend:[],frontend:[],tools:[],languages:[]},policies:[],keywords:["egyptology","machine_learning","ocr"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/coranica/5f57a071-60c1-4fd2-b191-8fa8d15d70bb.json",{schema_version:"0.2.2",record_metadata:{uuid:"5f57a071-60c1-4fd2-b191-8fa8d15d70bb",record_created_on:"2021-11-11",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-03-01"},project:{title:"Coranica",abbr:"",type:"project",ref:[],date:[{from:"2011",to:"2014"}],maintained:!1,websites:["https://webarchive.bbaw.de/default/20210819141519/https://www.coranica.de/front-page-en/"],project_desc:"The focus of Coranica Project is to understand the early development and canonization of the Qur’an by giving priority to the empirical approach (analyses of material evidence like manuscripts), rather than to the data of the Arabo-Islamic tradition. The project consists of two components: the first, “Manuscripta et testimonia coranica,” aims at producing catalogued inventories and studies of the earliest manuscripts of the Qur’an. The second part, Glossarium Coranicum, will provide focused analysis and documentation on the languages (spoken and written) and religions that were practiced in Arabia at the time of Muhammad, and on their impact on the Qur’anic lexicon.",places:[{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}},{place_name:{text:"Paris",ref:["https://www.geonames.org/2988506/paris.html"]},coordinates:{lat:"48.85339",lng:"2.34864"}}],lang:["deu","eng","fra"],related_institutions:[{relation_type:"host",org_name:{text:"Berlin-Brandenburgische Akademie der Wissenschaften",ref:["https://ror.org/05jgq9443","https://www.wikidata.org/wiki/Q219989"]},websites:["https://www.bbaw.de/"]},{relation_type:"host",org_name:{text:"Académie des Inscriptions et Belles-Lettres Paris",ref:["https://www.wikidata.org/wiki/Q337526"]},websites:["https://aibl.fr/"]}],related_entities:[{relation_type:"sibling",title:"Corpus Coranicum",uuid:"0fd7b9cd-fdae-441b-a6fd-a791d4583ce0"},{relation_type:"cooperation",title:"Paleocoran",uuid:"d5448b02-b57f-429d-9553-637cc2add035"}],contacts:[{pers_name:{text:"Neuwirth, Angelika",ref:["https://d-nb.info/gnd/108800083"]},roles:["supervision"],websites:["https://web.archive.org/https://www.geschkult.fu-berlin.de/en/e/semiarab/arabistik/Seminar/Ehemalige-Mitarbeiterinnen-und-Mitarbeiter/Professuren/neuwirth/index.html"]},{pers_name:{text:"Robin, Christian Julien",ref:["https://www.wikidata.org/wiki/Q27919930"]},roles:["supervision"],websites:["https://www.aibl.fr/membres/academiciens-depuis-1663/article/robin-christian-julien"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["collaboration_platform","islamic_studies","lexicon","religion_studies","religious_text"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/cab/4c68f56a-2c44-41c0-acb9-ece91afaf70c.json",{schema_version:"0.2.2",record_metadata:{uuid:"4c68f56a-2c44-41c0-acb9-ece91afaf70c",record_created_on:"2023-01-30",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Corpus Avesticum Berolinense",abbr:"CAB",type:"project",ref:[],date:[{from:"2018",to:"2030"}],maintained:!0,websites:["https://cab.geschkult.fu-berlin.de/","https://www.geschkult.fu-berlin.de/en/e/iranistik/forschung/CAB/index.html"],project_desc:"The CAB project represents the first attempt to edit the entire Avestan Zoroastrian textual corpus within its ritual context, and to produce and offer both printed and digital editions of the texts. It will also develop a set of tools for an assisted reading of these texts, including translations, grammatical and semantic analysis of words, etc., which will be accessible also for non-specialist readers. Amongst these tools, the project will offer a digital version of the standard dictionary of the Avestan language (Bartholomae’s Altiranisches Woerterbuch).",places:[{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Freie Universität Berlin",ref:["https://ror.org/046ak2485","https://www.wikidata.org/wiki/Q153006"]},websites:["https://www.fu-berlin.de/"]}],related_entities:[{relation_type:"sibling",title:"Avestan Digital Archive",uuid:"0a2ff403-834b-484f-b961-0822220bab58"},{relation_type:"cooperation",title:"Tierrecht und Strafen im 'Gesetz zur Abwehr der Dämonen' (Vidçvdâd, Kapitel 13–15)",uuid:"57622367-8250-4932-ab3e-0356615d578a"},{relation_type:"sibling",title:"Tierrecht und Strafen im 'Gesetz zur Abwehr der Dämonen' (Vidçvdâd, Kapitel 13–15)",uuid:"57622367-8250-4932-ab3e-0356615d578a"},{relation_type:"sibling",title:"Zoroastrian Middle Persian Corpus and Dictionary",uuid:"7d8eb5d0-6284-4939-a48b-7ff7a2407989"},{relation_type:"cooperation",title:"Avestan Digital Archive",uuid:"0a2ff403-834b-484f-b961-0822220bab58"},{relation_type:"cooperation",title:"Zoroastrian Middle Persian Corpus and Dictionary",uuid:"7d8eb5d0-6284-4939-a48b-7ff7a2407989"}],contacts:[{pers_name:{text:"Cantera Glera, Alberto",ref:["https://d-nb.info/gnd/1198415282"]},roles:["supervision"],websites:["https://www.geschkult.fu-berlin.de/e/iranistik/mitarbeiter/professoren/cantera/index.html"]}],research_data:{lang:["ave"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["corpus_output","digital_preservation","iranian_studies","manuscript","religious_text","vre"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/corpus_coranicum/0fd7b9cd-fdae-441b-a6fd-a791d4583ce0.json",{schema_version:"0.2.2",record_metadata:{uuid:"0fd7b9cd-fdae-441b-a6fd-a791d4583ce0",record_created_on:"2021-11-12",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-03-01"},project:{title:"Corpus Coranicum",abbr:"",type:"project",ref:[],date:[{from:"2007",to:""}],maintained:null,websites:["https://corpuscoranicum.de/en"],project_desc:"Corpus Coranicum develops a catalogue of early Qur’anic manuscripts and texts of the Islamic scholarly tradition, which are all published online (open access) by using TEI standards. It offers not only transcriptions of the manuscripts in original languages and their German translations, but also images of originals, variant readings and commentaries explaining their literary, cultural and historical context. The project focuses on the systematic documentation of sources related to the Qur’an with the objective to reconstruct the development of the first Muslim community as the interaction between the Prophet and the first addressees in Mecca and Medina.",places:[{place_name:{text:"Potsdam",ref:["https://www.geonames.org/2852458/potsdam.html"]},coordinates:{lat:"52.39886",lng:"13.06566"}}],lang:["deu","eng","fra"],related_institutions:[{relation_type:"host",org_name:{text:"Zentrum Grundlagenforschung Alte Welt",ref:[]},websites:["https://www.bbaw.de/forschung/zentren/zentrum-alte-welt"]},{relation_type:"host",org_name:{text:"Union der Deutschen Akademien der Wissenschaften",ref:["https://ror.org/04bvdz568","https://www.wikidata.org/wiki/Q1662834"]},websites:["https://www.akademienunion.de/"]}],related_entities:[{relation_type:"sibling",title:"Altägyptisches Wörterbuch",uuid:"a4d189e4-f03f-4db0-8742-b777e22da760"},{relation_type:"sibling",title:"Coranica",uuid:"5f57a071-60c1-4fd2-b191-8fa8d15d70bb"},{relation_type:"sibling",title:"Irankoran",uuid:"8e4ab5b4-7298-4d55-b490-eb2943527981"},{relation_type:"sibling",title:"Paleocoran",uuid:"d5448b02-b57f-429d-9553-637cc2add035"},{relation_type:"sibling",title:"Strukturen und Transformationen des Wortschatzes der ägyptischen Sprache: Text- und Wissenskultur im Alten Ägypten",uuid:"85d053c3-4ce6-4130-bc6a-63f96acfb067"}],contacts:[{pers_name:{text:"Neuwirth, Angelika",ref:["https://d-nb.info/gnd/108800083"]},roles:["supervision"],websites:["https://web.archive.org/https://www.geschkult.fu-berlin.de/en/e/semiarab/arabistik/Seminar/Ehemalige-Mitarbeiterinnen-und-Mitarbeiter/Professuren/neuwirth/index.html"]},{pers_name:{text:"Marx, Michael",ref:[]},roles:["supervision"],websites:["https://www.bbaw.de/die-akademie/mitarbeiterinnen-mitarbeiter/marx-michael"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["digital_edition","digital_preservation","islamic_studies","manuscript","religion_studies","religious_text","translation"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/cmcl/c4f41a6d-9fb9-4c31-85f0-b66acfe41289.json",{schema_version:"0.2.2",record_metadata:{uuid:"c4f41a6d-9fb9-4c31-85f0-b66acfe41289",record_created_on:"2023-11-14",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Corpus dei Manoscritti Copti Letterari",abbr:"CMCL",type:"project",ref:[],date:[{from:"1968",to:"1980"},{from:"1980",to:"1990"},{from:"2011",to:""}],maintained:null,websites:["https://www.aai.uni-hamburg.de/en/ethiostudies/research/cmcl.html","http://www.cmcl.it/"],project_desc:"The CMCL project digitally reconstructs manuscripts, critically edits Coptic texts, and maintains a comprehensive electronic database encompassing authors, works, manuscripts, electronic editions, computational grammar, and a bibliography in Egyptology, Coptology, and Christian Orient.",places:[{place_name:{text:"Hamburg",ref:["https://www.geonames.org/2911298/hamburg.html"]},coordinates:{lat:"53.55073",lng:"9.99302"}},{place_name:{text:"Rome",ref:["https://www.geonames.org/3169070/rome.html"]},coordinates:{lat:"41.89193",lng:"12.51133"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Universität Hamburg",ref:["https://ror.org/00g30e956","https://www.wikidata.org/wiki/Q156725"]},websites:["https://www.uni-hamburg.de/"]},{relation_type:"host",org_name:{text:"Unione Accademica Nazionale",ref:["https://www.wikidata.org/wiki/Q4005545"]},websites:["http://www.uan.it/"]}],related_entities:[{relation_type:"sibling",title:"From Translation to Creation: Changes in Ethiopic Style and Lexicon from Late Antiquity to the Middle Ages",uuid:"77ae1011-1b54-46b5-b676-02895e3300fc"},{relation_type:"sibling",title:"Audition Certificates Platform",uuid:"b333a11d-b9fc-4379-9e21-fbddfa9500b1"},{relation_type:"sibling",title:"Afrikanische Stimmen in islamischen Manuskripten aus Mali: Erschließung und Erforschung afrikanischer Sprachen in arabischer Schrift (Ajami)",uuid:"eaf36ccc-5ee4-4749-80ea-7f71f479c968"},{relation_type:"sibling",title:"Beta maṣāḥǝft Manuscripts of Ethiopia and Eritrea",uuid:"169677fd-14f9-46e7-b8f1-2202fb91397c"},{relation_type:"sibling",title:"Methoden der Bildverarbeitung zur Bestimmung von visuellen Manuskript- und Zeichenmerkmalen",uuid:"eb8e91fe-952e-48b7-af0d-c026ebe37826"},{relation_type:"sibling",title:"Datenrepositorium Manuskriptkulturen",uuid:"894dcf0c-7295-4fb8-b4ba-866a5ebe3310"},{relation_type:"sibling",title:"Demarginalizing Medieval Africa: Images, Texts, and Identity in Early Solomonic Ethiopia",uuid:"46121edb-516b-4dbf-ba49-e2c5f07cec2e"},{relation_type:"sibling",title:"Documentation of Gorani, an endangered language of West Iran",uuid:"17fa004d-c9d2-4ce3-8116-b7bfff5d14ed"},{relation_type:"sibling",title:"Ethio-SPaRe: Cultural Heritage of Christian Ethiopia. Salvation, Preservation, Research",uuid:"fbf007e0-7eee-4bb1-801d-568785d43d04"},{relation_type:"sibling",title:"The Evolution of Islamic Societies (c. 600–1600 CE): Algorithmic Analysis into Social History",uuid:"659c0aba-3bdd-43eb-937d-dad4ad63e3fc"},{relation_type:"sibling",title:"The intertwined world of the oral and written transmission of sacred traditions in the Middle East",uuid:"bb852d81-0c6d-4413-8c20-1bb38c4db4e7"},{relation_type:"sibling",title:"Islamic Painted Page",uuid:"31534c48-6b74-4cc5-8aff-ea8dbc60c445"},{relation_type:"sibling",title:"Methoden der Manuskriptanalyse zur Wiedergewinnung verlorener Schrift",uuid:"892b783d-1788-451f-9efd-1c58bfb4b064"},{relation_type:"sibling",title:"SfarData",uuid:"81d8ad85-5da8-457f-99a3-6ab11128ef03"},{relation_type:"sibling",title:"SIHAFA: The Ideosphere of the Late Ottoman Arabic Press: Mapping the Discursive Field of Authors and Texts through Computational Approaches",uuid:"20ee58f5-f699-4262-a473-7765e249c871"},{relation_type:"sibling",title:"Understanding Written Artefacts",uuid:"9ca46873-3089-4a04-99fa-89c0c1b01213"}],contacts:[{pers_name:{text:"Orlandi, Tito",ref:["https://d-nb.info/gnd/1022012592"]},roles:["supervision"],websites:["https://www.aai.uni-hamburg.de/afrika/personen/orlandi.html"]}],research_data:{lang:["cop"],sustainability_plan:null,publications:{open_access:0,licensing:[]},data:{datatypes:[{label:"",stage:"raw",licensing:[],open_access:0}],repositories:[{label:"",accessibility:"public",ref:[],licensing:[],description:""}]}},stack:{database:[],backend:[],frontend:[],tools:[{label:"",self_developed:!1,ref:[],description:""}],languages:[]},policies:[{description:"",ref:[]}],keywords:["annotation","corpus_output","digital_preservation","egyptology","linguistics","manuscript"],comment:"Apart from the first founding phase, the dates are approximate."}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/casg/5d194da4-2d99-4793-9757-59a197059b9b.json",{schema_version:"0.2.2",record_metadata:{uuid:"5d194da4-2d99-4793-9757-59a197059b9b",record_created_on:"2023-10-31",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Corpus der arabischen und syrischen Gnomologien",abbr:"CASG",type:"project",ref:[],date:[{from:"2009",to:"2011"},{from:"2023",to:""}],maintained:!1,websites:[],project_desc:"The corpus represents an assemblage of proverbs, aphorisms, and sagacious declarations sourced from the literary traditions of Arabic and Syriac. Additionally, it encompasses Greek texts, facilitating the examination of knowledge transmission across these three distinct cultural spheres.",places:[{place_name:{text:"Halle (Saale)",ref:["https://www.geonames.org/6551220/halle-saale.html"]},coordinates:{lat:"51.48298",lng:"11.97202"}}],lang:["deu","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Martin-Luther-Universität Halle-Wittenberg",ref:["https://ror.org/05gqaka33","https://www.wikidata.org/wiki/Q32120"]},websites:["https://www.uni-halle.de/"]}],related_entities:[],contacts:[{pers_name:{text:"Pietruschka, Ute ",ref:["https://d-nb.info/gnd/111231965"]},roles:["supervision"],websites:["https://www.uni-goettingen.de/de/654951.html"]}],research_data:{lang:["ara","grc","syr"],sustainability_plan:null,publications:{open_access:0,licensing:[]},data:{datatypes:[{label:"",stage:"raw",licensing:[],open_access:0}],repositories:[{label:"",accessibility:"public",ref:[],licensing:[],description:""}]}},stack:{database:["sql","xml"],backend:[],frontend:[],tools:[{label:"",self_developed:!1,ref:[],description:""}],languages:[]},policies:[{description:"",ref:[]}],keywords:["corpus_output","digital_preservation","literary_studies","semitic_studies","tei"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/corpus_masoreticum/1c38b421-95a2-4b2b-becf-119f36721a07.json",{schema_version:"0.2.2",record_metadata:{uuid:"1c38b421-95a2-4b2b-becf-119f36721a07",record_created_on:"2021-11-12",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-03-25"},project:{title:"Corpus Masoreticum",abbr:"",type:"project",ref:[],date:[{from:"2018",to:"2021"},{from:"2018",to:"2030"}],maintained:!0,websites:["https://digi.ub.uni-heidelberg.de/de/corpusmasoreticum/index.html"],project_desc:"The long-term project Corups Masoreticum is dedicated to the Masorah of the Hebrew Bible – a corpus of annotations regarding rules of orthography, syntax, vocalization, cantillation etc. of the Biblical Text. This project is the first ever scientific engagement with the Wester European (Ashkenazic) Masorah tradition between the 11th and 13th centuries. The philological work is integrated into a digital work environment BIMA, which was develop for the need of the project, and will result in an openly accessible digital edition of Ashkenazic Masorah.",places:[{place_name:{text:"Heidelberg",ref:["https://www.geonames.org/2907911/heidelberg.html"]},coordinates:{lat:"49.40768",lng:"8.69079"}}],lang:["deu","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Hochschule für Jüdische Studien Heidelberg",ref:["https://www.wikidata.org/wiki/Q1622186"]},websites:["https://www.hfjs.eu/"]}],related_entities:[],contacts:[{pers_name:{text:"Liss, Hanna",ref:["https://d-nb.info/gnd/115755853"]},roles:["supervision"],websites:["https://www.hfjs.eu/hochschule/dozenten/professoren/hliss.html#AF"]}],research_data:{lang:["heb"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["annotation","corpus_output","digital_preservation","jewish_studies","manuscript","religion_studies","religious_text"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/corpus_musicae_ottomanicae/5838a872-ff79-4e68-afff-edd784b0952e.json",{schema_version:"0.2.2",record_metadata:{uuid:"5838a872-ff79-4e68-afff-edd784b0952e",record_created_on:"2022-06-14",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Corpus Musicae Ottomanicae",abbr:"CMO",type:"project",ref:[],date:[{from:"2015",to:"2027"}],maintained:!0,websites:["https://www.uni-muenster.de/CMO-Edition/cmo/cmo.html","https://corpus-musicae-ottomanicae.de/content/edition/browse.xml","https://gepris.dfg.de/gepris/projekt/265450857"],project_desc:"This long-term project is dedicated to the transcription and critical editing of nineteenth-century sources of Ottoman music written in Hampartsum and staff notations, as well as the accompanying song texts. The end results of the project will be made available through an online platform which will provide access to both music and text editions, as well as the source catalogue, which is a comprehensive database of printed, manuscript, and online sources. The materials of the edited corpus represent the multi-ethnic and multi-religious environment of the region and period.",places:[{place_name:{text:"Münster",ref:["https://www.geonames.org/2867543/muenster.html"]},coordinates:{lat:"51.96236",lng:"7.62571"}},{place_name:{text:"Bonn",ref:["https://www.geonames.org/2946447/bonn.html"]},coordinates:{lat:"50.73438",lng:"7.09549"}},{place_name:{text:"Istanbul",ref:["https://www.geonames.org/745044/istanbul.html"]},coordinates:{lat:"41.01384",lng:"28.94966"}}],lang:["deu","eng","tur"],related_institutions:[{relation_type:"host",org_name:{text:"Westfälische Wilhelms-Universität Münster",ref:["https://ror.org/00pd74e08","https://www.wikidata.org/wiki/Q168426"]},websites:["https://www.uni-muenster.de/en/"]},{relation_type:"host",org_name:{text:"Max Weber Foundation International Humanities",ref:["https://www.wikidata.org/wiki/Q1913589"]},websites:["https://www.maxweberstiftung.de/en/"]},{relation_type:"host",org_name:{text:"Orient-Institut Istanbul",ref:["https://ror.org/05jm6kj71","https://www.wikidata.org/wiki/Q15837722"]},websites:["https://www.oiist.org/"]}],related_entities:[],contacts:[{pers_name:{text:"Jäger, Ralf Martin",ref:["https://d-nb.info/gnd/122654099"]},roles:["supervision"],websites:["https://www.uni-muenster.de/CMO-Edition/mitarbeiter/leitung/ralf_martin_jaeger.html"]}],research_data:{lang:["ara","tur"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","corpus_output","digital_preservation","manuscript","music_studies","vre"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/corpus_builder/eb1591d7-75b9-4d62-9f67-0679e627587b.json",{schema_version:"0.2.2",record_metadata:{uuid:"eb1591d7-75b9-4d62-9f67-0679e627587b",record_created_on:"2022-09-07",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"CorpusBuilder",abbr:"",type:"project",ref:[],date:[{from:"2017",to:"2020"}],maintained:null,websites:["https://openiti.org/projects/CorpusBuilder.html"],project_desc:"The objective of this project is to develop a robust and user-friendly OCR pipeline for Islamic texts.",places:[{place_name:{text:"College Park",ref:["https://www.geonames.org/4351977/college-park.html"]},coordinates:{lat:"38.98067",lng:"-76.93692"}},{place_name:{text:"Leipzig",ref:["https://www.geonames.org/2879139/leipzig.html"]},coordinates:{lat:"51.33962",lng:"12.37129"}},{place_name:{text:"London",ref:["https://www.geonames.org/2643743/london.html"]},coordinates:{lat:"51.50853",lng:"-0.12574"}},{place_name:{text:"Vienna",ref:["https://www.geonames.org/2761369/vienna.html"]},coordinates:{lat:"48.20849",lng:"16.37208"}},{place_name:{text:"Cambridge",ref:["https://www.geonames.org/4931972/cambridge.html"]},coordinates:{lat:"42.3751",lng:"-71.10561"}}],lang:[],related_institutions:[],related_entities:[{relation_type:"parent",title:"SHARIAsource",uuid:"1b2ca0bf-fb29-4b5c-852b-2eedd6a85773"},{relation_type:"parent",title:"Open Islamicate Texts Initiative",uuid:"bef2e507-b663-422e-9dd3-7e49ca299f05"},{relation_type:"sibling",title:"Open Islamicate Texts Initiative Arabic-script OCR Catalyst Project",uuid:"786edd87-476e-42a6-bcc0-521833ec73e5"},{relation_type:"sibling",title:"Automatic Collation for Diversifying Corpora",uuid:"5e7ab61a-0c33-44fc-8175-a1930e6d08bc"}],contacts:[{pers_name:{text:"Allen, Jonathan",ref:[]},roles:["investigation"],websites:["https://sllc.umd.edu/directory/jonathan-allen"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["islamic_studies","machine_learning","ocr"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/pal_read/2adf7ddc-9dd5-49b3-842c-9dc48dbbf36e.json",{schema_version:"0.2.2",record_metadata:{uuid:"2adf7ddc-9dd5-49b3-842c-9dc48dbbf36e",record_created_on:"2021-11-01",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-05-05"},project:{title:"Country of Words: Reading and Reception of Palestinian Literature from 1948 to the Present",abbr:"PalREAD",type:"project",ref:[],date:[{from:"2018-04-01",to:"2023-03-31"}],maintained:!0,websites:["https://www.geschkult.fu-berlin.de/en/e/palread/index.html"],project_desc:"PalREAD is a project dedicated to Palestinian literature from 1948 to the present which aims to find new ways to account for the literary production of a displaced population. It elaborates a new methodology of literary analysis that challenges and lies outside conventional conceptions of the nation-state and adopts an interdisciplinary and transmedial approach that embeds literary production in a wider cultural web of intersecting media and genres. The output of the project will be made accessible in the form of an online platform.",places:[{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}}],lang:[],related_institutions:[{relation_type:"host",org_name:{text:"Freie Universität Berlin",ref:["https://ror.org/046ak2485","https://www.wikidata.org/wiki/Q153006"]},websites:["https://www.fu-berlin.de/"]}],related_entities:[{relation_type:"sibling",title:"Verse und Sprueche: Impulse und Reichweiten wissenschaftlicher und popularisierender Diskurse im arabischen Sprachraum",uuid:"a2984fec-9396-488e-ad56-d3d21dc49052"},{relation_type:"sibling",title:"Kalila and Dimna – AnonymClassic",uuid:"d1e6d69b-5e9a-4b4a-85ad-09aac56ed2d9"},{relation_type:"sibling",title:"Keywords for the Study of the Arabic Literary and Manuscript Tradition",uuid:"7050ac6d-523c-4ba0-b381-48ec200ff6c4"},{relation_type:"sibling",title:"Arabic Literature Cosmopolitan",uuid:"46aff246-b6ef-4632-90c2-0993a9f9b1f5"},{relation_type:"sibling",title:"Memory Spaces: Mapping Oral History in Mosul",uuid:"aec92ee9-7c8a-49ce-8491-46667fc75505"}],contacts:[{pers_name:{text:"Abu-Remaileh, Refqa",ref:[]},roles:["supervision"],websites:["https://www.geschkult.fu-berlin.de/e/semiarab/arabistik/Seminar/Mitarbeiterinnen-und-Mitarbeiter/Professuren/Abu-Remaileh/index.html"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","literary_studies"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/averroes_ibn_baggas_de_generatione_et_corruptione/c3e206ec-9989-4500-ac20-4126e35871f2.json",{schema_version:"0.2.2",record_metadata:{uuid:"c3e206ec-9989-4500-ac20-4126e35871f2",record_created_on:"2022-02-21",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-02-22"},project:{title:"Critical Edition of Ibn Bāğğa’s Commentary on Aristotle’s De generatione et corruptione",abbr:"",type:"project",ref:[],date:[{from:"2016",to:"2021"}],maintained:null,websites:["https://averroes.uni-koeln.de/edition/current-editions/"],project_desc:"This project focuses on Ibn Bāğğa’s Commentary on Aristotle’s “De generatione et corruption” which, eclipsed by the subsequent commentaries of Averroes, received scant attention, even though the importance of Ibn Bāğğa’s influence on the thought of the latter is undeniable. The objective of the project is a critical edition of Ibn Bāğğa’s commentaries, who not only follows Aristotle but also presents different examples and develops ideas of his own.",places:[{place_name:{text:"Köln",ref:["https://www.geonames.org/2886242/koeln.html"]},coordinates:{lat:"50.93333",lng:"6.95"}}],lang:["eng"],related_institutions:[],related_entities:[{relation_type:"parent",title:"Averroes Edition",uuid:"a6e1fb68-e7a5-4125-8cfc-ec3aa16da73b"},{relation_type:"sibling",title:"Study of Averroes’s Long Commentary on the Physics in Hebrew and Latin Transmission",uuid:"3992a23d-8426-4b73-8b30-844e471e76e2"},{relation_type:"sibling",title:"Critical Edition of the Fragmentary Latin Translation of Averroes’s Commentary on De Partibus Animalium and De Generatione Animalium",uuid:"7c7438e6-4172-4059-ad60-54a6d0d61f7c"},{relation_type:"sibling",title:"Critical Edition of Ibn Bāǧǧa’s Commentary on Aristotle’s Physics",uuid:"f24e806a-0777-4690-b148-1b35ab3745e2"}],contacts:[{pers_name:{text:"La Martire, Corrado",ref:["https://d-nb.info/gnd/118137412X"]},roles:["investigation"],websites:["https://thomasinstitut.uni-koeln.de/mitarbeiterinnen/corrado-la-martire"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","digital_edition","digital_preservation","jewish_studies","manuscript","philosophy","science_history"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/averroes_ibn_baggas_physics/f24e806a-0777-4690-b148-1b35ab3745e2.json",{schema_version:"0.2.2",record_metadata:{uuid:"f24e806a-0777-4690-b148-1b35ab3745e2",record_created_on:"2022-02-21",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-02-22"},project:{title:"Critical Edition of Ibn Bāǧǧa’s Commentary on Aristotle’s Physics",abbr:"",type:"project",ref:[],date:[{from:"2016",to:""}],maintained:null,websites:["https://averroes.uni-koeln.de/edition/current-editions/"],project_desc:"Ibn Bāǧǧa’s commentaries provide an exposition of the content of Aristotle’s “Physics,” which is partly incomplete. They also had a decisive impact on Averroes’s commentaries on the same work. The project’s objective is a critical edition of Ibn Bāǧǧa’s commentaries, the study of their genesis and structure as well as their first ever presentation in form of a complete and reliable text.",places:[{place_name:{text:"Köln",ref:["https://www.geonames.org/2886242/koeln.html"]},coordinates:{lat:"50.93333",lng:"6.95"}}],lang:["eng"],related_institutions:[],related_entities:[{relation_type:"parent",title:"Averroes Edition",uuid:"a6e1fb68-e7a5-4125-8cfc-ec3aa16da73b"},{relation_type:"sibling",title:"Study of Averroes’s Long Commentary on the Physics in Hebrew and Latin Transmission",uuid:"3992a23d-8426-4b73-8b30-844e471e76e2"},{relation_type:"sibling",title:"Critical Edition of Ibn Bāğğa’s Commentary on Aristotle’s De generatione et corruptione",uuid:"c3e206ec-9989-4500-ac20-4126e35871f2"},{relation_type:"sibling",title:"Critical Edition of the Fragmentary Latin Translation of Averroes’s Commentary on De Partibus Animalium and De Generatione Animalium",uuid:"7c7438e6-4172-4059-ad60-54a6d0d61f7c"}],contacts:[{pers_name:{text:"Cherif Zahar, Farah",ref:["https://viaf.org/viaf/209127583"]},roles:["investigation"],websites:["https://philosophie.univ-paris8.fr/Farah-CHERIF-ZAHAR"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","digital_edition","digital_preservation","jewish_studies","manuscript","philosophy","science_history"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/averroes_de_partibus_animalium_and_de_generatione_animalium/7c7438e6-4172-4059-ad60-54a6d0d61f7c.json",{schema_version:"0.2.2",record_metadata:{uuid:"7c7438e6-4172-4059-ad60-54a6d0d61f7c",record_created_on:"2022-02-21",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-02-22"},project:{title:"Critical Edition of the Fragmentary Latin Translation of Averroes’s Commentary on De Partibus Animalium and De Generatione Animalium",abbr:"",type:"project",ref:[],date:[{from:"2016",to:""}],maintained:null,websites:["https://averroes.uni-koeln.de/edition/current-editions/"],project_desc:"The project aims at proving inside in Averroes’s lost commentary on Aristotle’s De partibus animalium and De generatione animalium by editing its Latin translation together with a study of work’s transmission into Hebrew.",places:[{place_name:{text:"Köln",ref:["https://www.geonames.org/2886242/koeln.html"]},coordinates:{lat:"50.93333",lng:"6.95"}}],lang:["eng"],related_institutions:[],related_entities:[{relation_type:"parent",title:"Averroes Edition",uuid:"a6e1fb68-e7a5-4125-8cfc-ec3aa16da73b"},{relation_type:"sibling",title:"Study of Averroes’s Long Commentary on the Physics in Hebrew and Latin Transmission",uuid:"3992a23d-8426-4b73-8b30-844e471e76e2"},{relation_type:"sibling",title:"Critical Edition of Ibn Bāğğa’s Commentary on Aristotle’s De generatione et corruptione",uuid:"c3e206ec-9989-4500-ac20-4126e35871f2"},{relation_type:"sibling",title:"Critical Edition of Ibn Bāǧǧa’s Commentary on Aristotle’s Physics",uuid:"f24e806a-0777-4690-b148-1b35ab3745e2"}],contacts:[{pers_name:{text:"Clesse, Grégory",ref:["https://viaf.org/viaf/48155707096822411871/"]},roles:["investigation"],websites:[]},{pers_name:{text:"Visi, Tamás",ref:["https://d-nb.info/gnd/1052000452"]},roles:["investigation"],websites:["https://thomasinstitut.uni-koeln.de/en/mitarbeiterinnen/tamas-visi"]}],research_data:{lang:["heb","lat","ara"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","digital_edition","digital_preservation","jewish_studies","manuscript","philosophy","science_history"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/cdli/b8097890-6eeb-43ba-890d-28e1490fde08.json",{schema_version:"0.2.2",record_metadata:{uuid:"b8097890-6eeb-43ba-890d-28e1490fde08",record_created_on:"2022-10-06",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Cuneiform Digital Library Initiative",abbr:"CDLI",type:"project",ref:["https://viaf.org/viaf/146927082/"],date:[{from:"2000",to:"2003"},{from:"2004",to:"2006"},{from:"2009",to:"2011"},{from:"2011",to:"2013"}],maintained:null,websites:["https://cdli.ucla.edu/"],project_desc:"The main goal of this project it to make available through the internet the form and content of cuneiform inscriptions dating from the beginning of writing, ca. 3350 BC, until the end of the pre-Christian era. It already catalogued 320,00 of approximately more than 500,000 artefacts kept in public and private collections.",places:[{place_name:{text:"Los Angeles",ref:["https://www.geonames.org/5368361/los-angeles.html"]},coordinates:{lat:"34.05223",lng:"-118.24368"}},{place_name:{text:"Oxford",ref:["https://www.geonames.org/2640729/oxford.html"]},coordinates:{lat:"51.75222",lng:"-1.25596"}},{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"University of California, Los Angeles",ref:["https://ror.org/025j2nd68","https://www.wikidata.org/wiki/Q174710"]},websites:["https://www.ucla.edu/"]},{relation_type:"host",org_name:{text:"University of Oxford",ref:["https://www.wikidata.org/wiki/Q34433","https://ror.org/052gg0110"]},websites:["https://www.ox.ac.uk/"]},{relation_type:"host",org_name:{text:"Max-Planck-Institut für Wissenschaftsgeschichte",ref:["https://ror.org/0492sjc74","https://www.wikidata.org/wiki/Q318118"]},websites:["https://www.mpiwg-berlin.mpg.de/de"]}],related_entities:[{relation_type:"child",title:"Mesopotamian Royal Inscriptions",uuid:"9efa71cc-aaf8-4481-a155-caa8d9fe23c1"},{relation_type:"child",title:"Nimrud NW Palace",uuid:"bef67936-aeda-45ea-86fa-d06d79620459"},{relation_type:"child",title:"Mesopotamian Seals",uuid:"9497c5c0-0cdc-4f43-96de-4843bd246bac"},{relation_type:"cooperation",title:"Machine Translation and Automated Analysis of Cuneiform Language",uuid:"47a62965-3241-4531-b01a-a25e25dac602"},{relation_type:"child",title:"Oracc: The Open Richly Annotated Cuneiform Corpus",uuid:"3e56a148-845f-4a39-a7d4-c05c75cabd31"},{relation_type:"cooperation",title:"Reallexikon der Assyriologie und Vorderasiatischen Archäologie",uuid:"b0da2d75-183c-4fa4-8b12-47366c02ed7c"},{relation_type:"cooperation",title:"Hethitologie Portal Mainz",uuid:"da4755a8-5d05-4bda-8d2e-afab81c7ce27"},{relation_type:"cooperation",title:"BABMED - Babylonische Medizin",uuid:"942e9692-8e2a-4060-84d8-c8db17eae689"}],contacts:[{pers_name:{text:"Renn, Jürgen",ref:["https://d-nb.info/gnd/121180719"]},roles:["supervision"],websites:["https://www.mpiwg-berlin.mpg.de/users/renn"]}],research_data:{lang:["akk","sux"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["corpus_output","digital_preservation","inscription","semitic_studies","vre"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/refaiya/38e6dfb4-730a-4a80-8090-4b7ea551b3c7.json",{schema_version:"0.2.2",record_metadata:{uuid:"38e6dfb4-730a-4a80-8090-4b7ea551b3c7",record_created_on:"2022-03-29",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-03-31"},project:{title:"Datenbankgestützte Erfassung, Erforschung und digitale Präsentation der Familienbibliothek Refaiya",abbr:"Refaiya",type:"project",ref:[],date:[{from:"2008",to:"2013"}],maintained:null,websites:["https://web.archive.org/web/20211005153037/https://www.refaiya.uni-leipzig.de/content/index.xml","https://www.ub.uni-leipzig.de/forschungsbibliothek/projekte/projekte-chronologisch-alle/damaszener-familienbibliothek-refaiya/"],project_desc:"This project is dedicated to digital presentation, cataloguing, and research on the private Arabic-Islamic library of the Damascene Rifā‘ī family. The Refaiya library contains 488 carefully preserved volumes, which can be seen as an archive of a traditional Islamic culture of scholarship, knowledge, and books handed down over several centuries—until its purchase by Prussian Consul and Arabist Johann Gottfried Wetzstein in the 19th century. A trilingual database (English, German, and Arabic) will make the manuscripts accessible internationally, including in the Islamic world.",places:[{place_name:{text:"Leipzig",ref:["https://www.geonames.org/2879139/leipzig.html"]},coordinates:{lat:"51.33962",lng:"12.37129"}}],lang:["ara","deu","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Universität Leipzig",ref:["https://ror.org/03s7gtk40","https://www.wikidata.org/wiki/Q154804"]},websites:["https://www.uni-leipzig.de/en/"]}],related_entities:[{relation_type:"sibling",title:"Project for the digitisation and online presentation of Arabic, Persian, and Turkish manuscripts at Leipzig University Library",uuid:"cad00fa7-09a1-4df1-a08b-4ab5b2a48703"},{relation_type:"sibling",title:"Pilotprojekt zur datenbankgestützten Erschließung und digitalen Bereitstellung der neu erworbenen arabischen, persischen und türkischen Handschriften der Universitätsbibliothek Leipzig",uuid:"0a75cf74-9cbe-4ce2-9799-ee16dcc1e88e"},{relation_type:"cooperation",title:"Qalamos",uuid:"3c5b84d0-791c-43bc-ab68-7372478bc568"}],contacts:[{pers_name:{text:"Verena Klemm",ref:["https://www.wikidata.org/wiki/Q5675690"]},roles:["supervision"],websites:["https://www.gkr.uni-leipzig.de/orientalisches-institut/ueber-uns/team/prof-dr-verena-klemm"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","catalog","digital_preservation","manuscript"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/datenrepositorium_manuskriptkulturen/894dcf0c-7295-4fb8-b4ba-866a5ebe3310.json",{schema_version:"0.2.2",record_metadata:{uuid:"894dcf0c-7295-4fb8-b4ba-866a5ebe3310",record_created_on:"2022-02-28",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-03-28"},project:{title:"Datenrepositorium Manuskriptkulturen",abbr:"",type:"project",ref:[],date:[{from:"2015",to:"2019"}],maintained:null,websites:["https://gepris.dfg.de/gepris/projekt/203077103","https://www.manuscript-cultures.uni-hamburg.de/Poster/INF_A4_P2.pdf","https://www.manuscript-cultures.uni-hamburg.de/Projekte_p2.html"],project_desc:"This project was dedicated to the systematic securing and long-term use of all research data relevant for SFB (Sonderforschungsbereich for Manuscript Cultures in Asia, Africa and Europe). As result a centralized data repository was created for all the sub-projects of SBF synchronizing them with the administration and freeing them of the tasks of securing data and of developing specific tools. Next to the collection of all the data of SFB the created infrastructure helps to optimize manuscript research by making all manuscripts available in one place, offering the possibility to annotate documents, to write glossaries and to make results available to the public as well as by supporting the graduate college on using e-learning.",places:[{place_name:{text:"Hamburg",ref:["https://www.geonames.org/2911298/hamburg.html"]},coordinates:{lat:"53.55073",lng:"9.99302"}}],lang:["deu","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Universität Hamburg",ref:["https://ror.org/00g30e956","https://www.wikidata.org/wiki/Q156725"]},websites:["https://www.uni-hamburg.de/"]}],related_entities:[{relation_type:"sibling",title:"Methoden der Manuskriptanalyse zur Wiedergewinnung verlorener Schrift",uuid:"892b783d-1788-451f-9efd-1c58bfb4b064"},{relation_type:"sibling",title:"Methoden der Bildverarbeitung zur Bestimmung von visuellen Manuskript- und Zeichenmerkmalen",uuid:"eb8e91fe-952e-48b7-af0d-c026ebe37826"},{relation_type:"sibling",title:"Audition Certificates Platform",uuid:"b333a11d-b9fc-4379-9e21-fbddfa9500b1"},{relation_type:"sibling",title:"Afrikanische Stimmen in islamischen Manuskripten aus Mali: Erschließung und Erforschung afrikanischer Sprachen in arabischer Schrift (Ajami)",uuid:"eaf36ccc-5ee4-4749-80ea-7f71f479c968"},{relation_type:"sibling",title:"Beta maṣāḥǝft Manuscripts of Ethiopia and Eritrea",uuid:"169677fd-14f9-46e7-b8f1-2202fb91397c"},{relation_type:"sibling",title:"Demarginalizing Medieval Africa: Images, Texts, and Identity in Early Solomonic Ethiopia",uuid:"46121edb-516b-4dbf-ba49-e2c5f07cec2e"},{relation_type:"sibling",title:"Documentation of Gorani, an endangered language of West Iran",uuid:"17fa004d-c9d2-4ce3-8116-b7bfff5d14ed"},{relation_type:"sibling",title:"The Evolution of Islamic Societies (c. 600–1600 CE): Algorithmic Analysis into Social History",uuid:"659c0aba-3bdd-43eb-937d-dad4ad63e3fc"},{relation_type:"sibling",title:"The intertwined world of the oral and written transmission of sacred traditions in the Middle East",uuid:"bb852d81-0c6d-4413-8c20-1bb38c4db4e7"},{relation_type:"sibling",title:"Islamic Painted Page",uuid:"31534c48-6b74-4cc5-8aff-ea8dbc60c445"},{relation_type:"sibling",title:"SfarData",uuid:"81d8ad85-5da8-457f-99a3-6ab11128ef03"},{relation_type:"sibling",title:"SIHAFA: The Ideosphere of the Late Ottoman Arabic Press: Mapping the Discursive Field of Authors and Texts through Computational Approaches",uuid:"20ee58f5-f699-4262-a473-7765e249c871"},{relation_type:"sibling",title:"Understanding Written Artefacts",uuid:"9ca46873-3089-4a04-99fa-89c0c1b01213"},{relation_type:"sibling",title:"Ethio-SPaRe: Cultural Heritage of Christian Ethiopia. Salvation, Preservation, Research",uuid:"fbf007e0-7eee-4bb1-801d-568785d43d04"},{relation_type:"sibling",title:"From Translation to Creation: Changes in Ethiopic Style and Lexicon from Late Antiquity to the Middle Ages",uuid:"77ae1011-1b54-46b5-b676-02895e3300fc"},{relation_type:"sibling",title:"Corpus dei Manoscritti Copti Letterari",uuid:"c4f41a6d-9fb9-4c31-85f0-b66acfe41289"}],contacts:[{pers_name:{text:"Friedrich, Michael",ref:["https://d-nb.info/gnd/1106567749"]},roles:["supervision"],websites:["https://www.aai.uni-hamburg.de/china/personen/friedrich.html"]}],research_data:{lang:["deu","eng"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["research_data_management","research_infrastructure"],comment:"The website of the project may not work, you can find further information on the website of the funding institution (DFG:GEPRIS)."}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/demarginalizing_medieval_africa/46121edb-516b-4dbf-ba49-e2c5f07cec2e.json",{schema_version:"0.2.2",record_metadata:{uuid:"46121edb-516b-4dbf-ba49-e2c5f07cec2e",record_created_on:"2021-11-12",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-03-28"},project:{title:"Demarginalizing Medieval Africa: Images, Texts, and Identity in Early Solomonic Ethiopia",abbr:"ITIESE",type:"project",ref:[],date:[{from:"2021",to:"2024"}],maintained:!0,websites:["https://www.csmc.uni-hamburg.de/research/current-projects/demarginalizing-medieval-africa.html"],project_desc:"The research object of the ITIESE project are manuscripts belonging to the literary tradition of the Ethiopian Orthodox Church, which until now unjustly remain at the periphery of academic interest. The project’s intention is to shed new light on the cultural heritage of Ethiopian Empire by examining manuscripts illuminations made by medieval Ethiopian artists with focus on the cultural, religious and socio-political significance of their activities. The project will furthermore set up a platform for exchange between scholars working on the history of manuscripts illumination.",places:[{place_name:{text:"Hamburg",ref:["https://www.geonames.org/2911298/hamburg.html"]},coordinates:{lat:"53.55073",lng:"9.99302"}},{place_name:{text:"London",ref:["https://www.geonames.org/2643743/london.html"]},coordinates:{lat:"51.50853",lng:"-0.12574"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Helmut-Schmidt-Universität",ref:["https://www.wikidata.org/wiki/Q530991","https://ror.org/04e8jbs38"]},websites:["https://www.hsu-hh.de/"]},{relation_type:"host",org_name:{text:"Technische Universität Hamburg",ref:["https://ror.org/04bs1pb34","https://www.wikidata.org/wiki/Q1060"]},websites:["https://www.tuhh.de/"]},{relation_type:"host",org_name:{text:"University College London",ref:["https://www.wikidata.org/wiki/Q193196","https://ror.org/02jx3x895"]},websites:["https://www.ucl.ac.uk"]},{relation_type:"host",org_name:{text:"Universität Hamburg",ref:["https://ror.org/00g30e956","https://www.wikidata.org/wiki/Q156725"]},websites:["https://www.uni-hamburg.de/"]}],related_entities:[{relation_type:"sibling",title:"Understanding Written Artefacts",uuid:"9ca46873-3089-4a04-99fa-89c0c1b01213"},{relation_type:"sibling",title:"Grasping the World in Ottoman Istanbul: Visual Negotiation and Reading in Practices in Geographic Literature from the Sixteenth Century",uuid:"d1f743f2-7e94-4e00-a8bf-f46e56c7508e"},{relation_type:"sibling",title:"Beta maṣāḥǝft Manuscripts of Ethiopia and Eritrea",uuid:"169677fd-14f9-46e7-b8f1-2202fb91397c"},{relation_type:"sibling",title:"Afrikanische Stimmen in islamischen Manuskripten aus Mali: Erschließung und Erforschung afrikanischer Sprachen in arabischer Schrift (Ajami)",uuid:"eaf36ccc-5ee4-4749-80ea-7f71f479c968"},{relation_type:"sibling",title:"The Evolution of Islamic Societies (c. 600–1600 CE): Algorithmic Analysis into Social History",uuid:"659c0aba-3bdd-43eb-937d-dad4ad63e3fc"},{relation_type:"sibling",title:"The intertwined world of the oral and written transmission of sacred traditions in the Middle East",uuid:"bb852d81-0c6d-4413-8c20-1bb38c4db4e7"},{relation_type:"sibling",title:"Audition Certificates Platform",uuid:"b333a11d-b9fc-4379-9e21-fbddfa9500b1"},{relation_type:"sibling",title:"Methoden der Bildverarbeitung zur Bestimmung von visuellen Manuskript- und Zeichenmerkmalen",uuid:"eb8e91fe-952e-48b7-af0d-c026ebe37826"},{relation_type:"sibling",title:"Datenrepositorium Manuskriptkulturen",uuid:"894dcf0c-7295-4fb8-b4ba-866a5ebe3310"},{relation_type:"sibling",title:"Documentation of Gorani, an endangered language of West Iran",uuid:"17fa004d-c9d2-4ce3-8116-b7bfff5d14ed"},{relation_type:"sibling",title:"Islamic Painted Page",uuid:"31534c48-6b74-4cc5-8aff-ea8dbc60c445"},{relation_type:"sibling",title:"Methoden der Manuskriptanalyse zur Wiedergewinnung verlorener Schrift",uuid:"892b783d-1788-451f-9efd-1c58bfb4b064"},{relation_type:"sibling",title:"SfarData",uuid:"81d8ad85-5da8-457f-99a3-6ab11128ef03"},{relation_type:"sibling",title:"SIHAFA: The Ideosphere of the Late Ottoman Arabic Press: Mapping the Discursive Field of Authors and Texts through Computational Approaches",uuid:"20ee58f5-f699-4262-a473-7765e249c871"},{relation_type:"sibling",title:"Ethio-SPaRe: Cultural Heritage of Christian Ethiopia. Salvation, Preservation, Research",uuid:"fbf007e0-7eee-4bb1-801d-568785d43d04"},{relation_type:"sibling",title:"From Translation to Creation: Changes in Ethiopic Style and Lexicon from Late Antiquity to the Middle Ages",uuid:"77ae1011-1b54-46b5-b676-02895e3300fc"},{relation_type:"sibling",title:"Corpus dei Manoscritti Copti Letterari",uuid:"c4f41a6d-9fb9-4c31-85f0-b66acfe41289"}],contacts:[{pers_name:{text:"Bausi, Alessandro",ref:["https://www.wikidata.org/wiki/Q62559559"]},roles:["supervision"],websites:["https://www.aai.uni-hamburg.de/afrika/personen/bausi.html"]}],research_data:{lang:[],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["african_studies","art_studies","collaboration_platform","image"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/der_bibeltext_der_handschriften/9ed78f16-e6fa-4156-a03d-f6581b7b7367.json",{schema_version:"0.2.2",record_metadata:{uuid:"9ed78f16-e6fa-4156-a03d-f6581b7b7367",record_created_on:"2021-11-12",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-03-28"},project:{title:"Der Bibeltext der Handschriften mit babylonisch-jemenitischer Punktation: Erfassung der Textvarianten",abbr:"",type:"project",ref:[],date:[{from:"2015",to:"2020"}],maintained:!1,websites:["https://www.hfjs.eu//abc/projekte.babylonisch-jemenitische-bibeltext-Tradition.html"],project_desc:"This project is dedicated to the complete collection and computerization of textual variants of the Biblical manuscripts of the Babylonian and Yemenite tradition. The variants will be compered with other ancient textual witnesses and classified in their historical context. The analyses of the hitherto unexplored material will open a new perspective for the reconstruction of the biblical text history.",places:[{place_name:{text:"Heidelberg",ref:["https://www.geonames.org/2907911/heidelberg.html"]},coordinates:{lat:"49.40768",lng:"8.69079"}}],lang:["deu","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Hochschule für Jüdische Studien Heidelberg",ref:["https://www.wikidata.org/wiki/Q1622186"]},websites:["https://www.hfjs.eu"]}],related_entities:[],contacts:[{pers_name:{text:"Liss, Hanna",ref:["https://d-nb.info/gnd/115755853"]},roles:["supervision"],websites:["https://www.hfjs.eu/hochschule/dozenten/professoren/hliss.html"]}],research_data:{lang:["heb"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["digital_preservation","jewish_studies","manuscript","religion_studies","religious_text","vre"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/ibn_nubata_gesamtedition/04ea57c8-69c7-4c83-8249-753850e9cc53.json",{schema_version:"0.2.2",record_metadata:{uuid:"04ea57c8-69c7-4c83-8249-753850e9cc53",record_created_on:"2021-11-01",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-04-26"},project:{title:"DFG-Langfristvorhaben Gesamtedition des Werkes von Ibn Nubata Al-Misri",abbr:"",type:"project",ref:[],date:[{from:"2019",to:""}],maintained:null,websites:["https://www.uni-muenster.de/ALEA/","https://scdh.zivgitlabpages.uni-muenster.de/hees-alea/alea-hugo-website/","https://gepris.dfg.de/gepris/projekt/423723105"],project_desc:"Against the concept of the decline of Islamic cultures after the 11th century it becomes apparent that this period witnessed vast literal and cultural developments. One of these is a major impact of the most important poet of Mamluk era, Ibn Nubātah, on the Arabic literature for the centuries after him. The aim of this project is a complete digital edition of his diwan and twelve other works, most of with are available only in bad prints. Due to many revisions and rewritings made by the author the editing of his works is a great challenge. In order to represent his poetry correctly the edition will contain may versions of the poems enabling their comparison.",places:[{place_name:{text:"Münster",ref:["https://www.geonames.org/6553087/muenster.html"]},coordinates:{lat:"51.95973",lng:"7.63137"}}],lang:["deu"],related_institutions:[{relation_type:"host",org_name:{text:"Westfälische Wilhelms-Universität Münster",ref:["https://ror.org/00pd74e08","https://www.wikidata.org/wiki/Q168426"]},websites:["https://www.uni-muenster.de/de/"]}],related_entities:[],contacts:[{pers_name:{text:"Bauer, Thomas",ref:["https://d-nb.info/gnd/130608467/"]},roles:["supervision"],websites:["https://www.uni-muenster.de/ArabistikIslam/Mitarbeiter/bauer.html"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","digital_edition","digital_preservation","lexicon","literary_studies","manuscript","vre"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/dhimmis_and_muslims/5c1c0e5b-cb6c-4d8e-9d1e-55e622a3ca40.json",{schema_version:"0.2.2",record_metadata:{uuid:"5c1c0e5b-cb6c-4d8e-9d1e-55e622a3ca40",record_created_on:"2022-05-09",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Dhimmis and Muslims - Analysing Multi-Religious Spaces in the Medieval Muslim World",abbr:"DAMAST",type:"project",ref:[],date:[{from:"2017",to:"2021"}],maintained:null,websites:["https://damast.geschichte.hu-berlin.de/","https://www.geschichte.uni-frankfurt.de/87681539/Dhimmis_and_Muslims","https://portal.volkswagenstiftung.de/search/projectDetails.do?ref=93252","https://www.geschichte.hu-berlin.de/de/bereiche-und-lehrstuehle/gmspaet/forschung-projekte/projekte_weltecke/dhimmis-and-muslims","https://github.com/UniStuttgart-VISUS/damast"],project_desc:"This project is dedicated to the study of religious diversity in medieval Muslim cities. The main purpose is to create a comprehensive database containing geographical information about religious communities compiled from various medieval sources and to make the data accessible via interactive visualization as well as a pilot web-based geo-temporal multi-view system.",places:[{place_name:{text:"Frankfurt",ref:["https://www.geonames.org/2925533/frankfurt-am-main.html"]},coordinates:{lat:"50.11552",lng:"8.68417"}},{place_name:{text:"Stuttgart",ref:["https://www.geonames.org/2825297/stuttgart.html"]},coordinates:{lat:"48.78232",lng:"9.17702"}},{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}}],lang:["deu","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Goethe-Universität Frankfurt am Main",ref:["https://ror.org/04cvxnb49","https://www.wikidata.org/wiki/Q50662"]},websites:["https://www.goethe-university-frankfurt.de/en?"]},{relation_type:"host",org_name:{text:"Universität Stuttgart",ref:["https://ror.org/04vnq7t77","https://www.wikidata.org/wiki/Q122453"]},websites:["https://www.uni-stuttgart.de/home/index.en.html"]},{relation_type:"host",org_name:{text:"Humboldt-Universität zu Berlin",ref:["https://www.wikidata.org/wiki/Q152087","https://ror.org/01j818n92"]},websites:["https://www.hu-berlin.de/de"]}],related_entities:[],contacts:[{pers_name:{text:"Koch, Steffen",ref:["https://d-nb.info/gnd/1041280173"]},roles:["supervision"],websites:["https://www.vis.uni-stuttgart.de/en/institute/team/Koch-00006/"]},{pers_name:{text:"Weltecke, Dorothea",ref:["https://d-nb.info/gnd/124993095"]},roles:["supervision"],websites:["https://www.geschichte.uni-frankfurt.de/66156354/Dorothea_Weltecke"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["geodata","history_studies","islamic_studies","religion_studies","visualization"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/qhod_die_grossbotschaften/ff1ec94f-2233-46e9-b550-45c792ae581e.json",{schema_version:"0.2.2",record_metadata:{uuid:"ff1ec94f-2233-46e9-b550-45c792ae581e",record_created_on:"2022-10-21",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Die Großbotschaften Damian Hugo von Virmonts und Ibrahim Paschas (1719/20)",abbr:"",type:"project",ref:[],date:[{from:"2020",to:""}],maintained:null,websites:["https://gams.uni-graz.at/context:vipa"],project_desc:"The aim of this project is the edition of all Habsburg and Ottoman sources documenting the diplomatic mission of Damian Hugo of Virmont and Ibrahim Pasha 1719/20, which are letters reports, travelogues, invoices, pictures, maps, artifacts, leaflets, pamphlets and newspapers. Sources written in Ottoman Turkish are translated into English and the editing work is based on a dynamic indexing process, according to which sources and metadata are put online even before the historical-critical editing is fully completed.",places:[{place_name:{text:"Vienna",ref:["https://www.geonames.org/2761369/vienna.html"]},coordinates:{lat:"48.20849",lng:"16.37208"}},{place_name:{text:"Salzburg",ref:["https://www.geonames.org/2766823/salzburg.html"]},coordinates:{lat:"47.41667",lng:"13.25"}},{place_name:{text:"Graz",ref:["https://www.geonames.org/2778067/graz.html"]},coordinates:{lat:"47.06667",lng:"15.45"}}],lang:["deu","eng"],related_institutions:[],related_entities:[{relation_type:"parent",title:"QhoD – Digitale Edition von Quellen zur habsburgisch-osmanischen Diplomatie 1500–1918",uuid:"6298a9cd-d41a-40d8-91d0-c532692e95c9"},{relation_type:"sibling",title:"Die Schreiben Selims II. an Maximilian II. und Mustafa Paşa (1566–1574)",uuid:"e9b15bcd-05ec-4de1-95f5-07d5bb44e482"}],contacts:[{pers_name:{text:"Strohmeyer, Arno",ref:["https://d-nb.info/gnd/115840060"]},roles:["supervision"],websites:["https://www.oeaw.ac.at/ihb/personen/strohmeyer-arno"]}],research_data:{lang:["deu","tur"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["annotation","digital_edition","digital_preservation","manuscript","translation","turkology","vre"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/qhod_die_schreiben_selims_ii/e9b15bcd-05ec-4de1-95f5-07d5bb44e482.json",{schema_version:"0.2.2",record_metadata:{uuid:"e9b15bcd-05ec-4de1-95f5-07d5bb44e482",record_created_on:"2022-10-21",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Die Schreiben Selims II. an Maximilian II. und Mustafa Paşa (1566–1574)",abbr:"",type:"project",ref:[],date:[{from:"2020",to:""}],maintained:null,websites:["https://gams.uni-graz.at/context:sema"],project_desc:"The purpose if this project was to edit documents from the MA thesis “Die Schreiben Selims II. aus dem Haus-, Hof- und Staatsarchiv zu Wien und die habsburgisch-osmanischen Beziehungen zwischen 1566 und 1574,” Vienna 2020, written by Halit Temiz and supervised by Univ.-Prof. Dr. Claudia Römer. They were converted into TEI-XML within the framework of the project Digital Edition of Sources on Habsburg-Ottoman Diplomacy 1500-1918 (QhoD), including all apparatus, and are available here under free license as an XML corpus.",places:[{place_name:{text:"Vienna",ref:["https://www.geonames.org/2761369/vienna.html"]},coordinates:{lat:"48.20849",lng:"16.37208"}},{place_name:{text:"Salzburg",ref:["https://www.geonames.org/2766823/salzburg.html"]},coordinates:{lat:"47.41667",lng:"13.25"}},{place_name:{text:"Graz",ref:["https://www.geonames.org/2778067/graz.html"]},coordinates:{lat:"47.06667",lng:"15.45"}}],lang:["deu","eng"],related_institutions:[],related_entities:[{relation_type:"parent",title:"QhoD – Digitale Edition von Quellen zur habsburgisch-osmanischen Diplomatie 1500–1918",uuid:"6298a9cd-d41a-40d8-91d0-c532692e95c9"},{relation_type:"sibling",title:"Die Großbotschaften Damian Hugo von Virmonts und Ibrahim Paschas (1719/20)",uuid:"ff1ec94f-2233-46e9-b550-45c792ae581e"}],contacts:[{pers_name:{text:"Temiz, Halit",ref:[]},roles:["investigation"],websites:["https://gams.uni-graz.at/context:sema/sdef:Context/get?mode=team"]},{pers_name:{text:"Kurz, Stephan",ref:["https://d-nb.info/gnd/13281899X"]},roles:["investigation"],websites:["https://www.oeaw.ac.at/ihb/personen/kurz-stephan"]}],research_data:{lang:["deu","tur"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["annotation","digital_edition","digital_preservation","manuscript","translation","turkology","vre"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/digital_corpus_for_greco_arabic_studies/df700e7b-1fad-4e54-b534-f63cf5805925.json",{schema_version:"0.2.2",record_metadata:{uuid:"df700e7b-1fad-4e54-b534-f63cf5805925",record_created_on:"2022-05-09",record_created_by:"Kudela. Xenia Monika",last_edited_on:""},project:{title:"Digital Corpus for Greco-Arabic Studies",abbr:"",type:"project",ref:[],date:[{from:"2010",to:"2013"}],maintained:null,websites:["https://www.graeco-arabic-studies.org/home.html"],project_desc:"The Digital Corpus for Graeco-Arabic Studies was created in the course of a collaborative project at Harvard and Tufts University and contains ca. 230 texts, three fifths of which are Greek originals and the rest are Arabic translations. In addition, the platform offers a list of authors and works included in the corpus that can be filtered by language, subject and text type and a search interface to search for Arabic or Greek words and phrases.",places:[{place_name:{text:"Cambridge",ref:["https://www.geonames.org/4931972/cambridge.html"]},coordinates:{lat:"42.3751",lng:"-71.10561"}},{place_name:{text:"Medford",ref:["https://www.geonames.org/4943629/medford.html"]},coordinates:{lat:"42.41843",lng:"-71.10616"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Harvard University",ref:["https://ror.org/03vek6s52","https://www.wikidata.org/wiki/Q13371"]},websites:["https://www.harvard.edu/"]},{relation_type:"host",org_name:{text:"Tufts University",ref:["https://www.wikidata.org/wiki/Q49120","https://ror.org/05wvpxv85"]},websites:["https://www.tufts.edu/"]}],related_entities:[],contacts:[{pers_name:{text:"Schiefsky, Mark",ref:["https://viaf.org/viaf/44561461/#Schiefsky,_Mark_John"]},roles:["supervision"],websites:["https://scholar.harvard.edu/schiefsky/home"]}],research_data:{lang:["ara","grc"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","corpus_output","digital_preservation","science_history","translation","translation_studies","vre"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/dariah/1ae31b2f-5c67-49a7-9fba-c162b314bbcb.json",{schema_version:"0.2.2",record_metadata:{uuid:"1ae31b2f-5c67-49a7-9fba-c162b314bbcb",record_created_on:"2022-05-19",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Digital Research Infrastructure for the Arts and Humanities (DARIAH)",abbr:"DARIAH",type:"organization",ref:["https://www.wikidata.org/wiki/Q49103279"],date:[{from:"2006",to:""}],maintained:!0,websites:["https://www.dariah.eu/"],project_desc:"DARIAH is a pan-European research infrastructure with 20 Members, 1 Observer and several Cooperating Partners in six non-member countries. It aims to enhance and support digitally-enabled research and teaching across the arts and humanities. DARIAH is a network of people, expertise, information, knowledge, content, methods, tools and technologies from its member countries. It develops, maintains and operates an infrastructure in support of ICT-based research practices and sustains researchers in using them to build, analyze and interpret digital resources.",places:[{place_name:{text:"Paris",ref:["https://www.geonames.org/2988506/paris.html"]},coordinates:{lat:"48.85339",lng:"2.34864"}},{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}},{place_name:{text:"Dublin",ref:["https://www.geonames.org/2964574/dublin.html"]},coordinates:{lat:"53.33306",lng:"-6.24889"}},{place_name:{text:"The Hague",ref:["https://www.geonames.org/2747373/the-hague.html"]},coordinates:{lat:"52.07667",lng:"4.29861"}},{place_name:{text:"Lisbon",ref:["https://www.geonames.org/2267057/lisbon.html"]},coordinates:{lat:"38.71667",lng:"-9.13333"}},{place_name:{text:"Rome",ref:["https://www.geonames.org/3169070/rome.html"]},coordinates:{lat:"41.89193",lng:"12.51133"}},{place_name:{text:"Cork",ref:["https://www.geonames.org/2965140/cork.html"]},coordinates:{lat:"51.89797",lng:"-8.47061"}},{place_name:{text:"Luxembourg",ref:["https://www.geonames.org/2960316/luxembourg.html"]},coordinates:{lat:"49.61167",lng:"6.13"}},{place_name:{text:"Gent",ref:["https://www.geonames.org/2797656/gent.html"]},coordinates:{lat:"51.05",lng:"3.71667"}},{place_name:{text:"Amsterdam",ref:["https://www.geonames.org/2759794/amsterdam.html"]},coordinates:{lat:"52.37403",lng:"4.88969"}},{place_name:{text:"Göttingen",ref:["https://www.geonames.org/2918632/goettingen.html"]},coordinates:{lat:"51.53443",lng:"9.93228"}},{place_name:{text:"Copenhagen",ref:["https://www.geonames.org/2618424/kobenhavn.html"]},coordinates:{lat:"55.6711",lng:"12.56529"}},{place_name:{text:"Warsaw",ref:["https://www.geonames.org/756135/warsaw.html"]},coordinates:{lat:"52.22977",lng:"21.01178"}},{place_name:{text:"Prague",ref:["https://www.geonames.org/3067696/prague.html"]},coordinates:{lat:"50.08804",lng:"14.42076"}},{place_name:{text:"Vienna",ref:["https://www.geonames.org/2761369/vienna.html"]},coordinates:{lat:"48.20849",lng:"16.37208"}},{place_name:{text:"Ljubljana",ref:["https://www.geonames.org/3196359/ljubljana.html"]},coordinates:{lat:"46.05108",lng:"14.50513"}},{place_name:{text:"Centar",ref:["https://www.geonames.org/6618983/centar.html"]},coordinates:{lat:"45.81313",lng:"15.97753"}},{place_name:{text:"Sarajevo",ref:["https://www.geonames.org/3191281/sarajevo.html"]},coordinates:{lat:"43.84864",lng:"18.35644"}},{place_name:{text:"Belgrade",ref:["https://www.geonames.org/792680/belgrade.html"]},coordinates:{lat:"44.80401",lng:"20.46513"}},{place_name:{text:"Sofia",ref:["https://www.geonames.org/727011/sofia.html"]},coordinates:{lat:"42.69751",lng:"23.32415"}},{place_name:{text:"Athens",ref:["https://www.geonames.org/264371/athens.html"]},coordinates:{lat:"37.98376",lng:"23.72784"}},{place_name:{text:"Limassol",ref:["https://www.geonames.org/146384/limassol.html"]},coordinates:{lat:"34.68406",lng:"33.03794"}}],lang:["eng"],related_institutions:[{relation_type:"member",org_name:{text:"French National Centre for Scientific Research",ref:["https://www.wikidata.org/wiki/Q280413","https://ror.org/0331qyx19"]},websites:["https://www.cnrs.fr/"]},{relation_type:"member",org_name:{text:"Universidade Nova de Lisboa",ref:["https://www.wikidata.org/wiki/Q1979891","https://ror.org/012habm93"]},websites:["https://www.unl.pt/en/"]},{relation_type:"member",org_name:{text:"National Research Council",ref:["https://www.wikidata.org/wiki/Q1340198","https://ror.org/03bjn0010"]},websites:["https://www.cnr.it/it"]},{relation_type:"member",org_name:{text:"University College Cork",ref:["https://ror.org/04q107642","https://www.wikidata.org/wiki/Q1574185"]},websites:["https://www.ucc.ie/en/"]},{relation_type:"member",org_name:{text:"University of Luxembourg",ref:["https://www.wikidata.org/wiki/Q59668","https://ror.org/036x5ad56"]},websites:["https://wwwen.uni.lu/"]},{relation_type:"member",org_name:{text:"Ghent University",ref:["https://www.wikidata.org/wiki/Q1137665","https://ror.org/00cv9y106"]},websites:["https://www.ugent.be/en"]},{relation_type:"member",org_name:{text:"International Institute of Social History",ref:["https://www.wikidata.org/wiki/Q1667757","https://ror.org/05dq4pp56"]},websites:["https://iisg.amsterdam/en"]},{relation_type:"member",org_name:{text:"Niedersächsische Staats- und Universitätsbibliothek Göttingen",ref:["https://www.wikidata.org/wiki/Q564783"]},websites:["https://www.sub.uni-goettingen.de/sub-aktuell/"]},{relation_type:"member",org_name:{text:"Danish Agency for Science and Higher Education",ref:["https://www.wikidata.org/wiki/Q50037707","https://ror.org/02sptwz63"]},websites:["https://ufm.dk/en/the-ministry/organisation/danish-agency-for-higher-education-and-science"]},{relation_type:"member",org_name:{text:"University of Warsaw",ref:["https://www.wikidata.org/wiki/Q144488","https://ror.org/039bjqg32"]},websites:["https://en.uw.edu.pl/"]},{relation_type:"member",org_name:{text:"Charles University",ref:["https://www.wikidata.org/wiki/Q31519","https://ror.org/024d6js02"]},websites:["https://cuni.cz/UKEN-1.html"]},{relation_type:"member",org_name:{text:"Österreichische Akademie der Wissenschaften",ref:["https://www.wikidata.org/wiki/Q299015","https://ror.org/03anc3s24"]},websites:["https://www.oeaw.ac.at/en/"]},{relation_type:"member",org_name:{text:"Institute of Contemporary History",ref:["https://www.wikidata.org/wiki/Q12791409","https://ror.org/008pp7a77"]},websites:["https://www.inz.si/en/"]},{relation_type:"member",org_name:{text:"Institute of Ethnology and Folklore Research",ref:["https://www.wikidata.org/wiki/Q30297130","https://ror.org/04mpn1847"]},websites:["https://www.ief.hr/"]},{relation_type:"member",org_name:{text:"University of Sarajevo",ref:["https://www.wikidata.org/wiki/Q572286","https://ror.org/02hhwgd43"]},websites:["https://www.unsa.ba/en"]},{relation_type:"member",org_name:{text:"Serbian Academy of Sciences and Arts",ref:["https://www.wikidata.org/wiki/Q1132636","https://ror.org/02f2wk572"]},websites:["https://www.sanu.ac.rs/"]},{relation_type:"member",org_name:{text:"Sofia University",ref:["https://ror.org/05x358x43","https://www.wikidata.org/wiki/Q841581"]},websites:["https://www.uni-sofia.bg/"]},{relation_type:"member",org_name:{text:"Academy of Athens",ref:["https://www.wikidata.org/wiki/Q414403","https://ror.org/00qsdn986"]},websites:["http://www.academyofathens.gr/en"]},{relation_type:"member",org_name:{text:"Cyprus University of Technology",ref:["https://ror.org/05qt8tf94","https://www.wikidata.org/wiki/Q1518320"]},websites:["https://www.cut.ac.cy/?languageId=1"]}],related_entities:[{relation_type:"child",title:"Digital Research Infrastructure for the Arts and Humanities (DARIAH-DE)",uuid:"ea8a1aa5-a2a1-4d4a-9254-f647158c66fa"},{relation_type:"child",title:"Computational Literary Studies Infrastructure (CLS INFRA)",uuid:"894f2c88-1713-480d-99cd-32d30f3c0ac2"},{relation_type:"cooperation",title:"European Lexicographic Infrastructure",uuid:"43f49ea7-ec28-4e08-9ff4-57de8c755acd"},{relation_type:"cooperation",title:"CLARIN - European Research Infrastructure for Language Resources and Technology",uuid:"7e14a810-7d07-4e60-96eb-01fccf9323e8"}],contacts:[{pers_name:{text:"Morselli, Francesca",ref:[]},roles:["supervision"],websites:["https://www.dariah.eu/network/we-are-dariah-team"]},{pers_name:{text:"Scharnhorst, Andrea",ref:["https://d-nb.info/gnd/1024345688"]},roles:["supervision"],websites:["https://www.dariah.eu/network/we-are-dariah-team"]}],research_data:{lang:[],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["research_data_management","research_infrastructure"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/dariah_de/ea8a1aa5-a2a1-4d4a-9254-f647158c66fa.json",{schema_version:"0.2.2",record_metadata:{uuid:"ea8a1aa5-a2a1-4d4a-9254-f647158c66fa",record_created_on:"2022-05-19",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Digital Research Infrastructure for the Arts and Humanities (DARIAH-DE)",abbr:"DARIAH-DE",type:"organization",ref:["https://www.wikidata.org/wiki/Q55520740"],date:[{from:"2011",to:""}],maintained:!0,websites:["https://www.wikidata.org/wiki/Q55520740"],project_desc:"DARIAH-DE is a member of the pan-European research infrastructure for the arts and humanities. It supports research in the humanities and cultural studies that work with digital methods and procedures with a research infrastructure consisting of four pillars: teaching, research, research data and technical components.",places:[{place_name:{text:"Göttingen",ref:["https://www.geonames.org/2918632/goettingen.html"]},coordinates:{lat:"51.53443",lng:"9.93228"}}],lang:["deu","eng"],related_institutions:[],related_entities:[{relation_type:"parent",title:"Digital Research Infrastructure for the Arts and Humanities (DARIAH)",uuid:"1ae31b2f-5c67-49a7-9fba-c162b314bbcb"},{relation_type:"child",title:"CLARIAH-DE",uuid:"842dc7b3-020c-47ea-a37e-d5e5aae0bde0"}],contacts:[{pers_name:{text:"Horstmann, Wolfram",ref:["https://d-nb.info/gnd/129236187"]},roles:["supervision"],websites:["https://www.fiz-karlsruhe.de/de/ueber-uns/curriculum-vitae-prof-dr-wolfram-horstmann"]}],research_data:{lang:[],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["research_data_management","research_infrastructure"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/digital_sirah_project/5209d91c-6fe3-4349-9a58-c5fde8c62ebf.json",{schema_version:"0.2.2",record_metadata:{uuid:"5209d91c-6fe3-4349-9a58-c5fde8c62ebf",record_created_on:"2022-10-24",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Digital Sirah Project",abbr:"DSP",type:"project",ref:[],date:[{from:"2019",to:"2021"}],maintained:null,websites:["https://kitab-project.org/about/funders#qatar-national-library-digital-sirah-project"],project_desc:"This project combines traditional methods of textual discovery and machine learning technologies with the goal of developing algorithms that are capable to locate reuse of Sirah (Biography) of the Prophet Muhammad, written by Muhammad b. Ishaq (d. 150/767) in a 1.5 billion word corpus of classical Arabic texts.",places:[{place_name:{text:"London",ref:["https://www.geonames.org/2643743/london.html"]},coordinates:{lat:"51.50853",lng:"-0.12574"}},{place_name:{text:"Doha",ref:["https://www.geonames.org/290030/doha.html"]},coordinates:{lat:"25.28545",lng:"51.53096"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Qatar National Library",ref:["https://ror.org/02jv93662","https://www.wikidata.org/wiki/Q1361436"]},websites:["https://www.qnl.qa/en"]}],related_entities:[{relation_type:"parent",title:"Knowledge, Information Technology, and the Arabic Book",uuid:"d4d49850-4711-4d43-97e9-c3563626d8df"}],contacts:[{pers_name:{text:"Jaques, Kevin",ref:["https://viaf.org/viaf/65884589"]},roles:["supervision"],websites:["https://religiousstudies.indiana.edu/about/faculty/jaques-kevin.html"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["classical_text","computational_text_analysis","islamic_studies","machine_learning","nlp","religion_studies","text_reuse"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/digital_edition_of_the_coptic_old_testament/1b19963e-ffc5-48f0-a1b3-81553d601497.json",{schema_version:"0.2.2",record_metadata:{uuid:"1b19963e-ffc5-48f0-a1b3-81553d601497",record_created_on:"2022-04-05",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Digitale Gesamtedition und Übersetzung des koptisch-sahidischen Alten Testaments",abbr:"",type:"project",ref:[],date:[{from:"2015",to:""}],maintained:null,websites:["https://coptot.manuscriptroom.com/","https://adw-goe.de/forschung/forschungsprojekte-akademienprogramm/koptisches-altes-testament/"],project_desc:"In this long-term project, the objective is to digitally reconstruct the Coptic Old Testament composed in an extinct Coptic dialect, Sahidic. The vast majority of manuscripts of this text are scattered across institutions in Europe and North America, which until now made a complete edition impossible. Equipped with new technologies of digital scholarship, the project will aim at overcoming this challenge by recreating the Coptic Old Testament in the form of an online database, which will contain photos and descriptions of catalogued manuscripts or their fragments, as well as English, German, and Arabic translations. It will also develop a system of digital tools for research on Coptic literature.",places:[{place_name:{text:"Göttingen",ref:["https://www.geonames.org/2918632/goettingen.html"]},coordinates:{lat:"51.53443",lng:"9.93228"}}],lang:["deu","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Akademie der Wissenschaften zu Göttingen",ref:["https://www.wikidata.org/wiki/Q414188","https://ror.org/04hsa7a08"]},websites:["https://adw-goe.de"]}],related_entities:[{relation_type:"sibling",title:"KOHD Coptica",uuid:"f67c8fcd-d190-4419-a85a-e6998da4f0ba"},{relation_type:"sibling",title:"KOHD Digital",uuid:"01ac0c0c-b09c-40cf-a75f-42e540b67c2f"},{relation_type:"sibling",title:"Qumran Digital: Text und Lexikon",uuid:"99718590-5e1e-4a64-bf84-6e2213ad1836"},{relation_type:"sibling",title:"Scripta Qumranica Electronica: Eine Verbunddatenbank und virtuelle Forschungsumgebung für die Texte vom Toten Meer",uuid:"9513964d-3509-462e-9d64-c47fd3922459"}],contacts:[{pers_name:{text:"Feder, Frank",ref:["https://d-nb.info/gnd/1162448369"]},roles:["supervision"],websites:["https://adw-goe.de/forschung/forschungsprojekte-akademienprogramm/koptisches-altes-testament/mitarbeiter/frank-feder/"]}],research_data:{lang:["cop"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["digital_edition","digital_preservation","egyptology","manuscript","religious_text","vre"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/translatio/e00179c6-b012-4651-beaf-a7ff21eb78af.json",{schema_version:"0.2.2",record_metadata:{uuid:"e00179c6-b012-4651-beaf-a7ff21eb78af",record_created_on:"2024-03-11",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Digitalisierungsprojekt Translatio",abbr:"",type:"project",ref:[],date:[{from:"2013-01-11",to:"2014-10-31"}],maintained:!0,websites:["https://digitale-sammlungen.ulb.uni-bonn.de/topic/view/3085779","https://www.ioa.uni-bonn.de/translatio/de"],project_desc:"",places:[{place_name:{text:"Bonn",ref:["https://www.geonames.org/2946447/bonn.html"]},coordinates:{lat:"50.73438",lng:"7.09549"}}],lang:["eng","deu","fra"],related_institutions:[{relation_type:"host",org_name:{text:"Universität Bonn",ref:["https://www.wikidata.org/wiki/Q152171","https://ror.org/041nas322"]},websites:["https://www.ulb.uni-bonn.de/de"]},{relation_type:"cooperation",org_name:{text:"Universitätsbibliothek Bamberg",ref:["https://www.wikidata.org/wiki/Q23786596"]},websites:["http://www.uni-bamberg.de/ub/"]},{relation_type:"cooperation",org_name:{text:"Universität Freiburg",ref:["https://www.wikidata.org/wiki/Q153987","https://ror.org/022fs9h90"]},websites:["https://www.unifr.ch/home/de/"]},{relation_type:"cooperation",org_name:{text:"Universitätsbibliothek Mainz",ref:["https://www.wikidata.org/wiki/Q2496319"]},websites:["https://www.ub.uni-mainz.de/"]},{relation_type:"cooperation",org_name:{text:"Bayerische Staatsbibliothek München",ref:["https://www.wikidata.org/wiki/Q256507","https://ror.org/031h71w90"]},websites:["https://www.bsb-muenchen.de"]},{relation_type:"cooperation",org_name:{text:"Universitätsbibliothek Tübingen",ref:["https://www.wikidata.org/wiki/Q2496347"]},websites:["http://www.ub.uni-tuebingen.de"]}],related_entities:[],contacts:[{pers_name:{text:"El-Menshawy, Yasmin",ref:[]},roles:["supervision"],websites:["https://www.dependency.uni-bonn.de/en/people/management/eteaching-coordinator"]}],research_data:{lang:["ara","fas","tur"],sustainability_plan:null,publications:{open_access:0,licensing:[]},data:{datatypes:[{label:"",stage:"raw",licensing:[],open_access:0}],repositories:[{label:"",accessibility:"public",ref:[],licensing:[],description:""}]}},stack:{database:[],backend:[],frontend:[],tools:[{label:"",self_developed:!1,ref:[],description:""}],languages:[]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","catalog","digital_preservation","history_studies","iranian_studies","media_studies","turkology"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/dobes/a8ee7d05-56b3-4312-8e1a-a07a46fdc809.json",{schema_version:"0.2.2",record_metadata:{uuid:"a8ee7d05-56b3-4312-8e1a-a07a46fdc809",record_created_on:"2022-06-21",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Documentation of Endangered Languages / Dokumentation Bedrohter Sprachen",abbr:"DoBeS",type:"project",ref:["https://www.wikidata.org/wiki/Q28134351"],date:[{from:"2000",to:"2011"}],maintained:null,websites:["https://dobes.mpi.nl/"],project_desc:"The DoBeS program was initiated in 2000 by the Volkswagen Foundation in order to document languages that are potentially in danger of becoming extinct within a few years' time. It consisted of one archiving team and several documentation teams recording language data through fieldwork. The teams carried out 67 documentation projects collecting audio and video data in a close cooperation with the speech communities. The data are described with a set of standardized metadata categories and digitally archived according to open standards and made accessible. In addition, the archive ensures the long-term persistency of the digital material.",places:[{place_name:{text:"Hanover",ref:["https://www.geonames.org/6559065/hannover-landeshauptstadt.html"]},coordinates:{lat:"52.37362",lng:"9.73711"}},{place_name:{text:"Nijmegen",ref:["https://www.geonames.org/2750053/nijmegen.html"]},coordinates:{lat:"51.8425",lng:"5.85278"}}],lang:["eng","fra","ind","por","rus","spa"],related_institutions:[{relation_type:"host",org_name:{text:"Volkswagen Stiftung",ref:["https://www.wikidata.org/wiki/Q1766743"]},websites:["https://www.volkswagenstiftung.de/","https://www.volkswagenstiftung.de/en/funding/funding-offer/documentation-endangered-languages-completed"]}],related_entities:[{relation_type:"child",title:"Documentation of Gorani, an endangered language of West Iran",uuid:"17fa004d-c9d2-4ce3-8116-b7bfff5d14ed"}],contacts:[{pers_name:{text:"Austin, Peter",ref:["https://d-nb.info/gnd/133996271"]},roles:["investigation"],websites:["https://www.soas.ac.uk/staff/staff30592.php"]}],research_data:{lang:[],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["audio","language_documentation","linguistics","video","vre"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/documentation_of_gorani/17fa004d-c9d2-4ce3-8116-b7bfff5d14ed.json",{schema_version:"0.2.2",record_metadata:{uuid:"17fa004d-c9d2-4ce3-8116-b7bfff5d14ed",record_created_on:"2022-06-16",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Documentation of Gorani, an endangered language of West Iran",abbr:"",type:"project",ref:[],date:[{from:"2007",to:"2012"}],maintained:null,websites:["https://dobes.mpi.nl/projects/gorani/","https://www.uni-bamberg.de/en/aspra/research/projects/documentation-of-gorani-an-endangered-language-of-west-iran/"],project_desc:"This project aims at documenting the endangered language and cultural practices of the Gorani speech community in western Iran. It will provide a collection of film recordings, highlighting the importance of musical performances in all areas of Gorani folklore and culture, annotated collections of religious texts, traditional folklore, oral narratives (mainly from recent history), and everyday speech, descriptive grammatical sketch of the Gawraju’i variety of Gorani and an electronic lexicon with multimedia applications.",places:[{place_name:{text:"Bamberg",ref:["https://www.geonames.org/2952984/bamberg.html"]},coordinates:{lat:"49.89873",lng:"10.90067"}},{place_name:{text:"Hamburg",ref:["https://www.geonames.org/2911298/hamburg.html"]},coordinates:{lat:"53.55073",lng:"9.99302"}},{place_name:{text:"Göttingen",ref:["https://www.geonames.org/2918632/goettingen.html"]},coordinates:{lat:"51.53443",lng:"9.93228"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Otto-Friedrich-Universität Bamberg",ref:["https://www.wikidata.org/wiki/Q707272","https://ror.org/01c1w6d29"]},websites:["https://www.uni-bamberg.de/"]},{relation_type:"host",org_name:{text:"Universität Hamburg",ref:["https://ror.org/00g30e956","https://www.wikidata.org/wiki/Q156725"]},websites:["https://www.uni-hamburg.de/"]},{relation_type:"host",org_name:{text:"Georg-August-Universität Göttingen",ref:["https://www.wikidata.org/wiki/Q152838","https://ror.org/01y9bpm73"]},websites:["https://www.uni-goettingen.de/en/1.html"]}],related_entities:[{relation_type:"parent",title:"Dokumentation Bedrohter Sprachen (DoBeS)",uuid:"a8ee7d05-56b3-4312-8e1a-a07a46fdc809"},{relation_type:"sibling",title:"Multilingual Corpus of Annotated Spoken Texts",uuid:"b37c6bd1-90d3-4718-ab58-fb1d60873186"},{relation_type:"sibling",title:"Bamberg Lexical Database for Contemporary Iranian Languages",uuid:"614f4c99-0d96-48a9-baa5-48a402a8deec"},{relation_type:"sibling",title:"Compilation and critical edition of pre-19th century Kurmanji Kurdish",uuid:"d0bda69f-d8c4-4521-ab18-af2c097ffcfc"},{relation_type:"sibling",title:"Post-predicate Elements in Iranian: Inheritance, Contact, and Information Structure",uuid:"c1a2957b-0c24-46e6-9a67-381997525a87"},{relation_type:"sibling",title:"Audition Certificates Platform",uuid:"b333a11d-b9fc-4379-9e21-fbddfa9500b1"},{relation_type:"sibling",title:"Afrikanische Stimmen in islamischen Manuskripten aus Mali: Erschließung und Erforschung afrikanischer Sprachen in arabischer Schrift (Ajami)",uuid:"eaf36ccc-5ee4-4749-80ea-7f71f479c968"},{relation_type:"sibling",title:"Beta maṣāḥǝft Manuscripts of Ethiopia and Eritrea",uuid:"169677fd-14f9-46e7-b8f1-2202fb91397c"},{relation_type:"sibling",title:"Methoden der Bildverarbeitung zur Bestimmung von visuellen Manuskript- und Zeichenmerkmalen",uuid:"eb8e91fe-952e-48b7-af0d-c026ebe37826"},{relation_type:"sibling",title:"Datenrepositorium Manuskriptkulturen",uuid:"894dcf0c-7295-4fb8-b4ba-866a5ebe3310"},{relation_type:"sibling",title:"Demarginalizing Medieval Africa: Images, Texts, and Identity in Early Solomonic Ethiopia",uuid:"46121edb-516b-4dbf-ba49-e2c5f07cec2e"},{relation_type:"sibling",title:"The Evolution of Islamic Societies (c. 600–1600 CE): Algorithmic Analysis into Social History",uuid:"659c0aba-3bdd-43eb-937d-dad4ad63e3fc"},{relation_type:"sibling",title:"The intertwined world of the oral and written transmission of sacred traditions in the Middle East",uuid:"bb852d81-0c6d-4413-8c20-1bb38c4db4e7"},{relation_type:"sibling",title:"Islamic Painted Page",uuid:"31534c48-6b74-4cc5-8aff-ea8dbc60c445"},{relation_type:"sibling",title:"Methoden der Manuskriptanalyse zur Wiedergewinnung verlorener Schrift",uuid:"892b783d-1788-451f-9efd-1c58bfb4b064"},{relation_type:"sibling",title:"SfarData",uuid:"81d8ad85-5da8-457f-99a3-6ab11128ef03"},{relation_type:"sibling",title:"SIHAFA: The Ideosphere of the Late Ottoman Arabic Press: Mapping the Discursive Field of Authors and Texts through Computational Approaches",uuid:"20ee58f5-f699-4262-a473-7765e249c871"},{relation_type:"sibling",title:"Understanding Written Artefacts",uuid:"9ca46873-3089-4a04-99fa-89c0c1b01213"},{relation_type:"sibling",title:"Ethio-SPaRe: Cultural Heritage of Christian Ethiopia. Salvation, Preservation, Research",uuid:"fbf007e0-7eee-4bb1-801d-568785d43d04"},{relation_type:"sibling",title:"From Translation to Creation: Changes in Ethiopic Style and Lexicon from Late Antiquity to the Middle Ages",uuid:"77ae1011-1b54-46b5-b676-02895e3300fc"},{relation_type:"sibling",title:"Corpus dei Manoscritti Copti Letterari",uuid:"c4f41a6d-9fb9-4c31-85f0-b66acfe41289"}],contacts:[{pers_name:{text:"Haig, Geoffrey",ref:["https://d-nb.info/gnd/1016008090"]},roles:["supervision"],websites:["https://www.uni-bamberg.de/aspra/team/aktuelles-team/prof-dr-geoffrey-haig/"]},{pers_name:{text:"Paul, Ludwig",ref:["https://www.wikidata.org/wiki/Q24043463"]},roles:["supervision"],websites:["https://www.aai.uni-hamburg.de/voror/personen/paul.html"]},{pers_name:{text:"Kreyenbroek, Philip G",ref:["https://d-nb.info/gnd/130880825"]},roles:["supervision"],websites:["https://www.uni-goettingen.de/de/133087.html"]}],research_data:{lang:["hac","kur"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["annotation","audio","corpus_resource","dialectology","iranian_studies","language_documentation","lexicon","linguistics","video","visualization","vre"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/doha_historical_dictionary/6f32aa08-b11d-48f4-8a9d-8f76738dc62e.json",{schema_version:"0.2.2",record_metadata:{uuid:"6f32aa08-b11d-48f4-8a9d-8f76738dc62e",record_created_on:"2021-11-12",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-04-04"},project:{title:"Doha Historical Dictionary (معجم الدوحة التأريخي للغة العربية)",abbr:"",type:"project",ref:[],date:[{from:"2013-05-23",to:"2028"}],maintained:!0,websites:["https://dohadictionary.org/"],project_desc:"This project aims to create a historical dictionary of Arabic language. The entries will follow changes in usage and meaning of each word from its first documented record until approximately 200 years AH / 820 AD (first phase of the project).",places:[{place_name:{text:"Doha",ref:["https://www.geonames.org/290030/doha.html"]},coordinates:{lat:"25.28545",lng:"51.53096"}}],lang:["ara"],related_institutions:[{relation_type:"host",org_name:{text:"Arab Center for Research and Policy Studies",ref:["https://www.wikidata.org/wiki/Q12192828"]},websites:["https://www.dohainstitute.edu.qa/en/pages/default.aspx"]},{relation_type:"host",org_name:{text:"Doha Institute for Graduate Studies",ref:["https://ror.org/05gd1cs26","https://www.wikidata.org/wiki/Q23418976"]},websites:["https://www.dohainstitute.org/en/Pages/index.aspx"]}],related_entities:[],contacts:[{pers_name:{text:"Baalbaki, Ramzi",ref:["https://www.wikidata.org/wiki/Q19664932"]},roles:["supervision"],websites:["https://www.aub.edu.lb/fas/arabic/Pages/Ramzi-Baalbaki-par.aspx"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","lexicography","lexicon"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/e_scriptorium/31ad93ff-ca97-4cf0-b30c-60685624e2c8.json",{schema_version:"0.2.2",record_metadata:{uuid:"31ad93ff-ca97-4cf0-b30c-60685624e2c8",record_created_on:"2022-09-08",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"eScriptorium",abbr:"",type:"project",ref:[],date:[{from:"2018",to:""}],maintained:null,websites:["https://escriptorium.openiti.org/","https://gitlab.com/scripta/escriptorium/"],project_desc:"This project provides digital recognition of handwritten documents using machine learning techniques. It offers an integrated set of tools to transcribe, annotate, translate and publish historical documents written in Arabic script.",places:[{place_name:{text:"Paris",ref:["https://www.geonames.org/2988506/paris.html"]},coordinates:{lat:"48.85339",lng:"2.34864"}},{place_name:{text:"College Park",ref:["https://www.geonames.org/4351977/college-park.html"]},coordinates:{lat:"38.98067",lng:"-76.93692"}},{place_name:{text:"Leipzig",ref:["https://www.geonames.org/2879139/leipzig.html"]},coordinates:{lat:"51.33962",lng:"12.37129"}},{place_name:{text:"London",ref:["https://www.geonames.org/2643743/london.html"]},coordinates:{lat:"51.50853",lng:"-0.12574"}},{place_name:{text:"Vienna",ref:["https://www.geonames.org/2761369/vienna.html"]},coordinates:{lat:"48.20849",lng:"16.37208"}}],lang:["eng"],related_institutions:[],related_entities:[{relation_type:"parent",title:"Scripta-PSL",uuid:"0cf58379-39c3-4e95-b7b1-cc9f7f11c7ba"},{relation_type:"parent",title:"Open Islamicate Texts Initiative",uuid:"bef2e507-b663-422e-9dd3-7e49ca299f05"}],contacts:[{pers_name:{text:"Allen, Jonathan",ref:[]},roles:["investigation"],websites:["https://sllc.umd.edu/directory/jonathan-allen"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["annotation","computational_text_analysis","htr","islamic_studies","machine_learning","nlp","ocr","translation","vre"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/ethio_spare/fbf007e0-7eee-4bb1-801d-568785d43d04.json",{schema_version:"0.2.2",record_metadata:{uuid:"fbf007e0-7eee-4bb1-801d-568785d43d04",record_created_on:"2023-11-13",record_created_by:"Kudela, Xeina Monika",last_edited_on:""},project:{title:"Ethio-SPaRe: Cultural Heritage of Christian Ethiopia. Salvation, Preservation, Research",abbr:"Ethio-SPaRe",type:"project",ref:[],date:[{from:"2009",to:"2015"}],maintained:null,websites:["https://www.aai.uni-hamburg.de/en/ethiostudies/research/ethiospare.html"],project_desc:"The Ethio-SPaRe project focused on preserving and analyzing manuscripts in Ethiopian churches and monasteries, particularly in the Tigray region. With a mission to safeguard Ethiopia's rich Christian heritage, the project aimed to identify, protect, digitize, and catalog manuscripts, creating searchable databases and virtual libraries while conducting extensive research into Ethiopian literature and oral traditions. The urgency stemmed from the imminent extinction of a substantial part of this unique cultural heritage.",places:[{place_name:{text:"Hamburg",ref:["https://www.geonames.org/2911298/hamburg.html"]},coordinates:{lat:"53.55073",lng:"9.99302"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Universität Hamburg",ref:["https://ror.org/00g30e956","https://www.wikidata.org/wiki/Q156725"]},websites:["https://www.uni-hamburg.de/"]}],related_entities:[{relation_type:"sibling",title:"Audition Certificates Platform",uuid:"b333a11d-b9fc-4379-9e21-fbddfa9500b1"},{relation_type:"sibling",title:"Afrikanische Stimmen in islamischen Manuskripten aus Mali: Erschließung und Erforschung afrikanischer Sprachen in arabischer Schrift (Ajami)",uuid:"eaf36ccc-5ee4-4749-80ea-7f71f479c968"},{relation_type:"sibling",title:"Beta maṣāḥǝft Manuscripts of Ethiopia and Eritrea",uuid:"169677fd-14f9-46e7-b8f1-2202fb91397c"},{relation_type:"sibling",title:"Methoden der Bildverarbeitung zur Bestimmung von visuellen Manuskript- und Zeichenmerkmalen",uuid:"eb8e91fe-952e-48b7-af0d-c026ebe37826"},{relation_type:"sibling",title:"Datenrepositorium Manuskriptkulturen",uuid:"894dcf0c-7295-4fb8-b4ba-866a5ebe3310"},{relation_type:"sibling",title:"Demarginalizing Medieval Africa: Images, Texts, and Identity in Early Solomonic Ethiopia",uuid:"46121edb-516b-4dbf-ba49-e2c5f07cec2e"},{relation_type:"sibling",title:"Documentation of Gorani, an endangered language of West Iran",uuid:"17fa004d-c9d2-4ce3-8116-b7bfff5d14ed"},{relation_type:"sibling",title:"The Evolution of Islamic Societies (c. 600–1600 CE): Algorithmic Analysis into Social History",uuid:"659c0aba-3bdd-43eb-937d-dad4ad63e3fc"},{relation_type:"sibling",title:"The intertwined world of the oral and written transmission of sacred traditions in the Middle East",uuid:"bb852d81-0c6d-4413-8c20-1bb38c4db4e7"},{relation_type:"sibling",title:"Islamic Painted Page",uuid:"31534c48-6b74-4cc5-8aff-ea8dbc60c445"},{relation_type:"sibling",title:"Methoden der Manuskriptanalyse zur Wiedergewinnung verlorener Schrift",uuid:"892b783d-1788-451f-9efd-1c58bfb4b064"},{relation_type:"sibling",title:"SfarData",uuid:"81d8ad85-5da8-457f-99a3-6ab11128ef03"},{relation_type:"sibling",title:"SIHAFA: The Ideosphere of the Late Ottoman Arabic Press: Mapping the Discursive Field of Authors and Texts through Computational Approaches",uuid:"20ee58f5-f699-4262-a473-7765e249c871"},{relation_type:"sibling",title:"Understanding Written Artefacts",uuid:"9ca46873-3089-4a04-99fa-89c0c1b01213"},{relation_type:"sibling",title:"From Translation to Creation: Changes in Ethiopic Style and Lexicon from Late Antiquity to the Middle Ages",uuid:"77ae1011-1b54-46b5-b676-02895e3300fc"},{relation_type:"sibling",title:"Corpus dei Manoscritti Copti Letterari",uuid:"c4f41a6d-9fb9-4c31-85f0-b66acfe41289"}],contacts:[{pers_name:{text:"Nosnitsin, Denis",ref:["https://d-nb.info/gnd/104770255X"]},roles:["supervision"],websites:["https://www.aai.uni-hamburg.de/afrika/personen/nosnitsin.html"]}],research_data:{lang:["gez"],sustainability_plan:null,publications:{open_access:0,licensing:[]},data:{datatypes:[{label:"",stage:"raw",licensing:[],open_access:0}],repositories:[{label:"",accessibility:"public",ref:[],licensing:[],description:""}]}},stack:{database:[],backend:[],frontend:[],tools:[{label:"",self_developed:!1,ref:[],description:""}],languages:[]},policies:[{description:"",ref:[]}],keywords:["african_studies","corpus_output","digital_preservation","manuscript"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/elexis/43f49ea7-ec28-4e08-9ff4-57de8c755acd.json",{schema_version:"0.2.2",record_metadata:{uuid:"43f49ea7-ec28-4e08-9ff4-57de8c755acd",record_created_on:"2022-05-31",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"European Lexicographic Infrastructure",abbr:"ELEXIS",type:"organization",ref:["https://d-nb.info/gnd/124425259X"],date:[{from:"2018-02-01",to:"2022-07-31"}],maintained:!0,websites:["https://elex.is/"],project_desc:"ELEXIS is a cooperation project carried out by 17 European partner institutions that aims to develop an infrastructure which will foster cooperation and knowledge exchange between different research communities in lexicography in order to bridge the gap between lesser-resourced languages and those for which advanced experience in e-lexicography exists. ELEXIS will introduce common standards of data management for lexicographic resources and dictionary databases and develop tools and infrastructure which will enhance and harmonize cooperation between European institutions, publishers, universities and communities have been developing dictionaries and/or dictionary data.",places:[{place_name:{text:"Ljubljana",ref:["https://www.geonames.org/3196359/ljubljana.html"]},coordinates:{lat:"46.05108",lng:"14.50513"}},{place_name:{text:"Rome",ref:["https://www.geonames.org/3169070/rome.html"]},coordinates:{lat:"41.89193",lng:"12.51133"}},{place_name:{text:"Vienna",ref:["https://www.geonames.org/2761369/vienna.html"]},coordinates:{lat:"48.20849",lng:"16.37208"}},{place_name:{text:"Tallinn",ref:["https://www.geonames.org/588409/tallinn.html"]},coordinates:{lat:"59.43696",lng:"24.75353"}},{place_name:{text:"Gaillimh",ref:["https://www.geonames.org/2964180/gaillimh.html"]},coordinates:{lat:"53.27245",lng:"-9.05095"}},{place_name:{text:"Copenhagen",ref:["https://www.geonames.org/2618424/kobenhavn.html"]},coordinates:{lat:"55.6711",lng:"12.56529"}},{place_name:{text:"Leiden",ref:["https://www.geonames.org/2751773/leiden.html"]},coordinates:{lat:"52.15833",lng:"4.49306"}},{place_name:{text:"Sofia",ref:["https://www.geonames.org/727011/sofia.html"]},coordinates:{lat:"42.69751",lng:"23.32415"}},{place_name:{text:"Madrid",ref:["https://www.geonames.org/3117735/madrid.html"]},coordinates:{lat:"40.4165",lng:"-3.70256"}},{place_name:{text:"Brno",ref:["https://www.geonames.org/3078610/brno.html"]},coordinates:{lat:"49.19522",lng:"16.60796"}},{place_name:{text:"Tel Aviv",ref:["https://www.geonames.org/293397/tel-aviv.html"]},coordinates:{lat:"32.08088",lng:"34.78057"}},{place_name:{text:"Lisbon",ref:["https://www.geonames.org/2267057/lisbon.html"]},coordinates:{lat:"38.71667",lng:"-9.13333"}},{place_name:{text:"Belgrade",ref:["https://www.geonames.org/792680/belgrade.html"]},coordinates:{lat:"44.80401",lng:"20.46513"}},{place_name:{text:"Budapest",ref:["https://www.geonames.org/3054643/budapest.html"]},coordinates:{lat:"47.49835",lng:"19.04045"}},{place_name:{text:"Trier",ref:["https://www.geonames.org/2821164/trier.html"]},coordinates:{lat:"49.75565",lng:"6.63935"}},{place_name:{text:"Pisa",ref:["https://www.geonames.org/3170647/pisa.html"]},coordinates:{lat:"43.70853",lng:"10.4036"}}],lang:["eng"],related_institutions:[{relation_type:"member",org_name:{text:"Jožef Stefan Institute",ref:["https://ror.org/05060sz93","https://www.wikidata.org/wiki/Q5918873"]},websites:["https://www.ijs.si/ijsw"]},{relation_type:"member",org_name:{text:"Sapienza University of Rome",ref:["https://www.wikidata.org/wiki/Q209344","https://ror.org/011cabk38"]},websites:["https://www.uniroma1.it/"]},{relation_type:"member",org_name:{text:"Österreichische Akademie der Wissenschaften",ref:["https://www.wikidata.org/wiki/Q299015","https://ror.org/03anc3s24"]},websites:["https://www.oeaw.ac.at/en/"]},{relation_type:"member",org_name:{text:"Institute of the Estonian Language",ref:["https://www.wikidata.org/wiki/Q387634","https://ror.org/041dzw371"]},websites:["https://en.eki.ee/index.php"]},{relation_type:"member",org_name:{text:"National University of Ireland, Galway",ref:["https://ror.org/03bea9k73","https://www.wikidata.org/wiki/Q644478"]},websites:["https://www.nuigalway.ie/"]},{relation_type:"member",org_name:{text:"Society for Danish Language and Literature",ref:["https://www.wikidata.org/wiki/Q12308333"]},websites:["https://dsl.dk/"]},{relation_type:"member",org_name:{text:"University of Copenhagen",ref:["https://www.wikidata.org/wiki/Q186285","https://ror.org/035b05819"]},websites:["https://www.ku.dk/english/"]},{relation_type:"member",org_name:{text:"The Dutch Language Institute",ref:["https://www.wikidata.org/wiki/Q5200436"]},websites:["https://ivdnt.org/"]},{relation_type:"member",org_name:{text:"Institute for Bulgarian Language",ref:["https://ror.org/00f23qy62","https://www.wikidata.org/wiki/Q12281765"]},websites:["https://ibl.bas.bg/en/"]},{relation_type:"member",org_name:{text:"Royal Spanish Academy",ref:["https://ror.org/05t8ffp36","https://www.wikidata.org/wiki/Q11993457"]},websites:["https://www.rae.es/"]},{relation_type:"member",org_name:{text:"Universidade Nova de Lisboa",ref:["https://www.wikidata.org/wiki/Q1979891","https://ror.org/012habm93"]},websites:["https://www.unl.pt/en/"]},{relation_type:"member",org_name:{text:"Belgrade Centre for Digital Humanities",ref:[]},websites:["https://web.archive.org/web/20211027232432/http://www.humanistika.org/","https://wbc-rti.info/object/link/6612","https://elex.is/rs-bcdh/"]},{relation_type:"member",org_name:{text:"Hungarian Academy of Sciences",ref:["https://www.wikidata.org/wiki/Q265058","https://ror.org/02ks8qq67"]},websites:["https://mta.hu/english/"]},{relation_type:"member",org_name:{text:"Universität Trier",ref:["https://ror.org/02778hg05","https://www.wikidata.org/wiki/Q572286"]},websites:["https://www.uni-trier.de/"]},{relation_type:"member",org_name:{text:"Institute for Computational Linguistics “A. Zampolli”",ref:["https://www.wikidata.org/wiki/Q61932915","https://ror.org/028g3pe33"]},websites:["http://www.ilc.cnr.it/"]}],related_entities:[{relation_type:"cooperation",title:"Digital Research Infrastructure for the Arts and Humanities (DARIAH)",uuid:"1ae31b2f-5c67-49a7-9fba-c162b314bbcb"},{relation_type:"cooperation",title:"CLARIN - European Research Infrastructure for Language Resources and Technology",uuid:"7e14a810-7d07-4e60-96eb-01fccf9323e8"}],contacts:[{pers_name:{text:"Krek, Simon",ref:["https://viaf.org/viaf/308782046/#Krek,_Simon,__1967-"]},roles:["supervision"],websites:["https://www.simonkrek.si/en/"]}],research_data:{lang:[],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["lexicography","research_data_management","research_infrastructure"],comment:"Some of the partner institutions are private companies which were not included in the list, as the projects focuses only on research institutions"}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/fdnext/2fd5c31a-17a5-41ea-ae62-b6c2d3921cf5.json",{schema_version:"0.2.2",record_metadata:{uuid:"2fd5c31a-17a5-41ea-ae62-b6c2d3921cf5",record_created_on:"2021-11-12",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-04-05"},project:{title:"FDNext",abbr:"",type:"project",ref:[],date:[{from:"2020",to:"2023"}],maintained:!0,websites:["https://www.forschungsdaten.org/index.php/FDNext"],project_desc:"In this project six universities in Berlin and Brandenburg cooperate and exchange their expertise to optimize and improve Research Data Management (RDM) systems in their institutions. The focus of the project lies on the following aspects: 1) establishment of a contact point for legal questions concerning RDM (First-Level-Support), 2) fostering the qualifications of researchers by extending the offer on RDM training, 3) development of subject-specific RDM strategies and project-based RDM policies, 4) analyses and establishment of suitable services and central facilities as well as 5) enhancing the interoperability with external infrastructures and international cooperation.",places:[{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}},{place_name:{text:"Potsdam",ref:["https://www.geonames.org/2852458/potsdam.html"]},coordinates:{lat:"52.39886",lng:"13.06566"}},{place_name:{text:"Frankfurt (Oder)",ref:["https://www.geonames.org/2925535/frankfurt-oder.html"]},coordinates:{lat:"52.34714",lng:"14.55062"}},{place_name:{text:"Cottbus",ref:["https://www.geonames.org/2939811/cottbus.html"]},coordinates:{lat:"51.75769",lng:"14.32888"}}],lang:["deu","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Humboldt-Universität zu Berlin",ref:["https://www.wikidata.org/wiki/Q152087","https://ror.org/01j818n92"]},websites:["https://www.hu-berlin.de/de"]},{relation_type:"host",org_name:{text:"Freie Universität Berlin",ref:["https://ror.org/046ak2485","https://www.wikidata.org/wiki/Q153006"]},websites:["https://www.fu-berlin.de/"]},{relation_type:"host",org_name:{text:"Technische Universität Berlin",ref:["https://www.wikidata.org/wiki/Q51985","https://ror.org/03v4gjf40"]},websites:["https://www.tu.berlin/"]},{relation_type:"host",org_name:{text:"Universität Potsdam",ref:["https://www.wikidata.org/wiki/Q153012","https://ror.org/03bnmw459"]},websites:["https://www.uni-potsdam.de/en/university-of-potsdam/"]},{relation_type:"host",org_name:{text:"Europa-Universität Viadrina Frankfurt (Oder)",ref:["https://www.wikidata.org/wiki/Q149481","https://ror.org/02msan859"]},websites:["https://www.europa-uni.de/en/index.html"]},{relation_type:"host",org_name:{text:"Brandenburgische Technische Universität Cottbus-Senftenberg",ref:["https://www.wikidata.org/wiki/Q149433","https://ror.org/02wxx3e24"]},websites:["https://www.b-tu.de/"]}],related_entities:[],contacts:[{pers_name:{text:"Schmiederer, Simon",ref:["https://d-nb.info/gnd/1227354606"]},roles:["investigation"],websites:["https://www.researchgate.net/profile/Simon-Schmiederer"]}],research_data:{lang:[],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["research_data_management","research_infrastructure"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/traces/77ae1011-1b54-46b5-b676-02895e3300fc.json",{schema_version:"0.2.2",record_metadata:{uuid:"77ae1011-1b54-46b5-b676-02895e3300fc",record_created_on:"2023-11-14",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"From Translation to Creation: Changes in Ethiopic Style and Lexicon from Late Antiquity to the Middle Ages",abbr:"TraCES",type:"project",ref:[],date:[{from:"2014",to:"2019"}],maintained:null,websites:["https://www.traces.uni-hamburg.de/"],project_desc:"The TraCes meticulously analyzed lexical, morphological, and stylistic features in Ethiopic texts, creating a groundbreaking digital corpus. The project's highlight is a comprehensive digital lexicon of the Gəʿəz language, departing from traditional dictionaries, providing complete lemmas, full translations, and contextual insights, resulting in the first-ever thesaurus for Gəʿəz.",places:[{place_name:{text:"Hamburg",ref:["https://www.geonames.org/2911298/hamburg.html"]},coordinates:{lat:"53.55073",lng:"9.99302"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Universität Hamburg",ref:["https://ror.org/00g30e956","https://www.wikidata.org/wiki/Q156725"]},websites:["https://www.uni-hamburg.de/"]}],related_entities:[{relation_type:"sibling",title:"Audition Certificates Platform",uuid:"b333a11d-b9fc-4379-9e21-fbddfa9500b1"},{relation_type:"sibling",title:"Afrikanische Stimmen in islamischen Manuskripten aus Mali: Erschließung und Erforschung afrikanischer Sprachen in arabischer Schrift (Ajami)",uuid:"eaf36ccc-5ee4-4749-80ea-7f71f479c968"},{relation_type:"sibling",title:"Beta maṣāḥǝft Manuscripts of Ethiopia and Eritrea",uuid:"169677fd-14f9-46e7-b8f1-2202fb91397c"},{relation_type:"sibling",title:"Methoden der Bildverarbeitung zur Bestimmung von visuellen Manuskript- und Zeichenmerkmalen",uuid:"eb8e91fe-952e-48b7-af0d-c026ebe37826"},{relation_type:"sibling",title:"Datenrepositorium Manuskriptkulturen",uuid:"894dcf0c-7295-4fb8-b4ba-866a5ebe3310"},{relation_type:"sibling",title:"Demarginalizing Medieval Africa: Images, Texts, and Identity in Early Solomonic Ethiopia",uuid:"46121edb-516b-4dbf-ba49-e2c5f07cec2e"},{relation_type:"sibling",title:"Documentation of Gorani, an endangered language of West Iran",uuid:"17fa004d-c9d2-4ce3-8116-b7bfff5d14ed"},{relation_type:"sibling",title:"Ethio-SPaRe: Cultural Heritage of Christian Ethiopia. Salvation, Preservation, Research",uuid:"fbf007e0-7eee-4bb1-801d-568785d43d04"},{relation_type:"sibling",title:"The Evolution of Islamic Societies (c. 600–1600 CE): Algorithmic Analysis into Social History",uuid:"659c0aba-3bdd-43eb-937d-dad4ad63e3fc"},{relation_type:"sibling",title:"The intertwined world of the oral and written transmission of sacred traditions in the Middle East",uuid:"bb852d81-0c6d-4413-8c20-1bb38c4db4e7"},{relation_type:"sibling",title:"Islamic Painted Page",uuid:"31534c48-6b74-4cc5-8aff-ea8dbc60c445"},{relation_type:"sibling",title:"Methoden der Manuskriptanalyse zur Wiedergewinnung verlorener Schrift",uuid:"892b783d-1788-451f-9efd-1c58bfb4b064"},{relation_type:"sibling",title:"SfarData",uuid:"81d8ad85-5da8-457f-99a3-6ab11128ef03"},{relation_type:"sibling",title:"SIHAFA: The Ideosphere of the Late Ottoman Arabic Press: Mapping the Discursive Field of Authors and Texts through Computational Approaches",uuid:"20ee58f5-f699-4262-a473-7765e249c871"},{relation_type:"sibling",title:"Understanding Written Artefacts",uuid:"9ca46873-3089-4a04-99fa-89c0c1b01213"},{relation_type:"sibling",title:"Corpus dei Manoscritti Copti Letterari",uuid:"c4f41a6d-9fb9-4c31-85f0-b66acfe41289"}],contacts:[{pers_name:{text:"Bausi, Alessandro",ref:["https://www.wikidata.org/wiki/Q62559559"]},roles:["supervision"],websites:["https://www.aai.uni-hamburg.de/afrika/personen/bausi.html"]}],research_data:{lang:["ara","gez"],sustainability_plan:null,publications:{open_access:0,licensing:[]},data:{datatypes:[{label:"",stage:"raw",licensing:[],open_access:0}],repositories:[{label:"",accessibility:"public",ref:[],licensing:[],description:""}]}},stack:{database:[],backend:[],frontend:[],tools:[{label:"",self_developed:!1,ref:[],description:""}],languages:[]},policies:[{description:"",ref:[]}],keywords:["african_studies","annotation","corpus_output","digital_preservation","lexicography","lexicon","linguistics","tei","vre"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/genesis_rabbah_loanwords/94044a63-eae5-4e1d-ba04-64874109fc36.json",{schema_version:"0.2.2",record_metadata:{uuid:"94044a63-eae5-4e1d-ba04-64874109fc36",record_created_on:"2022-05-17",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Genesis Rabbah Loanwords",abbr:"",type:"project",ref:[],date:[{from:"2018-04-04",to:"2022-09-30"}],maintained:null,websites:["https://www.oeaw.ac.at/acdh/projects/completed-projects/genr-loanwords","https://uni-salzburg.elsevierpure.com/de/projects/w%C3%B6rterbuch-der-lehnw%C3%B6rter-im-midrasch-genesis-rabba"],project_desc:"This project investigates the predominantly Greek borrowed vocabulary in the Midrash Genesis Rabbah, the earliest rabbinic commentary on the Book of Genesis written in Rabbinic Hebrew and Aramaic. It aims to compile a dictionary in TEI format and the annotation of the loanwords in the corpus for the investigation of issues pertaining to sociolinguistics as well as corpus linguistics.",places:[{place_name:{text:"Vienna",ref:["https://www.geonames.org/2761369/vienna.html"]},coordinates:{lat:"48.20849",lng:"16.37208"}},{place_name:{text:"Salzburg",ref:["https://www.geonames.org/2766824/salzburg.html"]},coordinates:{lat:"47.79941",lng:"13.04399"}}],lang:["deu","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Österreichische Akademie der Wissenschaften",ref:["https://www.wikidata.org/wiki/Q299015","https://ror.org/03anc3s24"]},websites:["https://www.oeaw.ac.at/en/"]},{relation_type:"host",org_name:{text:"Universität Salzburg",ref:["https://ror.org/00tfmqe91","https://www.wikidata.org/wiki/Q27265"]},websites:["https://www.plus.ac.at/"]}],related_entities:[{relation_type:"sibling",title:"WIBARAB: What is Bedouin-Type Arabic?",uuid:"e9cb8ab1-2d2c-4cc3-a44d-a793220a8638"},{relation_type:"sibling",title:"Vienna Corpus of Arabic Varieties",uuid:"8f343a28-a873-449c-b359-efcfab7d1201"},{relation_type:"sibling",title:"Shawi",uuid:"68422d65-ccba-4dcb-8a0e-bd4f3f9e1dc9"},{relation_type:"sibling",title:"NoMansLand: Nomads’ Manuscripts Landscape",uuid:"e050deba-6e1d-4d82-851b-cf6c1f7187a5"},{relation_type:"sibling",title:"Linguistic dynamics in the Greater Tunis Area: a corpus-based approach (TUNICO)",uuid:"79462111-75a7-4fa0-8e11-9d424293a074"},{relation_type:"sibling",title:"TUNOCENT",uuid:"325a929a-6764-41e1-b452-6556209fa74f"}],contacts:[{pers_name:{text:"Plietzsch, Susanne",ref:["https://d-nb.info/gnd/121776832"]},roles:["supervision"],websites:["https://uni-salzburg.elsevierpure.com/de/persons/susanne-plietzsch-4"]}],research_data:{lang:["arc","grc","heb"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["annotation","corpus_resource","jewish_studies","lexicon","linguistics","tei"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/glossarion/ee6404e6-57f0-4e11-bb4a-1bbd13b08cb7.json",{schema_version:"0.2.2",record_metadata:{uuid:"ee6404e6-57f0-4e11-bb4a-1bbd13b08cb7",record_created_on:"2021-11-12",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-04-08"},project:{title:"Glossarion",abbr:"",type:"project",ref:[],date:[{from:"2020",to:"2024"}],maintained:!0,websites:[],project_desc:"This project’s objective is to develop an integrative database for the results of the research project “Verses and Sayings” (Verse und Sprüche).",places:[{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}}],lang:["deu","eng"],related_institutions:[],related_entities:[{relation_type:"parent",title:"Verse und Sprueche: Impulse und Reichweiten wissenschaftlicher und popularisierender Diskurse im arabischen Sprachraum",uuid:"a2984fec-9396-488e-ad56-d3d21dc49052"}],contacts:[{pers_name:{text:"Grote, Brigitte",ref:[]},roles:["investigation"],websites:["https://www.cedis.fu-berlin.de/cedis/mitarbeiter/beschaeftigte/bgrote.html"]}],research_data:{lang:[],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["research_infrastructure"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/glossarium_graeco_arabicum/7a287a76-c663-413d-9e3e-3191b1d6093e.json",{schema_version:"0.2.2",record_metadata:{uuid:"7a287a76-c663-413d-9e3e-3191b1d6093e",record_created_on:"2022-09-26",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Glossarium Graeco-Arabicum",abbr:"",type:"project",ref:[],date:[{from:"1994",to:"2006"},{from:"2010",to:"2015"}],maintained:null,websites:["https://glossga.bbaw.de/index.html","http://www.greekintoarabic.eu/indexdcfd.html"],project_desc:"Glossarium Græco-Arabicum serves as a database which makes available the files of a lexical project, intended to open up the lexicon of the medieval Arabic translations from the Greek in all the major disciplines of philosophy and the sciences. It provides information on vocabulary and syntax of Classical and Middle Arabic and Greek, on the development of scientific and technical vocabulary and on lexical consequences of the translation movement form Greek to Arabic. The sources of the projects are mainly complied form earlier glossaries, printed editions and manuscripts.",places:[{place_name:{text:"Bochum",ref:["https://www.geonames.org/2947416/bochum.html"]},coordinates:{lat:"51.48165",lng:"7.21648"}},{place_name:{text:"Pisa",ref:["https://www.geonames.org/3170647/pisa.html"]},coordinates:{lat:"43.70853",lng:"10.4036"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Ruhr-Universität Bochum",ref:["https://ror.org/04tsk2644","https://www.wikidata.org/wiki/Q309948"]},websites:["https://www.ruhr-uni-bochum.de/de"]},{relation_type:"host",org_name:{text:"University of Pisa",ref:["https://ror.org/05xrcj819","https://www.wikidata.org/wiki/Q645663"]},websites:["https://www.unipi.it/"]}],related_entities:[],contacts:[{pers_name:{text:"Endreß, Gerhard",ref:["https://d-nb.info/gnd/115696954"]},roles:["supervision"],websites:["https://www.ruhr-uni-bochum.de/islamwiss/personen/endress.html"]}],research_data:{lang:["ara","grc"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","corpus_resource","lexicography","lexicon","science_history","tei","translation","translation_studies","vre"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/grasping_the_world_in_ottoman_istanbul/d1f743f2-7e94-4e00-a8bf-f46e56c7508e.json",{schema_version:"0.2.2",record_metadata:{uuid:"d1f743f2-7e94-4e00-a8bf-f46e56c7508e",record_created_on:"2021-11-12",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-04-08"},project:{title:"Grasping the World in Ottoman Istanbul: Visual Negotiation and Reading in Practices in Geographic Literature from the Sixteenth Century",abbr:"",type:"project",ref:[],date:[{from:"2019",to:"2022"}],maintained:null,websites:["https://www.csmc.uni-hamburg.de/written-artefacts/completed-projects/rfi02.html"],project_desc:"This project examines how geographical literature in sixteenth-century Istanbul was impacted by the vast cultural and political expiation of the Ottoman Empire in that time. As the city became a new center for scholarship and art, the elites began circulating Arabic and Persian geographical manuscripts. The project asks how this exchange was received by artists and cartographers who in turn negotiated and transformed geographic knowledge through images. Besides that, the project will also build a comprehensive online database of geographic manuscripts and their illustrations.",places:[{place_name:{text:"Hamburg",ref:["https://www.geonames.org/2911298/hamburg.html"]},coordinates:{lat:"53.55073",lng:"9.99302"}}],lang:["eng"],related_institutions:[],related_entities:[{relation_type:"parent",title:"Understanding Written Artefacts",uuid:"9ca46873-3089-4a04-99fa-89c0c1b01213"},{relation_type:"sibling",title:"Beta maṣāḥǝft Manuscripts of Ethiopia and Eritrea",uuid:"169677fd-14f9-46e7-b8f1-2202fb91397c"},{relation_type:"sibling",title:"Demarginalizing Medieval Africa: Images, Texts, and Identity in Early Solomonic Ethiopia",uuid:"46121edb-516b-4dbf-ba49-e2c5f07cec2e"},{relation_type:"sibling",title:"Colophons in Sumerian and Akkadian Literary Manuscripts from 3rd and 2nd Millennium BCE Mesopotamia",uuid:"95a2024b-9fea-4ced-8136-1130b0fb8f51"},{relation_type:"sibling",title:"Audition Certificates Platform",uuid:"b333a11d-b9fc-4379-9e21-fbddfa9500b1"}],contacts:[{pers_name:{text:"Danilenko, Nadja",ref:["https://d-nb.info/gnd/1195099657"]},roles:["supervision"],websites:["https://www.bgsmcs.fu-berlin.de/about/alumni_doctoral_fellows/nadja_danilenko.html"]}],research_data:{lang:["ara","fas","lat","tur"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["corpus_output","digital_preservation","geography","islamic_studies","manuscript"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/handschriftenportal/d0a1971a-e11b-442f-ab1a-6d8d421422c5.json",{schema_version:"0.2.2",record_metadata:{uuid:"d0a1971a-e11b-442f-ab1a-6d8d421422c5",record_created_on:"2021-11-12",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2021-11-22"},project:{title:"Handschriftenportal",abbr:"",type:"project",ref:[],date:[{from:"2018",to:"2021"}],maintained:null,websites:["https://handschriftenportal.de/"],project_desc:"This collaborative project carried out by four German libraries (see parent projects) will develop an online platform to provide metadata, descriptive information and images of all manuscripts held at German institutions, as well as a user-friendly workspace for manuscript research. It will enable researchers to access and work on data presented in a standardized and coherent way from one central access point.",places:[{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}},{place_name:{text:"Leipzig",ref:["https://www.geonames.org/2879139/leipzig.html"]},coordinates:{lat:"51.33962",lng:"12.37129"}},{place_name:{text:"Munich",ref:["https://www.geonames.org/2867714/munich.html"]},coordinates:{lat:"48.13743",lng:"11.57549"}},{place_name:{text:"Wolfenbüttel",ref:["https://www.geonames.org/2806914/wolfenbuettel.html"]},coordinates:{lat:"52.16442",lng:"10.54095"}}],lang:["deu","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Staatsbibliothek zu Berlin",ref:["https://ror.org/02ysgg478","https://www.wikidata.org/wiki/Q170109"]},websites:["https://staatsbibliothek-berlin.de/"]},{relation_type:"host",org_name:{text:"Universitätsbibliothek Leipzig",ref:["https://www.wikidata.org/wiki/Q872896"]},websites:["https://www.ub.uni-leipzig.de/start/"]},{relation_type:"host",org_name:{text:"Bayerische Staatsbibliothek",ref:["https://ror.org/031h71w90","https://www.wikidata.org/wiki/Q256507"]},websites:["https://www.bsb-muenchen.de/"]},{relation_type:"host",org_name:{text:"Herzog August Bibliothek Wolfenbüttel",ref:["https://www.wikidata.org/wiki/Q663820","https://ror.org/02y5mkh60"]},websites:["https://www.hab.de/"]}],related_entities:[],contacts:[{pers_name:{text:"Bonte, Achim",ref:["https://d-nb.info/gnd/1023548224"]},roles:["supervision"],websites:["https://staatsbibliothek-berlin.de/die-staatsbibliothek/abteilungen/generaldirektion/info-gd"]}],research_data:{lang:[],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["research_data_management","research_infrastructure"],comment:"In case of funding extension the second phase of the project should start in 2022"}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/hannah_arendt_digital/5f9179dc-cfdf-442b-b4a4-73ebf2f6256d.json",{schema_version:"0.2.2",record_metadata:{uuid:"5f9179dc-cfdf-442b-b4a4-73ebf2f6256d",record_created_on:"2021-11-12",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-04-26"},project:{title:"Hannah Arendt Digital",abbr:"",type:"project",ref:[],date:[{from:"2020-2",to:""}],maintained:null,websites:["https://hannah-arendt-edition.net/home","https://www.arendteditionprojekt.de/en/projekt/General-Information/index.html"],project_desc:"The objective of this long-term project is a first ever complete hybrid (print and online) edition of all Arendt’s published and unpublished works in their original languages. The digital edition offers commentaries and additional information about each text in the corpus as well as diverse search options. The project enables a new approach to the development of stile and thought of the author and her practice of writing between and across languages and audiences.",places:[{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}}],lang:["deu","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Freie Universität Berlin",ref:["https://ror.org/046ak2485","https://www.wikidata.org/wiki/Q153006"]},websites:["https://www.fu-berlin.de/"]}],related_entities:[],contacts:[{pers_name:{text:"Hahn, Barbara",ref:["https://d-nb.info/gnd/115655271"]},roles:["supervision"],websites:["https://as.vanderbilt.edu/german-russian-studies/bio/barbara-hahn/"]},{pers_name:{text:"Grote, Brigitte",ref:[]},roles:["investigation"],websites:["https://www.cedis.fu-berlin.de/cedis/mitarbeiter/beschaeftigte/bgrote.html"]}],research_data:{lang:["deu","eng","fra","yid"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["digital_edition","digital_preservation","literary_studies","vre"],comment:"Long-term project"}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/hpm/da4755a8-5d05-4bda-8d2e-afab81c7ce27.json",{schema_version:"0.2.2",record_metadata:{uuid:"da4755a8-5d05-4bda-8d2e-afab81c7ce27",record_created_on:"2023-01-16",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Hethitologie Portal Mainz",abbr:"HPM",type:"project",ref:[],date:[{from:"2001",to:"2007"}],maintained:null,websites:["https://www.hethport.uni-wuerzburg.de/HPM/"],project_desc:"This concluded project is an infrastructure for digital publication of cuneiform documents. Its aim is to modernize and foster the development of hittitological research by building an openly accessible database for its founding and elaborating new standardized way of their documentation. Currently the HPM infrastructure hosts data of many external researchers and projects form the field of Hittitology.",places:[{place_name:{text:"Mainz",ref:["https://www.geonames.org/2874225/mainz.html"]},coordinates:{lat:"49.98419",lng:"8.2791"}},{place_name:{text:"Würzburg",ref:["https://www.geonames.org/2805615/wuerzburg.html"]},coordinates:{lat:"49.79391",lng:"9.95121"}}],lang:["deu","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Julius Maximilian University of Würzburg",ref:["https://ror.org/00fbnyb24","https://www.wikidata.org/wiki/Q161976"]},websites:["https://www.uni-wuerzburg.de/startseite/"]},{relation_type:"host",org_name:{text:"Akademie der Wissenschaften und der Literatur Mainz",ref:["https://www.wikidata.org/wiki/Q414163","https://ror.org/01kdxra28"]},websites:["https://www.adwmainz.de/startseite.html"]}],related_entities:[{relation_type:"cooperation",title:"Cuneiform Digital Library Initiative",uuid:"b8097890-6eeb-43ba-890d-28e1490fde08"}],contacts:[{pers_name:{text:"Schwemer, Daniel",ref:["https://d-nb.info/gnd/120374277"]},roles:["supervision"],websites:["https://www.phil.uni-wuerzburg.de/altorientalistik/team/schwemer/"]}],research_data:{lang:["hit"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["corpus_output","digital_preservation","digital_publishing","inscription"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/hmml/52ce273e-7935-42fd-82e8-806f6aaa3049.json",{schema_version:"0.2.2",record_metadata:{uuid:"52ce273e-7935-42fd-82e8-806f6aaa3049",record_created_on:"2021-11-12",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-04-26"},project:{title:"Hill Museum & Manuscript Library",abbr:"HMML",type:"organization",ref:["https://www.wikidata.org/wiki/Property:P9943"],date:[{from:"1965",to:""}],maintained:!0,websites:["https://hmml.org"],project_desc:"HMML is an enterprise of saving and cataloguing manuscripts from all across the globe. It’s history reaches back to the 1960s when first repository of manuscripts’ photographs in form of microfilms was initiated at the Saint John’s University. Nowadays HMML archives approximately 300,000 manuscripts containing more than 70 languages. In 2015 the library launched its online platform of digitalized manuscripts to make them available for public and further research.",places:[{place_name:{text:"Collegeville",ref:["https://www.geonames.org/5021784/collegeville.html"]},coordinates:{lat:"45.59441",lng:"-94.36305"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"College of Saint Benedict & Saint John’s University",ref:["https://ror.org/00watgv28","https://www.wikidata.org/wiki/Q5146820"]},websites:["https://www.csbsju.edu/"]}],related_entities:[],contacts:[{pers_name:{text:"Stewart, Columba",ref:["https://www.wikidata.org/wiki/Q5149540"]},roles:["supervision"],websites:["https://hmml.org/about/staff/stewart/","https://www.csbsju.edu/sot/sem/faculty/staff-listing/sot/sem-faculty/stewart-columba"]}],research_data:{lang:["amh","ara","bam","deu","ful","gez","hye","lat","mal","mlt","nep","por","san","syr"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["catalog","digital_preservation","manuscript"],comment:"The history of the organization reaches back to 1964. In 2005 it was renamed to its current name, “Hill Museum & Manuscript Library”; see the history of the organization: https://hmml.org/about/history/"}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/hist-me/85590bb4-4b9a-49c9-8e41-d548a7d234e1.json",{schema_version:"0.2.2",record_metadata:{uuid:"85590bb4-4b9a-49c9-8e41-d548a7d234e1",record_created_on:"2021-11-12",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-04-26"},project:{title:"Historical Middle East Data Alliance",abbr:"Hist-ME",type:"project",ref:[],date:[{from:"2020",to:""}],maintained:null,websites:["https://github.com/Hist-ME"],project_desc:"An informal alliance for exchanging research data related to the historical Middle East.",places:[{place_name:{text:"",ref:[]},coordinates:{lat:"52.52437",lng:"13.41053"}}],lang:[],related_institutions:[],related_entities:[],contacts:[{pers_name:{text:"Grossner, Karl",ref:["https://viaf.org/viaf/308232467/#Grossner,_Karl,_1950-"]},roles:["supervision"],websites:["https://www.worldhistory.pitt.edu/people/ant-23"]},{pers_name:{text:"Gibson, Nathan",ref:["https://viaf.org/viaf/59147905242279092527/#Gibson,_Nathan_P."]},roles:["supervision"],websites:["https://biblia-arabica.com/team/nathan-gibson/"]},{pers_name:{text:"Beers, Theodore",ref:[]},roles:["supervision"],websites:["https://www.geschkult.fu-berlin.de/en/e/semiarab/arabistik/Seminar/Mitarbeiterinnen-und-Mitarbeiter/bua/beers/"]},{pers_name:{text:"Grallert, Till",ref:["https://www.wikidata.org/wiki/Q110952396"]},roles:["supervision"],websites:["https://www.geschichte.hu-berlin.de/de/bereiche-und-lehrstuehle/digital-history/personen/till-grallert"]}],research_data:{lang:[],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["collaboration_platform","research_data_management"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/hunaynnet/70944a30-3932-46bb-8c3f-410a48d9e0b9.json",{schema_version:"0.2.2",record_metadata:{uuid:"70944a30-3932-46bb-8c3f-410a48d9e0b9",record_created_on:"2022-05-09",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"HUNAYNNET",abbr:"",type:"project",ref:[],date:[{from:"2016",to:"2021"}],maintained:null,websites:["https://hunaynnet.oeaw.ac.at/","https://cordis.europa.eu/project/id/679083/de"],project_desc:"This project is a first ever attempt to compile a digital trilingual and linguistically annotated parallel corpus of Greek classical scientific and philosophical literature and the Syriac and Arabic translations thereof. Besides an online lexicography the database is enhanced by a linguistic corpus management system providing advanced search tools which help to compare and analyze the texts in all three languages.",places:[{place_name:{text:"Vienna",ref:["https://www.geonames.org/2761369/vienna.html"]},coordinates:{lat:"48.20849",lng:"16.37208"}}],lang:["deu","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Österreichische Akademie der Wissenschaften",ref:["https://www.wikidata.org/wiki/Q299015","https://ror.org/03anc3s24"]},websites:["https://www.oeaw.ac.at/en/"]}],related_entities:[],contacts:[{pers_name:{text:"Kessel, Grigory",ref:["https://d-nb.info/gnd/1069608009"]},roles:["supervision"],websites:["https://www.oeaw.ac.at/fileadmin/Institute/imafo/pdf/forschung/byzanzforschung/Staff/CV_GrigoryKessel_de.pdf","https://www.ias.edu/scholars/grigory-kessel"]}],research_data:{lang:["ara","grc","syr"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["annotation","arabic_studies","corpus_output","digital_preservation","manuscript","science_history","semitic_studies","translation","translation_studies","vre"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/irankoran/8e4ab5b4-7298-4d55-b490-eb2943527981.json",{schema_version:"0.2.2",record_metadata:{uuid:"8e4ab5b4-7298-4d55-b490-eb2943527981",record_created_on:"2021-11-01",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-04-26"},project:{title:"Irankoran",abbr:"",type:"project",ref:[],date:[{from:"2017",to:"2020"}],maintained:null,websites:["https://www.bbaw.de/forschung/irankoran","https://corpuscoranicum.de/de/about"],project_desc:"This project is dedicated to the study of early Qur’anic manuscripts from Iran with the central question of which kind of deviations in the text of the Quran, as it was fixed in the 10th century, are historically verifiable. The project will develop an online catalogue of all Qur’anic manuscripts held in the National Museum of Iran and other collections, create transliterations of Arabic text from selected pages and date the parchment with radiocarbon measurement. All these steps will be followed by analysis of the selected texts in order to verify the deviation from the canonical readings.",places:[{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}}],lang:["deu","eng","fra"],related_institutions:[{relation_type:"host",org_name:{text:"Berlin-Brandenburgische Akademie der Wissenschaften",ref:["https://ror.org/05jgq9443","https://www.wikidata.org/wiki/Q219989"]},websites:["https://www.bbaw.de/"]}],related_entities:[{relation_type:"sibling",title:"Corpus Coranicum",uuid:"0fd7b9cd-fdae-441b-a6fd-a791d4583ce0"}],contacts:[{pers_name:{text:"Aghaei, Ali",ref:[]},roles:["supervision"],websites:["https://www.uni-paderborn.de/person/87590"]}],research_data:{lang:["ara","fas"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["digital_edition","digital_preservation","islamic_studies","manuscript","religion_studies","religious_text","translation"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/islamic_painted_page/31534c48-6b74-4cc5-8aff-ea8dbc60c445.json",{schema_version:"0.2.2",record_metadata:{uuid:"31534c48-6b74-4cc5-8aff-ea8dbc60c445",record_created_on:"2022-08-12",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Islamic Painted Page",abbr:"",type:"project",ref:[],date:[{from:"2013",to:""}],maintained:null,websites:["http://ipp.manuscript-cultures.uni-hamburg.de/","https://blogs.bl.uk/asian-and-african/2019/06/islamic-painted-page-growing-a-database.html"],project_desc:"Islamic Painted Page is an online database of Islamicate arts of the book, which originated from a personal project of Stephen Serpell and now turned to major international recourse with over 42,000 references to paintings, illuminations and bindings from over 270 collections around the globe. Its functions are twofold: firstly, it enables users to locate and compare works worldwide using a single database, displaying images wherever possible; and secondly, it signposts users onward to more authoritative sources, with hotlinks direct to the specific image pages of collection websites where available, and page-specific references for printed publications. The database is currently hosted by the University Hamburg.",places:[{place_name:{text:"Hamburg",ref:["https://www.geonames.org/2911298/hamburg.html"]},coordinates:{lat:"53.55073",lng:"9.99302"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Universität Hamburg",ref:["https://ror.org/00g30e956","https://www.wikidata.org/wiki/Q156725"]},websites:["https://www.uni-hamburg.de/"]}],related_entities:[{relation_type:"sibling",title:"Audition Certificates Platform",uuid:"b333a11d-b9fc-4379-9e21-fbddfa9500b1"},{relation_type:"sibling",title:"Afrikanische Stimmen in islamischen Manuskripten aus Mali: Erschließung und Erforschung afrikanischer Sprachen in arabischer Schrift (Ajami)",uuid:"eaf36ccc-5ee4-4749-80ea-7f71f479c968"},{relation_type:"sibling",title:"Beta maṣāḥǝft Manuscripts of Ethiopia and Eritrea",uuid:"169677fd-14f9-46e7-b8f1-2202fb91397c"},{relation_type:"sibling",title:"Methoden der Bildverarbeitung zur Bestimmung von visuellen Manuskript- und Zeichenmerkmalen",uuid:"eb8e91fe-952e-48b7-af0d-c026ebe37826"},{relation_type:"sibling",title:"Datenrepositorium Manuskriptkulturen",uuid:"894dcf0c-7295-4fb8-b4ba-866a5ebe3310"},{relation_type:"sibling",title:"Demarginalizing Medieval Africa: Images, Texts, and Identity in Early Solomonic Ethiopia",uuid:"46121edb-516b-4dbf-ba49-e2c5f07cec2e"},{relation_type:"sibling",title:"Documentation of Gorani, an endangered language of West Iran",uuid:"17fa004d-c9d2-4ce3-8116-b7bfff5d14ed"},{relation_type:"sibling",title:"The Evolution of Islamic Societies (c. 600–1600 CE): Algorithmic Analysis into Social History",uuid:"659c0aba-3bdd-43eb-937d-dad4ad63e3fc"},{relation_type:"sibling",title:"The intertwined world of the oral and written transmission of sacred traditions in the Middle East",uuid:"bb852d81-0c6d-4413-8c20-1bb38c4db4e7"},{relation_type:"sibling",title:"Methoden der Manuskriptanalyse zur Wiedergewinnung verlorener Schrift",uuid:"892b783d-1788-451f-9efd-1c58bfb4b064"},{relation_type:"sibling",title:"SfarData",uuid:"81d8ad85-5da8-457f-99a3-6ab11128ef03"},{relation_type:"sibling",title:"SIHAFA: The Ideosphere of the Late Ottoman Arabic Press: Mapping the Discursive Field of Authors and Texts through Computational Approaches",uuid:"20ee58f5-f699-4262-a473-7765e249c871"},{relation_type:"sibling",title:"Understanding Written Artefacts",uuid:"9ca46873-3089-4a04-99fa-89c0c1b01213"},{relation_type:"sibling",title:"Ethio-SPaRe: Cultural Heritage of Christian Ethiopia. Salvation, Preservation, Research",uuid:"fbf007e0-7eee-4bb1-801d-568785d43d04"},{relation_type:"sibling",title:"From Translation to Creation: Changes in Ethiopic Style and Lexicon from Late Antiquity to the Middle Ages",uuid:"77ae1011-1b54-46b5-b676-02895e3300fc"},{relation_type:"sibling",title:"Corpus dei Manoscritti Copti Letterari",uuid:"c4f41a6d-9fb9-4c31-85f0-b66acfe41289"}],contacts:[{pers_name:{text:"Serpell, Stephen",ref:[]},roles:["supervision"],websites:["https://www.csmc.uni-hamburg.de/about/people/serpell.html"]}],research_data:{lang:["ara","fas","tur"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["art_studies","catalog","digital_preservation","image","islamic_studies","manuscript"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/isnalyser/da852d13-2483-443b-a2f3-77c0d19d08bd.json",{schema_version:"0.2.2",record_metadata:{uuid:"da852d13-2483-443b-a2f3-77c0d19d08bd",record_created_on:"2022-11-25",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Isnalyser",abbr:"",type:"project",ref:[],date:[{from:"2019",to:""}],maintained:null,websites:["https://github.com/dhakarat/isnalyser"],project_desc:"For scholars studying ḥadīth texts, drawing an isnād tree with more than 40 transmitters is a tedious task, and finding the right medium to display it fully can even prove to be impossible. isnalyser is a simple program for the automation of drawing isnād trees and for their customizable display in handy formats.",places:[{place_name:{text:"Tübingen",ref:["https://www.geonames.org/2820860/tuebingen.html"]},coordinates:{lat:"48.52266",lng:"9.05222"}}],lang:["eng"],related_institutions:[],related_entities:[{relation_type:"parent",title:"Time, Space and Relations in Hadith Literature: A Machine Learning Approach",uuid:"2b2d72f0-c4d6-462b-b47f-7c3550acdad3"}],contacts:[{pers_name:{text:"Bednarkiewicz, Maroussia",ref:["https://viaf.org/viaf/9154380928130290538/"]},roles:["supervision"],websites:["https://uni-tuebingen.de/en/faculties/faculty-of-humanities/departments/asian-and-oriental-studies/oriental-and-islamic-studies/department/staff/maroussia-bednarkiewicz/"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:[],backend:[],frontend:[],tools:[{label:"isnalyser",self_developed:!0,ref:["https://github.com/dhakarat/isnalyser"],description:"isnalyser is a simple program for the automation of drawing isnād trees and for their customizable display in handy formats."}],languages:["python"]},policies:[],keywords:["hadith","islamic_studies","isnad","religion_studies"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/anonym_classic/d1e6d69b-5e9a-4b4a-85ad-09aac56ed2d9.json",{schema_version:"0.2.2",record_metadata:{uuid:"d1e6d69b-5e9a-4b4a-85ad-09aac56ed2d9",record_created_on:"2021-11-08",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-02-18"},project:{title:"Kalila and Dimna – AnonymClassic",abbr:"",type:"project",ref:[],date:[{from:"2018-01-01",to:"2022-12-31"}],maintained:null,websites:["https://www.geschkult.fu-berlin.de/en/e/kalila-wa-dimna/index.html","https://kalila-and-dimna.fu-berlin.de/"],project_desc:"AnonymClassic is the first ever comprehensive study of Kalila and Dimna, one of the most important text of premodern world literature which passed from Hinduism and Buddhism via Islam to Christianity. Its Arabic versions constitute a source of all further translations into European languages and are also the main focus of the project, which analyzes the transmission processes of the work from India to Europe with Arabic as cultural bridge.",places:[{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}}],lang:["deu","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Freie Universität Berlin",ref:["https://ror.org/046ak2485","https://www.wikidata.org/wiki/Q153006"]},websites:["https://www.fu-berlin.de/"]}],related_entities:[{relation_type:"sibling",title:"Verse und Sprueche: Impulse und Reichweiten wissenschaftlicher und popularisierender Diskurse im arabischen Sprachraum",uuid:"a2984fec-9396-488e-ad56-d3d21dc49052"},{relation_type:"sibling",title:"Country of Words: Reading and Reception of Palestinian Literature from 1948 to the Present",uuid:"2adf7ddc-9dd5-49b3-842c-9dc48dbbf36e"},{relation_type:"sibling",title:"Keywords for the Study of the Arabic Literary and Manuscript Tradition",uuid:"7050ac6d-523c-4ba0-b381-48ec200ff6c4"},{relation_type:"cooperation",title:"Arabic Literature Cosmopolitan",uuid:"46aff246-b6ef-4632-90c2-0993a9f9b1f5"},{relation_type:"sibling",title:"Memory Spaces: Mapping Oral History in Mosul",uuid:"aec92ee9-7c8a-49ce-8491-46667fc75505"}],contacts:[{pers_name:{text:"Gruendler, Beatrice",ref:["https://d-nb.info/gnd/111749344X"]},roles:["supervision"],websites:["https://www.geschkult.fu-berlin.de/e/semiarab/arabistik/Seminar/Mitarbeiterinnen-und-Mitarbeiter/Professuren/Gruendler/"]}],research_data:{lang:["ara","fas"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","classical_text","digital_edition","digital_preservation","literary_studies","manuscript","translation","vre"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/kallimachos/5755bad5-4162-48ce-84b4-997819fa61b7.json",{schema_version:"0.2.2",record_metadata:{uuid:"5755bad5-4162-48ce-84b4-997819fa61b7",record_created_on:"2021-11-01",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-05-04"},project:{title:"Kallimachos",abbr:"",type:"organization",ref:[],date:[{from:"2014",to:"2017"},{from:"2017",to:"2019"}],maintained:null,websites:["https://www.kallimachos.de/"],project_desc:"Kallimachos is a Digital Humanities center at the University of Würzburg. It was developed via a project by the same name funded between 2014 and 2019. The center supports humanities scholars in applying digital methods in their research by providing technical and social infrastructure, software, and prototypical workflows. The center also establishes an integral structure for research data management.",places:[{place_name:{text:"Würzburg",ref:["https://www.geonames.org/2805615/wuerzburg.html"]},coordinates:{lat:"49.79391",lng:"9.95121"}}],lang:["deu"],related_institutions:[{relation_type:"host",org_name:{text:"Julius Maximilian University of Würzburg",ref:["https://ror.org/00fbnyb24","https://www.wikidata.org/wiki/Q161976"]},websites:["https://www.uni-wuerzburg.de/startseite/"]}],related_entities:[],contacts:[{pers_name:{text:"Hasse, Dag Nikolaus",ref:[]},roles:["investigation"],websites:["https://www.philosophie.uni-wuerzburg.de/institut/allelehrsthlefrphilosophie/profdrdagnikolaushasse/"]}],research_data:{lang:[],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["collaboration_platform","research_data_management","research_infrastructure"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/kalimat/7050ac6d-523c-4ba0-b381-48ec200ff6c4.json",{schema_version:"0.2.2",record_metadata:{uuid:"7050ac6d-523c-4ba0-b381-48ec200ff6c4",record_created_on:"2021-10-30",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Keywords for the Study of the Arabic Literary and Manuscript Tradition",abbr:"KALiMaT",type:"project",ref:[],date:[{from:"2024",to:"2027"}],maintained:!0,websites:[],project_desc:"KALiMaT is the first bilingual, open-access Arabic-English online living handbook of short articles on historical terms from the pre-modern and early modern literary tradition. Each article addresses a lemma, providing analysis and contextualization that makes the historical term accessible. With its nuanced approach focused on the analysis of concepts from the Arabic tradition and the critical examination of Western and modern literary categories, as well as with its bilingual publication strategy in both English and Arabic, KALiMaT contributes to the decolonization of knowledge. The project will be hosted on the Open Encyclopedia System infrastructure offered by Freie Universität Berlin.",places:[{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}}],lang:["ara","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Freie Universität Berlin",ref:["https://ror.org/046ak2485","https://www.wikidata.org/wiki/Q153006"]},websites:["https://www.fu-berlin.de/"]}],related_entities:[{relation_type:"sibling",title:"Country of Words: Reading and Reception of Palestinian Literature from 1948 to the Present",uuid:"2adf7ddc-9dd5-49b3-842c-9dc48dbbf36e"},{relation_type:"sibling",title:"Verse und Sprueche: Impulse und Reichweiten wissenschaftlicher und popularisierender Diskurse im arabischen Sprachraum",uuid:"a2984fec-9396-488e-ad56-d3d21dc49052"},{relation_type:"sibling",title:"Kalila and Dimna – AnonymClassic",uuid:"d1e6d69b-5e9a-4b4a-85ad-09aac56ed2d9"},{relation_type:"cooperation",title:"Open Encyclopedia System",uuid:"2860c96f-323e-4c33-97c6-4219bcf99f52"},{relation_type:"sibling",title:"Arabic Literature Cosmopolitan",uuid:"46aff246-b6ef-4632-90c2-0993a9f9b1f5"},{relation_type:"sibling",title:"Memory Spaces: Mapping Oral History in Mosul",uuid:"aec92ee9-7c8a-49ce-8491-46667fc75505"}],contacts:[{pers_name:{text:"Gruendler, Beatrice",ref:["https://d-nb.info/gnd/111749344X"]},roles:["supervision"],websites:["https://www.geschkult.fu-berlin.de/e/semiarab/arabistik/Seminar/Mitarbeiterinnen-und-Mitarbeiter/Professuren/Gruendler/"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[]},data:{datatypes:[{label:"",stage:"raw",licensing:[],open_access:0}],repositories:[{label:"",accessibility:"public",ref:[],licensing:[],description:""}]}},stack:{database:[],backend:[],frontend:[],tools:[{label:"",self_developed:!1,ref:[],description:""}],languages:[]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","digital_publishing","encyclopedia","literary_studies"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/kitab/d4d49850-4711-4d43-97e9-c3563626d8df.json",{schema_version:"0.2.2",record_metadata:{uuid:"d4d49850-4711-4d43-97e9-c3563626d8df",record_created_on:"2021-11-01",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-04-05"},project:{title:"Knowledge, Information Technology, and the Arabic Book",abbr:"KITAB",type:"project",ref:[],date:[{from:"2018",to:"2023"}],maintained:!0,websites:["https://kitab-project.org/"],project_desc:"KITAB is a platform which enables exploration of Arabic texts in digital form. It also provides a digital toolbox and a forum for discussions about Arabic literature. The main research focus of the project lies in the question of how authors copied from previous works. The research is conducted on a corpus of texts created for the needs of the project and powered by technologies at the cutting edge of computer science. All documentation is openly accessible on GitHub.",places:[{place_name:{text:"London",ref:["https://www.geonames.org/2643743/london.html"]},coordinates:{lat:"51.50853",lng:"-0.12574"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"The Aga Khan University (International)",ref:["https://www.wikidata.org/wiki/Q4690953"]},websites:["https://www.aku.edu/Pages/united-kingdom.aspx","https://www.aku.edu/Pages/home.aspx"]}],related_entities:[{relation_type:"sibling",title:"OpenITI",uuid:"bef2e507-b663-422e-9dd3-7e49ca299f05"},{relation_type:"child",title:"Digital Sirah Project",uuid:"5209d91c-6fe3-4349-9a58-c5fde8c62ebf"}],contacts:[{pers_name:{text:"Savant, Sarah",ref:["https://d-nb.info/gnd/1044734957"]},roles:["supervision"],websites:["https://www.aku.edu/ismc/people/Pages/sarah-bowen-savant.aspx"]},{pers_name:{text:"Romanov, Maxim",ref:[]},roles:["investigation"],websites:["https://www.aai.uni-hamburg.de/en/voror/personen/romanov.html"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["annotation","arabic_studies","collaboration_platform","computational_text_analysis","corpus_resource","isnad","literary_studies","network_analysis","nlp","ocr","text_reuse","visualization","vre"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/kohd_coptica/f67c8fcd-d190-4419-a85a-e6998da4f0ba.json",{schema_version:"0.2.2",record_metadata:{uuid:"f67c8fcd-d190-4419-a85a-e6998da4f0ba",record_created_on:"2023-11-13",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"KOHD Coptica",abbr:"",type:"project",ref:[],date:[{from:"2016",to:"2022"}],maintained:null,websites:["https://coptica.kohd.adw-goe.de/content/start.xml"],project_desc:"The KOHD Coptica project, part of the Cataloging of Oriental Manuscripts in Germany initiative, catalogs and digitizes Coptic manuscripts in the Berlin Papyrus Collection. The ongoing database development facilitates efficient searches and standardized presentations of metadata, with records gradually released as cataloging and digitization progress.",places:[{place_name:{text:"Göttingen",ref:["https://www.geonames.org/2918632/goettingen.html"]},coordinates:{lat:"51.53443",lng:"9.93228"}}],lang:["eng","deu"],related_institutions:[{relation_type:"host",org_name:{text:"Akademie der Wissenschaften zu Göttingen",ref:["https://www.wikidata.org/wiki/Q414188","https://ror.org/04hsa7a08"]},websites:["https://adw-goe.de"]},{relation_type:"cooperation",org_name:{text:"Universität Leipzig",ref:["https://ror.org/03s7gtk40","https://www.wikidata.org/wiki/Q154804"]},websites:["https://www.uni-leipzig.de/"]}],related_entities:[{relation_type:"sibling",title:"Digitale Gesamtedition und Übersetzung des koptisch-sahidischen Alten Testaments",uuid:"1b19963e-ffc5-48f0-a1b3-81553d601497"},{relation_type:"sibling",title:"KOHD Digital",uuid:"01ac0c0c-b09c-40cf-a75f-42e540b67c2f"},{relation_type:"sibling",title:"Qumran Digital: Text und Lexikon",uuid:"99718590-5e1e-4a64-bf84-6e2213ad1836"},{relation_type:"sibling",title:"Scripta Qumranica Electronica: Eine Verbunddatenbank und virtuelle Forschungsumgebung für die Texte vom Toten Meer",uuid:"9513964d-3509-462e-9d64-c47fd3922459"}],contacts:[{pers_name:{text:"Behlmer, Heike",ref:["https://d-nb.info/gnd/1075292484"]},roles:["supervision"],websites:["https://www.uni-goettingen.de/de/472658.html"]}],research_data:{lang:["cop"],sustainability_plan:null,publications:{open_access:0,licensing:[]},data:{datatypes:[{label:"",stage:"raw",licensing:[],open_access:0}],repositories:[{label:"",accessibility:"public",ref:[],licensing:[],description:""}]}},stack:{database:[],backend:[],frontend:[],tools:[{label:"",self_developed:!1,ref:[],description:""}],languages:[]},policies:[{description:"",ref:[]}],keywords:["catalog","digital_preservation","egyptology","manuscript"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/kohd_digital/01ac0c0c-b09c-40cf-a75f-42e540b67c2f.json",{schema_version:"0.2.2",record_metadata:{uuid:"01ac0c0c-b09c-40cf-a75f-42e540b67c2f",record_created_on:"2022-02-14",record_created_by:"Kudela, Monkia Xenia",last_edited_on:"2022-02-18"},project:{title:"KOHD Digital",abbr:"",type:"project",ref:[],date:[{from:"2016",to:"2022"}],maintained:null,websites:["https://orient-kohd.dl.uni-leipzig.de/content/index.xml"],project_desc:"KOHD Digital is a databank of KODH (Die Katalogisierung der Orientalischen Handschriften in Deutschland) – a research project that aims at systematizing not yet cataloged manuscripts from various German libraries. Previously all texts were published in printed catalogues but since 2016 they appear mostly online in KHOD Digital databank.",places:[{place_name:{text:"Göttingen",ref:["https://www.geonames.org/2918632/goettingen.html"]},coordinates:{lat:"51.53443",lng:"9.93228"}}],lang:["deu","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Akademie der Wissenschaften zu Göttingen",ref:["https://www.wikidata.org/wiki/Q414188","https://ror.org/04hsa7a08"]},websites:["https://adw-goe.de"]}],related_entities:[{relation_type:"sibling",title:"Digitale Gesamtedition und Übersetzung des koptisch-sahidischen Alten Testaments",uuid:"1b19963e-ffc5-48f0-a1b3-81553d601497"},{relation_type:"sibling",title:"KOHD Coptica",uuid:"f67c8fcd-d190-4419-a85a-e6998da4f0ba"},{relation_type:"sibling",title:"Qumran Digital: Text und Lexikon",uuid:"99718590-5e1e-4a64-bf84-6e2213ad1836"},{relation_type:"sibling",title:"Scripta Qumranica Electronica: Eine Verbunddatenbank und virtuelle Forschungsumgebung für die Texte vom Toten Meer",uuid:"9513964d-3509-462e-9d64-c47fd3922459"}],contacts:[{pers_name:{text:"Seidensticker, Tilman",ref:["https://d-nb.info/gnd/131508415"]},roles:["supervision"],websites:["https://www.gw.uni-jena.de/seidensticker-tilman"]}],research_data:{lang:["ara","bod","fas","khm","san","tam","tur"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","catalog","digital_preservation","iranian_studies","manuscript","turkology"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/kompetenzwerk_d/6c5643df-bfb8-48e8-a7c6-473146cf497d.json",{schema_version:"0.2.2",record_metadata:{uuid:"6c5643df-bfb8-48e8-a7c6-473146cf497d",record_created_on:"2021-11-01",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-04-05"},project:{title:"KompetenzwerkD",abbr:"",type:"organization",ref:[],date:[{from:"2020",to:""}],maintained:null,websites:["https://www.saw-leipzig.de/de/akademie-digital/akademie-digital/kompetenzwerkd-saechsisches-forschungszentrum-und-kompetenznetzwerk-fuer-digitale-geisteswissenschaften-und-kulturelles-erbe","https://kompetenzwerkd.github.io/infoportal/"],project_desc:"KompetenzwerkD is a research center for the Digital Humanities for various extramural research institutes in Saxony (see the project’s website). The objectives is to enhance the cooperation and exchange between the local institutes, implementation of Open Data Policy promotion and further development of digital methods in humanistic research.",places:[{place_name:{text:"Leipzig",ref:["https://www.geonames.org/2879139/leipzig.html"]},coordinates:{lat:"51.33962",lng:"12.37129"}}],lang:["deu"],related_institutions:[{relation_type:"member",org_name:{text:"Sächsische Akademie der Wissenschaften zu Leipzig",ref:["https://www.wikidata.org/wiki/Q27891200","https://ror.org/03zxjdk07"]},websites:["https://www.saw-leipzig.de/de/aktuelles"]},{relation_type:"member",org_name:{text:"Leibniz-Institut für Geschichte und Kultur des östlichen Europa e.V.",ref:["https://www.wikidata.org/wiki/Q1499019"]},websites:["https://leibniz-gwzo.de/de"]},{relation_type:"member",org_name:{text:"Simon-Dubnow-Institut für Jüdische Geschichte und Kultur",ref:["https://d-nb.info/gnd/5236159-7","https://ror.org/03j1wg370"]},websites:["https://www.dubnow.de/"]},{relation_type:"member",org_name:{text:"Institut für Sächsische Geschichte und Volkskunde e.V",ref:["https://d-nb.info/gnd/10048270-3"]},websites:["https://www.isgv.de/"]},{relation_type:"member",org_name:{text:"Sorbisches Institut e.V. / serbski institut z.t.",ref:["https://ror.org/03hayrn10","https://www.wikidata.org/wiki/Q149887"]},websites:["https://www.serbski-institut.de/de/home/"]}],related_entities:[],contacts:[{pers_name:{text:"Wiesmeth, Hans",ref:["https://d-nb.info/gnd/109432703"]},roles:["supervision"],websites:["https://www.saw-leipzig.de/de/mitglieder/wiesmethh"]}],research_data:{lang:[],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["collaboration_platform","research_data_management","research_infrastructure"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/tunico/79462111-75a7-4fa0-8e11-9d424293a074.json",{schema_version:"0.2.2",record_metadata:{uuid:"79462111-75a7-4fa0-8e11-9d424293a074",record_created_on:"2022-05-17",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Linguistic dynamics in the Greater Tunis Area: a corpus-based approach (TUNICO)",abbr:"TUNICO",type:"project",ref:[],date:[{from:"2013-08-01",to:"2016-12-31"}],maintained:null,websites:["https://tunico.acdh.oeaw.ac.at/project.html","https://www.oeaw.ac.at/acdh/projects/completed-projects/tunico"],project_desc:"The focus of this project lies on the Arabic dialect spoken in the Tunisian capital. It investigates the linguistic dynamics caused by recent demographic changes in the metropolitan area of Tunis and its intention is to gather data through field recordings made with young speakers who were born in Tunis but descended from parents who arrived to the capital from other regions. Based on this data two digital language resources were created: a corpus of unmonitored speech that contains both conversations and narratives and a dictionary based on this corpus and on previously published resources.",places:[{place_name:{text:"Vienna",ref:["https://www.geonames.org/2761369/vienna.html"]},coordinates:{lat:"48.20849",lng:"16.37208"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Österreichische Akademie der Wissenschaften",ref:["https://www.wikidata.org/wiki/Q299015","https://ror.org/03anc3s24"]},websites:["https://www.oeaw.ac.at/en/"]}],related_entities:[{relation_type:"sibling",title:"WIBARAB: What is Bedouin-Type Arabic?",uuid:"e9cb8ab1-2d2c-4cc3-a44d-a793220a8638"},{relation_type:"sibling",title:"Genesis Rabbah Loanwords",uuid:"94044a63-eae5-4e1d-ba04-64874109fc36"},{relation_type:"sibling",title:"Vienna Corpus of Arabic Varieties",uuid:"8f343a28-a873-449c-b359-efcfab7d1201"},{relation_type:"sibling",title:"Shawi",uuid:"68422d65-ccba-4dcb-8a0e-bd4f3f9e1dc9"},{relation_type:"sibling",title:"NoMansLand: Nomads’ Manuscripts Landscape",uuid:"e050deba-6e1d-4d82-851b-cf6c1f7187a5"},{relation_type:"sibling",title:"TUNOCENT",uuid:"325a929a-6764-41e1-b452-6556209fa74f"}],contacts:[{pers_name:{text:"Mörth, Karlheinz",ref:["https://viaf.org/viaf/8110691/#M%C3%B6rth,_Karlheinz."]},roles:["supervision"],websites:["https://www.oeaw.ac.at/acdh/team/current-team/karlheinz-moerth"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["annotation","arabic_studies","audio","corpus_resource","dialectology","language_documentation","lexicon","linguistics","tei","translation"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/elephantine/43faf354-6069-4d15-9e04-bcb5813bc67a.json",{schema_version:"0.2.2",record_metadata:{uuid:"43faf354-6069-4d15-9e04-bcb5813bc67a",record_created_on:"2023-12-04",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Localizing 4000 Years of Cultural History. Texts and Scripts from Elephantine Island in Egypt",abbr:"ELEPHANTINE",type:"project",ref:[],date:[{from:"2015",to:"2022"}],maintained:null,websites:["https://elephantine.smb.museum/"],project_desc:"The Elephantine Manuscripts Project employs cutting-edge digital methodologies, integrating disciplines like digital humanities, physics, and mathematics. A central element is the development of an open-access online research database, housing 80% previously unpublished manuscripts in ten different languages and scripts. The database provides unprecedented insights into the medical, religious, legal, administrative, and literary aspects of Elephantine's history spanning 4000 years.",places:[{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Staatliche Museen zu Berlin",ref:["https://www.wikidata.org/wiki/Q700216","https://ror.org/02k3b8775"]},websites:["https://www.smb.museum/home/"]}],related_entities:[],contacts:[{pers_name:{text:"Lepper, Verena",ref:["https://d-nb.info/gnd/1027812333"]},roles:["supervision"],websites:["https://www.geschkult.fu-berlin.de/en/e/aegyptologie/institut/mitarbeiter/weitere/Lepper/index.html","https://www.bbaw.de/die-akademie/mitarbeiterinnen-mitarbeiter/lepper-verena"]}],research_data:{lang:["ara","arc","cop","egy","grc"],sustainability_plan:null,publications:{open_access:0,licensing:[]},data:{datatypes:[{label:"",stage:"raw",licensing:[],open_access:0}],repositories:[{label:"",accessibility:"public",ref:[],licensing:[],description:""}]}},stack:{database:[],backend:[],frontend:[],tools:[{label:"",self_developed:!1,ref:[],description:""}],languages:[]},policies:[{description:"",ref:[]}],keywords:["annotation","corpus_output","digital_preservation","manuscript","tei","translation"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/mtaac/47a62965-3241-4531-b01a-a25e25dac602.json",{schema_version:"0.2.2",record_metadata:{uuid:"47a62965-3241-4531-b01a-a25e25dac602",record_created_on:"2022-11.21",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Machine Translation and Automated Analysis of Cuneiform Language",abbr:"MTAAC",type:"project",ref:[],date:[{from:"2017",to:"2021"}],maintained:null,websites:["https://cdli-gh.github.io/mtaac/","https://gepris.dfg.de/gepris/projekt/329145082"],project_desc:"Combining the newest developments in machine learning with statistical and neural machine translation technologies, this project formulates, tests and evaluates methodologies to translate and analyze the contents of some 67,000 highly standardized administrative documents from southern Mesopotamia. All outcomes of the project, the methodologies, the translations and the data extracted from them, will be offered to the public in open access.",places:[{place_name:{text:"Toronto",ref:["https://www.geonames.org/6167865/toronto.html"]},coordinates:{lat:"43.70011",lng:"-79.4163"}},{place_name:{text:"Frankfurt",ref:["https://www.geonames.org/2925533/frankfurt-am-main.html"]},coordinates:{lat:"50.11552",lng:"8.68417"}},{place_name:{text:"Los Angeles",ref:["https://www.geonames.org/5368361/los-angeles.html"]},coordinates:{lat:"34.05223",lng:"-118.24368"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"University of Toronto",ref:["https://www.wikidata.org/wiki/Q180865","https://ror.org/03dbr7087"]},websites:["https://www.utoronto.ca/"]},{relation_type:"host",org_name:{text:"Goethe-Universität Frankfurt am Main",ref:["https://ror.org/04cvxnb49","https://www.wikidata.org/wiki/Q50662"]},websites:["https://www.uni-frankfurt.de/de"]},{relation_type:"host",org_name:{text:"University of California, Los Angeles",ref:["https://ror.org/025j2nd68","https://www.wikidata.org/wiki/Q174710"]},websites:["https://www.ucla.edu/"]}],related_entities:[{relation_type:"cooperation",title:"Cuneiform Digital Library Initiative",uuid:"b8097890-6eeb-43ba-890d-28e1490fde08"}],contacts:[{pers_name:{text:"Baker, Heather D.",ref:["https://d-nb.info/gnd/1042917019"]},roles:["supervision"],websites:["https://www.nmc.utoronto.ca/people/directories/all-faculty/heather-d-baker"]}],research_data:{lang:["akk","sux"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["annotation","computational_text_analysis","corpus_resource","linguistics","machine_learning","nlp","semitic_studies","translation","translation_studies"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/majlis/583ab46e-ccb8-4a49-9912-7771683cd605.json",{schema_version:"0.2.2",record_metadata:{uuid:"583ab46e-ccb8-4a49-9912-7771683cd605",record_created_on:"2021-11-01",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2021-05-05"},project:{title:"MAJLIS. The Transformation of Jewish Literature in Arabic in the Islamicate World",abbr:"MAJLIS",type:"project",ref:[],date:[{from:"2021",to:"2026"}],maintained:!0,websites:["https://www.naher-osten.uni-muenchen.de/forschung/majlis/index.html"],project_desc:"This project is dedicated to the hitherto under-researched Judaeo-Arabic literature from the period between the 9th and the 11th century. The overall aim is to explore how the adoption of Arabic language and Arabic intellectual tradition influenced the Jewish literary creativity in this period. The project will proceed by applying state-of-the-art digital tools to analyze manuscripts, trace changes in the Jewish literature, identify the dominant scholars and to compare the Judaeo-Arabic literature with non-Jewish literary traditions of the time.",places:[{place_name:{text:"Munich",ref:["https://www.geonames.org/2867714/munich.html"]},coordinates:{lat:"48.13743",lng:"11.57549"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Ludwig-Maximilians-Universität Munich",ref:["https://www.wikidata.org/wiki/Q156598","https://ror.org/05591te55"]},websites:["https://www.lmu.de/de/index.html"]}],related_entities:[],contacts:[{pers_name:{text:"Vollandt, Ronny",ref:["https://d-nb.info/gnd/1173742050"]},roles:["supervision"],websites:["https://www.naher-osten.uni-muenchen.de/personen/professoren/ronny_vollandt/index.html"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","literary_studies"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/mesmom/aec92ee9-7c8a-49ce-8491-46667fc75505.json",{schema_version:"0.2.2",record_metadata:{uuid:"aec92ee9-7c8a-49ce-8491-46667fc75505",record_created_on:"2023-11-02",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Memory Spaces: Mapping Oral History in Mosul",abbr:"MESMOM",type:"project",ref:[],date:[{from:"2023-08-01",to:"2024-02-29"}],maintained:!0,websites:["https://www.geschkult.fu-berlin.de/en/e/semiarab/arabistik/Forschung/MEMORY-SPACES/index.html"],project_desc:"The project aims to establish an online accessible digital platform where former and current residents of the Iraqi city of Mosul can contribute their personal and individual memories of their hometown. These memories can be inserted in the form of stories, images, and audio recordings, all placed on a digital and visually appealing map of Mosul and its surroundings (prior to 2014). After editorial processing and approval by a dedicated editorial team, these contributions will be accessible worldwide.",places:[{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}},{place_name:{text:"Amsterdam",ref:["https://www.geonames.org/2759794/amsterdam.html"]},coordinates:{lat:"52.37403",lng:"4.88969"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Freie Universität Berlin",ref:["https://ror.org/046ak2485","https://www.wikidata.org/wiki/Q153006"]},websites:["https://www.fu-berlin.de/"]},{relation_type:"host",org_name:{text:"University of Amsterdam",ref:["https://www.wikidata.org/wiki/Q214341","https://ror.org/04dkp9463"]},websites:["https://www.uva.nl/en"]}],related_entities:[{relation_type:"sibling",title:"Kalila and Dimna – AnonymClassic",uuid:"d1e6d69b-5e9a-4b4a-85ad-09aac56ed2d9"},{relation_type:"sibling",title:"Verse und Sprueche: Impulse und Reichweiten wissenschaftlicher und popularisierender Diskurse im arabischen Sprachraum",uuid:"a2984fec-9396-488e-ad56-d3d21dc49052"},{relation_type:"sibling",title:"Country of Words: Reading and Reception of Palestinian Literature from 1948 to the Present",uuid:"2adf7ddc-9dd5-49b3-842c-9dc48dbbf36e"},{relation_type:"sibling",title:"Arabic Literature Cosmopolitan",uuid:"46aff246-b6ef-4632-90c2-0993a9f9b1f5"},{relation_type:"sibling",title:"Keywords for the Study of the Arabic Literary and Manuscript Tradition",uuid:"7050ac6d-523c-4ba0-b381-48ec200ff6c4"}],contacts:[{pers_name:{text:"Toral, Isabel",ref:[]},roles:["supervision"],websites:["https://www.geschkult.fu-berlin.de/e/semiarab/arabistik/Seminar/Mitarbeiterinnen-und-Mitarbeiter/Professuren/toral/index.html"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[]},data:{datatypes:[{label:"",stage:"raw",licensing:[],open_access:0}],repositories:[{label:"",accessibility:"public",ref:[],licensing:[],description:""}]}},stack:{database:[],backend:[],frontend:[],tools:[{label:"",self_developed:!1,ref:[],description:""}],languages:[]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","cultural_studies","digital_preservation","image","video"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/mesopotamian_royal_inscriptions/9efa71cc-aaf8-4481-a155-caa8d9fe23c1.json",{schema_version:"0.2.2",record_metadata:{uuid:"9efa71cc-aaf8-4481-a155-caa8d9fe23c1",record_created_on:"2022-11-04",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Mesopotamian Royal Inscriptions",abbr:"",type:"project",ref:[],date:[{from:"2000",to:""}],maintained:null,websites:["https://cdli.ucla.edu/projects/royal/royal.html"],project_desc:"In this sub-project of the Cuneiform Digital Library Initiative (CDLI), the focus lies on the digitization of royal and monumental texts, which despite representing a small share of the overall CDLI catalogue (20,000 of 350 000 texts) assume a disproportionately large role in history, literature, and linguistics in the several sub-fields of cuneiform studies.",places:[{place_name:{text:"Los Angeles",ref:["https://www.geonames.org/5368361/los-angeles.html"]},coordinates:{lat:"34.05223",lng:"-118.24368"}},{place_name:{text:"Oxford",ref:["https://www.geonames.org/2640729/oxford.html"]},coordinates:{lat:"51.75222",lng:"-1.25596"}},{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}}],lang:["eng"],related_institutions:[],related_entities:[{relation_type:"parent",title:"Cuneiform Digital Library Initiative",uuid:"b8097890-6eeb-43ba-890d-28e1490fde08"},{relation_type:"sibling",title:"Nimrud NW Palace",uuid:"bef67936-aeda-45ea-86fa-d06d79620459"},{relation_type:"sibling",title:"Mesopotamian Seals",uuid:"9497c5c0-0cdc-4f43-96de-4843bd246bac"},{relation_type:"sibling",title:"Oracc: The Open Richly Annotated Cuneiform Corpus",uuid:"3e56a148-845f-4a39-a7d4-c05c75cabd31"}],contacts:[{pers_name:{text:"Foxvog, Daniel A.",ref:["https://d-nb.info/gnd/1077774133"]},roles:["supervision"],websites:["https://cdli.mpiwg-berlin.mpg.de/authors/408"]}],research_data:{lang:["akk","sux"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["corpus_output","digital_preservation","inscription","semitic_studies","vre"],comment:"The start date recorded for this project is approximate."}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/mesopotamian_seals/9497c5c0-0cdc-4f43-96de-4843bd246bac.json",{schema_version:"0.2.2",record_metadata:{uuid:"9497c5c0-0cdc-4f43-96de-4843bd246bac",record_created_on:"2022-11-04",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Mesopotamian Seals",abbr:"",type:"project",ref:[],date:[{from:"2000",to:""}],maintained:null,websites:["https://cdli.ucla.edu/projects/seals/seals.html"],project_desc:"This sub-project of the Cuneiform Digital Library Initiative (CDLI) focuses explicitly on inscriptions on the Mesopotamian stamp and cylinder seals for which, despite their substantial role in the development of writing, the online resources are still difficult to be found. This project is offered to bring attention to the admittedly limited text annotation files of the CDLI as one of several avenues of research available in this field.",places:[{place_name:{text:"Los Angeles",ref:["https://www.geonames.org/5368361/los-angeles.html"]},coordinates:{lat:"34.05223",lng:"-118.24368"}},{place_name:{text:"Oxford",ref:["https://www.geonames.org/2640729/oxford.html"]},coordinates:{lat:"51.75222",lng:"-1.25596"}},{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}}],lang:["eng"],related_institutions:[],related_entities:[{relation_type:"parent",title:"Cuneiform Digital Library Initiative",uuid:"b8097890-6eeb-43ba-890d-28e1490fde08"},{relation_type:"sibling",title:"Mesopotamian Royal Inscriptions",uuid:"9efa71cc-aaf8-4481-a155-caa8d9fe23c1"},{relation_type:"sibling",title:"Nimrud NW Palace",uuid:"bef67936-aeda-45ea-86fa-d06d79620459"},{relation_type:"sibling",title:"Oracc: The Open Richly Annotated Cuneiform Corpus",uuid:"3e56a148-845f-4a39-a7d4-c05c75cabd31"}],contacts:[{pers_name:{text:"Renn, Jürgen",ref:["https://d-nb.info/gnd/121180719"]},roles:["supervision"],websites:["https://www.mpiwg-berlin.mpg.de/users/renn"]}],research_data:{lang:["akk","sux"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["corpus_output","digital_preservation","inscription","semitic_studies","vre"],comment:"The start date recorded for this project is approximate."}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/bildverarbeitung_bestimmung_von_visuellen_manuskript_und_zeichenmerkmalen/eb8e91fe-952e-48b7-af0d-c026ebe37826.json",{schema_version:"0.2.2",record_metadata:{uuid:"eb8e91fe-952e-48b7-af0d-c026ebe37826",record_created_on:"2022-02-28",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-03-29"},project:{title:"Methoden der Bildverarbeitung zur Bestimmung von visuellen Manuskript- und Zeichenmerkmalen",abbr:"",type:"project",ref:[],date:[{from:"2015",to:"2019"}],maintained:null,websites:["https://gepris.dfg.de/gepris/projekt/203079013","https://www.inf.uni-hamburg.de/inst/ab/bv-old/research.html","https://www.manuscript-cultures.uni-hamburg.de/Poster/Z03_A4_P2.pdf","https://www.manuscript-cultures.uni-hamburg.de/Projekte_p2.html"],project_desc:"This project is intended to support the research program of the SFB (Sonderforschungsbereich for Manuscript Cultures in Asia, Africa and Europe) by piloting and further development of the Advanced Manuscript Analysis Portal (AMAP), a web-based platform offering self-usable toolbox for humanists and facilitating communication between experts, as well as by development of innovative image processing methods.",places:[{place_name:{text:"Hamburg",ref:["https://www.geonames.org/2911298/hamburg.html"]},coordinates:{lat:"53.55073",lng:"9.99302"}}],lang:["deu","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Universität Hamburg",ref:["https://ror.org/00g30e956","https://www.wikidata.org/wiki/Q156725"]},websites:["https://www.uni-hamburg.de/"]}],related_entities:[{relation_type:"sibling",title:"Methoden der Manuskriptanalyse zur Wiedergewinnung verlorener Schrift",uuid:"892b783d-1788-451f-9efd-1c58bfb4b064"},{relation_type:"sibling",title:"Datenrepositorium Manuskriptkulturen",uuid:"894dcf0c-7295-4fb8-b4ba-866a5ebe3310"},{relation_type:"sibling",title:"Audition Certificates Platform",uuid:"b333a11d-b9fc-4379-9e21-fbddfa9500b1"},{relation_type:"sibling",title:"Afrikanische Stimmen in islamischen Manuskripten aus Mali: Erschließung und Erforschung afrikanischer Sprachen in arabischer Schrift (Ajami)",uuid:"eaf36ccc-5ee4-4749-80ea-7f71f479c968"},{relation_type:"sibling",title:"Beta maṣāḥǝft Manuscripts of Ethiopia and Eritrea",uuid:"169677fd-14f9-46e7-b8f1-2202fb91397c"},{relation_type:"sibling",title:"Demarginalizing Medieval Africa: Images, Texts, and Identity in Early Solomonic Ethiopia",uuid:"46121edb-516b-4dbf-ba49-e2c5f07cec2e"},{relation_type:"sibling",title:"Documentation of Gorani, an endangered language of West Iran",uuid:"17fa004d-c9d2-4ce3-8116-b7bfff5d14ed"},{relation_type:"sibling",title:"The Evolution of Islamic Societies (c. 600–1600 CE): Algorithmic Analysis into Social History",uuid:"659c0aba-3bdd-43eb-937d-dad4ad63e3fc"},{relation_type:"sibling",title:"The intertwined world of the oral and written transmission of sacred traditions in the Middle East",uuid:"bb852d81-0c6d-4413-8c20-1bb38c4db4e7"},{relation_type:"sibling",title:"Islamic Painted Page",uuid:"31534c48-6b74-4cc5-8aff-ea8dbc60c445"},{relation_type:"sibling",title:"SfarData",uuid:"81d8ad85-5da8-457f-99a3-6ab11128ef03"},{relation_type:"sibling",title:"SIHAFA: The Ideosphere of the Late Ottoman Arabic Press: Mapping the Discursive Field of Authors and Texts through Computational Approaches",uuid:"20ee58f5-f699-4262-a473-7765e249c871"},{relation_type:"sibling",title:"Understanding Written Artefacts",uuid:"9ca46873-3089-4a04-99fa-89c0c1b01213"},{relation_type:"sibling",title:"Ethio-SPaRe: Cultural Heritage of Christian Ethiopia. Salvation, Preservation, Research",uuid:"fbf007e0-7eee-4bb1-801d-568785d43d04"},{relation_type:"sibling",title:"From Translation to Creation: Changes in Ethiopic Style and Lexicon from Late Antiquity to the Middle Ages",uuid:"77ae1011-1b54-46b5-b676-02895e3300fc"},{relation_type:"sibling",title:"Corpus dei Manoscritti Copti Letterari",uuid:"c4f41a6d-9fb9-4c31-85f0-b66acfe41289"}],contacts:[{pers_name:{text:"Stiehl, Hans Siegfried",ref:["https://www.wikidata.org/wiki/Q102416616"]},roles:["supervision"],websites:["https://www.csmc.uni-hamburg.de/about/people/stiehl.html","https://www.inf.uni-hamburg.de/en/inst/ab/bv/team/stiehl.html"]}],research_data:{lang:[],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["image","research_infrastructure"],comment:"The website of the project may not work, you can find further information on the website of the funding institution (DFG:GEPRIS)."}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/methoden_der_manuskriptanalyse_zur_wiedergewinnung_verlorener_schrift/892b783d-1788-451f-9efd-1c58bfb4b064.json",{schema_version:"0.2.2",record_metadata:{uuid:"892b783d-1788-451f-9efd-1c58bfb4b064",record_created_on:"2022-02-28",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-03-29"},project:{title:"Methoden der Manuskriptanalyse zur Wiedergewinnung verlorener Schrift",abbr:"",type:"project",ref:[],date:[{from:"2011",to:"2019"}],maintained:null,websites:["https://gepris.dfg.de/gepris/projekt/203078463","https://www.manuscript-cultures.uni-hamburg.de/Poster/Z01_A4_P2.pdf","https://www.manuscript-cultures.uni-hamburg.de/Projekte_p2.html"],project_desc:"This project supports the research program of the SFB (Sonderforschungsbereich for Manuscript Cultures in Asia, Africa and Europe) by making available and further development of modern technologies that help to recover scripts that are not longer readable for the human eye due to organic deterioration or conscious interventions.",places:[{place_name:{text:"Hamburg",ref:["https://www.geonames.org/2911298/hamburg.html"]},coordinates:{lat:"53.55073",lng:"9.99302"}}],lang:["deu","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Universität Hamburg",ref:["https://ror.org/00g30e956","https://www.wikidata.org/wiki/Q156725"]},websites:["https://www.uni-hamburg.de/"]}],related_entities:[{relation_type:"sibling",title:"Datenrepositorium Manuskriptkulturen",uuid:"894dcf0c-7295-4fb8-b4ba-866a5ebe3310"},{relation_type:"sibling",title:"Methoden der Bildverarbeitung zur Bestimmung von visuellen Manuskript- und Zeichenmerkmalen",uuid:"eb8e91fe-952e-48b7-af0d-c026ebe37826"},{relation_type:"sibling",title:"Audition Certificates Platform",uuid:"b333a11d-b9fc-4379-9e21-fbddfa9500b1"},{relation_type:"sibling",title:"Afrikanische Stimmen in islamischen Manuskripten aus Mali: Erschließung und Erforschung afrikanischer Sprachen in arabischer Schrift (Ajami)",uuid:"eaf36ccc-5ee4-4749-80ea-7f71f479c968"},{relation_type:"sibling",title:"Beta maṣāḥǝft Manuscripts of Ethiopia and Eritrea",uuid:"169677fd-14f9-46e7-b8f1-2202fb91397c"},{relation_type:"sibling",title:"Demarginalizing Medieval Africa: Images, Texts, and Identity in Early Solomonic Ethiopia",uuid:"46121edb-516b-4dbf-ba49-e2c5f07cec2e"},{relation_type:"sibling",title:"Documentation of Gorani, an endangered language of West Iran",uuid:"17fa004d-c9d2-4ce3-8116-b7bfff5d14ed"},{relation_type:"sibling",title:"The Evolution of Islamic Societies (c. 600–1600 CE): Algorithmic Analysis into Social History",uuid:"659c0aba-3bdd-43eb-937d-dad4ad63e3fc"},{relation_type:"sibling",title:"The intertwined world of the oral and written transmission of sacred traditions in the Middle East",uuid:"bb852d81-0c6d-4413-8c20-1bb38c4db4e7"},{relation_type:"sibling",title:"Islamic Painted Page",uuid:"31534c48-6b74-4cc5-8aff-ea8dbc60c445"},{relation_type:"sibling",title:"SfarData",uuid:"81d8ad85-5da8-457f-99a3-6ab11128ef03"},{relation_type:"sibling",title:"SIHAFA: The Ideosphere of the Late Ottoman Arabic Press: Mapping the Discursive Field of Authors and Texts through Computational Approaches",uuid:"20ee58f5-f699-4262-a473-7765e249c871"},{relation_type:"sibling",title:"Understanding Written Artefacts",uuid:"9ca46873-3089-4a04-99fa-89c0c1b01213"},{relation_type:"sibling",title:"Ethio-SPaRe: Cultural Heritage of Christian Ethiopia. Salvation, Preservation, Research",uuid:"fbf007e0-7eee-4bb1-801d-568785d43d04"},{relation_type:"sibling",title:"From Translation to Creation: Changes in Ethiopic Style and Lexicon from Late Antiquity to the Middle Ages",uuid:"77ae1011-1b54-46b5-b676-02895e3300fc"},{relation_type:"sibling",title:"Corpus dei Manoscritti Copti Letterari",uuid:"c4f41a6d-9fb9-4c31-85f0-b66acfe41289"}],contacts:[{pers_name:{text:"Brockmann, Christian",ref:["https://d-nb.info/gnd/137576218"]},roles:["supervision"],websites:["https://www.csmc.uni-hamburg.de/about/people/brockmann.html","https://www.slm.uni-hamburg.de/igrlatphil/personen/brockmann.html"]}],research_data:{lang:[],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["research_infrastructure"],comment:"The website of the project may not work, you can find further information on the website of the funding institution (DFG:GEPRIS)."}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/mela/377201a9-9b09-4a6b-b5e8-873190633e78.json",{schema_version:"0.2.2",record_metadata:{uuid:"377201a9-9b09-4a6b-b5e8-873190633e78",record_created_on:"2021-11-01",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-05-05"},project:{title:"Middle East Librarians Association",abbr:"MELA",type:"organization",ref:["https://www.wikidata.org/wiki/Q100320015"],date:[{from:"1972",to:""}],maintained:!0,websites:["https://www.mela.us/"],project_desc:"MELA is an association of Middle East library specialists. Its mission is to facilitate communication and encourage cooperation among its members and Middle East libraries. It aims at improving area librarianship through the development of standards for the profession and education of Middle East librarians. It also compiles and disseminates information concerning Middle East libraries through various meeting and publications.",places:[{place_name:{text:"US",ref:["https://www.geonames.org/6252001/united-states.html"]},coordinates:{lat:"39.76",lng:"-98.5"}}],lang:["eng"],related_institutions:[],related_entities:[],contacts:[{pers_name:{text:"Salamon, Anaïs",ref:[]},roles:["supervision"],websites:["https://www.mcgill.ca/library/librarians/anais-salamon"]}],research_data:{lang:[],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["collaboration_platform"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/moving_frontiers/d5dd164d-1887-473f-8282-584b8d09474d.json",{schema_version:"0.2.2",record_metadata:{uuid:"d5dd164d-1887-473f-8282-584b8d09474d",record_created_on:"2023-10-31",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Moving frontiers",abbr:"",type:"project",ref:[],date:[{from:"2010",to:"2010"}],maintained:!1,websites:["https://www.universiteitleiden.nl/en/research/research-projects/humanities/moving-frontiers"],project_desc:"This project aims to create a dynamic reconstruction of historical events that revolved around the conflict between Tang China and the Arab Caliphate around 750, ultimately establishing a balance of power between the two empires in Central Asia. The methodology employed is multidisciplinary, combining historical and archaeological data related to frontier dynamics and mobility. These data will be integrated into theoretical network analysis models and Geographic Information Systems (GIS).",places:[{place_name:{text:"Leiden",ref:["https://www.geonames.org/2751773/leiden.html"]},coordinates:{lat:"52.15833",lng:"4.49306"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Leiden University",ref:["https://www.wikidata.org/wiki/Q156598","https://ror.org/027bh9e22"]},websites:["https://www.universiteitleiden.nl/en"]}],related_entities:[{relation_type:"cooperation",title:"The formation of Islam",uuid:"33a6a747-4180-4e28-a99c-2bf6dcf53200"}],contacts:[{pers_name:{text:"Riep, Maria",ref:["https://d-nb.info/gnd/1127749447"]},roles:["supervision"],websites:["https://www.universiteitleiden.nl/en/staffmembers/maria-riep#tab-1"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[]},data:{datatypes:[{label:"",stage:"raw",licensing:[],open_access:0}],repositories:[{label:"",accessibility:"public",ref:[],licensing:[],description:""}]}},stack:{database:[],backend:[],frontend:[],tools:[{label:"",self_developed:!1,ref:[],description:""}],languages:[]},policies:[{description:"",ref:[]}],keywords:["geodata","history_studies","islamic_studies","network_analysis"],comment:"The project is concluded"}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/multi_cast/b37c6bd1-90d3-4718-ab58-fb1d60873186.json",{schema_version:"0.2.2",record_metadata:{uuid:"b37c6bd1-90d3-4718-ab58-fb1d60873186",record_created_on:"2022-06-16",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Multilingual Corpus of Annotated Spoken Texts",abbr:"Multi-CAST",type:"project",ref:[],date:[{from:"2000",to:"2021"}],maintained:null,websites:["https://multicast.aspra.uni-bamberg.de/#references","https://www.uni-bamberg.de/aspra/forschung/projekte/multi-cast-multilingual-corpus-of-annotated-spoken-texts/"],project_desc:"Multi-CAST is a collection of annotated texts from a typologically diverse selection of 15 languages including endangered ones. The corpus is freely accessible via an online platform which provides multiple levels of parallel annotations, time-aligned with audio recordings, chiefly monologic, natural narrative texts from 15 languages, encompassing roughly 25,000 clause units available in multiple file formats, including as EAF files for the linguistic annotation software ELAN, as XML and TSV files, and via the multicastR package for R.",places:[{place_name:{text:"Bamberg",ref:["https://www.geonames.org/2952984/bamberg.html"]},coordinates:{lat:"49.89873",lng:"10.90067"}}],lang:["deu","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Otto-Friedrich-Universität Bamberg",ref:["https://www.wikidata.org/wiki/Q707272","https://ror.org/01c1w6d29"]},websites:["https://www.uni-bamberg.de/"]}],related_entities:[{relation_type:"sibling",title:"Documentation of Gorani, an endangered language of West Iran",uuid:"17fa004d-c9d2-4ce3-8116-b7bfff5d14ed"},{relation_type:"sibling",title:"Bamberg Lexical Database for Contemporary Iranian Languages",uuid:"614f4c99-0d96-48a9-baa5-48a402a8deec"},{relation_type:"sibling",title:"Compilation and critical edition of pre-19th century Kurmanji Kurdish",uuid:"d0bda69f-d8c4-4521-ab18-af2c097ffcfc"},{relation_type:"sibling",title:"Post-predicate Elements in Iranian: Inheritance, Contact, and Information Structure",uuid:"c1a2957b-0c24-46e6-9a67-381997525a87"}],contacts:[{pers_name:{text:"Haig, Geoffrey",ref:["https://d-nb.info/gnd/1016008090"]},roles:["supervision"],websites:["https://www.uni-bamberg.de/aspra/team/aktuelles-team/prof-dr-geoffrey-haig/"]}],research_data:{lang:["atz","dar","eng","erk","fas","grc","kac","kgv","kur","tab","tdn","tio","tuh","vra","zho"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["audio","corpus_resource","language_documentation","linguistics","translation"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/newnlp/9a4a2962-fbf2-4a52-a1ea-53af8e3d0842.json",{schema_version:"0.2.2",record_metadata:{uuid:"9a4a2962-fbf2-4a52-a1ea-53af8e3d0842",record_created_on:"2022-11-23",record_created_by:"Bednarkiewicz, Maroussia",last_edited_on:"2022-11-25"},project:{title:"New Languages for NLP",abbr:"new nlp",type:"project",ref:[],date:[{from:"2021",to:"2022"}],maintained:null,websites:["https://newnlp.princeton.edu/","https://github.com/New-Languages-for-NLP"],project_desc:"The practical aim of this project is to add so-called under-represented or low-resource languages to the library of spaCy. Ultimately, the more general goal consists in increasing the diversity of languages and trained models to help natural language processing reflect the linguistic diversity of our world.",places:[{place_name:{text:"Princeton",ref:["https://www.geonames.org/5102922/princeton.html"]},coordinates:{lat:"40.34872",lng:"-74.65905"}}],related_institutions:[{relation_type:"host",org_name:{text:"Princeton University",ref:["https://ror.org/00hx57361","https://www.wikidata.org/wiki/Q21578"]},websites:["https://www.princeton.edu/"]}],lang:["eng"],related_entities:[],contacts:[{pers_name:{text:"Ermolaev, Natalia",ref:[]},roles:["supervision"],websites:["https://cdh.princeton.edu/people/natasha-ermolaev/"]},{pers_name:{text:"Janco, Andrew",ref:["https://d-nb.info/gnd/1064765017"]},roles:["supervision"],websites:["https://apjan.co/"]}],research_data:{lang:["ara","efi","eng","kan","que","tir","tur","yid","yor"],sustainability_plan:null,publications:{open_access:100,licensing:["MIT"]},data:{datatypes:[],repositories:[]}},stack:{database:[],backend:[],frontend:[],tools:[{label:"cadet",self_developed:!0,ref:["https://github.com/New-Languages-for-NLP/cadet"],description:"Help add new languages into the spaCy library by generating and combining all the required units for a language entry. The tool also exists in the form of a notebook available on the GitHub page of the project."}],languages:["python"]},policies:[],keywords:["literary_studies","machine_learning","nlp"],comment:"The research data include projects in Dostoevsky's Russian, Old Chinese, and Kanbun, for which there are no ISO-639-2 language codes. The Arabic language data is also in Classical Arabic, for which there is no separate ISO-639-2 code."}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/nimrud_palace/bef67936-aeda-45ea-86fa-d06d79620459.json",{schema_version:"0.2.2",record_metadata:{uuid:"bef67936-aeda-45ea-86fa-d06d79620459",record_created_on:"2022-11-04",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Nimrud NW Palace",abbr:"",type:"project",ref:[],date:[{from:"2000",to:""}],maintained:null,websites:["https://cdli.ucla.edu/projects/nimrud/index.html"],project_desc:"This project is a collaboration between Cuneiform Digital Library Initiative (CDLI) and a German researcher Klaudia Englund and is dedicated to the digital preservation of the heritage of the Nimrud palace, which suffered severe damage at the hands of ISIS. The main goal of the project lies in preparing for display the image and text files that the researcher gathered in the course of her work on the Northwest Palace and the over 600 relief slabs mounted along the walls of the building’s main rooms.",places:[{place_name:{text:"Los Angeles",ref:["https://www.geonames.org/5368361/los-angeles.html"]},coordinates:{lat:"34.05223",lng:"-118.24368"}},{place_name:{text:"Oxford",ref:["https://www.geonames.org/2640729/oxford.html"]},coordinates:{lat:"51.75222",lng:"-1.25596"}},{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}}],lang:["eng"],related_institutions:[],related_entities:[{relation_type:"parent",title:"Cuneiform Digital Library Initiative",uuid:"b8097890-6eeb-43ba-890d-28e1490fde08"},{relation_type:"sibling",title:"Mesopotamian Royal Inscriptions",uuid:"9efa71cc-aaf8-4481-a155-caa8d9fe23c1"},{relation_type:"sibling",title:"Mesopotamian Seals",uuid:"9497c5c0-0cdc-4f43-96de-4843bd246bac"},{relation_type:"sibling",title:"Oracc: The Open Richly Annotated Cuneiform Corpus",uuid:"3e56a148-845f-4a39-a7d4-c05c75cabd31"}],contacts:[{pers_name:{text:"Englund, Klaudia",ref:["https://viaf.org/viaf/30195222"]},roles:["supervision"],websites:[]}],research_data:{lang:["akk","sux"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["archaeology","corpus_output","digital_preservation","inscription","semitic_studies","vre"],comment:"The start date recorded for this project is approximate."}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/nomansland/e050deba-6e1d-4d82-851b-cf6c1f7187a5.json",{schema_version:"0.2.2",record_metadata:{uuid:"e050deba-6e1d-4d82-851b-cf6c1f7187a5",record_created_on:"2022-05-10",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"NoMansLand: Nomads’ Manuscripts Landscape",abbr:"NoMansLand",type:"project",ref:[],date:[{from:"2020-01-01",to:"2022-12-31"}],maintained:null,websites:["https://www.oeaw.ac.at/iran/nomansland/","https://www.oeaw.ac.at/acdh/projects/nomansland-nomads-manuscripts-landscape","https://www.oeaw.ac.at/en/iran/research/manuscript-cultures/nomads-manuscripts-landscape/"],project_desc:"The focus of this projects lies on Iranian and Central Asian societies in the period between the 13th and 15th century which witnessed nomadic conquest after the rise of Chinggis Khan. The process of transculturation and interaction between the sedentary Muslim conquered and nomadic conqueror is documented in largely unstudied manuscripts from that period, which will be explored and analyzed in the course of this project. The technical side of the project will be responsible for developing and implementing of an independent Analytical Database of Islamic Manuscripts which will serve both as a digital repository of manuscripts and an analytical tool that will allow users to do wider research on Islamic and Eurasian studies.",places:[{place_name:{text:"Vienna",ref:["https://www.geonames.org/2761369/vienna.html"]},coordinates:{lat:"48.20849",lng:"16.37208"}}],lang:["deu","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Österreichische Akademie der Wissenschaften",ref:["https://www.wikidata.org/wiki/Q299015","https://ror.org/03anc3s24"]},websites:["https://www.oeaw.ac.at/en/"]}],related_entities:[{relation_type:"sibling",title:"WIBARAB: What is Bedouin-Type Arabic?",uuid:"e9cb8ab1-2d2c-4cc3-a44d-a793220a8638"},{relation_type:"sibling",title:"Genesis Rabbah Loanwords",uuid:"94044a63-eae5-4e1d-ba04-64874109fc36"},{relation_type:"sibling",title:"Vienna Corpus of Arabic Varieties",uuid:"8f343a28-a873-449c-b359-efcfab7d1201"},{relation_type:"sibling",title:"Shawi",uuid:"68422d65-ccba-4dcb-8a0e-bd4f3f9e1dc9"},{relation_type:"sibling",title:"Linguistic dynamics in the Greater Tunis Area: a corpus-based approach (TUNICO)",uuid:"79462111-75a7-4fa0-8e11-9d424293a074"},{relation_type:"sibling",title:"TUNOCENT",uuid:"325a929a-6764-41e1-b452-6556209fa74f"}],contacts:[{pers_name:{text:"De Nicola, Bruno",ref:["https://d-nb.info/gnd/1081572116"]},roles:["supervision"],websites:["https://www.oeaw.ac.at/en/iran/institute/staff/research-staff/bruno-de-nicola#c50728"]}],research_data:{lang:["ara","fas"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["corpus_output","digital_preservation","islamic_studies","manuscript"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/onomasticon_arabicum/ddbb569b-1542-40fe-9fa7-3842610945c8.json",{schema_version:"0.2.2",record_metadata:{uuid:"ddbb569b-1542-40fe-9fa7-3842610945c8",record_created_on:"2021-11-01",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-05-05"},project:{title:"Onomasticon Arabicum",abbr:"OA",type:"project",ref:[],date:[{from:"1966-08",to:""}],maintained:null,websites:["https://onomasticon.irht.cnrs.fr"],project_desc:"Onomasticon Arabicum (OA) is an Arabic biographical database created in the course of a long-living project reaching back to the 1960s. It contains more than 27000 entries about scholars and celebrities from the first Muslim millenary. Its searching tools are designed to allow the user separate interrogation on any of the different elements of the Arabo-Muslim names, dates and places, reconstructing the identity of a person, trace ways of knowledge transmission and frame historical contexts.",places:[{place_name:{text:"Paris",ref:["https://www.geonames.org/2988506/paris.html"]},coordinates:{lat:"48.85339",lng:"2.34864"}}],lang:["ara","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Institut de Recherche et d’Histoire des Textes (IRHT)",ref:["https://d-nb.info/gnd/1007403-X","https://ror.org/05evznf71"]},websites:["https://www.irht.cnrs.fr/"]}],related_entities:[],contacts:[{pers_name:{text:"Müller, Christian",ref:[]},roles:["supervision"],websites:["https://www.irht.cnrs.fr/fr/annuaire/muller-christian","https://www.universiteitleiden.nl/en/news/2019/03/meet-our-spring-fellow-christian-muller"]},{pers_name:{text:"Roiland, Muriel",ref:["https://d-nb.info/gnd/1074308999"]},roles:["supervision"],websites:["https://www.irht.cnrs.fr/fr/annuaire/roiland-muriel"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","biographical_data","encyclopedia","geodata","history_studies","network_analysis","vre"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/open_arabic_pe/4ed4b218-0a06-4ae1-857a-1d87a9371e08.json",{schema_version:"0.2.2",record_metadata:{uuid:"4ed4b218-0a06-4ae1-857a-1d87a9371e08",record_created_on:"2023-07-10",record_created_by:"Till Grallert",last_edited_on:"2023-07-10"},project:{title:"Open Arabic Periodical Editions: A framework for bootstrapped digital scholarly editions outside the global north",abbr:"OpenArabicPE",type:"project",ref:[],date:[{from:"2015",to:""}],maintained:null,websites:["https://openarabicpe.github.io/"],project_desc:"Corpus of TEI/XML editions of Arabic periodicals, a static webview, and a framework of workflows for digital scholarly editions following the principles of minimal computing to address the affordances of the digital for cultural artefacts from the Global South",places:[{place_name:{text:"Beirut",ref:["https://www.geonames.org/276781/beirut.html"]},coordinates:{lat:"33.89332",lng:"35.50157"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"",ref:[]},websites:[]}],related_entities:[],contacts:[{pers_name:{text:"Grallert, Till",ref:[]},roles:["supervision"],websites:["https://openarabicpe.github.io/"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[]},data:{datatypes:[{label:"",stage:"raw",licensing:[],open_access:0}],repositories:[{label:"",accessibility:"public",ref:[],licensing:[],description:""}]}},stack:{database:[],backend:[],frontend:[],tools:[{label:"",self_developed:!1,ref:[],description:""}],languages:[]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","corpus_output","digital_preservation","islamic_studies","media_studies"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/open_encyclopedia_system/2860c96f-323e-4c33-97c6-4219bcf99f52.json",{schema_version:"0.2.2",record_metadata:{uuid:"2860c96f-323e-4c33-97c6-4219bcf99f52",record_created_on:"2021-11-01",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-05-05"},project:{title:"Open Encyclopedia System",abbr:"OES",type:"project",ref:[],date:[{from:"2016",to:"2020"}],maintained:null,websites:["https://www.open-encyclopedia-system.org","https://www.cedis.fu-berlin.de/services/projektentwicklung/abgeschlossen/oes/index.html"],project_desc:"OES is a standardized publishing platform for humanities and social sciences. Contrary to existing academic encyclopedias the OES taps into the full potential of e-publishing by adding new solutions to the already available options: it offers flexible workflows, configurable participation models, various options for customizing the peer review process and features that facilitate the engagement and management of a community.",places:[{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}},{place_name:{text:"Munich",ref:["https://www.geonames.org/2867714/munich.html"]},coordinates:{lat:"48.13743",lng:"11.57549"}}],lang:["deu","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Freie Universität Berlin",ref:["https://ror.org/046ak2485","https://www.wikidata.org/wiki/Q153006"]},websites:["https://www.fu-berlin.de/"]},{relation_type:"host",org_name:{text:"Bayerische Staatsbibliothek",ref:["https://ror.org/031h71w90","https://www.wikidata.org/wiki/Q256507"]},websites:["https://www.bsb-muenchen.de/"]}],related_entities:[{relation_type:"cooperation",title:"Keywords for the Study of the Arabic Literary and Manuscript Tradition",uuid:"7050ac6d-523c-4ba0-b381-48ec200ff6c4"}],contacts:[{pers_name:{text:"Geukes, Albert",ref:[]},roles:["supervision"],websites:["https://www.cedis.fu-berlin.de/cedis/mitarbeiter/beschaeftigte/ageukes.html"]}],research_data:{lang:[],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["digital_publishing","research_infrastructure"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/open_iti/bef2e507-b663-422e-9dd3-7e49ca299f05.json",{schema_version:"0.2.2",record_metadata:{uuid:"bef2e507-b663-422e-9dd3-7e49ca299f05",record_created_on:"2021-11-01",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-05-05"},project:{title:"Open Islamicate Texts Initiative",abbr:"OpenITI",type:"project",ref:[],date:[{from:"2019-09-01",to:"2021-12-31"}],maintained:null,websites:["https://openiti.org/","https://alraqmiyyat.github.io/OpenITI/","https://github.com/OpenITI"],project_desc:"Open ITI is a multi-institutional project which aims to construct the first machine-actionable scholarly corpus of premodern Islamicate texts in Arabic, Persian and other languages of the Islamic world. This new textual infrastructure will enhance the implementation of new forms of macro textual and digital scholarship in the inter-related fields of Islamic, Persian, and Arabic Studies",places:[{place_name:{text:"College Park",ref:["https://www.geonames.org/4351977/college-park.html"]},coordinates:{lat:"38.98067",lng:"-76.93692"}},{place_name:{text:"Leipzig",ref:["https://www.geonames.org/2879139/leipzig.html"]},coordinates:{lat:"51.33962",lng:"12.37129"}},{place_name:{text:"London",ref:["https://www.geonames.org/2643743/london.html"]},coordinates:{lat:"51.50853",lng:"-0.12574"}},{place_name:{text:"Vienna",ref:["https://www.geonames.org/2761369/vienna.html"]},coordinates:{lat:"48.20849",lng:"16.37208"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"University of Maryland, College Park",ref:["https://ror.org/010prmy50","https://www.wikidata.org/wiki/Q503415"]},websites:["https://www.umd.edu/"]},{relation_type:"host",org_name:{text:"Universität Leipzig",ref:["https://ror.org/03s7gtk40","https://www.wikidata.org/wiki/Q154804"]},websites:["https://www.uni-leipzig.de/"]},{relation_type:"host",org_name:{text:"The Aga Khan University (International)",ref:["https://www.wikidata.org/wiki/Q4690953"]},websites:["https://www.aku.edu/Pages/united-kingdom.aspx","https://www.aku.edu/Pages/home.aspx"]},{relation_type:"host",org_name:{text:"Universität Wien",ref:["https://ror.org/04d836q62","https://www.wikidata.org/wiki/Q165980"]},websites:["https://www.univie.ac.at/"]}],related_entities:[{relation_type:"sibling",title:"Kitab",uuid:"d4d49850-4711-4d43-97e9-c3563626d8df"},{relation_type:"child",title:"Automatic Collation for Diversifying Corpora",uuid:"5e7ab61a-0c33-44fc-8175-a1930e6d08bc"},{relation_type:"child",title:"CorpusBuilder",uuid:"eb1591d7-75b9-4d62-9f67-0679e627587b"},{relation_type:"child",title:"Open Islamicate Texts Initiative Arabic-script OCR Catalyst Project",uuid:"786edd87-476e-42a6-bcc0-521833ec73e5"},{relation_type:"child",title:"eScriptorium",uuid:"31ad93ff-ca97-4cf0-b30c-60685624e2c8"},{relation_type:"cooperation",title:"The Evolution of Islamic Societies (c. 600–1600 CE): Algorithmic Analysis into Social History",uuid:"659c0aba-3bdd-43eb-937d-dad4ad63e3fc"},{relation_type:"cooperation",title:"OpenITI_NgramReader",uuid:"d1d73911-81dc-4a65-bf1b-162f7fb2e84e"}],contacts:[{pers_name:{text:"Romanov, Maxim",ref:[]},roles:["investigation"],websites:["https://www.aai.uni-hamburg.de/voror/personen/romanov.html"]}],research_data:{lang:["ara","fas"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["annotation","computational_text_analysis","corpus_output","digital_preservation","islamic_studies","machine_learning","manuscript","nlp","ocr"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/open_iti_aocp/786edd87-476e-42a6-bcc0-521833ec73e5.json",{schema_version:"0.2.2",record_metadata:{uuid:"786edd87-476e-42a6-bcc0-521833ec73e5",record_created_on:"2022-09-08",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Open Islamicate Texts Initiative Arabic-script OCR Catalyst Project",abbr:"OpenITI AOCP",type:"project",ref:[],date:[{from:"2019-09",to:"2021-12"}],maintained:null,websites:["https://openiti.org/projects/OpenITI%20AOCP%20Phase%20One.html","https://mith.umd.edu/research/openiti-aocp/"],project_desc:"This project is led by an interdisciplinary team of humanities, computer science, and digital humanities co-principal investigators with the scope to challenge the technical and organizational barriers that historically have stymied the development of Arabic-script OCR and digital text production for Islamicate Studies. Its primary goal is to achieve approximately 97% character accuracy rates (CARs) for OCR on the most used Persian and Arabic print typefaces.",places:[{place_name:{text:"College Park",ref:["https://www.geonames.org/4351977/college-park.html"]},coordinates:{lat:"38.98067",lng:"-76.93692"}},{place_name:{text:"Leipzig",ref:["https://www.geonames.org/2879139/leipzig.html"]},coordinates:{lat:"51.33962",lng:"12.37129"}},{place_name:{text:"London",ref:["https://www.geonames.org/2643743/london.html"]},coordinates:{lat:"51.50853",lng:"-0.12574"}},{place_name:{text:"Vienna",ref:["https://www.geonames.org/2761369/vienna.html"]},coordinates:{lat:"48.20849",lng:"16.37208"}}],lang:["eng"],related_institutions:[],related_entities:[{relation_type:"parent",title:"Open Islamicate Texts Initiative",uuid:"bef2e507-b663-422e-9dd3-7e49ca299f05"},{relation_type:"parent",title:"SHARIAsource",uuid:"1b2ca0bf-fb29-4b5c-852b-2eedd6a85773"},{relation_type:"sibling",title:"Automatic Collation for Diversifying Corpora",uuid:"5e7ab61a-0c33-44fc-8175-a1930e6d08bc"},{relation_type:"sibling",title:"CorpusBuilder",uuid:"eb1591d7-75b9-4d62-9f67-0679e627587b"}],contacts:[{pers_name:{text:"Allen, Jonathan",ref:[]},roles:["investigation"],websites:["https://sllc.umd.edu/directory/jonathan-allen"]}],research_data:{lang:["ara","fas","tur","urd"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["corpus_resource","islamic_studies","machine_learning","nlp","ocr"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/open_iti_ngram_reader/d1d73911-81dc-4a65-bf1b-162f7fb2e84e.json",{schema_version:"0.2.2",record_metadata:{uuid:"d1d73911-81dc-4a65-bf1b-162f7fb2e84e",record_created_on:"2023-02-01",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"OpenITI_NgramReader",abbr:"",type:"project",ref:[],date:[{from:"2023",to:""}],maintained:!0,websites:["https://eis1600.aai.uni-hamburg.de/shiny/OpenITI_NgramReader/"],project_desc:"The NgramReader analyzes and visualizes the chronological occurrence of words and phrases based on the OpenITI corpus data. It enables the combination of various morphological forms and the exploration of object classes.",places:[{place_name:{text:"Hamburg",ref:["https://www.geonames.org/2911298/hamburg.html"]},coordinates:{lat:"53.55073",lng:"9.99302"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Universität Hamburg",ref:["https://ror.org/00g30e956","https://www.wikidata.org/wiki/Q156725"]},websites:["https://www.uni-hamburg.de/"]}],related_entities:[{relation_type:"cooperation",title:"The Evolution of Islamic Societies (c. 600–1600 CE): Algorithmic Analysis into Social History",uuid:"659c0aba-3bdd-43eb-937d-dad4ad63e3fc"},{relation_type:"cooperation",title:"Open Islamicate Texts Initiative",uuid:"bef2e507-b663-422e-9dd3-7e49ca299f05"}],contacts:[{pers_name:{text:"Romanov, Maxim",ref:[]},roles:["supervision"],websites:["https://www.aai.uni-hamburg.de/voror/personen/romanov.html"]}],research_data:{lang:[],sustainability_plan:null,publications:{open_access:0,licensing:[]},data:{datatypes:[{label:"",stage:"raw",licensing:[],open_access:0}],repositories:[{label:"",accessibility:"public",ref:[],licensing:[],description:""}]}},stack:{database:[],backend:[],frontend:[],tools:[{label:"",self_developed:!1,ref:[],description:""}],languages:[]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","computational_text_analysis","corpus_resource","history_studies","linguistics","visualization"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/oracc/3e56a148-845f-4a39-a7d4-c05c75cabd31.json",{schema_version:"0.2.2",record_metadata:{uuid:"3e56a148-845f-4a39-a7d4-c05c75cabd31",record_created_on:"2023-01-13",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Oracc: The Open Richly Annotated Cuneiform Corpus",abbr:"Oracc",type:"project",ref:["https://urn.fi/urn:nbn:fi:lb-2022031705"],date:[{from:"2012",to:""}],maintained:null,websites:["http://oracc.museum.upenn.edu/","http://oracc.museum.upenn.edu/cdli/pager"],project_desc:"Oracc emerged from the CDLI project. It is a is a collaborative effort to develop a complete multilingual corpus of cuneiform whose rich annotation and open licensing support the next generation of scholarly research.",places:[{place_name:{text:"Los Angeles",ref:["https://www.geonames.org/5368361/los-angeles.html"]},coordinates:{lat:"34.05223",lng:"-118.24368"}},{place_name:{text:"Oxford",ref:["https://www.geonames.org/2640729/oxford.html"]},coordinates:{lat:"51.75222",lng:"-1.25596"}},{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}}],lang:["eng"],related_institutions:[],related_entities:[{relation_type:"parent",title:"Cuneiform Digital Library Initiative",uuid:"b8097890-6eeb-43ba-890d-28e1490fde08"},{relation_type:"sibling",title:"Mesopotamian Royal Inscriptions",uuid:"9efa71cc-aaf8-4481-a155-caa8d9fe23c1"},{relation_type:"sibling",title:"Nimrud NW Palace",uuid:"bef67936-aeda-45ea-86fa-d06d79620459"},{relation_type:"sibling",title:"Mesopotamian Seals",uuid:"9497c5c0-0cdc-4f43-96de-4843bd246bac"}],contacts:[{pers_name:{text:"Tinney, Stephen J.",ref:["https://viaf.org/viaf/18932290"]},roles:["supervision"],websites:["https://www.ling.upenn.edu/people/tinney"]}],research_data:{lang:["akk","arc","elx","fas","hit","sux","syr","uga","xeb","xur"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["corpus_output","digital_preservation","history_studies","inscription","semitic_studies","vre"],comment:"The start date recorded for this project is approximate."}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/orient_digital/a4fa5143-90d2-42ba-a8a1-424b09696b1c.json",{schema_version:"0.2.2",record_metadata:{uuid:"a4fa5143-90d2-42ba-a8a1-424b09696b1c",record_created_on:"2021-11-01",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-05-05"},project:{title:"Orient-Digital",abbr:"",type:"project",ref:[],date:[{from:"2020",to:"2023"}],maintained:!0,websites:["https://staatsbibliothek-berlin.de/die-staatsbibliothek/abteilungen/orient/aufgaben-/-profil/projekte/dfg-projekt-orient-digital","https://www.qalamos.net/"],project_desc:"Orient-Digital is a union catalogue and a portal for oriental manuscripts kept in Germany. It will contain the metadata of Arabic, Persian, and Ottoman-Turkish manuscripts from more than 25 cooperating institutions and will provide links to the digitized manuscripts that are available online.",places:[{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}},{place_name:{text:"Gotha",ref:["https://www.geonames.org/2918752/gotha.html"]},coordinates:{lat:"50.94823",lng:"10.70193"}},{place_name:{text:"Leipzig",ref:["https://www.geonames.org/2879139/leipzig.html"]},coordinates:{lat:"51.33962",lng:"12.37129"}},{place_name:{text:"Munich",ref:["https://www.geonames.org/2867714/munich.html"]},coordinates:{lat:"48.13743",lng:"11.57549"}}],lang:["deu"],related_institutions:[{relation_type:"host",org_name:{text:"Staatsbibliothek zu Berlin",ref:["https://ror.org/02ysgg478","https://www.wikidata.org/wiki/Q170109"]},websites:["https://staatsbibliothek-berlin.de/"]},{relation_type:"host",org_name:{text:"Universität Erfurt",ref:["https://ror.org/03606hw36","https://www.wikidata.org/wiki/Q702524"]},websites:["https://www.uni-erfurt.de/"]},{relation_type:"host",org_name:{text:"Universität Leipzig",ref:["https://ror.org/03s7gtk40","https://www.wikidata.org/wiki/Q154804"]},websites:["https://www.uni-leipzig.de/"]},{relation_type:"host",org_name:{text:"Bayerische Staatsbibliothek",ref:["https://ror.org/031h71w90","https://www.wikidata.org/wiki/Q256507"]},websites:["https://www.bsb-muenchen.de/"]}],related_entities:[{relation_type:"child",title:"Qalamos",uuid:"3c5b84d0-791c-43bc-ab68-7372478bc568"}],contacts:[{pers_name:{text:"Rauch, Christoph",ref:["https://d-nb.info/gnd/1102171662"]},roles:["supervision"],websites:["https://staatsbibliothek-berlin.de/die-staatsbibliothek/abteilungen/orient/kontakt"]}],research_data:{lang:["ara","fas","tur"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["catalog","digital_preservation","manuscript"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/ocimco/97408d45-9570-4cad-a623-6007573bf070.json",{schema_version:"0.2.2",record_metadata:{uuid:"97408d45-9570-4cad-a623-6007573bf070",record_created_on:"2023-11-07",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Oxford Cambridge Islamic Manuscript Catalogue Online",abbr:"OCIMCO",type:"project",ref:[],date:[{from:"2009",to:"2011"}],maintained:null,websites:["https://www.fihrist.org.uk/"],project_desc:"This project aims to improve electronic access to the UK's significant Islamic manuscript collections at Oxford and Cambridge universities. It plans to create 10,000 summary records using a TEI P5 schema for future detailed descriptions, making these resources accessible through Oxford University Library Services and potentially contributing to the European Manuscriptorum. Collaboration with the Islamic Manuscript Association and other initiatives is a key focus.",places:[{place_name:{text:"Oxford",ref:["https://www.geonames.org/2640729/oxford.html"]},coordinates:{lat:"51.75222",lng:"-1.25596"}},{place_name:{text:"Cambridge",ref:["https://www.geonames.org/2653941/cambridge.html"]},coordinates:{lat:"52.2",lng:"0.11667"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"University of Cambridge",ref:["https://www.wikidata.org/wiki/Q35794","https://ror.org/013meh722"]},websites:["https://www.cam.ac.uk/"]},{relation_type:"host",org_name:{text:"University of Oxford",ref:["https://www.wikidata.org/wiki/Q34433","https://ror.org/052gg0110"]},websites:["https://www.ox.ac.uk/"]}],related_entities:[{relation_type:"child",title:"Union Catalogue of Manuscripts from the Islamicate World",uuid:"9734b5c3-fa35-4e45-878e-1deb62db97d5"}],contacts:[{pers_name:{text:"Evison, Gillian",ref:[]},roles:["supervision"],websites:[]}],research_data:{lang:["amh","ara","ave","ben","bod","chg","cop","dan","deu","eng","fas","fra","guj","hau","heb","hin","hye","ita","jav","jpr","jrb","kan","kas","kur","lat","mal","mar","mon","pal","por","san","snd","spa","syr","tam","tel","tur","und","urd","zho"],sustainability_plan:null,publications:{open_access:0,licensing:[]},data:{datatypes:[{label:"",stage:"raw",licensing:[],open_access:0}],repositories:[{label:"",accessibility:"public",ref:[],licensing:[],description:""}]}},stack:{database:[],backend:[],frontend:[],tools:[{label:"",self_developed:!1,ref:[],description:""}],languages:[]},policies:[{description:"",ref:[]}],keywords:["african_studies","arabic_studies","catalog","digital_preservation","iranian_studies","islamic_studies","jewish_studies","manuscript","semitic_studies","tei","turkology"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/paleocoran/d5448b02-b57f-429d-9553-637cc2add035.json",{schema_version:"0.2.2",record_metadata:{uuid:"d5448b02-b57f-429d-9553-637cc2add035",record_created_on:"2021-11-01",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-05-05"},project:{title:"Paleocoran",abbr:"",type:"project",ref:[],date:[{from:"2015",to:"2018"}],maintained:null,websites:["https://paleocoran.de/index","https://www.bbaw.de/forschung/paleocoran"],project_desc:"PALEOCORAN examines Qur’anic manuscripts that once belonged to the ‘Amr ibn al-‘Āṣ Mosque in al-Fusṭāṭ (Old Cairo) – one of the most significant Qur’anic Libraries – and are now scattered across the globe. The main objective of the project is to reconstruct the library and to make the manuscripts available digitally.",places:[{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}},{place_name:{text:"Paris",ref:["https://www.geonames.org/2988506/paris.html"]},coordinates:{lat:"48.85339",lng:"2.34864"}}],lang:["deu","eng","fra"],related_institutions:[{relation_type:"host",org_name:{text:"Berlin-Brandenburgische Akademie der Wissenschaften",ref:["https://ror.org/05jgq9443","https://www.wikidata.org/wiki/Q219989"]},websites:["https://www.bbaw.de/"]},{relation_type:"host",org_name:{text:"Collège de France",ref:["https://www.wikidata.org/wiki/Q202660","https://ror.org/04ex24z53"]},websites:["https://www.college-de-france.fr/fr"]}],related_entities:[{relation_type:"sibling",title:"Corpus Coranicum",uuid:"0fd7b9cd-fdae-441b-a6fd-a791d4583ce0"},{relation_type:"cooperation",title:"Coranica",uuid:"5f57a071-60c1-4fd2-b191-8fa8d15d70bb"}],contacts:[{pers_name:{text:"Marx, Michael",ref:[]},roles:["supervision"],websites:["https://www.bbaw.de/die-akademie/mitarbeiterinnen-mitarbeiter/marx-michael"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["digital_edition","digital_preservation","islamic_studies","manuscript","religious_text","translation","vre"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/patterns_of_knowledge_circulation/c2c309a5-923c-4759-ae83-f870b10dceff.json",{schema_version:"0.2.2",record_metadata:{uuid:"c2c309a5-923c-4759-ae83-f870b10dceff",record_created_on:"2022-07-27",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Patterns of Knowledge Circulation: The Transmission and Reception of Jewish Esoteric Knowledge in Manuscript and Print in Early Modern East-Central Europe (1500-1750)",abbr:"",type:"project",ref:[],date:[{from:"2019-01-04",to:"2024-03-31"}],maintained:!0,websites:["https://www.geschkult.fu-berlin.de/en/e/knowledge_patterns/index.html","https://gepris.dfg.de/gepris/projekt/401023278"],project_desc:"This project aims to explore how Jewish esoteric knowledge circulated throughout history in multiple moves of transmission and reception that took place in various social, cultural, and material contexts in early modern East-Central Europe. To this end it will provide a systematic digital catalogue and quantitative analysis of esoteric Jewish texts produced and in circulation in East-Central Europe from 1500 to 1750. The catalogue will provide grounds for further analysis of transmission, reception, and movement of these texts and is designed to facilitate further qualitative studies of patterns of knowledge transmission based on quantitative analysis of relevant sources.",places:[{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}}],lang:["deu","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Freie Universität Berlin",ref:["https://ror.org/046ak2485","https://www.wikidata.org/wiki/Q153006"]},websites:["https://www.fu-berlin.de/"]}],related_entities:[{relation_type:"sibling",title:"A Digital Synopsis of the Mishnah and Tosefta",uuid:"71ff37e4-7e16-4c1f-b0a9-9bf47778d41f"}],contacts:[{pers_name:{text:"Paluch, Agata",ref:["https://d-nb.info/gnd/1229106316"]},roles:["supervision"],websites:["https://www.geschkult.fu-berlin.de/e/judaistik/mitarbeiter/002Mitarbeiter_innen/paluch.html"]}],research_data:{lang:["heb"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python","jewish_studies"]},policies:[{description:"",ref:[]}],keywords:["catalog","digital_preservation","jewish_studies","manuscript","religion_studies","religious_text","vre"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/digitalisierung_der_handschriften_ubl_1/0a75cf74-9cbe-4ce2-9799-ee16dcc1e88e.json",{schema_version:"0.2.2",record_metadata:{uuid:"0a75cf74-9cbe-4ce2-9799-ee16dcc1e88e",record_created_on:"2022-03-29",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-03-31"},project:{title:"Pilotprojekt zur datenbankgestützten Erschließung und digitalen Bereitstellung der neu erworbenen arabischen, persischen und türkischen Handschriften der Universitätsbibliothek Leipzig",abbr:"",type:"project",ref:[],date:[{from:"2006-08-01",to:"2008-01-31"}],maintained:null,websites:["https://www.ub.uni-leipzig.de/forschungsbibliothek/projekte/projekte-chronologisch-alle/arabische-persische-und-tuerkische-handschriften-pilotprojekt/","https://www.ub.uni-leipzig.de/forschungsbibliothek/projekte/projekte-chronologisch-alle/arabische-persische-und-tuerkische-handschriften-digitalisierung/"],project_desc:"In this project 55 Arabic, Persian and Ottoman-Turkish manuscripts, that has been purchased by Leipzig University Library in 1995 and 1996, will be catalogued and digitalized. It is a pioneer project, as it will for the first time integrate Arabic script into a database that also features German and American transliteration systems. The manuscripts contain texts that cover an amazingly broad spectrum, which comprises almost all traditional Islamic fields of knowledge and the main scope of this project to provide scholars of Oriental Studies with access to this hitherto unknown pool of information.",places:[{place_name:{text:"Leipzig",ref:["https://www.geonames.org/2879139/leipzig.html"]},coordinates:{lat:"51.33962",lng:"12.37129"}}],lang:["ara","deu","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Universität Leipzig",ref:["https://ror.org/03s7gtk40","https://www.wikidata.org/wiki/Q154804"]},websites:["https://www.uni-leipzig.de/en/"]}],related_entities:[{relation_type:"sibling",title:"Project for the digitisation and online presentation of Arabic, Persian, and Turkish manuscripts at Leipzig University Library",uuid:"cad00fa7-09a1-4df1-a08b-4ab5b2a48703"},{relation_type:"sibling",title:"Datenbankgestützte Erfassung, Erforschung und digitale Präsentation der Familienbibliothek Refaiya",uuid:"38e6dfb4-730a-4a80-8090-4b7ea551b3c7"},{relation_type:"cooperation",title:"Qalamos",uuid:"3c5b84d0-791c-43bc-ab68-7372478bc568"}],contacts:[{pers_name:{text:"Verena Klemm",ref:["https://www.wikidata.org/wiki/Q5675690"]},roles:["supervision"],websites:["https://www.gkr.uni-leipzig.de/orientalisches-institut/ueber-uns/team/prof-dr-verena-klemm"]}],research_data:{lang:["ara","fas","tur"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["catalog","digital_preservation","islamic_studies","manuscript","vre"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/post_predicate_elements_in_iranian/c1a2957b-0c24-46e6-9a67-381997525a87.json",{schema_version:"0.2.2",record_metadata:{uuid:"c1a2957b-0c24-46e6-9a67-381997525a87",record_created_on:"2022-06-16",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Post-predicate Elements in Iranian: Inheritance, Contact, and Information Structure",abbr:"",type:"project",ref:[],date:[{from:"2019-07-01",to:"2022-06-30"}],maintained:null,websites:["https://www.uni-bamberg.de/aspra/forschung/projekte/post-predicate-elements-in-iranian/","https://multicast.aspra.uni-bamberg.de/resources/hambam/","https://multicast.aspra.uni-bamberg.de/resources/wowa/#top"],project_desc:"This project is dedicated to the study of the syntax of Iranian languages. It will investigate selected Middle Iranian corpora, and unrelated contact languages, in order to reconstruct the genesis and historical development of Iranian syntax with focus on largely ignored OVX (object-verb-oblique) word order type. The project’s results will be made available on two platforms: The Word Order in Western Asia Corpus and The HamBam Corpus (see project websites).",places:[{place_name:{text:"Bamberg",ref:["https://www.geonames.org/2952984/bamberg.html"]},coordinates:{lat:"49.89873",lng:"10.90067"}},{place_name:{text:"Hamadan",ref:["https://www.geonames.org/132144/hamadan.html"]},coordinates:{lat:"34.79922",lng:"48.51456"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Otto-Friedrich-Universität Bamberg",ref:["https://www.wikidata.org/wiki/Q707272","https://ror.org/01c1w6d29"]},websites:["https://www.uni-bamberg.de/"]},{relation_type:"host",org_name:{text:"Bu-Ali Sina University",ref:["https://www.wikidata.org/wiki/Q4982044","https://ror.org/04ka8rx28"]},websites:["https://www.basu.ac.ir/"]}],related_entities:[{relation_type:"sibling",title:"Multilingual Corpus of Annotated Spoken Texts",uuid:"b37c6bd1-90d3-4718-ab58-fb1d60873186"},{relation_type:"sibling",title:"Bamberg Lexical Database for Contemporary Iranian Languages",uuid:"614f4c99-0d96-48a9-baa5-48a402a8deec"},{relation_type:"sibling",title:"Documentation of Gorani, an endangered language of West Iran",uuid:"17fa004d-c9d2-4ce3-8116-b7bfff5d14ed"},{relation_type:"sibling",title:"Compilation and critical edition of pre-19th century Kurmanji Kurdish",uuid:"d0bda69f-d8c4-4521-ab18-af2c097ffcfc"}],contacts:[{pers_name:{text:"Haig, Geoffrey",ref:["https://d-nb.info/gnd/1016008090"]},roles:["supervision"],websites:["https://www.uni-bamberg.de/aspra/team/aktuelles-team/prof-dr-geoffrey-haig/"]},{pers_name:{text:"Rasekh Mahand, Mohammad",ref:["https://www.wikidata.org/wiki/Q5962522#sitelinks-wikipedia"]},roles:["supervision"],websites:["https://basu.ac.ir/en/~rasekh"]}],research_data:{lang:["fas"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["annotation","corpus_resource","iranian_studies","language_documentation","linguistics","translation"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/digitalisierung_der_handschriften_ubl_2/cad00fa7-09a1-4df1-a08b-4ab5b2a48703.json",{schema_version:"0.2.2",record_metadata:{uuid:"cad00fa7-09a1-4df1-a08b-4ab5b2a48703",record_created_on:"2022-03-29",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-03-31"},project:{title:"Project for the digitisation and online presentation of Arabic, Persian, and Turkish manuscripts at Leipzig University Library",abbr:"",type:"project",ref:[],date:[{from:"2012-10",to:"2015-01"}],maintained:null,websites:["https://www.ub.uni-leipzig.de/forschungsbibliothek/projekte/projekte-chronologisch-alle/arabische-persische-und-tuerkische-handschriften-digitalisierung/"],project_desc:"In this project all the remaining Arabic, Persian and Turkish manuscripts at Leipzig University Library that have not been yet catalogued and digitized in previous projects (Refaiya and Pilotprojekt zur datenbankgestützten Erschließung und digitalen Bereitstellung der neu erworbenen arabischen, persischen und türkischen Handschriften der Universitätsbibliothek Leipzig) will be made accessible online until 2015.",places:[{place_name:{text:"Leipzig",ref:["https://www.geonames.org/2879139/leipzig.html"]},coordinates:{lat:"51.33962",lng:"12.37129"}}],lang:["ara","deu","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Universität Leipzig",ref:["https://ror.org/03s7gtk40","https://www.wikidata.org/wiki/Q154804"]},websites:["https://www.uni-leipzig.de/en/"]}],related_entities:[{relation_type:"sibling",title:"Pilotprojekt zur datenbankgestützten Erschließung und digitalen Bereitstellung der neu erworbenen arabischen, persischen und türkischen Handschriften der Universitätsbibliothek Leipzig",uuid:"0a75cf74-9cbe-4ce2-9799-ee16dcc1e88e"},{relation_type:"sibling",title:"Datenbankgestützte Erfassung, Erforschung und digitale Präsentation der Familienbibliothek Refaiya",uuid:"38e6dfb4-730a-4a80-8090-4b7ea551b3c7"},{relation_type:"cooperation",title:"Qalamos",uuid:"3c5b84d0-791c-43bc-ab68-7372478bc568"}],contacts:[{pers_name:{text:"Verena Klemm",ref:["https://www.wikidata.org/wiki/Q5675690"]},roles:["supervision"],websites:["https://www.gkr.uni-leipzig.de/orientalisches-institut/ueber-uns/team/prof-dr-verena-klemm"]}],research_data:{lang:["ara","fas","tur"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["catalog","digital_preservation","islamic_studies","manuscript","vre"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/pua/397a09d7-5307-43ba-a3ce-3faff1ea0e6c.json",{schema_version:"0.2.2",record_metadata:{uuid:"397a09d7-5307-43ba-a3ce-3faff1ea0e6c",record_created_on:"2024-02-14",record_created_by:"Romanov, Maxim",last_edited_on:"2024-03-11"},project:{title:"Prosopografía de los ulemas de al-Andalus",abbr:"PUA",type:"project",ref:[],date:[{from:"2006",to:"2008"},{from:"2010",to:"2014"}],maintained:!0,websites:["https://www.eea.csic.es/pua/"],project_desc:"This project is dedicated to the prosopography and biography of Andalusi scholars. It sourced information about approximately 11,600 scholars from Arabic biographical dictionaries and organized into a database, in a way that enables taking advantage of possibilities offered by electronic data processing. It also offers a setup of the necessary tools to organize and filter information, handle the data with quantitative criteria and present the results of the analysis with a variety of visualizations.",places:[{place_name:{text:"Granada",ref:["https://www.geonames.org/2517117/granada.html"]},coordinates:{lat:"37.18817",lng:"-3.60667"}}],lang:["eng","spa"],related_institutions:[{relation_type:"host",org_name:{text:"Escuela de Estudios Árabes",ref:["https://www.wikidata.org/wiki/Q7432381","https://ror.org/0370sk906"]},websites:["https://www.eea.csic.es/"]}],related_entities:[],contacts:[{pers_name:{text:"Penelas, Mayte",ref:["https://d-nb.info/gnd/1067890963"]},roles:["supervision"],websites:["https://www.eea.csic.es/personal-de-la-eea/penelas-melendez-ma-teresa/"]},{pers_name:{text:"María Luisa Ávila",ref:["https://d-nb.info/gnd/1057141895"]},roles:["supervision"],websites:["https://www.eea.csic.es/personal-de-la-eea/avila-navarro-ma-luisa/"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[]},data:{datatypes:[{label:"",stage:"raw",licensing:[],open_access:0}],repositories:[{label:"",accessibility:"public",ref:[],licensing:[],description:""}]}},stack:{database:[],backend:[],frontend:[],tools:[{label:"",self_developed:!1,ref:[],description:""}],languages:[]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","islamic_studies","geodata","biographical_data","visualization"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/ptolemaeus_arabus_et_latinus/a9ca5d9f-47ab-4704-ad27-9a09e492ca2a.json",{schema_version:"0.2.2",record_metadata:{uuid:"a9ca5d9f-47ab-4704-ad27-9a09e492ca2a",record_created_on:"2021-11-01",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-05-05"},project:{title:"Ptolemaeus Arabus et Latinus",abbr:"PAL",type:"project",ref:[],date:[{from:"2013",to:"2037"}],maintained:!0,websites:["https://ptolemaeus.badw.de/start","https://badw.de/forschungseinrichtung/forschungsvorhaben.html?tx_badwdb_projects%5Baction%5D=show&tx_badwdb_projects%5Bcontroller%5D=Projects&tx_badwdb_projects%5Bproject_id%5D=100&cHash=ffb2790d003b9abde6b3b1c6da4a55b3"],project_desc:"Ptolemaeus Arabus et Latinus (PAL) is a long-term project dedicated to the edition and study of the Arabic and Latin versions of Ptolemy’s astronomical and astrological texts and related material. The manuscripts are being made available in an online database containing catalogues of Arabic and Latin works, their images, searchable transcriptions and a Greek-Arabic-Latin-English glossary of astronomical and astrological terms.",places:[{place_name:{text:"Munich",ref:["https://www.geonames.org/2867714/munich.html"]},coordinates:{lat:"48.13743",lng:"11.57549"}},{place_name:{text:"Würzburg",ref:["https://www.geonames.org/6556942/wuerzburg.html"]},coordinates:{lat:"49.79708",lng:"9.93365"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Bayerische Akademie der Wissenschaften",ref:["https://www.wikidata.org/wiki/Q8898015","https://ror.org/001rdaz60"]},websites:["https://badw.de/die-akademie.html"]},{relation_type:"host",org_name:{text:"Julius Maximilian University of Würzburg",ref:["https://ror.org/00fbnyb24","https://www.wikidata.org/wiki/Q161976"]},websites:["https://www.uni-wuerzburg.de/startseite/"]}],related_entities:[],contacts:[{pers_name:{text:"Hasse, Dag Nikolaus",ref:["https://viaf.org/viaf/5717273/"]},roles:["supervision"],websites:["https://www.philosophie.uni-wuerzburg.de/institut/allelehrsthlefrphilosophie/profdrdagnikolaushasse/","https://ptolemaeus.badw.de/team/3"]}],research_data:{lang:["ara","lat"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","digital_edition","digital_preservation","lexicon","manuscript","philosophy","science_history"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/qalamos/3c5b84d0-791c-43bc-ab68-7372478bc568.json",{schema_version:"0.2.2",record_metadata:{uuid:"3c5b84d0-791c-43bc-ab68-7372478bc568",record_created_on:"2022-07-12",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-11-17"},project:{title:"Qalamos",abbr:"",type:"project",ref:[],date:[{from:"2023",to:"2026"}],maintained:!0,websites:["https://staatsbibliothek-berlin.de/die-staatsbibliothek/abteilungen/orient/aufgaben-/-profil/projekte/dfg-projekt-orient-digital","https://qalamos.net/"],project_desc:"Qalamos is the portal for manuscripts and block prints from Asian and African script traditions. It provides access to metadata and digitized copies of all of all collections kept in German memory institutions. In addition, it will create a research infrastructure that provides the international community with direct access to all relevant Oriental manuscript collections in Germany.",places:[{place_name:{text:"Leipzig",ref:["https://www.geonames.org/2879139/leipzig.html"]},coordinates:{lat:"51.33962",lng:"12.37129"}},{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}},{place_name:{text:"München",ref:["https://www.geonames.org/2867714/munich.html"]},coordinates:{lat:"48.13743",lng:"11.57549"}}],related_institutions:[{relation_type:"host",org_name:{text:"Staatsbibliothek zu Berlin",ref:["https://ror.org/02ysgg478","https://www.wikidata.org/wiki/Q170109"]},websites:["https://staatsbibliothek-berlin.de/"]},{relation_type:"cooperation",org_name:{text:"Universität Leipzig",ref:["https://ror.org/03s7gtk40","https://www.wikidata.org/wiki/Q154804"]},websites:["https://www.uni-leipzig.de/"]},{relation_type:"cooperation",org_name:{text:"Bayerische Staatsbibliothek",ref:["https://ror.org/031h71w90","https://www.wikidata.org/wiki/Q256507"]},websites:["https://www.bsb-muenchen.de/"]}],lang:["deu","eng"],related_entities:[{relation_type:"parent",title:"Orient-Digital",uuid:"a4fa5143-90d2-42ba-a8a1-424b09696b1c"},{relation_type:"cooperation",title:"Pilotprojekt zur datenbankgestützten Erschließung und digitalen Bereitstellung der neu erworbenen arabischen, persischen und türkischen Handschriften der Universitätsbibliothek Leipzig",uuid:"0a75cf74-9cbe-4ce2-9799-ee16dcc1e88e"},{relation_type:"cooperation",title:"Project for the digitisation and online presentation of Arabic, Persian, and Turkish manuscripts at Leipzig University Library",uuid:"cad00fa7-09a1-4df1-a08b-4ab5b2a48703"},{relation_type:"cooperation",title:"Datenbankgestützte Erfassung, Erforschung und digitale Präsentation der Familienbibliothek Refaiya",uuid:"38e6dfb4-730a-4a80-8090-4b7ea551b3c7"}],contacts:[{pers_name:{text:"Rauch, Christoph",ref:["https://d-nb.info/gnd/1102171662"]},roles:["supervision"],websites:["https://staatsbibliothek-berlin.de/die-staatsbibliothek/abteilungen/orient/kontakt"]}],research_data:{lang:["ara","fas","tur"],sustainability_plan:!0,publications:{open_access:0,licensing:[]},data:{datatypes:[{label:"XML",stage:"final",licensing:["CC0"],open_access:100}],repositories:[{label:"GitHub",accessibility:"public",ref:["https://git.sc.uni-leipzig.de/mycore_applications"],licensing:[],description:""}]}},stack:{database:["XML"],backend:["Solr","MyCoRe","Neo4J"],frontend:["MyCoRe, HTML","JS"],tools:[{label:"MyCoRe",self_developed:!1,ref:["https://www.mycore.de/"],description:"Used as a repository framework"},{label:"Solr",self_developed:!1,ref:["https://solr.apache.org/"],description:"Used for indexation and data querying"},{label:"Transliteration tool",self_developed:!0,ref:[],description:"Automatic transliteration of Arabic script"}],languages:["JS","Java"]},policies:[{description:"",ref:[]}],keywords:["catalog","digital_preservation","manuscript"],comment:"The data is openly accessible through an OAI API: https://www.qalamos.net/oai2?verb=Identify"}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/qhod/6298a9cd-d41a-40d8-91d0-c532692e95c9.json",{schema_version:"0.2.2",record_metadata:{uuid:"6298a9cd-d41a-40d8-91d0-c532692e95c9",record_created_on:"2022-09-26",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"QhoD – Digitale Edition von Quellen zur habsburgisch-osmanischen Diplomatie 1500–1918",abbr:"QhoD",type:"project",ref:[],date:[{from:"2020",to:""}],maintained:null,websites:["https://qhod.net/","https://gams.uni-graz.at/context:qhod","https://www.oeaw.ac.at/ihb/forschungsbereiche/digitale-historiographie-und-editionen/forschung/habsburg-osmanische-diplomatie"],project_desc:"This project aims to provide a digital infrastructure to edit sources on Habsburg-Ottoman diplomacy from the beginning of diplomatic relations between the two empires at the turn of the 15th and 16th centuries to their demise at the end of World War I. The sources will be digitally processed on a historical-critical basis and made available in open access (CC-BY license). All forms of diplomatic relations and a large variety of source types are included.",places:[{place_name:{text:"Vienna",ref:["https://www.geonames.org/2761369/vienna.html"]},coordinates:{lat:"48.20849",lng:"16.37208"}},{place_name:{text:"Salzburg",ref:["https://www.geonames.org/2766823/salzburg.html"]},coordinates:{lat:"47.41667",lng:"13.25"}},{place_name:{text:"Graz",ref:["https://www.geonames.org/2778067/graz.html"]},coordinates:{lat:"47.06667",lng:"15.45"}}],lang:["deu","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Österreichische Akademie der Wissenschaften",ref:["https://www.wikidata.org/wiki/Q299015","https://ror.org/03anc3s24"]},websites:["https://www.oeaw.ac.at/oesterreichische-akademie-der-wissenschaften"]},{relation_type:"host",org_name:{text:"Universität Graz",ref:["https://www.wikidata.org/wiki/Q622683","https://ror.org/02n0bts35"]},websites:["https://www.uni-graz.at/de/"]},{relation_type:"host",org_name:{text:"Universität Salzburg",ref:["https://ror.org/00tfmqe91","https://www.wikidata.org/wiki/Q27265"]},websites:["https://www.plus.ac.at/"]}],related_entities:[{relation_type:"child",title:"Die Großbotschaften Damian Hugo von Virmonts und Ibrahim Paschas (1719/20)",uuid:"ff1ec94f-2233-46e9-b550-45c792ae581e"},{relation_type:"child",title:"Die Schreiben Selims II. an Maximilian II. und Mustafa Paşa (1566–1574)",uuid:"e9b15bcd-05ec-4de1-95f5-07d5bb44e482"}],contacts:[{pers_name:{text:"Strohmeyer, Arno",ref:["https://d-nb.info/gnd/115840060"]},roles:["supervision"],websites:["https://www.oeaw.ac.at/ihb/personen/strohmeyer-arno"]}],research_data:{lang:["deu","tur"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["annotation","digital_edition","digital_preservation","manuscript","translation","turkology","vre"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/qumran_digital_text_und_lexikon/99718590-5e1e-4a64-bf84-6e2213ad1836.json",{schema_version:"0.2.2",record_metadata:{uuid:"99718590-5e1e-4a64-bf84-6e2213ad1836",record_created_on:"2022-03-28",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Qumran Digital: Text und Lexikon",abbr:"Qurman",type:"project",ref:[],date:[{from:"2021",to:"2033"}],maintained:!0,websites:["https://www.qumran-digital.org/","https://gepris.dfg.de/gepris/projekt/465277421"],project_desc:"The main objective of this project it to elaborate a philological dictionary of a complete vocabulary the Dead Sea Scrolls, famous manuscripts contacting over 1000 biblical and non-biblical text in Hebrew and Aramaic languages dating back to period between 3 c. BC and 2 AD. The materials will be edited morphologically, etymologically and semantically and made openly accessible for public.",places:[{place_name:{text:"Göttingen",ref:["https://www.geonames.org/2918632/goettingen.html"]},coordinates:{lat:"51.53443",lng:"9.93228"}}],lang:["deu"],related_institutions:[{relation_type:"host",org_name:{text:"Akademie der Wissenschaften zu Göttingen",ref:["https://www.wikidata.org/wiki/Q414188","https://ror.org/04hsa7a08"]},websites:["https://adw-goe.de"]}],related_entities:[{relation_type:"sibling",title:"Scripta Qumranica Electronica",uuid:"9513964d-3509-462e-9d64-c47fd3922459"},{relation_type:"sibling",title:"Digitale Gesamtedition und Übersetzung des koptisch-sahidischen Alten Testaments",uuid:"1b19963e-ffc5-48f0-a1b3-81553d601497"},{relation_type:"sibling",title:"KOHD Coptica",uuid:"f67c8fcd-d190-4419-a85a-e6998da4f0ba"},{relation_type:"sibling",title:"KOHD Digital",uuid:"01ac0c0c-b09c-40cf-a75f-42e540b67c2f"},{relation_type:"sibling",title:"Scripta Qumranica Electronica: Eine Verbunddatenbank und virtuelle Forschungsumgebung für die Texte vom Toten Meer",uuid:"9513964d-3509-462e-9d64-c47fd3922459"}],contacts:[{pers_name:{text:"Kratz, Reinhard G.",ref:["https://d-nb.info/gnd/115412700"]},roles:["supervision"],websites:["https://www.uni-goettingen.de/de/56085.html"]}],research_data:{lang:["arc","heb"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["annotation","corpus_resource","jewish_studies","lexicography","lexicon","semitic_studies"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/ria/b0da2d75-183c-4fa4-8b12-47366c02ed7c.json",{schema_version:"0.2.2",record_metadata:{uuid:"b0da2d75-183c-4fa4-8b12-47366c02ed7c",record_created_on:"2023-01-16",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Reallexikon der Assyriologie und Vorderasiatischen Archäologie",abbr:"RIA",type:"project",ref:["https://www.wikidata.org/wiki/Q1246462"],date:[{from:"1928",to:"2018"}],maintained:null,websites:["https://rla.badw.de/das-projekt.html","https://publikationen.badw.de/de/rla"],project_desc:"This project represents the most extensive publication in Ancient Near Eastern Studies, with its first fascicle published in 1928 and the last one in 2018. It is an encyclopedia whose entries cover names of locations, deities and kings, history, religion, literature, sciences, flora and fauna, material culture as well as art and architecture of the Ancient Near East. It is available as printed and digital edition, accessible either as PDF files or via an online List of Lemmata.",places:[{place_name:{text:"München",ref:["https://www.geonames.org/2867714/munich.html"]},coordinates:{lat:"48.13743",lng:"11.57549"}}],lang:["deu","eng","fra"],related_institutions:[{relation_type:"host",org_name:{text:"Bayerische Akademie der Wissenschaften",ref:["https://www.wikidata.org/wiki/Q684415","https://ror.org/001rdaz60"]},websites:["https://badw.de/en/the-academy.html"]}],related_entities:[{relation_type:"cooperation",title:"Cuneiform Digital Library Initiative",uuid:"b8097890-6eeb-43ba-890d-28e1490fde08"}],contacts:[{pers_name:{text:"Streck, Michael P.",ref:["https://d-nb.info/gnd/130425893"]},roles:["supervision"],websites:["https://www.uni-leipzig.de/personenprofil/mitarbeiter/prof-dr-michael-peter-streck"]}],research_data:{lang:["akk","syr"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["encyclopedia","history_studies","semitic_studies"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/romantic_period_poetry_archive/32bc596c-eafd-4bd2-8df3-f1ab5cff4ad6.json",{schema_version:"0.2.2",record_metadata:{uuid:"32bc596c-eafd-4bd2-8df3-f1ab5cff4ad6",record_created_on:"2022-07-19",record_created_by:"Huber, Alexander",last_edited_on:"2022-07-21"},project:{title:"Romantic Period Poetry Archive",abbr:"RPPA",type:"project",ref:[],date:[{from:"2020",to:"2025"}],maintained:!0,websites:["https://www.romanticperiodpoetry.org/"],project_desc:"The Romantic Period Poetry Archive, or RPPA for short, is an open access digital platform of global Romantic-period poetry. It comprises a full-text poetry database and an open scholarship platform. Over 600 poets from 70 countries will be included in the database by the end of the alpha phase of the project (2020-2025).",places:[{place_name:{text:"Oxford",ref:["https://www.geonames.org/2640729/oxford.html"]},coordinates:{lat:"51.75222",lng:"-1.25596"}}],related_institutions:[],lang:["eng"],related_entities:[],contacts:[{pers_name:{text:"Huber, Alexander",ref:[]},roles:["supervision"],websites:["https://c18ah.hcommons.org/"]}],research_data:{lang:[],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["corpus_output","digital_preservation","literary_studies","translation"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/pudel/3c5fd869-4651-414c-a0f1-b1254712b689.json",{schema_version:"0.2.2",record_metadata:{uuid:"3c5fd869-4651-414c-a0f1-b1254712b689",record_created_on:"2022-04-05",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"SaxFDM-Fokusprojekt: Publikationsdienst für wissenschaftliche Datenmodelle und Vokabulare",abbr:"PUDEL",type:"project",ref:[],date:[{from:"2022-01-01",to:"2023-03-31"}],maintained:!0,websites:["https://www.saw-leipzig.de/de/projekte/publikationsdienst-fuer-wissenschaftliche-datenmodelle-und-vokabulare-sax-fdm-fokusprojekt"],project_desc:"The purpose of this project is to standardize and optimize Research Data Management (RDM) in Humanities. The expected output is a new RDM service, which will allow to publish and document different data models in a uniform way. The is a part of SaxFDM initiative dedicated to RDM optimization on a level of Saxony state.",places:[{place_name:{text:"Leipzig",ref:["https://www.geonames.org/2879139/leipzig.html"]},coordinates:{lat:"51.33962",lng:"12.37129"}}],lang:["deu"],related_institutions:[{relation_type:"host",org_name:{text:"Sächsische Akademie der Wissenschaften zu Leipzig",ref:["https://www.wikidata.org/wiki/Q27891200","https://ror.org/03zxjdk07"]},websites:["https://www.saw-leipzig.de/de"]}],related_entities:[],contacts:[{pers_name:{text:"Wiesmeth, Hans",ref:["https://d-nb.info/gnd/109432703"]},roles:["supervision"],websites:["https://www.saw-leipzig.de/de/mitglieder/wiesmethh"]}],research_data:{lang:[],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["research_data_management","research_infrastructure"],comment:"The project is still ongoing (as of 05.04.2022)"}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/scripta_qumranica_electronica/9513964d-3509-462e-9d64-c47fd3922459.json",{schema_version:"0.2.2",record_metadata:{uuid:"9513964d-3509-462e-9d64-c47fd3922459",record_created_on:"2022-03-28",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Scripta Qumranica Electronica: Eine Verbunddatenbank und virtuelle Forschungsumgebung für die Texte vom Toten Meer",abbr:"SQE",type:"project",ref:[],date:[{from:"2016",to:"2021"}],maintained:null,websites:["https://web.archive.org/https://sqe.deadseascrolls.org.il/","https://www.qumranica.org/blog/","https://gepris.dfg.de/gepris/projekt/282601852"],project_desc:"This project is dedicated to enhancing and standardizing the research on the Dead Sea Scrolls, famous manuscripts contacting over 1000 biblical and non-biblical text in Hebrew and Aramaic languages dating back to period between 3 c. BC and 2 AD. Next to the preparation of the pioneer Digital Scholarly Edition of Qumran Texts the main focus of the project lies on the creation of a standardized environment for collaborative production of Scrolls editions, advanced research tools and a robust dynamic interlinked database of texts, images and annotations.",places:[{place_name:{text:"Göttingen",ref:["https://www.geonames.org/2918632/goettingen.html"]},coordinates:{lat:"51.53443",lng:"9.93228"}},{place_name:{text:"Tel Aviv",ref:["https://www.geonames.org/293397/tel-aviv.html"]},coordinates:{lat:"32.08088",lng:"34.78057"}},{place_name:{text:"Jerusalem",ref:["https://www.geonames.org/281184/jerusalem.html"]},coordinates:{lat:"31.76904",lng:"35.21633"}},{place_name:{text:"Haifa",ref:["https://www.geonames.org/294801/haifa.html"]},coordinates:{lat:"32.81841",lng:"34.9885"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Akademie der Wissenschaften zu Göttingen",ref:["https://www.wikidata.org/wiki/Q414188","https://ror.org/04hsa7a08"]},websites:["https://adw-goe.de"]},{relation_type:"host",org_name:{text:"Tel Aviv University",ref:["https://www.wikidata.org/wiki/Q319239","https://ror.org/04mhzgx49"]},websites:["https://english.tau.ac.il/"]},{relation_type:"host",org_name:{text:"Israel Antiquities Authority",ref:["https://ror.org/037fbyh64","https://www.wikidata.org/wiki/Q2744135"]},websites:["https://www.antiquities.org.il/default_en.aspx"]}],related_entities:[{relation_type:"sibling",title:"Qumran Digital: Text und Lexikon",uuid:"99718590-5e1e-4a64-bf84-6e2213ad1836"},{relation_type:"sibling",title:"Digitale Gesamtedition und Übersetzung des koptisch-sahidischen Alten Testaments",uuid:"1b19963e-ffc5-48f0-a1b3-81553d601497"},{relation_type:"sibling",title:"KOHD Coptica",uuid:"f67c8fcd-d190-4419-a85a-e6998da4f0ba"},{relation_type:"sibling",title:"KOHD Digital",uuid:"01ac0c0c-b09c-40cf-a75f-42e540b67c2f"}],contacts:[{pers_name:{text:"Kratz, Reinhard G.",ref:["https://d-nb.info/gnd/115412700"]},roles:["supervision"],websites:["https://www.uni-goettingen.de/de/56085.html"]},{pers_name:{text:"Ben-Dov, Jonathan",ref:["https://www.wikidata.org/wiki/Q66087728"]},roles:["supervision"],websites:["https://english.tau.ac.il/profile/028799815"]}],research_data:{lang:["arc","heb"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["annotation","catalog","digital_preservation","jewish_studies","manuscript","semitic_studies","vre"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/scripta_psl/0cf58379-39c3-4e95-b7b1-cc9f7f11c7ba.json",{schema_version:"0.2.2",record_metadata:{uuid:"0cf58379-39c3-4e95-b7b1-cc9f7f11c7ba",record_created_on:"2022-09-08",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Scripta-PSL",abbr:"",type:"project",ref:[],date:[{from:"2016",to:"2019"}],maintained:null,websites:["https://scripta.psl.eu/","https://escripta.hypotheses.org/"],project_desc:"Scripta-PSL aims to integrate the fundamental sciences of the written word (paleography, codicology, epigraphy, history of the book, etc.) and other social and human sciences (linguistics, history, anthropology, etc.) into the digital and computational humanities. It will develop machine vision tools (for handwriting recognition and document analysis, for example) and tools for (semi)-automatic classification of symbols and texts, with a focus on pre-typographical and/or non-alphabetic cultures. It will also provide additional inquiry into written traditions of rare languages and writings, which are currently underrepresented at the University.",places:[{place_name:{text:"Paris",ref:["https://www.geonames.org/2988506/paris.html"]},coordinates:{lat:"48.85339",lng:"2.34864"}}],lang:[],related_institutions:[{relation_type:"host",org_name:{text:"PSL Research University Paris",ref:["https://ror.org/03k9z2963","https://www.wikidata.org/wiki/Q1163431"]},websites:["https://psl.eu/en"]}],related_entities:[{relation_type:"child",title:"eScriptorium",uuid:"31ad93ff-ca97-4cf0-b30c-60685624e2c8"}],contacts:[{pers_name:{text:"Stauder, Andreas",ref:["https://d-nb.info/gnd/13153503X"]},roles:["supervision"],websites:["https://www.ephe.psl.eu/andreas-stauder"]}],research_data:{lang:["akk","ara","cop","fas","grc","heb","hye","jpn","lat","san","syr","tur","zho"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["annotation","computational_text_analysis","corpus_resource","htr","machine_learning","ocr","vre"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/sefaria_org/177501b1-c847-4547-a757-76f56c5af15f.json",{schema_version:"0.2.2",record_metadata:{uuid:"177501b1-c847-4547-a757-76f56c5af15f",record_created_on:"2021-11-01",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-05-05"},project:{title:"Sefaria",abbr:"",type:"organization",ref:["https://www.wikidata.org/wiki/Q33424604"],date:[{from:"2011",to:""}],maintained:!0,websites:["https://www.sefaria.org/texts"],project_desc:"Sefaria in a non-profit organization which assembles a free-living library of Jewish texts and their interconnections, in Hebrew and in translation. The texts are available in a digital form with interactive interfaces allowing more people to engage with textual treasures and tradition.",places:[{place_name:{text:"New York",ref:["https://www.geonames.org/5128638/new-york.html"]},coordinates:{lat:"43.00035",lng:"-75.4999"}}],lang:["eng","heb"],related_institutions:[],related_entities:[],contacts:[{pers_name:{text:"Septimus, Daniel",ref:[]},roles:["supervision"],websites:[]}],research_data:{lang:["heb"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["corpus_output","digital_preservation","jewish_studies","religious_text","vre"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/sfardata/81d8ad85-5da8-457f-99a3-6ab11128ef03.json",{schema_version:"0.2.2",record_metadata:{uuid:"81d8ad85-5da8-457f-99a3-6ab11128ef03",record_created_on:"2022-08-12",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"SfarData",abbr:"",type:"project",ref:[],date:[{from:"1965",to:""}],maintained:null,websites:["https://sfardata.nli.org.il/#/startSearch_En","https://www.csmc.uni-hamburg.de/news/2020-12-14-sfardata.html"],project_desc:"SfarData is a bilingual (Hebrew/English) codicological database of the dated medieval manuscripts written in Hebrew script documented in 250 libraries. It has a 50 years long history of digital preservation of bibliographical, textual, numerical, and paleographical data and was recently incorporated to the National Library of Israel.",places:[{place_name:{text:"Jerusalem",ref:["https://www.geonames.org/281184/jerusalem.html"]},coordinates:{lat:"31.76904",lng:"35.21633"}},{place_name:{text:"Hamburg",ref:["https://www.geonames.org/2911298/hamburg.html"]},coordinates:{lat:"53.55073",lng:"9.99302"}}],lang:["eng","heb"],related_institutions:[{relation_type:"host",org_name:{text:"Israel Academy of Sciences and Humanities",ref:["https://ror.org/03c6c9520","https://www.wikidata.org/wiki/Q209184"]},websites:["https://www.academy.ac.il/english.aspx"]},{relation_type:"host",org_name:{text:"National Library of Israel",ref:["https://ror.org/03be63z97","https://www.wikidata.org/wiki/Q188915"]},websites:["https://www.nli.org.il/en"]},{relation_type:"host",org_name:{text:"Universität Hamburg",ref:["https://ror.org/00g30e956","https://www.wikidata.org/wiki/Q156725"]},websites:["https://www.uni-hamburg.de/"]}],related_entities:[{relation_type:"sibling",title:"Audition Certificates Platform",uuid:"b333a11d-b9fc-4379-9e21-fbddfa9500b1"},{relation_type:"sibling",title:"Afrikanische Stimmen in islamischen Manuskripten aus Mali: Erschließung und Erforschung afrikanischer Sprachen in arabischer Schrift (Ajami)",uuid:"eaf36ccc-5ee4-4749-80ea-7f71f479c968"},{relation_type:"sibling",title:"Beta maṣāḥǝft Manuscripts of Ethiopia and Eritrea",uuid:"169677fd-14f9-46e7-b8f1-2202fb91397c"},{relation_type:"sibling",title:"Methoden der Bildverarbeitung zur Bestimmung von visuellen Manuskript- und Zeichenmerkmalen",uuid:"eb8e91fe-952e-48b7-af0d-c026ebe37826"},{relation_type:"sibling",title:"Datenrepositorium Manuskriptkulturen",uuid:"894dcf0c-7295-4fb8-b4ba-866a5ebe3310"},{relation_type:"sibling",title:"Demarginalizing Medieval Africa: Images, Texts, and Identity in Early Solomonic Ethiopia",uuid:"46121edb-516b-4dbf-ba49-e2c5f07cec2e"},{relation_type:"sibling",title:"Documentation of Gorani, an endangered language of West Iran",uuid:"17fa004d-c9d2-4ce3-8116-b7bfff5d14ed"},{relation_type:"sibling",title:"The Evolution of Islamic Societies (c. 600–1600 CE): Algorithmic Analysis into Social History",uuid:"659c0aba-3bdd-43eb-937d-dad4ad63e3fc"},{relation_type:"sibling",title:"The intertwined world of the oral and written transmission of sacred traditions in the Middle East",uuid:"bb852d81-0c6d-4413-8c20-1bb38c4db4e7"},{relation_type:"sibling",title:"Islamic Painted Page",uuid:"31534c48-6b74-4cc5-8aff-ea8dbc60c445"},{relation_type:"sibling",title:"Methoden der Manuskriptanalyse zur Wiedergewinnung verlorener Schrift",uuid:"892b783d-1788-451f-9efd-1c58bfb4b064"},{relation_type:"sibling",title:"SIHAFA: The Ideosphere of the Late Ottoman Arabic Press: Mapping the Discursive Field of Authors and Texts through Computational Approaches",uuid:"20ee58f5-f699-4262-a473-7765e249c871"},{relation_type:"sibling",title:"Understanding Written Artefacts",uuid:"9ca46873-3089-4a04-99fa-89c0c1b01213"},{relation_type:"sibling",title:"Ethio-SPaRe: Cultural Heritage of Christian Ethiopia. Salvation, Preservation, Research",uuid:"fbf007e0-7eee-4bb1-801d-568785d43d04"},{relation_type:"sibling",title:"From Translation to Creation: Changes in Ethiopic Style and Lexicon from Late Antiquity to the Middle Ages",uuid:"77ae1011-1b54-46b5-b676-02895e3300fc"},{relation_type:"sibling",title:"Corpus dei Manoscritti Copti Letterari",uuid:"c4f41a6d-9fb9-4c31-85f0-b66acfe41289"}],contacts:[{pers_name:{text:"Bet-Aryeh, Mal’akhi",ref:["https://d-nb.info/gnd/104345179"]},roles:["supervision"],websites:["https://www.csmc.uni-hamburg.de/about/people/beitarie.html"]}],research_data:{lang:["heb"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["catalog","digital_preservation","jewish_studies","manuscript"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/sharia_source/1b2ca0bf-fb29-4b5c-852b-2eedd6a85773.json",{schema_version:"0.2.2",record_metadata:{uuid:"1b2ca0bf-fb29-4b5c-852b-2eedd6a85773",record_created_on:"2022-09-07",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"SHARIAsource",abbr:"",type:"project",ref:[],date:[{from:"2015",to:""}],maintained:null,websites:["https://pil.law.harvard.edu/shariasource-portal/","https://beta.shariasource.com/"],project_desc:"SHARIAsource is a project dedicated to digitalization of Islamic legal studies. To this end, the platform offers a growing library of primary sources for Islamic law, which were collected from all around the globe through digitization, partnerships, and individual contributions. It also uses data science and AI to curate and build digital humanities tools that make the Portal’s Islamic law sources more accessible and useful, and to facilitate new research and analysis.",places:[{place_name:{text:"Cambridge",ref:["https://www.geonames.org/4931972/cambridge.html"]},coordinates:{lat:"42.3751",lng:"-71.10561"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Harvard University",ref:["https://ror.org/03vek6s52","https://www.wikidata.org/wiki/Q13371"]},websites:["https://www.harvard.edu/"]}],related_entities:[{relation_type:"child",title:"CorpusBuilder",uuid:"eb1591d7-75b9-4d62-9f67-0679e627587b"},{relation_type:"child",title:"Open Islamicate Texts Initiative Arabic-script OCR Catalyst Project",uuid:"786edd87-476e-42a6-bcc0-521833ec73e5"}],contacts:[{pers_name:{text:"Celik, Yusuf",ref:[]},roles:["supervision"],websites:["https://pil.law.harvard.edu/fellow/yusuf-celik/"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["corpus_output","digital_preservation","history_studies","islamic_studies"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/shawi/68422d65-ccba-4dcb-8a0e-bd4f3f9e1dc9.json",{schema_version:"0.2.2",record_metadata:{uuid:"68422d65-ccba-4dcb-8a0e-bd4f3f9e1dc9",record_created_on:"2022-05-10",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Shawi",abbr:"",type:"project",ref:[],date:[{from:"2021-02-01",to:"2025-02-28"}],maintained:!0,websites:["https://www.oeaw.ac.at/acdh/projects/shawi"],project_desc:"This project focuses on the Arabic dialects of the so-called Shawi-type spoken by small cattle breeding Bedouin tribes in various regions of the Fertile Crescent. The main objective is to create a text corpus of this dialects based on audio recordings, to provide a comprehensive grammar and a digital dictionary. The basis of these contributions is new linguistic data gathered from the field from speakers living in the Harran-Urfa region of Southeastern Turkey, Syria and Iran.",places:[{place_name:{text:"Vienna",ref:["https://www.geonames.org/2761369/vienna.html"]},coordinates:{lat:"48.20849",lng:"16.37208"}}],lang:["deu","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Österreichische Akademie der Wissenschaften",ref:["https://www.wikidata.org/wiki/Q299015","https://ror.org/03anc3s24"]},websites:["https://www.oeaw.ac.at/en/"]},{relation_type:"host",org_name:{text:"Universität Wien",ref:["https://ror.org/04d836q62","https://www.wikidata.org/wiki/Q165980"]},websites:["https://www.univie.ac.at/en/"]}],related_entities:[{relation_type:"sibling",title:"WIBARAB: What is Bedouin-Type Arabic?",uuid:"e9cb8ab1-2d2c-4cc3-a44d-a793220a8638"},{relation_type:"sibling",title:"Genesis Rabbah Loanwords",uuid:"94044a63-eae5-4e1d-ba04-64874109fc36"},{relation_type:"sibling",title:"Vienna Corpus of Arabic Varieties",uuid:"8f343a28-a873-449c-b359-efcfab7d1201"},{relation_type:"sibling",title:"NoMansLand: Nomads’ Manuscripts Landscape",uuid:"e050deba-6e1d-4d82-851b-cf6c1f7187a5"},{relation_type:"sibling",title:"Linguistic dynamics in the Greater Tunis Area: a corpus-based approach (TUNICO)",uuid:"79462111-75a7-4fa0-8e11-9d424293a074"},{relation_type:"sibling",title:"TUNOCENT",uuid:"325a929a-6764-41e1-b452-6556209fa74f"}],contacts:[{pers_name:{text:"Procházka, Stephan",ref:["https://d-nb.info/gnd/136441688"]},roles:["supervision"],websites:["https://orientalistik.univie.ac.at/ueber-uns/personal/detailansicht-personal/user/prochas8/inum/1073/backpid/86555/"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","audio","corpus_resource","dialectology","language_documentation","lexicon","linguistics"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/sihafa/20ee58f5-f699-4262-a473-7765e249c871.json",{schema_version:"0.2.2",record_metadata:{uuid:"20ee58f5-f699-4262-a473-7765e249c871",record_created_on:"2023-11-09",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"SIHAFA: The Ideosphere of the Late Ottoman Arabic Press: Mapping the Discursive Field of Authors and Texts through Computational Approaches",abbr:"SIHAFA",type:"project",ref:[],date:[{from:"2023-09-01",to:"2025-08-31"}],maintained:!0,websites:["https://cordis.europa.eu/project/id/101061500","https://explore.openaire.eu/search/project?projectId=corda_____he::96549b48568ab3ca3ca1311397eed157"],project_desc:"SIHAFA explores the late Ottoman Arabic ideosphere of, employing a systematic and computational approach to study the periodical press as a discursive field. The project's methodology involves analyzing a digital corpus of seven Arabic journals through stylometric authorship attribution, social network analysis, and close reading. The aim is to fill a research gap, challenge established narratives of the Arabic Renaissance, and contribute to Arab Periodical Studies, emphasizing FAIR data principles and open access. Project outputs will include groundbreaking research published in English and Arabic, improved digital scholarly editions, authority files, an OCR model for Arabic periodicals, and a plain text corpus of authorship candidates.",places:[{place_name:{text:"Hamburg",ref:["https://www.geonames.org/2911298/hamburg.html"]},coordinates:{lat:"53.55073",lng:"9.99302"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Universität Hamburg",ref:["https://ror.org/00g30e956","https://www.wikidata.org/wiki/Q156725"]},websites:["https://www.uni-hamburg.de/"]}],related_entities:[{relation_type:"sibling",title:"Audition Certificates Platform",uuid:"b333a11d-b9fc-4379-9e21-fbddfa9500b1"},{relation_type:"sibling",title:"Afrikanische Stimmen in islamischen Manuskripten aus Mali: Erschließung und Erforschung afrikanischer Sprachen in arabischer Schrift (Ajami)",uuid:"eaf36ccc-5ee4-4749-80ea-7f71f479c968"},{relation_type:"sibling",title:"Beta maṣāḥǝft Manuscripts of Ethiopia and Eritrea",uuid:"169677fd-14f9-46e7-b8f1-2202fb91397c"},{relation_type:"sibling",title:"Methoden der Bildverarbeitung zur Bestimmung von visuellen Manuskript- und Zeichenmerkmalen",uuid:"eb8e91fe-952e-48b7-af0d-c026ebe37826"},{relation_type:"sibling",title:"Datenrepositorium Manuskriptkulturen",uuid:"894dcf0c-7295-4fb8-b4ba-866a5ebe3310"},{relation_type:"sibling",title:"Demarginalizing Medieval Africa: Images, Texts, and Identity in Early Solomonic Ethiopia",uuid:"46121edb-516b-4dbf-ba49-e2c5f07cec2e"},{relation_type:"sibling",title:"Documentation of Gorani, an endangered language of West Iran",uuid:"17fa004d-c9d2-4ce3-8116-b7bfff5d14ed"},{relation_type:"sibling",title:"The Evolution of Islamic Societies (c. 600–1600 CE): Algorithmic Analysis into Social History",uuid:"659c0aba-3bdd-43eb-937d-dad4ad63e3fc"},{relation_type:"sibling",title:"The intertwined world of the oral and written transmission of sacred traditions in the Middle East",uuid:"bb852d81-0c6d-4413-8c20-1bb38c4db4e7"},{relation_type:"sibling",title:"Islamic Painted Page",uuid:"31534c48-6b74-4cc5-8aff-ea8dbc60c445"},{relation_type:"sibling",title:"Methoden der Manuskriptanalyse zur Wiedergewinnung verlorener Schrift",uuid:"892b783d-1788-451f-9efd-1c58bfb4b064"},{relation_type:"sibling",title:"SfarData",uuid:"81d8ad85-5da8-457f-99a3-6ab11128ef03"},{relation_type:"sibling",title:"Understanding Written Artefacts",uuid:"9ca46873-3089-4a04-99fa-89c0c1b01213"},{relation_type:"sibling",title:"Ethio-SPaRe: Cultural Heritage of Christian Ethiopia. Salvation, Preservation, Research",uuid:"fbf007e0-7eee-4bb1-801d-568785d43d04"},{relation_type:"sibling",title:"From Translation to Creation: Changes in Ethiopic Style and Lexicon from Late Antiquity to the Middle Ages",uuid:"77ae1011-1b54-46b5-b676-02895e3300fc"},{relation_type:"sibling",title:"Corpus dei Manoscritti Copti Letterari",uuid:"c4f41a6d-9fb9-4c31-85f0-b66acfe41289"}],contacts:[{pers_name:{text:"Grallert, Till",ref:[]},roles:["supervision"],websites:["https://openarabicpe.github.io/"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[]},data:{datatypes:[{label:"",stage:"raw",licensing:[],open_access:0}],repositories:[{label:"",accessibility:"public",ref:[],licensing:[],description:""}]}},stack:{database:[],backend:[],frontend:[],tools:[{label:"",self_developed:!1,ref:[],description:""}],languages:[]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","computational_text_analysis","corpus_resource","history_studies","media_studies","network_analysis","ocr","stylometry"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/streamlining_galen/880f1d65-b815-4474-9fb4-b17f13bd3765.json",{schema_version:"0.2.2",record_metadata:{uuid:"880f1d65-b815-4474-9fb4-b17f13bd3765",record_created_on:"2021-11-01",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-05-06"},project:{title:"Streamlining Galen",abbr:"",type:"project",ref:[],date:[{from:"2019",to:"2024"}],maintained:!1,websites:["https://warwick.ac.uk/fac/arts/classics/research/dept_projects/streamlininggalen/"],project_desc:"This project is dedicated to study of influence that Galen’s works had on Islamic medicine after their translation into Arabic between 8th and 10th century. The focus of the research lies on the Arabic summaries of Galen which served as primary learning tools for medical students and doctors. The main output of the project will be a comprehensive survey of Arabic Galenic summaries and a digital corpus of selected texts. Project members will analyze and compare them with each other and with the Galen treatises in Arabic translation that formed the basis of the summaries.",places:[{place_name:{text:"Coventry",ref:["https://www.geonames.org/2652221/coventry.html"]},coordinates:{lat:"52.40656",lng:"-1.51217"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Warwick University",ref:["https://ror.org/01a77tt86","https://www.wikidata.org/wiki/Q865528"]},websites:["https://www2.warwick.ac.uk/"]}],related_entities:[],contacts:[{pers_name:{text:"Swain, Simon",ref:["https://www.wikidata.org/wiki/Q55386758"]},roles:["supervision"],websites:["https://warwick.ac.uk/fac/arts/classics/intranets/staff/simonswain/"]},{pers_name:{text:"Vagelpohl, Uwe",ref:["https://d-nb.info/gnd/1066384339"]},roles:["investigation"],websites:["https://warwick.ac.uk/fac/arts/classics/intranets/staff/vagelpohl"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","digital_edition","digital_preservation","history_studies","manuscript","medicine_history","science_history"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/strukturen_und_transformationen/85d053c3-4ce6-4130-bc6a-63f96acfb067.json",{schema_version:"0.2.2",record_metadata:{uuid:"85d053c3-4ce6-4130-bc6a-63f96acfb067",record_created_on:"2022-02-09",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Strukturen und Transformationen des Wortschatzes der ägyptischen Sprache: Text- und Wissenskultur im Alten Ägypten",abbr:"",type:"project",ref:[],date:[{from:"2013",to:"2035"}],maintained:!0,websites:["https://aaew.bbaw.de/de","https://www.bbaw.de/forschung/wortschatz-der-aegyptischen-sprache","https://www.saw-leipzig.de/de/projekte/strukturen-und-transformationen-des-wortschatzes-der-aegyptischen-sprache"],project_desc:"The aim of the project is preparation of a diachronic corpus of Egyptian texts which, linked to a digital dictionary, enables online research of Coptic vocabulary throughout all epochs and stages of Egyptian language history. The results are accessible on Thesaurus Linguae Aegyptiae (TLA), a research and publishing platform developed by a previous BBAW project, “Altägyptisches Wörterbuch,” which expired 2012.",places:[{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}},{place_name:{text:"Leipzig",ref:["https://www.geonames.org/2879139/leipzig.html"]},coordinates:{lat:"51.33962",lng:"12.37129"}}],lang:["deu"],related_institutions:[{relation_type:"host",org_name:{text:"Zentrum Grundlagenforschung Alte Welt",ref:[]},websites:["https://www.bbaw.de/forschung/zentren/zentrum-alte-welt"]},{relation_type:"host",org_name:{text:"Sächsische Akademie der Wissenschaften zu Leipzig",ref:["https://www.wikidata.org/wiki/Q27891200","https://ror.org/03zxjdk07"]},websites:["https://www.saw-leipzig.de/"]}],related_entities:[{relation_type:"sibling",title:"Altägyptisches Wörterbuch",uuid:"a4d189e4-f03f-4db0-8742-b777e22da760"},{relation_type:"sibling",title:"Corpus Coranicum",uuid:"0fd7b9cd-fdae-441b-a6fd-a791d4583ce0"}],contacts:[{pers_name:{text:"Richter, Tonio Sebastian",ref:["https://d-nb.info/gnd/142266140"]},roles:["supervision"],websites:["https://www.geschkult.fu-berlin.de/e/aegyptologie/personen/Professorinnen-und-Professoren/Richter/","https://www.bbaw.de/die-akademie/bbaw-mitglieder/mitglied-tonio-sebastian-richter"]}],research_data:{lang:["cop"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["annotation","corpus_resource","egyptology","lexicography","lexicon","translation","vre"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/averroes_commentary_on_the_physics_in_hebrew_and_latin_transmission/3992a23d-8426-4b73-8b30-844e471e76e2.json",{schema_version:"0.2.2",record_metadata:{uuid:"3992a23d-8426-4b73-8b30-844e471e76e2",record_created_on:"2022-02-21",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-02-22"},project:{title:"Study of Averroes’s Long Commentary on the Physics in Hebrew and Latin Transmission",abbr:"",type:"project",ref:[],date:[{from:"2016",to:""}],maintained:null,websites:["https://averroes.uni-koeln.de/edition/current-editions/"],project_desc:"This project is a preparation for the critical edition of Hebrew and Latin translations of Averroes’s Long Commentary on Aristotle’s Physics. While the Arabic original is lost, the aim of collation of its extant Latin and Hebrew translations is to reconstruct it.",places:[{place_name:{text:"Köln",ref:["https://www.geonames.org/2886242/koeln.html"]},coordinates:{lat:"50.93333",lng:"6.95"}}],lang:["eng"],related_institutions:[],related_entities:[{relation_type:"parent",title:"Averroes Edition",uuid:"a6e1fb68-e7a5-4125-8cfc-ec3aa16da73b"},{relation_type:"sibling",title:"Critical Edition of Ibn Bāğğa’s Commentary on Aristotle’s De generatione et corruptione",uuid:"c3e206ec-9989-4500-ac20-4126e35871f2"},{relation_type:"sibling",title:"Critical Edition of the Fragmentary Latin Translation of Averroes’s Commentary on De Partibus Animalium and De Generatione Animalium",uuid:"7c7438e6-4172-4059-ad60-54a6d0d61f7c"},{relation_type:"sibling",title:"Critical Edition of Ibn Bāǧǧa’s Commentary on Aristotle’s Physics",uuid:"f24e806a-0777-4690-b148-1b35ab3745e2"}],contacts:[{pers_name:{text:"Horezky, Oded",ref:[]},roles:["investigation"],websites:["https://uni-koeln.academia.edu/OdedHorezky"]},{pers_name:{text:"Clesse, Grégory",ref:["https://viaf.org/viaf/48155707096822411871/"]},roles:["investigation"],websites:["https://uclouvain.academia.edu/Gr%C3%A9goryClesse/CurriculumVitae"]}],research_data:{lang:["ara","heb","lat"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","digital_edition","digital_preservation","jewish_studies","manuscript","philosophy","science_history"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/saop/87d036b9-5145-47d0-8d0e-83bb6821f3fe.json",{schema_version:"0.2.2",record_metadata:{uuid:"87d036b9-5145-47d0-8d0e-83bb6821f3fe",record_created_on:"2022-09-30",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Surayt-Aramaic Online Project",abbr:"SAOP",type:"project",ref:[],date:[{from:"2014",to:"2017"},{from:"2017",to:"2020"}],maintained:null,websites:["http://www.surayt.com/","https://www.geschkult.fu-berlin.de/e/semiarab/semitistik/forschung/abgeschlossene-forschungsprojekte/saop/index.html","https://www.geschkult.fu-berlin.de/e/semiarab/semitistik/forschung/abgeschlossene-forschungsprojekte/aramaic-online-project/index.html"],project_desc:"This project is a second phase of Aramaic Online Project, whose team developed online courses for Surayt language in levels A1, A2 and B1. The aim of this phase is to develop courses for intermediary and advanced levels (B1-2, C1 and C2) and producing additional linguistic material for the teaching of Surayt, such as a “Reader” (digital text corpus) which will address the needs of more advanced learners.",places:[{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}},{place_name:{text:"Stockholm",ref:["https://www.geonames.org/2673730/stockholm.html"]},coordinates:{lat:"59.32938",lng:"18.06871"}},{place_name:{text:"Glane",ref:["https://www.geonames.org/2755497/glane.html"]},coordinates:{lat:"52.2325",lng:"7.00278"}},{place_name:{text:"Piscataway",ref:["https://www.geonames.org/5102713/piscataway.html"]},coordinates:{lat:"40.49927",lng:"-74.39904"}},{place_name:{text:"Gölcük",ref:["https://www.geonames.org/746666/geulzuk.html"]},coordinates:{lat:"40.71501",lng:"29.81824"}}],lang:["ara","deu","eng","fra","nld","swe","tur"],related_institutions:[{relation_type:"host",org_name:{text:"Freie Universität Berlin",ref:["https://ror.org/046ak2485","https://www.wikidata.org/wiki/Q153006"]},websites:["https://www.fu-berlin.de/"]},{relation_type:"host",org_name:{text:"Stockholm University",ref:["https://ror.org/05f0yaq80","https://www.wikidata.org/wiki/Q221645"]},websites:["https://www.su.se/cmlink/stockholm-university"]},{relation_type:"host",org_name:{text:"St Ephrem Syriac Orthodox Monastery",ref:[]},websites:["https://morephrem.com/klooster/"]},{relation_type:"host",org_name:{text:"Beth Mardutho Syriac Institute",ref:["https://www.wikidata.org/wiki/Q59535226#sitelinks-wikipedia","https://ror.org/01agawy76"]},websites:["https://bethmardutho.org/surayt/"]},{relation_type:"host",org_name:{text:"Midyat Süryani Kültür Dernegi",ref:[]},websites:["https://web.archive.org/http://midyatsuryanikulturdernegi.com/"]}],related_entities:[],contacts:[{pers_name:{text:"Talay; Shabo",ref:["https://d-nb.info/gnd/120744414"]},roles:["supervision"],websites:["https://www.geschkult.fu-berlin.de/e/semiarab/semitistik/Seminar/mitarbeiterInnen/Professor_innen/talay/index.html"]}],research_data:{lang:["arc","tru"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["corpus_resource","e_learning","semitic_studies","tei"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/synoptische_edition_des_kabbalistischen_traktats_keter_shem_tov/827f5ce7-a331-44fe-b40a-5cd93f348a0a.json",{schema_version:"0.2.2",record_metadata:{uuid:"827f5ce7-a331-44fe-b40a-5cd93f348a0a",record_created_on:"2022-03-25",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Synoptische Edition des kabbalistischen Traktats Keter Shem Ṭov",abbr:"Keter Shem Ṭov",type:"project",ref:[],date:[{from:"2019",to:"2022"}],maintained:null,websites:["https://kabbalaheditions.org"],project_desc:"The research object of this project is the approximately 700 years old Hebrew treatise Keter Shem Tov, which constitutes one of the most important introductory texts into the Kabbalah. The purpose of the project to prepare a critical printed edition of the text as well as its online, interactive and openly accessible version along with an English translation. To reach this objective the project contributes to the further development of an interactive, digital tool LERA.",places:[{place_name:{text:"Halle (Saale)",ref:["https://www.geonames.org/2911522/halle-saale.html"]},coordinates:{lat:"51.48158",lng:"11.97947"}}],lang:["deu","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Martin-Luther-Universität Halle-Wittenberg",ref:["https://ror.org/05gqaka33","https://www.wikidata.org/wiki/Q32120"]},websites:["https://www.uni-halle.de/?lang=en"]}],related_entities:[],contacts:[{pers_name:{text:"Pöckelmann, Marcus",ref:[]},roles:["supervision"],websites:["https://www.informatik.uni-halle.de/ti/mitarbeiter/poeckelmann/"]}],research_data:{lang:["heb"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["digital_edition","digital_preservation","jewish_studies","manuscript","religious_text","translation","vre"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/syriaca_org/fdda3e43-e15b-4c64-a99d-924f37152cc9.json",{schema_version:"0.2.2",record_metadata:{uuid:"fdda3e43-e15b-4c64-a99d-924f37152cc9",record_created_on:"2021-11-01",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-05-06"},project:{title:"Syriaca.org: The Syriac Reference Portal",abbr:"",type:"project",ref:[],date:[{from:"2012",to:""}],maintained:null,websites:["https://syriaca.org/index.html"],project_desc:"Syriaca.org is a portal intended to document and preserve Syriac cultural heritage. It serves as an online hub (cyber-infrastructure) to assist research in the field of Syriac studies and to compile and organize core data related to the study of Syriac sources. The publications of Syriaca.org combine emerging methods of the Digital Humanities with traditional scholarship in history and philology, new digital tools are created for widely disseminating this data and facilitating further research.",places:[{place_name:{text:"Nashville",ref:["https://www.geonames.org/4644585/nashville.html"]},coordinates:{lat:"36.16589",lng:"-86.78444"}}],lang:[],related_institutions:[{relation_type:"host",org_name:{text:"Texas A&M University",ref:["https://www.wikidata.org/wiki/Q49212","https://ror.org/0034eay46"]},websites:["https://codhr.dh.tamu.edu/","https://www.tamu.edu/"]},{relation_type:"host",org_name:{text:"Vanderbilt University",ref:["https://ror.org/02vm5rt34","https://www.wikidata.org/wiki/Q29052"]},websites:["https://www.vanderbilt.edu/"]},{relation_type:"host",org_name:{text:"Princeton University",ref:["https://ror.org/00hx57361","https://www.wikidata.org/wiki/Q21578"]},websites:["https://www.princeton.edu/"]},{relation_type:"host",org_name:{text:"Marquette University",ref:["https://ror.org/04gr4te78","https://www.wikidata.org/wiki/Q188370"]},websites:["https://www.marquette.edu"]},{relation_type:"host",org_name:{text:"New York University",ref:["https://ror.org/03v8adn41","https://www.wikidata.org/wiki/Q49210"]},websites:["https://www.nyu.edu/"]},{relation_type:"host",org_name:{text:"Beth Mardutho Research Library",ref:["https://d-nb.info/gnd/1086900480"]},websites:["https://bethmardutho.org/library/"]}],related_entities:[],contacts:[{pers_name:{text:"Gibson, Nathan",ref:[]},roles:["investigation"],websites:["https://biblia-arabica.com/team/nathan-gibson/"]}],research_data:{lang:["syr"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["biographical_data","corpus_resource","geodata","semitic_studies","translation","visualization"],comment:"The start date recorded for this project is approximate."}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/text_plus/2689651d-1e28-4f26-ac43-cfdca097d837.json",{schema_version:"0.2.2",record_metadata:{uuid:"2689651d-1e28-4f26-ac43-cfdca097d837",record_created_on:"2021-11-01",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-05-06"},project:{title:"Text+",abbr:"",type:"organization",ref:[],date:[{from:"2021",to:"2026"}],maintained:!0,websites:["https://www.text-plus.org/"],project_desc:"Text+ is a consortium with the objective to establish a national research data infrastructure. It will preserve text- and language-based research data in the long term and enable their broad use in science.",places:[{place_name:{text:"Mannheim",ref:["https://www.geonames.org/2873891/mannheim.html"]},coordinates:{lat:"49.4891",lng:"8.46694"}},{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}},{place_name:{text:"Frankfurt am Main",ref:["https://www.geonames.org/2925533/frankfurt-am-main.html"]},coordinates:{lat:"50.11552",lng:"8.68417"}},{place_name:{text:"Leipzig",ref:["https://www.geonames.org/2879139/leipzig.html"]},coordinates:{lat:"51.33962",lng:"12.37129"}},{place_name:{text:"Göttingen",ref:["https://www.geonames.org/2918632/goettingen.html"]},coordinates:{lat:"51.53443",lng:"9.93228"}},{place_name:{text:"Düsseldorf",ref:["https://www.wikidata.org/wiki/Q320642"]},coordinates:{lat:"36.61393",lng:"29.23698"}}],lang:["deu","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Die Nationale Forschungsdateninfrastruktur (NFDI)",ref:["https://www.wikidata.org/wiki/Q105757481","https://ror.org/05qj6w324"]},websites:["https://www.nfdi.de/verein/"]},{relation_type:"host",org_name:{text:"Leibniz-Institut für Deutsche Sprache",ref:["https://www.wikidata.org/wiki/Q1664834","https://ror.org/00hvwkt50"]},websites:["https://www.ids-mannheim.de/"]},{relation_type:"host",org_name:{text:"Berlin-Brandenburgische Akademie der Wissenschaften",ref:["https://ror.org/05jgq9443","https://www.wikidata.org/wiki/Q219989"]},websites:["https://www.bbaw.de/"]},{relation_type:"host",org_name:{text:"Deutsche Nationalbibliothek",ref:["https://www.wikidata.org/wiki/Q27302","https://ror.org/01n7gem85"]},websites:["https://www.dnb.de/DE/Home/home_node.html"]},{relation_type:"host",org_name:{text:"Niedersächsische Staats- und Universitätsbibliothek Göttingen",ref:["https://www.wikidata.org/wiki/Q564783"]},websites:["https://www.sub.uni-goettingen.de/sub-aktuell/"]},{relation_type:"host",org_name:{text:"Nordrhein-Westfälische Akademie der Wissenschaften und der Künste",ref:["https://www.wikidata.org/wiki/Q320642"]},websites:["https://www.awk.nrw/"]}],related_entities:[],contacts:[{pers_name:{text:"Klemm, Verena",ref:["https://d-nb.info/gnd/172189101"]},roles:["investigation"],websites:["https://www.gkr.uni-leipzig.de/orientalisches-institut/ueber-uns/team/prof-dr-verena-klemm"]}],research_data:{lang:[],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["research_data_management","research_infrastructure"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/classicmayan/2253d7f2-c150-44e2-9a8a-c7c5ba0ab661.json",{schema_version:"0.2.2",record_metadata:{uuid:"2253d7f2-c150-44e2-9a8a-c7c5ba0ab661",record_created_on:"2023-12-14",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Textdatenbank und Wörterbuch des Klassischen Maya",abbr:"Classicmayan",type:"project",ref:[],date:[{from:"2014",to:""}],maintained:!0,websites:["https://classicmayan.org/portal/","https://digitale-sammlungen.ulb.uni-bonn.de/maya"],project_desc:"This project is centered on the analysis of all known hieroglyphic Mayan texts which will serve as the basis for the compilation and editing of a Classic Mayan language dictionary. It will employ machine-readable versions of the source materials in order to integrate all occurrences of the Maya hieroglyphs into a corpus-based database, together with information concerning the original hieroglyphic spelling, transcription, and translation, as well as supplementary information. It thus lays the foundation for a systematic understanding of the structure of the writing system and of Classic Maya, the standard language underlying the hieroglyphic script.",places:[{place_name:{text:"Bonn",ref:["https://www.geonames.org/2946447/bonn.html"]},coordinates:{lat:"50.73438",lng:"7.09549"}},{place_name:{text:"Düsseldorf",ref:["https://www.geonames.org/2934246/duesseldorf.html"]},coordinates:{lat:"51.22172",lng:"6.77616"}},{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}}],lang:["eng","deu","spa"],related_institutions:[{relation_type:"host",org_name:{text:"Universität Bonn",ref:["https://www.wikidata.org/wiki/Q152171","https://ror.org/041nas322"]},websites:["https://www.uni-bonn.de/de"]},{relation_type:"cooperation",org_name:{text:"Nordrhein-Westfälische Akademie der Wissenschaften und Künste",ref:["https://www.wikidata.org/wiki/Q320642","https://ror.org/03aym6q96"]},websites:["https://www.awk.nrw/"]},{relation_type:"cooperation",org_name:{text:"Union der deutschen Akademien der Wissenschaften",ref:["https://www.wikidata.org/wiki/Q1662834","https://ror.org/04bvdz568"]},websites:["https://www.akademienunion.de/"]}],related_entities:[{relation_type:"cooperation",title:"TextGrid",uuid:"28b08ba5-2a3f-4f35-a909-7a745c26ba55"}],contacts:[{pers_name:{text:"Grube, Nikolai",ref:["https://d-nb.info/gnd/110726553"]},roles:["supervision"],websites:["https://www.uni-bonn.de/de/forschung-lehre/forschungsprofil/transdisziplinaere-forschungsbereiche/tra5/mitgliederverzeichnis/nikolai-grube"]}],research_data:{lang:["emy"],sustainability_plan:null,publications:{open_access:0,licensing:[]},data:{datatypes:[{label:"",stage:"raw",licensing:[],open_access:0}],repositories:[{label:"",accessibility:"public",ref:[],licensing:[],description:""}]}},stack:{database:[],backend:[],frontend:[],tools:[{label:"",self_developed:!1,ref:[],description:""}],languages:[]},policies:[{description:"",ref:[]}],keywords:["archaeology","digital_preservation","inscription","lexicon","translation"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/text_grid/28b08ba5-2a3f-4f35-a909-7a745c26ba55.json",{schema_version:"0.2.2",record_metadata:{uuid:"28b08ba5-2a3f-4f35-a909-7a745c26ba55",record_created_on:"2023-12-15",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"TextGrid",abbr:"",type:"project",ref:[],date:[{from:"2006",to:"2009"},{from:"2009",to:"2012"},{from:"2012",to:"2015"}],maintained:!0,websites:["https://www.textgrid.de/web/guest/projekt"],project_desc:"Answering an increasing demand for digital and collective research features in the humanities, TextGrid has established the infrastructure for a respective virtual research environment. In continuous exchange with the scientific community, TextGrid has developed a variety of tools and services available for free download in a stable version. Together with the TextGrid Repository, the virtual research environment TextGrid offers scholars in the humanities sustainable editing, storing and publishing of their data in a thoroughly tested and safe environment.",places:[{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}},{place_name:{text:"Tübingen",ref:["https://www.geonames.org/2820860/tuebingen.html"]},coordinates:{lat:"48.52266",lng:"9.05222"}},{place_name:{text:"Worms",ref:["https://www.geonames.org/2806142/worms.html"]},coordinates:{lat:"49.63278",lng:"8.35916"}},{place_name:{text:"Göttingen",ref:["https://www.geonames.org/2918632/goettingen.html"]},coordinates:{lat:"51.53443",lng:"9.93228"}},{place_name:{text:"Mannheim",ref:["https://www.geonames.org/2873891/mannheim.html"]},coordinates:{lat:"49.4891",lng:"8.46694"}},{place_name:{text:"Darmstadt",ref:["https://www.geonames.org/2938913/darmstadt.html"]},coordinates:{lat:"49.87167",lng:"8.65027"}},{place_name:{text:"Würzburg",ref:["https://www.geonames.org/2805615/wuerzburg.html"]},coordinates:{lat:"49.79391",lng:"9.95121"}}],lang:["eng","deu"],related_institutions:[{relation_type:"host",org_name:{text:"Berlin-Brandenburgische Akademie der Wissenschaften",ref:["https://ror.org/05jgq9443","https://www.wikidata.org/wiki/Q219989"]},websites:["https://www.bbaw.de/"]},{relation_type:"host",org_name:{text:"DAASI International GmbH",ref:["https://www.wikidata.org/wiki/Q110492372","https://ror.org/048yzb176"]},websites:["https://daasi.de/de/"]},{relation_type:"host",org_name:{text:"Hochschule Worms",ref:["https://www.wikidata.org/wiki/Q1391239","https://ror.org/031ph8d53"]},websites:["https://www.hs-worms.de/"]},{relation_type:"host",org_name:{text:"Gesellschaft für wissenschaftliche Datenverarbeitung mbH Göttingen",ref:["https://www.wikidata.org/wiki/Q1490164","https://ror.org/00cd95c65"]},websites:["https://gwdg.de/"]},{relation_type:"host",org_name:{text:"Leibniz-Institut für Deutsche Sprache",ref:["https://www.wikidata.org/wiki/Q1664834","https://ror.org/00hvwkt50"]},websites:["https://www.ids-mannheim.de/"]},{relation_type:"host",org_name:{text:"Max-Planck-Institut für Wissenschaftsgeschichte",ref:["https://ror.org/0492sjc74","https://www.wikidata.org/wiki/Q318118"]},websites:["https://www.mpiwg-berlin.mpg.de/"]},{relation_type:"host",org_name:{text:"Niedersächsische Staats- und Universitätsbibliothek Göttingen",ref:["https://www.wikidata.org/wiki/Q564783"]},websites:["https://www.sub.uni-goettingen.de/sub-aktuell/"]},{relation_type:"host",org_name:{text:"Technische Universität Berlin",ref:["https://www.wikidata.org/wiki/Q51985","https://ror.org/03v4gjf40"]},websites:["https://www.tu.berlin/"]},{relation_type:"host",org_name:{text:"Technische Universität Darmstadt",ref:["https://www.wikidata.org/wiki/Q310695","https://ror.org/05n911h24"]},websites:["https://www.tu-darmstadt.de/"]},{relation_type:"host",org_name:{text:"Julius-Maximilians-Universität Würzburg",ref:["https://www.wikidata.org/wiki/Q161976","https://ror.org/00fbnyb24"]},websites:["https://www.uni-wuerzburg.de/"]}],related_entities:[{relation_type:"cooperation",title:"Textdatenbank und Wörterbuch des Klassischen Maya",uuid:"2253d7f2-c150-44e2-9a8a-c7c5ba0ab661"}],contacts:[{pers_name:{text:"Horstmann, Wolfram",ref:["https://d-nb.info/gnd/129236187"]},roles:["supervision"],websites:["https://www.fiz-karlsruhe.de/de/ueber-uns/curriculum-vitae-prof-dr-wolfram-horstmann"]}],research_data:{lang:[],sustainability_plan:null,publications:{open_access:0,licensing:[]},data:{datatypes:[{label:"",stage:"raw",licensing:[],open_access:0}],repositories:[{label:"",accessibility:"public",ref:[],licensing:[],description:""}]}},stack:{database:[],backend:[],frontend:[],tools:[{label:"",self_developed:!1,ref:[],description:""}],languages:[]},policies:[{description:"",ref:[]}],keywords:["research_data_management","research_infrastructure"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/evolution_of_islamic_societies/659c0aba-3bdd-43eb-937d-dad4ad63e3fc.json",{schema_version:"0.2.2",record_metadata:{uuid:"659c0aba-3bdd-43eb-937d-dad4ad63e3fc",record_created_on:"2022-08-10",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"The Evolution of Islamic Societies (c. 600–1600 CE): Algorithmic Analysis into Social History",abbr:"",type:"project",ref:[],date:[{from:"2021",to:"2027"}],maintained:!0,websites:["https://www.csmc.uni-hamburg.de/research/current-projects/evolution-of-islamic-societies.html","https://eis1600.github.io/"],project_desc:"This project examines the social history of the Islamic society from its birth until the 16th century using highly advanced computational methods of text analysis and data modeling. The core of the study is a corpus of Islamic text from that period containing approximately 300 titles, 100 million words, and c. 400,000 biographical records, which—for the first time—will be treated holistically as a unified corpus of historical information. One of the project’s outputs (next to two PhD theses, multiple articles and a monograph) will be an open and expandable online research ecosystem, MasterChronicle, which will allow scholars in the field to engage in various modes of close and distant reading of the Arabic historical corpus.",places:[{place_name:{text:"Hamburg",ref:["https://www.geonames.org/2911298/hamburg.html"]},coordinates:{lat:"53.55073",lng:"9.99302"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Universität Hamburg",ref:["https://ror.org/00g30e956","https://www.wikidata.org/wiki/Q156725"]},websites:["https://www.uni-hamburg.de/"]}],related_entities:[{relation_type:"sibling",title:"Afrikanische Stimmen in islamischen Manuskripten aus Mali: Erschließung und Erforschung afrikanischer Sprachen in arabischer Schrift (Ajami)",uuid:"eaf36ccc-5ee4-4749-80ea-7f71f479c968"},{relation_type:"sibling",title:"Beta maṣāḥǝft Manuscripts of Ethiopia and Eritrea",uuid:"169677fd-14f9-46e7-b8f1-2202fb91397c"},{relation_type:"sibling",title:"Demarginalizing Medieval Africa: Images, Texts, and Identity in Early Solomonic Ethiopia",uuid:"46121edb-516b-4dbf-ba49-e2c5f07cec2e"},{relation_type:"sibling",title:"The intertwined world of the oral and written transmission of sacred traditions in the Middle East",uuid:"bb852d81-0c6d-4413-8c20-1bb38c4db4e7"},{relation_type:"sibling",title:"Understanding Written Artefacts",uuid:"9ca46873-3089-4a04-99fa-89c0c1b01213"},{relation_type:"sibling",title:"Audition Certificates Platform",uuid:"b333a11d-b9fc-4379-9e21-fbddfa9500b1"},{relation_type:"sibling",title:"Methoden der Bildverarbeitung zur Bestimmung von visuellen Manuskript- und Zeichenmerkmalen",uuid:"eb8e91fe-952e-48b7-af0d-c026ebe37826"},{relation_type:"sibling",title:"Datenrepositorium Manuskriptkulturen",uuid:"894dcf0c-7295-4fb8-b4ba-866a5ebe3310"},{relation_type:"sibling",title:"Documentation of Gorani, an endangered language of West Iran",uuid:"17fa004d-c9d2-4ce3-8116-b7bfff5d14ed"},{relation_type:"sibling",title:"Islamic Painted Page",uuid:"31534c48-6b74-4cc5-8aff-ea8dbc60c445"},{relation_type:"sibling",title:"Methoden der Manuskriptanalyse zur Wiedergewinnung verlorener Schrift",uuid:"892b783d-1788-451f-9efd-1c58bfb4b064"},{relation_type:"sibling",title:"SfarData",uuid:"81d8ad85-5da8-457f-99a3-6ab11128ef03"},{relation_type:"sibling",title:"SIHAFA: The Ideosphere of the Late Ottoman Arabic Press: Mapping the Discursive Field of Authors and Texts through Computational Approaches",uuid:"20ee58f5-f699-4262-a473-7765e249c871"},{relation_type:"sibling",title:"Ethio-SPaRe: Cultural Heritage of Christian Ethiopia. Salvation, Preservation, Research",uuid:"fbf007e0-7eee-4bb1-801d-568785d43d04"},{relation_type:"sibling",title:"From Translation to Creation: Changes in Ethiopic Style and Lexicon from Late Antiquity to the Middle Ages",uuid:"77ae1011-1b54-46b5-b676-02895e3300fc"},{relation_type:"sibling",title:"Corpus dei Manoscritti Copti Letterari",uuid:"c4f41a6d-9fb9-4c31-85f0-b66acfe41289"},{relation_type:"cooperation",title:"Open Islamicate Texts Initiative",uuid:"bef2e507-b663-422e-9dd3-7e49ca299f05"},{relation_type:"cooperation",title:"OpenITI_NgramReader",uuid:"d1d73911-81dc-4a65-bf1b-162f7fb2e84e"}],contacts:[{pers_name:{text:"Romanov, Maxim",ref:[]},roles:["supervision"],websites:["https://www.aai.uni-hamburg.de/voror/personen/romanov.html"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[]},data:{datatypes:[{label:"HTML",stage:"refined",licensing:[],open_access:0},{label:"Markdown",stage:"refined",licensing:[],open_access:0}],repositories:[{label:"GitHub",accessibility:"private",ref:[],licensing:[],description:""}]}},stack:{database:[],backend:["Python"],frontend:[],tools:[{label:"AraBERT",self_developed:!1,ref:["https://github.com/CAMeL-Lab/camel_tools"],description:""},{label:"CAMeL Tools",self_developed:!1,ref:["https://github.com/CAMeL-Lab/camel_tools"],description:""}],languages:["Python"]},policies:[{description:"",ref:[]}],keywords:["annotation","computational_text_analysis","corpus_resource","geodata","islamic_studies","religion_studies","visualization","vre"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/the_formation_of_islam/33a6a747-4180-4e28-a99c-2bf6dcf53200.json",{schema_version:"0.2.2",record_metadata:{uuid:"33a6a747-4180-4e28-a99c-2bf6dcf53200",record_created_on:"2021-11-01",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-05-06"},project:{title:"The formation of Islam",abbr:"",type:"project",ref:[],date:[{from:"2009",to:"2015"}],maintained:!1,websites:["https://www.universiteitleiden.nl/en/research/research-projects/humanities/the-formation-of-islam-the-view-from-below#tab-1"],project_desc:"The purpose of this project is the examination of vastly important but largely neglected papyri from Egypt which preserve a minutely detailed transcription of daily life, as well as the only contemporary records of Islam’s rise and first wave of conquests. Based on this testimony the project aims to write the history of the formation of Islam through the striking newness of Islamic society and its debt to the diverse cultures it superseded. Beside stocktaking of the unedited papyri, the project’s team will crate a corpus of most significant texts and present the historical analysis through scholarly publications and a dedicated website.",places:[{place_name:{text:"Leiden",ref:["https://www.geonames.org/2751773/leiden.html"]},coordinates:{lat:"52.15833",lng:"4.49306"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Leiden University",ref:["https://www.wikidata.org/wiki/Q156598","https://ror.org/027bh9e22"]},websites:["https://www.universiteitleiden.nl/en"]}],related_entities:[{relation_type:"cooperation",title:"Moving frontiers",uuid:"d5dd164d-1887-473f-8282-584b8d09474d"}],contacts:[{pers_name:{text:"Sijpesteijn, Petra",ref:["https://www.wikidata.org/wiki/Q14084136"]},roles:["supervision"],websites:["https://www.universiteitleiden.nl/en/staffmembers/petra-sijpesteijn#tab-1"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","corpus_output","digital_preservation","islamic_studies","manuscript","religion_studies"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/intersame/bb852d81-0c6d-4413-8c20-1bb38c4db4e7.json",{schema_version:"0.2.2",record_metadata:{uuid:"bb852d81-0c6d-4413-8c20-1bb38c4db4e7",record_created_on:"2022-08-10",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"The intertwined world of the oral and written transmission of sacred traditions in the Middle East",abbr:"InterSaME",type:"project",ref:[],date:[{from:"2020",to:"2023"}],maintained:!0,websites:["https://www.csmc.uni-hamburg.de/research/current-projects/intersame.html","https://www.intersame.uni-hamburg.de/"],project_desc:"The scope of this project is to study the convergence of the three major religions of the Middle East – Islam, Christianity, and Judaism – at their formative periods of development during the early Islamic centuries. Two examples of this convergence are the development of notation systems in Arabic and Syriac representing oral reading traditions, and the assimilation of the mode of transmission of the Hebrew Bible in the 10th and 11th centuries to that of the Qur’an. The project will conduct digital analysis of manuscripts of the Qur’an and the Syriac and Hebrew Bible, in order to contribute to our understanding of the individual sacred traditions and to identify parallels among them.",places:[{place_name:{text:"Hamburg",ref:["https://www.geonames.org/2911298/hamburg.html"]},coordinates:{lat:"53.55073",lng:"9.99302"}},{place_name:{text:"Cambridge",ref:["https://www.geonames.org/2653941/cambridge.html"]},coordinates:{lat:"52.2",lng:"0.11667"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"University of Cambridge",ref:["https://www.wikidata.org/wiki/Q35794","https://ror.org/013meh722"]},websites:["https://www.cam.ac.uk/"]},{relation_type:"host",org_name:{text:"Universität Hamburg",ref:["https://ror.org/00g30e956","https://www.wikidata.org/wiki/Q156725"]},websites:["https://www.uni-hamburg.de/"]}],related_entities:[{relation_type:"sibling",title:"Afrikanische Stimmen in islamischen Manuskripten aus Mali: Erschließung und Erforschung afrikanischer Sprachen in arabischer Schrift (Ajami)",uuid:"eaf36ccc-5ee4-4749-80ea-7f71f479c968"},{relation_type:"sibling",title:"Beta maṣāḥǝft Manuscripts of Ethiopia and Eritrea",uuid:"169677fd-14f9-46e7-b8f1-2202fb91397c"},{relation_type:"sibling",title:"Demarginalizing Medieval Africa: Images, Texts, and Identity in Early Solomonic Ethiopia",uuid:"46121edb-516b-4dbf-ba49-e2c5f07cec2e"},{relation_type:"sibling",title:"The Evolution of Islamic Societies (c. 600–1600 CE): Algorithmic Analysis into Social History",uuid:"659c0aba-3bdd-43eb-937d-dad4ad63e3fc"},{relation_type:"sibling",title:"Understanding Written Artefacts",uuid:"9ca46873-3089-4a04-99fa-89c0c1b01213"},{relation_type:"sibling",title:"Audition Certificates Platform",uuid:"b333a11d-b9fc-4379-9e21-fbddfa9500b1"},{relation_type:"sibling",title:"Methoden der Bildverarbeitung zur Bestimmung von visuellen Manuskript- und Zeichenmerkmalen",uuid:"eb8e91fe-952e-48b7-af0d-c026ebe37826"},{relation_type:"sibling",title:"Datenrepositorium Manuskriptkulturen",uuid:"894dcf0c-7295-4fb8-b4ba-866a5ebe3310"},{relation_type:"sibling",title:"Documentation of Gorani, an endangered language of West Iran",uuid:"17fa004d-c9d2-4ce3-8116-b7bfff5d14ed"},{relation_type:"sibling",title:"Islamic Painted Page",uuid:"31534c48-6b74-4cc5-8aff-ea8dbc60c445"},{relation_type:"sibling",title:"Methoden der Manuskriptanalyse zur Wiedergewinnung verlorener Schrift",uuid:"892b783d-1788-451f-9efd-1c58bfb4b064"},{relation_type:"sibling",title:"SfarData",uuid:"81d8ad85-5da8-457f-99a3-6ab11128ef03"},{relation_type:"sibling",title:"SIHAFA: The Ideosphere of the Late Ottoman Arabic Press: Mapping the Discursive Field of Authors and Texts through Computational Approaches",uuid:"20ee58f5-f699-4262-a473-7765e249c871"},{relation_type:"sibling",title:"Ethio-SPaRe: Cultural Heritage of Christian Ethiopia. Salvation, Preservation, Research",uuid:"fbf007e0-7eee-4bb1-801d-568785d43d04"},{relation_type:"sibling",title:"From Translation to Creation: Changes in Ethiopic Style and Lexicon from Late Antiquity to the Middle Ages",uuid:"77ae1011-1b54-46b5-b676-02895e3300fc"},{relation_type:"sibling",title:"Corpus dei Manoscritti Copti Letterari",uuid:"c4f41a6d-9fb9-4c31-85f0-b66acfe41289"}],contacts:[{pers_name:{text:"Fedeli, Alba",ref:["https://viaf.org/viaf/13159335176612960925"]},roles:["supervision"],websites:["https://www.aai.uni-hamburg.de/voror/personen/fedeli.html"]},{pers_name:{text:"Khan, Geoffrey",ref:["https://d-nb.info/gnd/136726224"]},roles:["supervision"],websites:["https://www.ames.cam.ac.uk/people/professor-geoffrey-khan"]}],research_data:{lang:["ara","heb","syr"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["annotation","arabic_studies","corpus_output","digital_preservation","jewish_studies","manuscript","religion_studies","religious_text","semitic_studies","vre"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/the_islamic_manuscript_association/862e636c-6757-4dc6-a382-b77768b69cbc.json",{schema_version:"0.2.2",record_metadata:{uuid:"862e636c-6757-4dc6-a382-b77768b69cbc",record_created_on:"2022-09-06",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"The Islamic Manuscript Association",abbr:"",type:"organization",ref:["https://d-nb.info/gnd/10368977-1"],date:[{from:"2008",to:""}],maintained:!0,websites:["https://www.islamicmanuscript.org/home.aspx"],project_desc:"The Islamic Manuscript Association is an international non-profit organization dedicated to protecting Islamic manuscript collections and supporting those who work with them. Its main goal is to enhance the preservation and accessibility of many Islamic manuscript collections around the world. To this end, it articulates standards and guidelines for best practice in cataloguing, conservation, digitization, offers courses for professionals and awards grants to advance scholarship on Islamic manuscripts.",places:[{place_name:{text:"Cambridge",ref:["https://www.geonames.org/2653941/cambridge.html"]},coordinates:{lat:"52.2",lng:"0.11667"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"University of Cambridge",ref:["https://www.wikidata.org/wiki/Q35794","https://ror.org/013meh722"]},websites:["https://www.cam.ac.uk/"]}],related_entities:[],contacts:[{pers_name:{text:"Al-Nashar, Dalia",ref:[]},roles:["investigation"],websites:["https://www.islamicmanuscript.org/DirectoryOfMembers/Person.aspx?mid=706"]}],research_data:{lang:["ara","fas","tur"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["collaboration_platform","islamic_studies"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/muya/cb428a09-41a6-4b68-b81e-8e72e23e6aba.json",{schema_version:"0.2.2",record_metadata:{uuid:"cb428a09-41a6-4b68-b81e-8e72e23e6aba",record_created_on:"2023-02-13",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"The Multimedia Yasna",abbr:"MUYA",type:"project",ref:[],date:[{from:"2016",to:"2022"}],maintained:null,websites:["https://muya.soas.ac.uk/","https://tcdh.uni-trier.de/de/projekt/multimedia-yasna-project-muya#:~:text=Das%20Projekt%20Multimedia%20Yasna%20will,in%20den%20Blick%20zu%20"],project_desc:"The project MUYA employs a range of methodologies from digital humanities to delve into the oral and written traditions of the Yasna, a core ritual in Zoroastrian religion. To enhance research on oral traditions, the project has created a subtitled and interactive film of the Yasna ritual. For written traditions, the project has developed an online platform featuring transcribed manuscripts, editorial tools, digital transcriptions, and digital editions complete with a text-critical apparatus. These digital materials are supplemented by print editions, translations, and commentaries on the Yasna.",places:[{place_name:{text:"London",ref:["https://www.geonames.org/2643743/london.html"]},coordinates:{lat:"51.50853",lng:"-0.12574"}},{place_name:{text:"Birmingham",ref:["https://www.geonames.org/2655603/birmingham.html"]},coordinates:{lat:"52.48142",lng:"-1.89983"}},{place_name:{text:"Münster",ref:["https://www.geonames.org/2867543/muenster.html"]},coordinates:{lat:"51.96236",lng:"7.62571"}},{place_name:{text:"Trier",ref:["https://www.geonames.org/2821164/trier.html"]},coordinates:{lat:"49.75565",lng:"6.63935"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"School of Oriental and African Studies, University of London",ref:["https://www.wikidata.org/wiki/Q220144","https://ror.org/04vrxay34"]},websites:["https://www.soas.ac.uk/"]},{relation_type:"host",org_name:{text:"University of Birmingham",ref:["https://www.wikidata.org/wiki/Q223429"]},websites:["https://www.birmingham.ac.uk/index.aspx"]},{relation_type:"host",org_name:{text:"Westfälische Wilhelms-Universität Münster",ref:["https://ror.org/00pd74e08","https://www.wikidata.org/wiki/Q168426"]},websites:["https://www.uni-muenster.de/de/"]},{relation_type:"host",org_name:{text:"Universität Trier",ref:["https://ror.org/02778hg05","https://www.wikidata.org/wiki/Q572286"]},websites:["https://www.uni-trier.de/"]}],related_entities:[],contacts:[{pers_name:{text:"Hintze, Almut",ref:["https://d-nb.info/gnd/1138120693"]},roles:["supervision"],websites:["https://www.soas.ac.uk/about/almut-hintze"]}],research_data:{lang:["ave"],sustainability_plan:null,publications:{open_access:0,licensing:[]},data:{datatypes:[],repositories:[]}},stack:{database:[],backend:[],frontend:[],tools:[],languages:[]},policies:[{description:"",ref:[]}],keywords:["digital_edition","digital_preservation","iranian_studies","religion_studies","religious_text","tei","video","vre"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/ymdi/e17c5b2a-7619-40bd-bddd-51063f687cb0.json",{schema_version:"0.2.2",record_metadata:{uuid:"e17c5b2a-7619-40bd-bddd-51063f687cb0",record_created_on:"2022-07-26",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"The Yemeni Manuscript Digitization Initiative",abbr:"YMDI",type:"project",ref:[],date:[{from:"2010",to:"2013"}],maintained:null,websites:["https://ymdi.uoregon.edu/projects/","https://dpul.princeton.edu/islamicmss/feature/yemeni-manuscripts-digitization-initiative","https://gepris.dfg.de/gepris/projekt/173778285"],project_desc:"The Yemen Manuscript Digitization Initiative (YMDI) is a collaborative project between Princeton University Library and the Freie Universität, Berlin. YMDI’s mission is the preservation and dissemination of the Arabic manuscripts in the private libraries of Yemen. The scope of the project is threefold: 1. preservation of three private libraries in Sana‘a, a total of 236 manuscripts. 2. digitization of 12 additional manuscripts in the rare book collections of the State Library Berlin and the Princeton University Library. 3 creation of a freely accessible repository of Islamic manuscripts based on the digital-library infrastructure developed at Princeton.",places:[{place_name:{text:"Princeton",ref:["https://www.geonames.org/5102922/princeton.html"]},coordinates:{lat:"40.34872",lng:"-74.65905"}},{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}},{place_name:{text:"Sanaa",ref:["https://www.geonames.org/71137/sanaa.html"]},coordinates:{lat:"15.35472",lng:"44.20667"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Freie Universität Berlin",ref:["https://ror.org/046ak2485","https://www.wikidata.org/wiki/Q153006"]},websites:["https://www.fu-berlin.de/"]},{relation_type:"host",org_name:{text:"Princeton University",ref:["https://ror.org/00hx57361","https://www.wikidata.org/wiki/Q21578"]},websites:["https://www.princeton.edu/"]}],related_entities:[{relation_type:"sibling",title:"Weaving the Humanities into the Web and the Web into the Humanities. Preserving the Cultural Heritage of Yemen by Creating an Universally Virtual Library of Manuscripts (HumanWeb)",uuid:"1a587e85-1385-40b0-b6eb-25ca8fa5042c"}],contacts:[{pers_name:{text:"Schmidtke, Sabine",ref:["https://d-nb.info/gnd/143773771"]},roles:["supervision"],websites:["https://www.ias.edu/scholars/schmidtke"]},{pers_name:{text:"Magier, David",ref:["https://d-nb.info/gnd/1050435206"]},roles:["supervision"],websites:["https://library.princeton.edu/staff/dmagier"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","catalog","digital_preservation","manuscript"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/titus/fbd22cab-b0b1-4ed4-aa1a-9f675c19c1af.json",{schema_version:"0.2.2",record_metadata:{uuid:"fbd22cab-b0b1-4ed4-aa1a-9f675c19c1af",record_created_on:"2023-11-09",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Thesaurus Indogermanischer Text- und Sprachmaterialien",abbr:"TITUS",type:"project",ref:[],date:[{from:"1986",to:""}],maintained:null,websites:["https://titus.uni-frankfurt.de/indexd.htm"],project_desc:"The project seeks to organize the collaboration of numerous scholars in developing an electronic text collection. This collection will serve as a foundation for computer-aided investigations into diverse Indo-European languages. Additionally, the project aims to expand the initiative by generating a growing repository of files containing supplementary materials, including dictionaries, word lists, linguistic analysis tools, and similar resources.",places:[{place_name:{text:"Frankfurt",ref:["https://www.geonames.org/2925533/frankfurt-am-main.html"]},coordinates:{lat:"50.11552",lng:"8.68417"}}],lang:[],related_institutions:[{relation_type:"host",org_name:{text:"Goethe-Universität Frankfurt am Main",ref:["https://ror.org/04cvxnb49","https://www.wikidata.org/wiki/Q50662"]},websites:["https://www.uni-frankfurt.de/de"]}],related_entities:[],contacts:[{pers_name:{text:"Gippert, Jost",ref:[]},roles:["supervision"],websites:["https://d-nb.info/gnd/109337409"]}],research_data:{lang:["ara","ave","elx","gml","got","heb","hin","hit","hun","imy","lat","lav","lit","lzz","nrp","ofs","oge","orv","osc","oss","osx","pli","raj","sog","sqi","sux","sva","syr","tam","udi","wlm","xbc","xbm","xcr","xlc","xld","xlp","xpg","xpr","xum","zho"],sustainability_plan:null,publications:{open_access:0,licensing:[]},data:{datatypes:[{label:"",stage:"raw",licensing:[],open_access:0}],repositories:[{label:"",accessibility:"public",ref:[],licensing:[],description:""}]}},stack:{database:[],backend:[],frontend:[],tools:[{label:"",self_developed:!1,ref:[],description:""}],languages:[]},policies:[{description:"",ref:[]}],keywords:["annotation","corpus_output","digital_preservation","history_studies","inscription","lexicon","manuscript","vre"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/tierrecht_und_strafen/57622367-8250-4932-ab3e-0356615d578a.json",{schema_version:"0.2.2",record_metadata:{uuid:"57622367-8250-4932-ab3e-0356615d578a",record_created_on:"2023-02-10",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Tierrecht und Strafen im 'Gesetz zur Abwehr der Dämonen' (Vidçvdâd, Kapitel 13–15)",abbr:"",type:"project",ref:[],date:[{from:"2010",to:"2013"}],maintained:null,websites:["https://www.geschkult.fu-berlin.de/e/iranistik/archiv/projekt-archiv/vorislamisches-recht/videvdad13-15/index.html","https://gepris.dfg.de/gepris/projekt/169903502"],project_desc:"The main objective of this research project is to conclude a critical edition of the Avesta and Pahlavi versions of the Vīdēvdād chapters 13–15 which was started in the pre-project Vidēvdād chapters 5–8. The edition should be enriched by a complete translation of Avesta and Pahlavi texts, the completion of two glossaries as well as preparation of a commentary on linguistic and textual peculiarities and difficulties. The translated and edited chapters will be made available to the broader audience in a digital form.",places:[{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Freie Universität Berlin",ref:["https://ror.org/046ak2485","https://www.wikidata.org/wiki/Q153006"]},websites:["https://www.fu-berlin.de/"]}],related_entities:[{relation_type:"cooperation",title:"Corpus Avesticum Berolinense",uuid:"4c68f56a-2c44-41c0-acb9-ece91afaf70c"},{relation_type:"cooperation",title:"Avestan Digital Archive",uuid:"0a2ff403-834b-484f-b961-0822220bab58"},{relation_type:"sibling",title:"Avestan Digital Archive",uuid:"0a2ff403-834b-484f-b961-0822220bab58"},{relation_type:"sibling",title:"Zoroastrian Middle Persian Corpus and Dictionary",uuid:"7d8eb5d0-6284-4939-a48b-7ff7a2407989"},{relation_type:"sibling",title:"Corpus Avesticum Berolinense",uuid:"4c68f56a-2c44-41c0-acb9-ece91afaf70c"}],contacts:[{pers_name:{text:"Cantera Glera, Alberto",ref:["https://d-nb.info/gnd/1198415282"]},roles:["supervision"],websites:["https://www.geschkult.fu-berlin.de/e/iranistik/mitarbeiter/professoren/cantera/index.html"]},{pers_name:{text:"Macuch, Maria",ref:["https://d-nb.info/gnd/108931838"]},roles:["supervision"],websites:["https://www.geschkult.fu-berlin.de/e/iranistik/mitarbeiter/ehemalige/macuch/index.html"]}],research_data:{lang:["ave"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["digital_edition","digital_preservation","history_studies","iranian_studies","manuscript","religious_text","translation"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/tikkoun_sofrim/ce4fc765-1578-4cfb-8efa-b82387c99590.json",{schema_version:"0.2.2",record_metadata:{uuid:"ce4fc765-1578-4cfb-8efa-b82387c99590",record_created_on:"2022-10-07",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Tikkoun Sofrim",abbr:"",type:"project",ref:[""],date:[{from:"2018",to:""}],maintained:null,websites:["https://tikkoun-sofrim.firebaseapp.com/en","https://tikkunsofrim.hypotheses.org/about-2","https://elijahlab.haifa.ac.il/tikkoun-sofrim/?lang=en"],project_desc:"The purpose of this project is to make Medieval Hebrew manuscripts openly and freely available as texts. To this end it combines automatic Handwritten Text-Recognition (HTR) and Crowdsourcing. The HTR is performed with a tool called Kraken with an error rate of less than 10%. In the next step, the resulting texts are made publicly available for correction. The amendments are than used both to improve Kraken’s capabilities and to place digital editions and scripts in libraries that will allow a literal search of the manuscripts.",places:[{place_name:{text:"Paris",ref:["https://www.geonames.org/2988506/paris.html"]},coordinates:{lat:"48.85339",lng:"2.34864"}},{place_name:{text:"Haifa",ref:["https://www.geonames.org/294801/haifa.html"]},coordinates:{lat:"32.81841",lng:"34.9885"}},{place_name:{text:"Jerusalem",ref:["https://www.geonames.org/281184/jerusalem.html"]},coordinates:{lat:"31.76904",lng:"35.21633"}}],related_institutions:[{relation_type:"host",org_name:{text:"PSL Research University Paris",ref:["https://ror.org/03k9z2963"]},websites:["https://psl.eu/en"]},{relation_type:"host",org_name:{text:"University of Haifa",ref:["https://ror.org/02f009v59"]},websites:["https://www.haifa.ac.il/"]},{relation_type:"host",org_name:{text:"National Library of Israel",ref:["https://ror.org/03be63z97"]},websites:["https://www.nli.org.il/en"]}],lang:["eng","fra","heb"],related_entities:[{relation_type:"sibling",title:"Scripta-PSL",uuid:"0cf58379-39c3-4e95-b7b1-cc9f7f11c7ba"}],contacts:[{pers_name:{text:"Wecker, Alan J.",ref:["https://viaf.org/viaf/19154921221763590939/#%D7%95%D7%95%D7%A7%D7%A8,_%D7%90%D7%94%D7%A8%D7%95%D7%9F"]},roles:["supervision"],websites:["http://haifahci.net/people/alan-wecker/"]}],research_data:{lang:["heb"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:[],backend:[],frontend:[],tools:[],languages:[]},policies:[],keywords:["htr","jewish_studies","machine_learning","nlp","ocr"],comment:"The start date recorded for this project is approximate."}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/time_space_relations_in_hadith_literature/2b2d72f0-c4d6-462b-b47f-7c3550acdad3.json",{schema_version:"0.2.2",record_metadata:{uuid:"2b2d72f0-c4d6-462b-b47f-7c3550acdad3",record_created_on:"2022-11-20",record_created_by:"Bednarkiewicz, Maroussia",last_edited_on:"2022-11-25"},project:{title:"Time, Space and Relations in Hadith Literature: A Machine Learning Approach",abbr:"",type:"project",ref:[],date:[{from:"2020",to:"2025"}],maintained:!0,websites:["https://github.com/dhakarat"],project_desc:"The aim of this project is to achieve a broader perspective on the dynamics of narrative adaptation in ḥadīth literature by applying advanced data analysis. We now have digitized databases as well as sophisticated and efficient algorithms, which were the missing factors for large-scale studies of ḥadīth literature. Using comprehensive datasets and recent algorithmic advances in text processing and machine learning models, we will map the use, reuse, and adaptations of ḥadīth narratives to better apprehend regional and general patterns within the whole ḥadīth literature.",places:[{place_name:{text:"Tübingen",ref:["https://www.geonames.org/2820860/tuebingen.html"]},coordinates:{lat:"48.52266",lng:"9.05222"}}],related_institutions:[{relation_type:"host",org_name:{text:"Eberhard Karls Universität Tübingen",ref:["https://www.wikidata.org/wiki/Q153978","https://ror.org/03a1kwz48"]},websites:["https://uni-tuebingen.de/en/university.html"]}],lang:["eng"],related_entities:[{relation_type:"child",title:"Isnalyser",uuid:"da852d13-2483-443b-a2f3-77c0d19d08bd"}],contacts:[{pers_name:{text:"Bednarkiewicz, Maroussia",ref:["https://viaf.org/viaf/9154380928130290538/"]},roles:["supervision"],websites:["https://uni-tuebingen.de/en/faculties/faculty-of-humanities/departments/asian-and-oriental-studies/oriental-and-islamic-studies/department/staff/maroussia-bednarkiewicz/"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:100,licensing:["GPL 3.0"]},data:{datatypes:[],repositories:[]}},stack:{database:[],backend:[],frontend:[],tools:[{label:"isnalyser",self_developed:!0,ref:["https://github.com/dhakarat/isnalyser"],description:"isnalyser is a simple program for the automation of drawing isnād trees and for their customizable display in handy formats."},{label:"isnalyserjs",self_developed:!0,ref:["https://github.com/dhakarat/isnalyserjs"],description:"isnalyserjs is an interactive isnalyser, i.e. isnād tree drawing application, which can be used over the network."}],languages:["Python"]},policies:[],keywords:["computational_text_analysis","hadith","islamic_studies","machine_learning","nlp","religion_studies","text_reuse"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/topoi/b583a2f6-22bb-4ddb-8639-c9a9aa7b511b.json",{schema_version:"0.2.2",record_metadata:{uuid:"b583a2f6-22bb-4ddb-8639-c9a9aa7b511b",record_created_on:"2021-11-01",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-05-06"},project:{title:"Topoi. The Formation and Transformation of Space and Knowledge in Ancient Civilizations",abbr:"TOPOI",type:"project",ref:[],date:[{from:"2007",to:"2012"},{from:"2012",to:"2019"}],maintained:null,websites:["https://web.archive.org/http://topoi.org/"],project_desc:"The excellence cluster TOPOI is a research network with a focus on study of the ancient world. It enhances the interdisciplinary cooperation not only in different fields of humanities, but also between humanities and natural sciences. Its various research projects cover a wide range of topics, periods and cultures from Central and Eastern Europe to the Mediterranean and the Middle East.",places:[{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}}],lang:[],related_institutions:[{relation_type:"host",org_name:{text:"Humboldt-Universität zu Berlin",ref:["https://www.wikidata.org/wiki/Q152087","https://ror.org/01j818n92"]},websites:["https://www.hu-berlin.de"]},{relation_type:"host",org_name:{text:"Freie Universität Berlin",ref:["https://ror.org/046ak2485","https://www.wikidata.org/wiki/Q153006"]},websites:["https://www.fu-berlin.de/"]}],related_entities:[],contacts:[{pers_name:{text:"Meyer, Michael",ref:["https://www.wikidata.org/wiki/Q1928613"]},roles:["supervision"],websites:["https://www.geschkult.fu-berlin.de/e/praehist/institut/Mitarbeiterinnen-und-Mitarbeiter/Professoren/Meyer.html"]}],research_data:{lang:[],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["cultural_studies","history_studies"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/tunocent/325a929a-6764-41e1-b452-6556209fa74f.json",{schema_version:"0.2.2",record_metadata:{uuid:"325a929a-6764-41e1-b452-6556209fa74f",record_created_on:"2022-05-12",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"TUNOCENT",abbr:"",type:"project",ref:[],date:[{from:"2019-04-01",to:"2023-03-31"}],maintained:!0,websites:["https://tunocent.acdh.oeaw.ac.at/","https://www.oeaw.ac.at/acdh/projects/tunocent"],project_desc:"This project studies the hitherto almost unknown Arabic varieties spoken in parts of Tunisia. Firstly, the team members will record and collect the linguistic data through fieldwork. In the second phase of the project selected dialects will be sketched and two varieties representing the main dialectal areas described in detail. Finlay a digital and fully searchable corpus of transcribed and translated narrative and ethnographic texts and conversations will be developed. The project will build on an existing research infrastructure for Arabic variations, which has been established at the Austrian Academy of Sciences over the recent years such as VICAV, TUNICO and ARCHE.",places:[{place_name:{text:"Vienna",ref:["https://www.geonames.org/2761369/vienna.html"]},coordinates:{lat:"48.20849",lng:"16.37208"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Österreichische Akademie der Wissenschaften",ref:["https://www.wikidata.org/wiki/Q299015","https://ror.org/03anc3s24"]},websites:["https://www.oeaw.ac.at/en/"]},{relation_type:"host",org_name:{text:"Universität Wien",ref:["https://ror.org/04d836q62","https://www.wikidata.org/wiki/Q165980"]},websites:["https://www.univie.ac.at/en/"]}],related_entities:[{relation_type:"sibling",title:"WIBARAB: What is Bedouin-Type Arabic?",uuid:"e9cb8ab1-2d2c-4cc3-a44d-a793220a8638"},{relation_type:"sibling",title:"Genesis Rabbah Loanwords",uuid:"94044a63-eae5-4e1d-ba04-64874109fc36"},{relation_type:"sibling",title:"Vienna Corpus of Arabic Varieties",uuid:"8f343a28-a873-449c-b359-efcfab7d1201"},{relation_type:"sibling",title:"Shawi",uuid:"68422d65-ccba-4dcb-8a0e-bd4f3f9e1dc9"},{relation_type:"sibling",title:"Linguistic dynamics in the Greater Tunis Area: a corpus-based approach (TUNICO)",uuid:"79462111-75a7-4fa0-8e11-9d424293a074"},{relation_type:"sibling",title:"NoMansLand: Nomads’ Manuscripts Landscape",uuid:"e050deba-6e1d-4d82-851b-cf6c1f7187a5"}],contacts:[{pers_name:{text:"Mörth, Karlheinz",ref:["https://viaf.org/viaf/8110691/#M%C3%B6rth,_Karlheinz."]},roles:["supervision"],websites:["https://www.oeaw.ac.at/acdh/team/current-team/karlheinz-moerth"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","audio","corpus_resource","dialectology","geodata","language_documentation","linguistics","tei"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/understanding_written_artefacts/9ca46873-3089-4a04-99fa-89c0c1b01213.json",{schema_version:"0.2.2",record_metadata:{uuid:"9ca46873-3089-4a04-99fa-89c0c1b01213",record_created_on:"2021-11-01",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-05-06"},project:{title:"Understanding Written Artefacts",abbr:"",type:"project",ref:[],date:[{from:"2019",to:"2025"}],maintained:!0,websites:["https://www.csmc.uni-hamburg.de/written-artefacts/"],project_desc:"Understanding Written Artefacts is a Cluster of Excellence comprising over 50 research projects from 40 academic disciplines with an overall aim to develop a global framework for the study of all written artefacts from the beginning of writing to the present day and from all regions that have produced such artefacts. It combines approaches from the humanities and the natural sciences and its research focuses on different dimensions of written artefacts, such as their materiality, spatiality, content, and format.",places:[{place_name:{text:"Hamburg",ref:["https://www.geonames.org/2911298/hamburg.html"]},coordinates:{lat:"53.55073",lng:"9.99302"}},{place_name:{text:"Lübeck",ref:["https://www.geonames.org/2875601/luebeck.html"]},coordinates:{lat:"53.86893",lng:"10.68729"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Helmut-Schmidt-Universität",ref:["https://www.wikidata.org/wiki/Q530991","https://ror.org/04e8jbs38"]},websites:["https://www.hsu-hh.de/"]},{relation_type:"host",org_name:{text:"Technische Universität Hamburg",ref:["https://ror.org/04bs1pb34","https://www.wikidata.org/wiki/Q1060"]},websites:["https://www.tuhh.de/"]},{relation_type:"host",org_name:{text:"Universität zu Lübeck",ref:["https://www.wikidata.org/wiki/Q317087","https://ror.org/00t3r8h32"]},websites:["https://www.uni-luebeck.de"]},{relation_type:"host",org_name:{text:"Universität Hamburg",ref:["https://ror.org/00g30e956","https://www.wikidata.org/wiki/Q156725"]},websites:["https://www.uni-hamburg.de/"]}],related_entities:[{relation_type:"child",title:"Grasping the World in Ottoman Istanbul: Visual Negotiation and Reading in Practices in Geographic Literature from the Sixteenth Century",uuid:"d1f743f2-7e94-4e00-a8bf-f46e56c7508e"},{relation_type:"child",title:"Colophons in Sumerian and Akkadian Literary Manuscripts from 3rd and 2nd Millennium BCE Mesopotamia",uuid:"95a2024b-9fea-4ced-8136-1130b0fb8f51"},{relation_type:"sibling",title:"Beta maṣāḥǝft Manuscripts of Ethiopia and Eritrea",uuid:"169677fd-14f9-46e7-b8f1-2202fb91397c"},{relation_type:"sibling",title:"Demarginalizing Medieval Africa: Images, Texts, and Identity in Early Solomonic Ethiopia",uuid:"46121edb-516b-4dbf-ba49-e2c5f07cec2e"},{relation_type:"sibling",title:"Afrikanische Stimmen in islamischen Manuskripten aus Mali: Erschließung und Erforschung afrikanischer Sprachen in arabischer Schrift (Ajami)",uuid:"eaf36ccc-5ee4-4749-80ea-7f71f479c968"},{relation_type:"sibling",title:"The Evolution of Islamic Societies (c. 600–1600 CE): Algorithmic Analysis into Social History",uuid:"659c0aba-3bdd-43eb-937d-dad4ad63e3fc"},{relation_type:"sibling",title:"The intertwined world of the oral and written transmission of sacred traditions in the Middle East",uuid:"bb852d81-0c6d-4413-8c20-1bb38c4db4e7"},{relation_type:"child",title:"Audition Certificates Platform",uuid:"b333a11d-b9fc-4379-9e21-fbddfa9500b1"},{relation_type:"sibling",title:"Methoden der Bildverarbeitung zur Bestimmung von visuellen Manuskript- und Zeichenmerkmalen",uuid:"eb8e91fe-952e-48b7-af0d-c026ebe37826"},{relation_type:"sibling",title:"Datenrepositorium Manuskriptkulturen",uuid:"894dcf0c-7295-4fb8-b4ba-866a5ebe3310"},{relation_type:"sibling",title:"Documentation of Gorani, an endangered language of West Iran",uuid:"17fa004d-c9d2-4ce3-8116-b7bfff5d14ed"},{relation_type:"sibling",title:"Islamic Painted Page",uuid:"31534c48-6b74-4cc5-8aff-ea8dbc60c445"},{relation_type:"sibling",title:"Methoden der Manuskriptanalyse zur Wiedergewinnung verlorener Schrift",uuid:"892b783d-1788-451f-9efd-1c58bfb4b064"},{relation_type:"sibling",title:"SfarData",uuid:"81d8ad85-5da8-457f-99a3-6ab11128ef03"},{relation_type:"sibling",title:"SIHAFA: The Ideosphere of the Late Ottoman Arabic Press: Mapping the Discursive Field of Authors and Texts through Computational Approaches",uuid:"20ee58f5-f699-4262-a473-7765e249c871"},{relation_type:"sibling",title:"Ethio-SPaRe: Cultural Heritage of Christian Ethiopia. Salvation, Preservation, Research",uuid:"fbf007e0-7eee-4bb1-801d-568785d43d04"},{relation_type:"sibling",title:"From Translation to Creation: Changes in Ethiopic Style and Lexicon from Late Antiquity to the Middle Ages",uuid:"77ae1011-1b54-46b5-b676-02895e3300fc"},{relation_type:"sibling",title:"Corpus dei Manoscritti Copti Letterari",uuid:"c4f41a6d-9fb9-4c31-85f0-b66acfe41289"}],contacts:[{pers_name:{text:"Bausi, Alessandro",ref:["https://www.wikidata.org/wiki/Q62559559"]},roles:["supervision"],websites:["https://www.aai.uni-hamburg.de/afrika/personen/bausi.html"]}],research_data:{lang:["ara","fas","san"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["history_studies"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/fihrist/9734b5c3-fa35-4e45-878e-1deb62db97d5.json",{schema_version:"0.2.2",record_metadata:{uuid:"9734b5c3-fa35-4e45-878e-1deb62db97d5",record_created_on:"2023-11-07",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Union Catalogue of Manuscripts from the Islamicate World",abbr:"FIHRIST",type:"project",ref:[],date:[{from:"2011",to:""}],maintained:null,websites:["https://www.fihrist.org.uk/","https://github.com/fihristorg/fihrist-mss"],project_desc:"FIHRIST is an online catalog featuring diverse manuscripts from the Islamicate world held by UK libraries. It offers detailed descriptions of manuscripts spanning from the 7th to the 19th century CE, providing valuable resources for scholars and enthusiasts while also facilitating contributions from institutions and private collectors to enrich its content.",places:[{place_name:{text:"Oxford",ref:["https://www.geonames.org/2640729/oxford.html"]},coordinates:{lat:"51.75222",lng:"-1.25596"}},{place_name:{text:"Cambridge",ref:["https://www.geonames.org/2653941/cambridge.html"]},coordinates:{lat:"52.2",lng:"0.11667"}},{place_name:{text:"Manchester",ref:["https://www.geonames.org/2643123/manchester.html"]},coordinates:{lat:"53.48095",lng:"-2.23743"}},{place_name:{text:"Birmingham",ref:["https://www.geonames.org/2655603/birmingham.html"]},coordinates:{lat:"52.48142",lng:"-1.89983"}},{place_name:{text:"London",ref:["https://www.geonames.org/2643743/london.html"]},coordinates:{lat:"51.50853",lng:"-0.12574"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"University of Cambridge",ref:["https://www.wikidata.org/wiki/Q35794","https://ror.org/013meh722"]},websites:["https://www.cam.ac.uk/"]},{relation_type:"host",org_name:{text:"University of Oxford",ref:["https://www.wikidata.org/wiki/Q34433","https://ror.org/052gg0110"]},websites:["https://www.ox.ac.uk/"]},{relation_type:"cooperation",org_name:{text:"University of Manchester",ref:["https://www.wikidata.org/wiki/Q230899","https://ror.org/027m9bs27"]},websites:["https://www.manchester.ac.uk/"]},{relation_type:"cooperation",org_name:{text:"University of Birmingham",ref:["https://www.wikidata.org/wiki/Q223429","https://ror.org/03angcq70"]},websites:["https://www.birmingham.ac.uk/"]},{relation_type:"cooperation",org_name:{text:"School of Oriental and African Studies, University of London",ref:["https://www.wikidata.org/wiki/Q220144","https://ror.org/04vrxay34"]},websites:["https://www.soas.ac.uk/"]},{relation_type:"cooperation",org_name:{text:"British Library",ref:["https://www.wikidata.org/wiki/Q23308","https://ror.org/05dhe8b71"]},websites:["https://www.bl.uk/"]},{relation_type:"cooperation",org_name:{text:"Royal Asiatic Society",ref:["https://www.wikidata.org/wiki/Q1417172"]},websites:["https://royalasiaticsociety.org/"]},{relation_type:"cooperation",org_name:{text:"Wellcome Library",ref:["https://www.wikidata.org/wiki/Q7981192"]},websites:["https://wellcomelibrary.org/"]}],related_entities:[{relation_type:"parent",title:"Oxford Cambridge Islamic Manuscript Catalogue Online",uuid:"97408d45-9570-4cad-a623-6007573bf070"}],contacts:[{pers_name:{text:"Faghihi, Yasmin",ref:[]},roles:["writing – review & editing"],websites:["https://www.cdh.cam.ac.uk/about/people/yasmin-faghihi/"]}],research_data:{lang:["amh","ara","ave","ben","bod","chg","cop","dan","deu","eng","fas","fra","guj","hau","heb","hin","hye","ita","jav","jpr","jrb","kan","kas","kur","lat","mal","mar","mon","pal","por","san","snd","spa","syr","tam","tel","tur","und","urd","zho"],sustainability_plan:null,publications:{open_access:0,licensing:[]},data:{datatypes:[{label:"",stage:"raw",licensing:[],open_access:0}],repositories:[{label:"",accessibility:"public",ref:[],licensing:[],description:""}]}},stack:{database:[],backend:[],frontend:[],tools:[{label:"",self_developed:!1,ref:[],description:""}],languages:[]},policies:[{description:"",ref:[]}],keywords:["african_studies","arabic_studies","catalog","digital_preservation","iranian_studies","islamic_studies","jewish_studies","manuscript","semitic_studies","tei","turkology"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/verse_und_sprueche/a2984fec-9396-488e-ad56-d3d21dc49052.json",{schema_version:"0.2.2",record_metadata:{uuid:"a2984fec-9396-488e-ad56-d3d21dc49052",record_created_on:"2021-11-01",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-05-06"},project:{title:"Verse und Sprueche: Impulse und Reichweiten wissenschaftlicher und popularisierender Diskurse im arabischen Sprachraum",abbr:"",type:"project",ref:[],date:[{from:"2020",to:"2024"}],maintained:!0,websites:["https://www.sfb-episteme.de/teilprojekte/handeln/C10/index.html"],project_desc:"This projects studies micro-texts in poetry and gnomic texts in Arabic and related traditions. Single verses and maxims and the changes they underwent in their literary and scientific contexts bear important information about the intercultural transfer of knowledge. The project team will build a database of these minuscule texts and analyze them in order to trace the interaction of the multiple factors and impulses of epistemic change and embed it in a broader context.",places:[{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}}],lang:["deu","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Freie Universität Berlin",ref:["https://ror.org/046ak2485","https://www.wikidata.org/wiki/Q153006"]},websites:["https://www.fu-berlin.de/"]}],related_entities:[{relation_type:"child",title:"Glossarion",uuid:"ee6404e6-57f0-4e11-bb4a-1bbd13b08cb7"},{relation_type:"sibling",title:"Country of Words: Reading and Reception of Palestinian Literature from 1948 to the Present",uuid:"2adf7ddc-9dd5-49b3-842c-9dc48dbbf36e"},{relation_type:"sibling",title:"Kalila and Dimna – AnonymClassic",uuid:"d1e6d69b-5e9a-4b4a-85ad-09aac56ed2d9"},{relation_type:"sibling",title:"Keywords for the Study of the Arabic Literary and Manuscript Tradition",uuid:"7050ac6d-523c-4ba0-b381-48ec200ff6c4"},{relation_type:"sibling",title:"Arabic Literature Cosmopolitan",uuid:"46aff246-b6ef-4632-90c2-0993a9f9b1f5"},{relation_type:"sibling",title:"Memory Spaces: Mapping Oral History in Mosul",uuid:"aec92ee9-7c8a-49ce-8491-46667fc75505"}],contacts:[{pers_name:{text:"Gruendler, Beatrice",ref:["https://d-nb.info/gnd/111749344X"]},roles:["supervision"],websites:["https://www.geschkult.fu-berlin.de/e/semiarab/arabistik/Seminar/Mitarbeiterinnen-und-Mitarbeiter/Professuren/Gruendler/"]}],research_data:{lang:["ara","grc","syr"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","corpus_output","digital_preservation"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/vicav/8f343a28-a873-449c-b359-efcfab7d1201.json",{schema_version:"0.2.2",record_metadata:{uuid:"8f343a28-a873-449c-b359-efcfab7d1201",record_created_on:"2022-05-12",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Vienna Corpus of Arabic Varieties",abbr:"VICAV",type:"project",ref:[],date:[{from:"2013-01-01",to:"2028-12-31"}],maintained:!0,websites:["https://vicav.acdh.oeaw.ac.at/#map=[biblMarkers,.*,geo]&1=[textQuery,vicavMission,MISSION,open]&2=[textQuery,vicavNews,NEWS,open]","https://www.oeaw.ac.at/acdh/projects/vicav"],project_desc:"This project has two main purposes: firstly, it serves as a virtual research platform for Arabic dialectology, secondly, as a test bed for newly developed text technological methodologies and tools. In doing so, it gathers varying digital language resources for a number of different localities and offers information on the research history, available literature, salient grammatical features etc. of the particular variety. VICAV also makes accessible bibliographies, dictionaries, glossaries, and different types of transcribed texts. The project aims at providing a platform of exchange for a scientific community which is increasingly producing digital data but still lacks the infrastructure to make it widely available.",places:[{place_name:{text:"Vienna",ref:["https://www.geonames.org/2761369/vienna.html"]},coordinates:{lat:"48.20849",lng:"16.37208"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Österreichische Akademie der Wissenschaften",ref:["https://www.wikidata.org/wiki/Q299015","https://ror.org/03anc3s24"]},websites:["https://www.oeaw.ac.at/en/"]},{relation_type:"host",org_name:{text:"Universität Wien",ref:["https://ror.org/04d836q62","https://www.wikidata.org/wiki/Q165980"]},websites:["https://www.univie.ac.at/en/"]}],related_entities:[{relation_type:"sibling",title:"WIBARAB: What is Bedouin-Type Arabic?",uuid:"e9cb8ab1-2d2c-4cc3-a44d-a793220a8638"},{relation_type:"sibling",title:"Genesis Rabbah Loanwords",uuid:"94044a63-eae5-4e1d-ba04-64874109fc36"},{relation_type:"sibling",title:"Shawi",uuid:"68422d65-ccba-4dcb-8a0e-bd4f3f9e1dc9"},{relation_type:"sibling",title:"NoMansLand: Nomads’ Manuscripts Landscape",uuid:"e050deba-6e1d-4d82-851b-cf6c1f7187a5"},{relation_type:"sibling",title:"Linguistic dynamics in the Greater Tunis Area: a corpus-based approach (TUNICO)",uuid:"79462111-75a7-4fa0-8e11-9d424293a074"},{relation_type:"sibling",title:"TUNOCENT",uuid:"325a929a-6764-41e1-b452-6556209fa74f"}],contacts:[{pers_name:{text:"Mörth, Karlheinz",ref:["https://viaf.org/viaf/8110691/#M%C3%B6rth,_Karlheinz."]},roles:["supervision"],websites:["https://www.oeaw.ac.at/acdh/team/current-team/karlheinz-moerth"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["annotation","arabic_studies","dialectology","geodata","language_documentation","lexicon","linguistics","translation"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/virtuelle_archive_fuer_die_geisteswissenschaftliche_forschung/fcbda96b-0c65-4ac9-9047-bde2323a0cb4.json",{schema_version:"0.2.2",record_metadata:{uuid:"fcbda96b-0c65-4ac9-9047-bde2323a0cb4",record_created_on:"2022-04-05",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-04-08"},project:{title:"Virtuelle Archive für die geisteswissenschaftliche Forschung",abbr:"",type:"project",ref:[],date:[{from:"2017-05",to:"2020-01"}],maintained:null,websites:["https://www.saw-leipzig.de/de/projekte/virtuelle-archive"],project_desc:"In this project is a cooperation of seven research institutions in Saxony (see project’s website) coordinated by Sächsische Akademie der Wisschenschaften (SAW). The institutions will exchange their expertise in the Digital Humanities in order to optimize research data management in human sciences. The focus of this projects lies on technical, legal and formal standardization of research data, long term archiving and accessibility.",places:[{place_name:{text:"Leipzig",ref:["https://www.geonames.org/2879139/leipzig.html"]},coordinates:{lat:"51.33962",lng:"12.37129"}}],lang:["deu"],related_institutions:[{relation_type:"host",org_name:{text:"Sächsische Akademie der Wissenschaften zu Leipzig",ref:["https://www.wikidata.org/wiki/Q27891200","https://ror.org/03zxjdk07"]},websites:["https://www.saw-leipzig.de/de"]}],related_entities:[],contacts:[{pers_name:{text:"Wiesmeth, Hans",ref:["https://d-nb.info/gnd/109432703"]},roles:["supervision"],websites:["https://www.saw-leipzig.de/de/mitglieder/wiesmethh"]}],research_data:{lang:[],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["research_data_management","research_infrastructure"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/humanweb/1a587e85-1385-40b0-b6eb-25ca8fa5042c.json",{schema_version:"0.2.2",record_metadata:{uuid:"1a587e85-1385-40b0-b6eb-25ca8fa5042c",record_created_on:"2022-07-21",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-07-26"},project:{title:"Weaving the Humanities into the Web and the Web into the Humanities. Preserving the Cultural Heritage of Yemen by Creating an Universally Virtual Library of Manuscripts (HumanWeb)",abbr:"HumanWeb",type:"project",ref:[],date:[{from:"2013",to:"2014"}],maintained:!1,websites:["https://cordis.europa.eu/project/id/324591"],project_desc:"This POC project will demonstrate that humanistic sciences can be productively coupled with sound business strategies to advance societal benefits and cultural sustainability. The grant will be used to get into contact and contract with potential joint venture partners for a cooperation which will result in a ground-braking universal online digital library for Yemeni manuscripts.",places:[{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Freie Universität Berlin",ref:["https://ror.org/046ak2485","https://www.wikidata.org/wiki/Q153006"]},websites:["https://www.fu-berlin.de/"]}],related_entities:[{relation_type:"sibling",title:"The Yemeni Manuscript Digitization Initiative",uuid:"e17c5b2a-7619-40bd-bddd-51063f687cb0"}],contacts:[{pers_name:{text:"Schmidtke, Sabine",ref:["https://d-nb.info/gnd/143773771"]},roles:["supervision"],websites:["https://www.ias.edu/scholars/schmidtke"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","digital_preservation","manuscript"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/wibarab/e9cb8ab1-2d2c-4cc3-a44d-a793220a8638.json",{schema_version:"0.2.2",record_metadata:{uuid:"e9cb8ab1-2d2c-4cc3-a44d-a793220a8638",record_created_on:"2022-05-09",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"WIBARAB: What is Bedouin-Type Arabic?",abbr:"WIBARAB",type:"project",ref:[],date:[{from:"2021-10-01",to:"2026-09-30"}],maintained:!0,websites:["https://wibarab.acdh.oeaw.ac.at/","https://www.oeaw.ac.at/acdh/projects/wibarab-what-is-bedouin-type-arabic"],project_desc:"This project is dedicated to the study of Bedouin- Arabic dialects from cross the whole Arabic-speaking region. The project will collect new data through fieldwork in Saudi Arabia, Jordan, Sudan and Morocco, among other countries and publish the outputs in a database that will allow for efficient cross-dialectal comparisons, particularly with regard to phonological, morphological, syntactical, phraseological and lexical features.",places:[{place_name:{text:"Vienna",ref:["https://www.geonames.org/2761369/vienna.html"]},coordinates:{lat:"48.20849",lng:"16.37208"}}],lang:["deu","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Österreichische Akademie der Wissenschaften",ref:["https://www.wikidata.org/wiki/Q299015","https://ror.org/03anc3s24"]},websites:["https://www.oeaw.ac.at/en/"]},{relation_type:"host",org_name:{text:"Universität Wien",ref:["https://ror.org/04d836q62","https://www.wikidata.org/wiki/Q165980"]},websites:["https://www.univie.ac.at/en/"]}],related_entities:[{relation_type:"sibling",title:"Genesis Rabbah Loanwords",uuid:"94044a63-eae5-4e1d-ba04-64874109fc36"},{relation_type:"sibling",title:"Vienna Corpus of Arabic Varieties",uuid:"8f343a28-a873-449c-b359-efcfab7d1201"},{relation_type:"sibling",title:"Shawi",uuid:"68422d65-ccba-4dcb-8a0e-bd4f3f9e1dc9"},{relation_type:"sibling",title:"NoMansLand: Nomads’ Manuscripts Landscape",uuid:"e050deba-6e1d-4d82-851b-cf6c1f7187a5"},{relation_type:"sibling",title:"Linguistic dynamics in the Greater Tunis Area: a corpus-based approach (TUNICO)",uuid:"79462111-75a7-4fa0-8e11-9d424293a074"},{relation_type:"sibling",title:"TUNOCENT",uuid:"325a929a-6764-41e1-b452-6556209fa74f"}],contacts:[{pers_name:{text:"Procházka, Stephan",ref:["https://d-nb.info/gnd/136441688"]},roles:["supervision"],websites:["https://orientalistik.univie.ac.at/ueber-uns/personal/detailansicht-personal/user/prochas8/inum/1073/backpid/86555/"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","corpus_resource","dialectology","language_documentation","linguistics"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/zodiac/fb7e7faa-8797-4db7-9061-3498dd7e1c6d.json",{schema_version:"0.2.2",record_metadata:{uuid:"fb7e7faa-8797-4db7-9061-3498dd7e1c6d",record_created_on:"2023-09-15",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Zodiac - Ancient Astral Science in Transformation",abbr:"Zodiac",type:"project",ref:[],date:[{from:"2021",to:"2026"}],maintained:!0,websites:["https://www.geschkult.fu-berlin.de/e/zodiac/index.html","https://zodiac.fly.dev/"],project_desc:"ZODIAC's main objective is to develop a convincing account of how zodiacal astral science emerged, was cross-culturally transmitted and able to take root in different ancient cultures. It also offers an online cross-cultural glossary of ancient astral science.",places:[{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}}],lang:["deu","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Freie Universität Berlin",ref:["https://ror.org/046ak2485","https://www.wikidata.org/wiki/Q153006"]},websites:["https://www.fu-berlin.de/"]}],related_entities:[],contacts:[{pers_name:{text:"Ossendrijver, Mathieu A.J.H.",ref:["https://d-nb.info/gnd/1051590221"]},roles:["supervision"],websites:["https://www.geschkult.fu-berlin.de/en/e/zodiac/team/ossendrijver/index.html"]}],research_data:{lang:["akk","arc","egy","grc","heb","lat","san"],sustainability_plan:null,publications:{open_access:0,licensing:[]},data:{datatypes:[{label:"",stage:"raw",licensing:[],open_access:0}],repositories:[{label:"",accessibility:"public",ref:[],licensing:[],description:""}]}},stack:{database:[],backend:[],frontend:[],tools:[{label:"",self_developed:!1,ref:[],description:""}],languages:[]},policies:[{description:"",ref:[]}],keywords:["egyptology","history_studies","lexicon","other","science_history","semitic_studies"],comment:"The focus of the project is not the lexicon, but rather reconstruction of zodiacal astral science. At the time of the creation of this record, the lexicon is the only aspect of the project that can be described as DH."}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/mpcd/7d8eb5d0-6284-4939-a48b-7ff7a2407989.json",{schema_version:"0.2.2",record_metadata:{uuid:"7d8eb5d0-6284-4939-a48b-7ff7a2407989",record_created_on:"2023-12-15",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Zoroastrian Middle Persian Corpus and Dictionary",abbr:"MPCD",type:"project",ref:[],date:[{from:"2021",to:"2030"}],maintained:!0,websites:["https://www.mpcorpus.org/"],project_desc:"This project aims at the creation of a digital corpus of Zoroastrian Middle Persian texts in Pahlavi script as well as at the development of a comprehensive dictionary covering that corpus. The corpus consists of roughly 50 texts which will be supplied with several layers of orthographical, grammatical, semantic and intertextual annotation.",places:[{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}},{place_name:{text:"Bochum",ref:["https://www.geonames.org/2947416/bochum.html"]},coordinates:{lat:"51.48165",lng:"7.21648"}},{place_name:{text:"Köln",ref:["https://www.geonames.org/2886242/koeln.html"]},coordinates:{lat:"50.93333",lng:"6.95"}}],lang:["eng","deu"],related_institutions:[{relation_type:"host",org_name:{text:"Freie Universität Berlin",ref:["https://ror.org/046ak2485","https://www.wikidata.org/wiki/Q153006"]},websites:["https://www.fu-berlin.de/"]},{relation_type:"host",org_name:{text:"Ruhr-Universität Bochum",ref:["https://ror.org/04tsk2644","https://www.wikidata.org/wiki/Q309948"]},websites:["https://www.ruhr-uni-bochum.de/de"]},{relation_type:"host",org_name:{text:"Universität zu Köln",ref:["https://ror.org/00rcxh774","https://www.wikidata.org/wiki/Q54096"]},websites:["https://www.uni-koeln.de/"]}],related_entities:[{relation_type:"sibling",title:"Avestan Digital Archive",uuid:"0a2ff403-834b-484f-b961-0822220bab58"},{relation_type:"sibling",title:"Tierrecht und Strafen im 'Gesetz zur Abwehr der Dämonen' (Vidçvdâd, Kapitel 13–15)",uuid:"57622367-8250-4932-ab3e-0356615d578a"},{relation_type:"sibling",title:"Corpus Avesticum Berolinense",uuid:"4c68f56a-2c44-41c0-acb9-ece91afaf70c"},{relation_type:"cooperation",title:"Avestan Digital Archive",uuid:"0a2ff403-834b-484f-b961-0822220bab58"},{relation_type:"cooperation",title:"Corpus Avesticum Berolinense",uuid:"4c68f56a-2c44-41c0-acb9-ece91afaf70c"}],contacts:[{pers_name:{text:"Cantera Glera, Alberto",ref:["https://d-nb.info/gnd/1198415282"]},roles:["supervision"],websites:["https://www.geschkult.fu-berlin.de/e/iranistik/mitarbeiter/professoren/cantera/index.html"]}],research_data:{lang:["pal","xmn"],sustainability_plan:null,publications:{open_access:0,licensing:[]},data:{datatypes:[{label:"",stage:"raw",licensing:[],open_access:0}],repositories:[{label:"",accessibility:"public",ref:[],licensing:[],description:""}]}},stack:{database:[],backend:[],frontend:[],tools:[{label:"",self_developed:!1,ref:[],description:""}],languages:[]},policies:[{description:"",ref:[]}],keywords:["annotation","corpus_output","digital_preservation","iranian_studies","lexicography","lexicon","linguistics","manuscript","vre"],comment:""}}]];export{e}; diff --git a/_app/immutable/chunks/ENTRIES.DrMUelaC.js b/_app/immutable/chunks/ENTRIES.DrMUelaC.js deleted file mode 100644 index 497a27c50..000000000 --- a/_app/immutable/chunks/ENTRIES.DrMUelaC.js +++ /dev/null @@ -1 +0,0 @@ -const e=[["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/a_digital_synopsis_of_the_mishnah_and_tosefta/71ff37e4-7e16-4c1f-b0a9-9bf47778d41f.json",{schema_version:"0.2.2",record_metadata:{uuid:"71ff37e4-7e16-4c1f-b0a9-9bf47778d41f",record_created_on:"2022-07-26",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"A Digital Synopsis of the Mishnah and Tosefta",abbr:"",type:"project",ref:[],date:[{from:"2015-01-12",to:"2018-01-12"}],maintained:!1,websites:["https://www.geschkult.fu-berlin.de/e/judaistik/Forschung/Digitalization/index.html","https://gepris.dfg.de/gepris/projekt/273844901"],project_desc:"The aim of this project is to provide scholars and students of early rabbinic literature with digital tools to study and determine relationships between two central texts of rabbinic Judaism: the Mishnah (200 CE) and the Tosefta (250 CE) which share the same overall structure, the parallel organization, similar language and terminology and yet their relationship is tantalizingly problematic. The Synopsis Project will build upon and test computational methods for identifying “text reuse”; it will develop strategies and tools for presentation and visualization of overlapping texts which will provide access to the parallel and interrelated traditions of both texts.",places:[{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}},{place_name:{text:"College Park",ref:["https://www.geonames.org/4351977/college-park.html"]},coordinates:{lat:"38.98067",lng:"-76.93692"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Freie Universität Berlin",ref:["https://ror.org/046ak2485","https://www.wikidata.org/wiki/Q153006"]},websites:["https://www.fu-berlin.de/"]},{relation_type:"host",org_name:{text:"University of Maryland, College Park",ref:["https://ror.org/010prmy50","https://www.wikidata.org/wiki/Q503415"]},websites:["https://www.umd.edu/"]}],related_entities:[{relation_type:"sibling",title:"Patterns of Knowledge Circulation: The Transmission and Reception of Jewish Esoteric Knowledge in Manuscript and Print in Early Modern East-Central Europe (1500-1750)",uuid:"c2c309a5-923c-4759-ae83-f870b10dceff"}],contacts:[{pers_name:{text:"Ilan, Tal",ref:["https://d-nb.info/gnd/121164306"]},roles:["supervision"],websites:["https://www.geschkult.fu-berlin.de/e/judaistik/Forschung/talmudbavli/contacts/contacts_tal/"]},{pers_name:{text:"Lapin, Hayim",ref:["https://d-nb.info/gnd/1026148820"]},roles:["supervision"],websites:["https://history.umd.edu/directory/hayim-lapin"]}],research_data:{lang:["heb"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["computational_text_analysis","jewish_studies","machine_learning","nlp","religion_studies","text_reuse"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/a_digital_typology_of_arabic_documents/72bf1192-8af5-4df0-bd88-cf4d62d13d66.json",{schema_version:"0.2.2",record_metadata:{uuid:"72bf1192-8af5-4df0-bd88-cf4d62d13d66",record_created_on:"2021-11-11",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-02-14"},project:{title:"A Digital Typology of Arabic Documents",abbr:"",type:"project",ref:[],date:[{from:"2003",to:""}],maintained:null,websites:["https://www.apd.gwi.uni-muenchen.de/apd/project.jsp"],project_desc:"The latest phase of the project Arabic Papyrology Database (APD). Its aim is to create digital diplomatic charts for structuring formulaic and layout features of Arabic documents.",places:[{place_name:{text:"Basel",ref:["https://www.geonames.org/2661604/basel.html"]},coordinates:{lat:"47.55839",lng:"7.57327"}},{place_name:{text:"Munich",ref:["https://www.geonames.org/2867714/munich.html"]},coordinates:{lat:"48.13743",lng:"11.57549"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Universität Basel",ref:["https://ror.org/02s6k3f65","https://www.wikidata.org/wiki/Q372608"]},websites:["https://www.unibas.ch/de"]}],related_entities:[{relation_type:"parent",title:"Arabic Papyrology Database",uuid:"e9bf3427-1c16-4bec-9d2d-22836ae7a4b9"}],contacts:[{pers_name:{text:"Kaplony, Andreas",ref:["https://d-nb.info/gnd/115211942"]},roles:["supervision"],websites:["https://daw.philhist.unibas.ch/en/ancienthistory/research/research-projects/ancient-history-goes-digital/arabic-papyrology/","https://www.naher-osten.uni-muenchen.de/personen/professoren/andreas_kaplony/index.html"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","corpus_output","digital_preservation","lexicon","manuscript","translation"],comment:"The start date recorded for this project is approximate."}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/the_literary_history_of_medicine_online/e9e4a759-5a0c-4d7d-aa61-49051477ab2f.json",{schema_version:"0.2.2",record_metadata:{uuid:"e9e4a759-5a0c-4d7d-aa61-49051477ab2f",record_created_on:"2021-11-01",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-05-06"},project:{title:"A Literary History of Medicine Online",abbr:"",type:"project",ref:[],date:[{from:"2013",to:"2017"}],maintained:null,websites:["https://scholarlyeditions.brill.com/lhom/"],project_desc:"A Literary History of Medicine Online offers a digital edition of The ‘Uyūn al-anbā’ fī ṭabaqāt al-aṭibbā’ written by famous Syrian physician Ibn Abī Uṣaybi‘ah (d. 1270) along with its annotated English translation.",places:[{place_name:{text:"Coventry",ref:["https://www.geonames.org/2652221/coventry.html"]},coordinates:{lat:"52.40656",lng:"-1.51217"}},{place_name:{text:"Oxford",ref:["https://www.geonames.org/2640729/oxford.html"]},coordinates:{lat:"51.75222",lng:"-1.25596"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Warwick University",ref:["https://ror.org/01a77tt86","https://www.wikidata.org/wiki/Q865528"]},websites:["https://www2.warwick.ac.uk/"]},{relation_type:"host",org_name:{text:"University of Oxford",ref:["https://www.wikidata.org/wiki/Q34433","https://ror.org/052gg0110"]},websites:["https://www.ox.ac.uk/"]}],related_entities:[],contacts:[{pers_name:{text:"Savage-Smith, Emilie",ref:["https://www.wikidata.org/wiki/Q64437299"]},roles:["supervision"],websites:["https://www.orinst.ox.ac.uk/people/emilie-savage-smith"]},{pers_name:{text:"Swain, Simon",ref:["https://www.wikidata.org/wiki/Q55386758"]},roles:["supervision"],websites:["https://warwick.ac.uk/fac/arts/classics/intranets/staff/simonswain/"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["annotation","arabic_studies","classical_text","digital_edition","digital_preservation","history_studies","literary_studies","manuscript","medicine_history","science_history","translation","vre"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/ada_center/173631fa-ddc3-4762-bfd9-5bf40ccef41a.json",{schema_version:"0.2.2",record_metadata:{uuid:"173631fa-ddc3-4762-bfd9-5bf40ccef41a",record_created_on:"2021-10-29",record_created_by:"Mueller-Laackman, Jonas",last_edited_on:"2022-03-25"},project:{title:"Ada Lovelace Center for Digital Humanities",abbr:"ADA",type:"organization",ref:[],date:[{from:"2021",to:""}],maintained:!0,websites:["https://www.ada.fu-berlin.de/"],project_desc:"The main objective of Ada Lovelace Center for Digital Humanities is to connect and promote all activities in the Digital Humanities taking place not only at the FU but also at the national and international level. By providing a social and communicative infrastructure for collaboration (co-working hours), developing interdisciplinary lab culture within the humanities (ADA.Labs) and bringing together all projects, teaching and training programs in the Digital Humanities at the FU it enhances and coordinates the transfer of project-based, personal expertise into a sustainable, interdisciplinary knowledge management.",places:[{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}}],lang:["deu","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Freie Universität Berlin",ref:["https://ror.org/046ak2485","https://www.wikidata.org/wiki/Q153006"]},websites:["https://www.fu-berlin.de/"]}],related_entities:[],contacts:[{pers_name:{text:"Mischke, Dennis",ref:["https://d-nb.info/gnd/1011172860"]},roles:["supervision"],websites:["https://www.fu-berlin.de/en/sites/ub/ueber-uns/team/mischke/"]}],research_data:{lang:[],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["collaboration_platform"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/afrikanische_stimmen_in_islamischen_manuskripten/eaf36ccc-5ee4-4749-80ea-7f71f479c968.json",{schema_version:"0.2.2",record_metadata:{uuid:"eaf36ccc-5ee4-4749-80ea-7f71f479c968",record_created_on:"2022-02-28",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Afrikanische Stimmen in islamischen Manuskripten aus Mali: Erschließung und Erforschung afrikanischer Sprachen in arabischer Schrift (Ajami)",abbr:"",type:"project",ref:[],date:[{from:"2017",to:"2029"}],maintained:!0,websites:["https://gepris.dfg.de/gepris/projekt/344888349","https://www.gw.uni-hamburg.de/forschung/forschungsschwerpunkte/manuscript-cultures.html","https://www.csmc.uni-hamburg.de/ajami-lab/projects/ajami-2029.html"],project_desc:"This project is dedicated to research on manuscripts produced in African languages written in Arabic script (Ajami). The main focus of the study is the collection of rescued manuscripts form Timbuktu currently hosted in Bamako. The project aims at their historical and linguistic analyses, in-depth cataloguing, and establishment of a foundation for the interdisciplinary field of Ajami Studies.",places:[{place_name:{text:"Bamako",ref:["https://www.geonames.org/2460596/bamako.html"]},coordinates:{lat:"12.65",lng:"-8"}},{place_name:{text:"Hamburg",ref:["https://www.geonames.org/2911298/hamburg.html"]},coordinates:{lat:"53.55073",lng:"9.99302"}}],lang:["deu","eng","fra"],related_institutions:[{relation_type:"host",org_name:{text:"Universität Hamburg",ref:["https://ror.org/00g30e956","https://www.wikidata.org/wiki/Q156725"]},websites:["https://www.uni-hamburg.de/"]}],related_entities:[{relation_type:"sibling",title:"Beta maṣāḥǝft Manuscripts of Ethiopia and Eritrea",uuid:"169677fd-14f9-46e7-b8f1-2202fb91397c"},{relation_type:"sibling",title:"Demarginalizing Medieval Africa: Images, Texts, and Identity in Early Solomonic Ethiopia",uuid:"46121edb-516b-4dbf-ba49-e2c5f07cec2e"},{relation_type:"sibling",title:"The Evolution of Islamic Societies (c. 600–1600 CE): Algorithmic Analysis into Social History",uuid:"659c0aba-3bdd-43eb-937d-dad4ad63e3fc"},{relation_type:"sibling",title:"The intertwined world of the oral and written transmission of sacred traditions in the Middle East",uuid:"bb852d81-0c6d-4413-8c20-1bb38c4db4e7"},{relation_type:"sibling",title:"Understanding Written Artefacts",uuid:"9ca46873-3089-4a04-99fa-89c0c1b01213"},{relation_type:"sibling",title:"Audition Certificates Platform",uuid:"b333a11d-b9fc-4379-9e21-fbddfa9500b1"},{relation_type:"sibling",title:"Methoden der Bildverarbeitung zur Bestimmung von visuellen Manuskript- und Zeichenmerkmalen",uuid:"eb8e91fe-952e-48b7-af0d-c026ebe37826"},{relation_type:"sibling",title:"Datenrepositorium Manuskriptkulturen",uuid:"894dcf0c-7295-4fb8-b4ba-866a5ebe3310"},{relation_type:"sibling",title:"Documentation of Gorani, an endangered language of West Iran",uuid:"17fa004d-c9d2-4ce3-8116-b7bfff5d14ed"},{relation_type:"sibling",title:"Islamic Painted Page",uuid:"31534c48-6b74-4cc5-8aff-ea8dbc60c445"},{relation_type:"sibling",title:"Methoden der Manuskriptanalyse zur Wiedergewinnung verlorener Schrift",uuid:"892b783d-1788-451f-9efd-1c58bfb4b064"},{relation_type:"sibling",title:"SfarData",uuid:"81d8ad85-5da8-457f-99a3-6ab11128ef03"},{relation_type:"sibling",title:"SIHAFA: The Ideosphere of the Late Ottoman Arabic Press: Mapping the Discursive Field of Authors and Texts through Computational Approaches",uuid:"20ee58f5-f699-4262-a473-7765e249c871"},{relation_type:"sibling",title:"Ethio-SPaRe: Cultural Heritage of Christian Ethiopia. Salvation, Preservation, Research",uuid:"fbf007e0-7eee-4bb1-801d-568785d43d04"},{relation_type:"sibling",title:"From Translation to Creation: Changes in Ethiopic Style and Lexicon from Late Antiquity to the Middle Ages",uuid:"77ae1011-1b54-46b5-b676-02895e3300fc"},{relation_type:"sibling",title:"Corpus dei Manoscritti Copti Letterari",uuid:"c4f41a6d-9fb9-4c31-85f0-b66acfe41289"}],contacts:[{pers_name:{text:"Bondarev, Dmitry",ref:["https://d-nb.info/gnd/1185835431"]},roles:["supervision"],websites:["https://www.csmc.uni-hamburg.de/about/people/bondarev.html"]}],research_data:{lang:["mku","snk"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["african_studies","catalog","digital_preservation","manuscript"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/al_turayya_project/8682a8f5-b601-4a6c-808c-aa4b7ce8a7c4.json",{schema_version:"0.2.2",record_metadata:{uuid:"8682a8f5-b601-4a6c-808c-aa4b7ce8a7c4",record_created_on:"2022-10-31",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"al-Ṯurayyā Project",abbr:"",type:"project",ref:[],date:[{from:"2013",to:""}],maintained:null,websites:["https://althurayya.github.io/#home","https://alraqmiyyat.github.io/althurayya/"],project_desc:"This project aims to reconstruct the geospatial characteristics of the early Islamic world by creating a digital gazetteer with includes over 2,000 toponyms, their descriptions from Arabic sources and technical information which is used for placing them on the map. The visualization is enriched by a geospatial model which plots routes and itineraries as well as networks of reachable places from selected centers, allowing to find paths between two or more locations.",places:[{place_name:{text:"Vienna",ref:["https://www.geonames.org/2761369/vienna.html"]},coordinates:{lat:"48.20849",lng:"16.37208"}},{place_name:{text:"Leipzig",ref:["https://www.geonames.org/2879139/leipzig.html"]},coordinates:{lat:"51.33962",lng:"12.37129"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Universität Wien",ref:["https://ror.org/04d836q62","https://www.wikidata.org/wiki/Q165980"]},websites:["https://www.univie.ac.at/en/"]}],related_entities:[],contacts:[{pers_name:{text:"Romanov, Maxim",ref:[]},roles:["investigation"],websites:["https://www.aai.uni-hamburg.de/voror/personen/romanov.html"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:100,licensing:[]},data:{datatypes:[{label:"JSON",stage:"final",licensing:[],open_access:100},{label:"geoJSON",stage:"final",licensing:[],open_access:100}],repositories:[{label:"GitHub",accessibility:"public",ref:["https://github.com/althurayya"],licensing:[],description:""}]}},stack:{database:["JSON"],backend:["Python"],frontend:["D3","Leaflet"],tools:[{label:"QGIS",self_developed:!1,ref:["https://www.qgis.org/de/site/"],description:""}],languages:["JS","Python"]},policies:[{description:"",ref:[]}],keywords:["geodata","geography","islamic_studies","visualization"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/altaegyptisches_woerterbuch/a4d189e4-f03f-4db0-8742-b777e22da760.json",{schema_version:"0.2.2",record_metadata:{uuid:"a4d189e4-f03f-4db0-8742-b777e22da760",record_created_on:"2022-01-17",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-02-18"},project:{title:"Altägyptisches Wörterbuch",abbr:"",type:"project",ref:[],date:[{from:"1992",to:"2012"}],maintained:null,websites:["https://www.bbaw.de/forschung/altaegyptisches-woerterbuch","https://aaew.bbaw.de/tla/index.html","https://thesaurus-linguae-aegyptiae.de/info/project"],project_desc:"Altägyptisches Wörterbuch is a digital corpus of religious, juristic and administrative texts form ancient Egypt which were originally found in temples, tombs or on papyrus documents and which cover over 3000 years of Egyptian language history. The corpus together with a vast documentation of vocabulary and the ways it was used has been made available by open access and is updated regularly.",places:[{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}}],lang:["deu"],related_institutions:[{relation_type:"host",org_name:{text:"Zentrum Grundlagenforschung Alte Welt",ref:[]},websites:["https://www.bbaw.de/forschung/zentren/zentrum-alte-welt"]}],related_entities:[{relation_type:"sibling",title:"Corpus Coranicum",uuid:"0fd7b9cd-fdae-441b-a6fd-a791d4583ce0"},{relation_type:"sibling",title:"Strukturen und Transformationen des Wortschatzes der ägyptischen Sprache: Text- und Wissenskultur im Alten Ägypten",uuid:"85d053c3-4ce6-4130-bc6a-63f96acfb067"}],contacts:[{pers_name:{text:"Seidlmayer, Stephan Johannes",ref:["https://www.wikidata.org/wiki/Q2343850"]},roles:["supervision"],websites:["https://www.geschkult.fu-berlin.de/e/aegyptologie/personen/Professorinnen-und-Professoren/seidlmayer/"]}],research_data:{lang:["egy"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["annotation","corpus_resource","egyptology","lexicon","translation"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/apsearch/e3fec817-a269-4359-b028-a542387b1cce.json",{schema_version:"0.2.2",record_metadata:{uuid:"e3fec817-a269-4359-b028-a542387b1cce",record_created_on:"2023-10-30",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"APSearch",abbr:"",type:"project",ref:[],date:[{from:"2021",to:""}],maintained:null,websites:["https://apsearch.org/?size=n_20_n"],project_desc:"APSearch is a cataloge of musical recordings from the MENA region dating from the beginning of the 20th century until present. It provides a sophisticated search engine which enables to filter the recordings by a variety of categories.",places:[{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}}],lang:["ara","eng","deu","fra","heb","spa"],related_institutions:[{relation_type:"host",org_name:{text:"Berlin-Brandenburgische Akademie der Wissenschaften",ref:["https://ror.org/05jgq9443","https://www.wikidata.org/wiki/Q219989"]},websites:["https://www.bbaw.de/"]},{relation_type:"host",org_name:{text:"The Arab-German Young Academy of Sciences and Humanities",ref:["https://www.wikidata.org/wiki/Q61876973"]},websites:["https://agya.info/"]}],related_entities:[],contacts:[{pers_name:{text:"Pasdzierny, Matthias",ref:["https://d-nb.info/gnd/1023725061"]},roles:["supervision"],websites:["https://www.udk-berlin.de/person/matthias-pasdzierny/"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[]},data:{datatypes:[{label:"",stage:"raw",licensing:[],open_access:0}],repositories:[{label:"",accessibility:"public",ref:[],licensing:[],description:""}]}},stack:{database:[],backend:[],frontend:[],tools:[{label:"",self_developed:!1,ref:[],description:""}],languages:[]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","catalog","digital_preservation","islamic_studies","music_studies"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/arabic_latin_corpus/e52825b6-9bd6-4206-b99c-964521b5e773.json",{schema_version:"0.2.2",record_metadata:{uuid:"e52825b6-9bd6-4206-b99c-964521b5e773",record_created_on:"2022-09-01",record_created_by:"Müller-Laackman, Jonas",last_edited_on:""},project:{title:"Arabic and Latin Corpus",abbr:"",type:"project",ref:[],date:[{from:"2016",to:""}],maintained:null,websites:["https://www.arabic-latin-corpus.philosophie.uni-wuerzburg.de/index.xhtml"],project_desc:"The project is a digital collection of medieval Arabic-Latin translations to offer a deeper insight into the Arabic influence on Europe in the 10th to 14th centuries AD.",places:[{place_name:{text:"Würzburg",ref:["https://www.geonames.org/2805615"]},coordinates:{lat:"49.79391",lng:"9.95121"}}],related_institutions:[{relation_type:"host",org_name:{text:"Julius Maximilian University of Würzburg",ref:["https://ror.org/00fbnyb24","https://www.wikidata.org/wiki/Q161976"]},websites:["https://www.uni-wuerzburg.de/startseite"]}],lang:["eng"],related_entities:[{relation_type:"sibling",title:"Arabic and Latin Glossary",uuid:"6a7e308d-0588-40b5-9a22-09354d313806"}],contacts:[{pers_name:{text:"Hasse, Dag Nikolaus",ref:["https://d-nb.info/gnd/11800638X"]},roles:["supervision"],websites:["https://www.philosophie.uni-wuerzburg.de/institut/allelehrsthlefrphilosophie/profdrdagnikolaushasse/"]}],research_data:{lang:["ara","lat"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","corpus_output","digital_preservation","manuscript","science_history","translation","translation_studies"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/arabic_latin_glossary/6a7e308d-0588-40b5-9a22-09354d313806.json",{schema_version:"0.2.2",record_metadata:{uuid:"6a7e308d-0588-40b5-9a22-09354d313806",record_created_on:"2022-09-01",record_created_by:"Müller-Laackman, Jonas",last_edited_on:""},project:{title:"Arabic and Latin Glossary",abbr:"",type:"project",ref:[],date:[{from:"2005",to:"2013"},{from:"2013",to:""}],maintained:null,websites:["https://algloss.de.dariah.eu/"],project_desc:"The Arabic and Latin Glossary is a dictionary of medieval Arabic–Latin translations and corresponds to the project “Arabic and Latin Corpus” in terms of examining the Arabic influence on medieval Europe.",places:[{place_name:{text:"Würzburg",ref:["https://www.geonames.org/2805615"]},coordinates:{lat:"49.79391",lng:"9.95121"}}],related_institutions:[{relation_type:"host",org_name:{text:"Julius Maximilian University of Würzburg",ref:["https://ror.org/00fbnyb24","https://www.wikidata.org/wiki/Q161976"]},websites:["https://www.uni-wuerzburg.de/startseite"]}],lang:["eng"],related_entities:[{relation_type:"sibling",title:"Arabic and Latin Corpus",uuid:"e52825b6-9bd6-4206-b99c-964521b5e773"}],contacts:[{pers_name:{text:"Hasse, Dag Nikolaus",ref:["https://d-nb.info/gnd/11800638X"]},roles:["supervision"],websites:["https://www.philosophie.uni-wuerzburg.de/institut/allelehrsthlefrphilosophie/profdrdagnikolaushasse/"]}],research_data:{lang:["ara","lat"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","corpus_resource","lexicon","science_history","translation","translation_studies"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/alc/46aff246-b6ef-4632-90c2-0993a9f9b1f5.json",{schema_version:"0.2.2",record_metadata:{uuid:"46aff246-b6ef-4632-90c2-0993a9f9b1f5",record_created_on:"2023-10-23",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Arabic Literature Cosmopolitan",abbr:"ALC",type:"project",ref:[],date:[{from:"2020",to:"2027"}],maintained:!0,websites:["https://www.geschkult.fu-berlin.de/en/e/kalila-wa-dimna/index.html"],project_desc:"Arabic Literature Cosmopolitan and AnonymClassic jointly are the first ever comprehensive study of Kalila and Dimna, one of the most important text of premodern world literature which passed from Hinduism and Buddhism via Islam to Christianity. Its Arabic versions constitute a source of all further translations into European languages and are also the main focus of the project, which analyzes the transmission processes of the work from India to Europe with Arabic as cultural bridge.",places:[{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}}],lang:["deu","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Freie Universität Berlin",ref:["https://ror.org/046ak2485","https://www.wikidata.org/wiki/Q153006"]},websites:["https://www.fu-berlin.de/"]}],related_entities:[{relation_type:"sibling",title:"Verse und Sprueche: Impulse und Reichweiten wissenschaftlicher und popularisierender Diskurse im arabischen Sprachraum",uuid:"a2984fec-9396-488e-ad56-d3d21dc49052"},{relation_type:"sibling",title:"Country of Words: Reading and Reception of Palestinian Literature from 1948 to the Present",uuid:"2adf7ddc-9dd5-49b3-842c-9dc48dbbf36e"},{relation_type:"sibling",title:"Keywords for the Study of the Arabic Literary and Manuscript Tradition",uuid:"7050ac6d-523c-4ba0-b381-48ec200ff6c4"},{relation_type:"cooperation",title:"Kalila and Dimna – AnonymClassic",uuid:"d1e6d69b-5e9a-4b4a-85ad-09aac56ed2d9"},{relation_type:"sibling",title:"Memory Spaces: Mapping Oral History in Mosul",uuid:"aec92ee9-7c8a-49ce-8491-46667fc75505"}],contacts:[{pers_name:{text:"Gruendler, Beatrice",ref:["https://d-nb.info/gnd/111749344X"]},roles:["supervision"],websites:["https://www.geschkult.fu-berlin.de/e/semiarab/arabistik/Seminar/Mitarbeiterinnen-und-Mitarbeiter/Professuren/Gruendler/"]}],research_data:{lang:["ara","fas"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","classical_text","digital_edition","digital_preservation","literary_studies","manuscript","translation","vre"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/arabic_papyrology_database/e9bf3427-1c16-4bec-9d2d-22836ae7a4b9.json",{schema_version:"0.2.2",record_metadata:{uuid:"e9bf3427-1c16-4bec-9d2d-22836ae7a4b9",record_created_on:"2021-11-08",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-02-14"},project:{title:"Arabic Papyrology Database",abbr:"ADP",type:"project",ref:[],date:[{from:"2003",to:""}],maintained:null,websites:["https://www.naher-osten.uni-muenchen.de/forschung/papyrologie/apd/index.html","https://www.apd.gwi.uni-muenchen.de/apd/about.jsp"],project_desc:"The Arabic Papyrology database is a digital compilation of pre-modern Arabic manuscripts written between 7th and 16th century CE. It comprises a total of 13286 documents which can be search by their metadata and content.",places:[{place_name:{text:"Munich",ref:["https://www.geonames.org/2867714/munich.html"]},coordinates:{lat:"48.13743",lng:"11.57549"}},{place_name:{text:"Zürich",ref:["https://www.geonames.org/7287650/zuerich.html"]},coordinates:{lat:"47.38283",lng:"8.53071"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Ludwig-Maximilians-Universität Munich",ref:["https://www.wikidata.org/wiki/Q156598","https://ror.org/05591te55"]},websites:["https://www.lmu.de/de/index.html"]},{relation_type:"host",org_name:{text:"Universität Zürich",ref:["https://www.wikidata.org/wiki/Q206702","https://ror.org/02crff812"]},websites:["https://www.uzh.ch/de.html"]}],related_entities:[{relation_type:"child",title:"A Digital Typology of Arabic Documents",uuid:"72bf1192-8af5-4df0-bd88-cf4d62d13d66"}],contacts:[{pers_name:{text:"Kaplony, Andreas",ref:["https://d-nb.info/gnd/115211942"]},roles:["supervision"],websites:["https://www.naher-osten.uni-muenchen.de/personen/professoren/andreas_kaplony/index.html"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","corpus_output","digital_preservation","lexicon","manuscript","translation"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/arbeitsstelle_kleine_faecher/4a8c71d9-bdf0-4df1-9980-b13fb5b1af3b.json",{schema_version:"0.2.2",record_metadata:{uuid:"4a8c71d9-bdf0-4df1-9980-b13fb5b1af3b",record_created_on:"2021-11-11",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-02-21"},project:{title:"Arbeitsstelle Kleine Fächer",abbr:"",type:"project",ref:[],date:[{from:"2005",to:""}],maintained:null,websites:["https://www.kleinefaecher.de/kartierung/arbeitsstelle-kleine-faecher"],project_desc:"This project focuses on “small subjects” or less known fields of study in German universities. Its main objective it to collect data about the current situation of small subjects in Germany as well as its documentation.",places:[{place_name:{text:"Mainz",ref:["https://www.geonames.org/2874224/mainz.html"]},coordinates:{lat:"50.00133",lng:"8.25865"}}],lang:["deu"],related_institutions:[{relation_type:"host",org_name:{text:"Johannes Gutenberg-Universität Mainz",ref:["https://www.wikidata.org/wiki/Q161982","https://ror.org/023b0x485"]},websites:["https://www.uni-mainz.de/"]}],related_entities:[],contacts:[{pers_name:{text:"Schmidt, Uwe",ref:[]},roles:["supervision"],websites:["https://www.zq.uni-mainz.de/ueber-uns/team/univ-prof-dr-uwe-schmidt/"]},{pers_name:{text:"Bahlmann, Katharina",ref:["https://d-nb.info/gnd/1026820677"]},roles:["supervision"],websites:["https://www.zq.uni-mainz.de/dr-katharina-bahlmann/"]}],research_data:{lang:["deu"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["research_infrastructure"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/arche/a0e93701-b975-4760-b3cc-0204f54be3d1.json",{schema_version:"0.2.2",record_metadata:{uuid:"a0e93701-b975-4760-b3cc-0204f54be3d1",record_created_on:"2022-06-02",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"ARCHE",abbr:"",type:"organization",ref:[],date:[{from:"2017",to:""}],maintained:!0,websites:["https://arche.acdh.oeaw.ac.at/browser/"],project_desc:"ARCHE is a digital archive designed specifically to preserve digital research data from the humanities created in or related to Austria. It also promotes the use of open access and open data policies.",places:[{place_name:{text:"Vienna",ref:["https://www.geonames.org/2761369/vienna.html"]},coordinates:{lat:"48.20849",lng:"16.37208"}}],lang:[],related_institutions:[{relation_type:"host",org_name:{text:"Österreichische Akademie der Wissenschaften",ref:["https://www.wikidata.org/wiki/Q299015","https://ror.org/03anc3s24"]},websites:["https://www.oeaw.ac.at/en/"]}],related_entities:[],contacts:[{pers_name:{text:"Trognitz, Martina",ref:["https://d-nb.info/gnd/116996270X"]},roles:["investigation"],websites:["https://www.oeaw.ac.at/de/acdh/team/current-team/martina-trognitz/"]}],research_data:{lang:[],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["research_data_management","research_infrastructure"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/arches/ce6e74fb-c872-4ab4-a6f2-908232d0099a.json",{schema_version:"0.2.2",record_metadata:{uuid:"ce6e74fb-c872-4ab4-a6f2-908232d0099a",record_created_on:"2021-11-08",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-02-21"},project:{title:"ARCHES",abbr:"",type:"project",ref:[],date:[{from:"2019",to:"2024"}],maintained:!0,websites:["https://www.naher-osten.uni-muenchen.de/forschung/arches-projekt/index.html"],project_desc:"The main objective of this project is the identification and cataloguing of Arabic and Judaeo-Arabic manuscripts related to Bible exegesis and translation, known as the Firkovitch Collection. The series contains approximately 2700 manuscripts dating back to the Golden Age of Arabic lands (between 9th and 13th centuries), which provide an extraordinary window to the intellectual and religious life of the Jewish communities living in those areas in that time. The metadata of the manuscripts will be made accessible for further research.",places:[{place_name:{text:"Munich",ref:["https://www.geonames.org/2867714/munich.html"]},coordinates:{lat:"48.13743",lng:"11.57549"}},{place_name:{text:"Jerusalem",ref:["https://www.geonames.org/281184/jerusalem.html"]},coordinates:{lat:"31.76904",lng:"35.21633"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Ludwig-Maximilians-Universität Munich",ref:["https://www.wikidata.org/wiki/Q156598","https://ror.org/05591te55"]},websites:["https://www.lmu.de/de/index.html"]},{relation_type:"host",org_name:{text:"The Hebrew University of Jerusalem",ref:["https://ror.org/04d0szq68","https://www.wikidata.org/wiki/Q174158"]},websites:["https://en.huji.ac.il/en"]}],related_entities:[],contacts:[{pers_name:{text:"Vollandt, Ronny",ref:["https://d-nb.info/gnd/1173742050"]},roles:["supervision"],websites:["https://www.naher-osten.uni-muenchen.de/personen/professoren/ronny_vollandt/index.html"]},{pers_name:{text:"Goldstein, Miriam",ref:["https://d-nb.info/gnd/1019351853"]},roles:["supervision"],websites:["https://en.arabic-lang.huji.ac.il/people/miriam-goldstein"]},{pers_name:{text:"Sklare, David",ref:["https://d-nb.info/gnd/1158385684"]},roles:["investigation"],websites:["https://biblia-arabica.com/team/david-sklare/"]}],research_data:{lang:["ara","heb"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","catalog","digital_preservation","jewish_studies","manuscript","religion_studies","religious_text"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/ali/5416d598-83e8-4b34-b4d8-6beea3faf6f2.json",{schema_version:"0.2.2",record_metadata:{uuid:"5416d598-83e8-4b34-b4d8-6beea3faf6f2",record_created_on:"2023-09-15",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Atlas of the Languages of Iran",abbr:"ALI",type:"project",ref:[],date:[{from:"2015",to:"2023"}],maintained:!0,websites:["http://iranatlas.net/index.html"],project_desc:"The overall goal of the ALI research programme is to enable work toward a systematic understanding of the language situation in Iran. This initiative is guided by a set of interrelated themes which are: language distribution, linguistic and areal typology, language classification and language documentation. The output of the project can be found online in form of interactive maps and visualizations.",places:[{place_name:{text:"Ottawa",ref:["https://www.geonames.org/6094817/ottawa.html"]},coordinates:{lat:"45.41117",lng:"-75.69812"}},{place_name:{text:"Shahr-e Kord",ref:["https://www.geonames.org/115770/shahr-e-kord.html"]},coordinates:{lat:"32.32612",lng:"50.8572"}},{place_name:{text:"Babmerg",ref:["https://www.geonames.org/2952984/bamberg.html"]},coordinates:{lat:"49.89873",lng:"10.90067"}},{place_name:{text:"Bonn",ref:["https://www.geonames.org/2946447/bonn.html"]},coordinates:{lat:"50.73438",lng:"7.09549"}}],lang:["eng","fas"],related_institutions:[{relation_type:"host",org_name:{text:"Carleton University",ref:["https://www.wikidata.org/wiki/Q1041737","https://ror.org/02qtvee93"]},websites:["https://carleton.ca/"]},{relation_type:"host",org_name:{text:"Shahrekord University",ref:["https://www.wikidata.org/wiki/Q7462208","https://ror.org/051rngw70"]},websites:["https://www.sku.ac.ir/en/"]},{relation_type:"cooperation",org_name:{text:"Otto-Friedrich-Universität Bamberg",ref:["https://www.wikidata.org/wiki/Q707272","https://ror.org/01c1w6d29"]},websites:["https://www.uni-bamberg.de/"]},{relation_type:"cooperation",org_name:{text:"Alexander von Humboldt-Stiftung",ref:["https://www.wikidata.org/wiki/Q60304850","https://ror.org/012kf4317"]},websites:["https://www.humboldt-foundation.de/"]}],related_entities:[],contacts:[{pers_name:{text:"Anonby, Erik",ref:["https://d-nb.info/gnd/1111911843"]},roles:["supervision"],websites:["https://carleton.ca/french/people/erik-anonby-2/","https://www.uni-bamberg.de/aspra/gastforschende/ehemalige-gastforschende/prof-dr-erik-anonby/"]}],research_data:{lang:["fas","hac","kur"],sustainability_plan:null,publications:{open_access:0,licensing:[]},data:{datatypes:[{label:"",stage:"raw",licensing:[],open_access:0}],repositories:[{label:"",accessibility:"public",ref:[],licensing:[],description:""}]}},stack:{database:[],backend:[],frontend:[],tools:[{label:"",self_developed:!1,ref:[],description:""}],languages:[]},policies:[{description:"",ref:[]}],keywords:["geodata","iranian_studies","language_documentation","linguistics","other","visualization"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/acp/b333a11d-b9fc-4379-9e21-fbddfa9500b1.json",{schema_version:"0.2.2",record_metadata:{uuid:"b333a11d-b9fc-4379-9e21-fbddfa9500b1",record_created_on:"2023-10-26",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Audition Certificates Platform",abbr:"ACP",type:"project",ref:[],date:[{from:"2019",to:"2023"}],maintained:!0,websites:["https://www.audition-certificates-platform.org/","https://www.fdr.uni-hamburg.de/record/13525"],project_desc:"The ACP digitizes audition certificates of Arabic manuscripts. These certificates, found in manuscript books, provide rich historical data on authorized text transmissions, and the ACP's digital efforts aim to systematically explore libraries like Staatsbibliothek Berlin, Forschungsbibliothek Gotha, The Bibliothèque nationale de France, and the Syrian National Library to create a searchable corpus, offering unique insights into Middle Eastern social, economic, and urban history, as well as biographical studies.",places:[{place_name:{text:"Hamburg",ref:["https://www.geonames.org/2911298/hamburg.html"]},coordinates:{lat:"53.55073",lng:"9.99302"}}],lang:["eng","ara"],related_institutions:[{relation_type:"host",org_name:{text:"Universität Hamburg",ref:["https://ror.org/00g30e956","https://www.wikidata.org/wiki/Q156725"]},websites:["https://www.uni-hamburg.de/"]}],related_entities:[{relation_type:"sibling",title:"Grasping the World in Ottoman Istanbul: Visual Negotiation and Reading in Practices in Geographic Literature from the Sixteenth Century",uuid:"d1f743f2-7e94-4e00-a8bf-f46e56c7508e"},{relation_type:"sibling",title:"Colophons in Sumerian and Akkadian Literary Manuscripts from 3rd and 2nd Millennium BCE Mesopotamia",uuid:"95a2024b-9fea-4ced-8136-1130b0fb8f51"},{relation_type:"parent",title:"Understanding Written Artefacts",uuid:"9ca46873-3089-4a04-99fa-89c0c1b01213"},{relation_type:"sibling",title:"Afrikanische Stimmen in islamischen Manuskripten aus Mali: Erschließung und Erforschung afrikanischer Sprachen in arabischer Schrift (Ajami)",uuid:"eaf36ccc-5ee4-4749-80ea-7f71f479c968"},{relation_type:"sibling",title:"Beta maṣāḥǝft Manuscripts of Ethiopia and Eritrea",uuid:"169677fd-14f9-46e7-b8f1-2202fb91397c"},{relation_type:"sibling",title:"Methoden der Bildverarbeitung zur Bestimmung von visuellen Manuskript- und Zeichenmerkmalen",uuid:"eb8e91fe-952e-48b7-af0d-c026ebe37826"},{relation_type:"sibling",title:"Datenrepositorium Manuskriptkulturen",uuid:"894dcf0c-7295-4fb8-b4ba-866a5ebe3310"},{relation_type:"sibling",title:"Demarginalizing Medieval Africa: Images, Texts, and Identity in Early Solomonic Ethiopia",uuid:"46121edb-516b-4dbf-ba49-e2c5f07cec2e"},{relation_type:"sibling",title:"Documentation of Gorani, an endangered language of West Iran",uuid:"17fa004d-c9d2-4ce3-8116-b7bfff5d14ed"},{relation_type:"sibling",title:"The Evolution of Islamic Societies (c. 600–1600 CE): Algorithmic Analysis into Social History",uuid:"659c0aba-3bdd-43eb-937d-dad4ad63e3fc"},{relation_type:"sibling",title:"The intertwined world of the oral and written transmission of sacred traditions in the Middle East",uuid:"bb852d81-0c6d-4413-8c20-1bb38c4db4e7"},{relation_type:"sibling",title:"Islamic Painted Page",uuid:"31534c48-6b74-4cc5-8aff-ea8dbc60c445"},{relation_type:"sibling",title:"Methoden der Manuskriptanalyse zur Wiedergewinnung verlorener Schrift",uuid:"892b783d-1788-451f-9efd-1c58bfb4b064"},{relation_type:"sibling",title:"SfarData",uuid:"81d8ad85-5da8-457f-99a3-6ab11128ef03"},{relation_type:"sibling",title:"SIHAFA: The Ideosphere of the Late Ottoman Arabic Press: Mapping the Discursive Field of Authors and Texts through Computational Approaches",uuid:"20ee58f5-f699-4262-a473-7765e249c871"},{relation_type:"sibling",title:"Ethio-SPaRe: Cultural Heritage of Christian Ethiopia. Salvation, Preservation, Research",uuid:"fbf007e0-7eee-4bb1-801d-568785d43d04"},{relation_type:"sibling",title:"From Translation to Creation: Changes in Ethiopic Style and Lexicon from Late Antiquity to the Middle Ages",uuid:"77ae1011-1b54-46b5-b676-02895e3300fc"},{relation_type:"sibling",title:"Corpus dei Manoscritti Copti Letterari",uuid:"c4f41a6d-9fb9-4c31-85f0-b66acfe41289"}],contacts:[{pers_name:{text:"Hirschler, Konrad",ref:["https://d-nb.info/gnd/103830816X"]},roles:["supervision"],websites:["https://www.aai.uni-hamburg.de/voror/personen/hirschler.html"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[]},data:{datatypes:[{label:"",stage:"raw",licensing:[],open_access:0}],repositories:[{label:"",accessibility:"public",ref:[],licensing:[],description:""}]}},stack:{database:[],backend:[],frontend:[],tools:[{label:"",self_developed:!1,ref:[],description:""}],languages:[]},policies:[{description:"",ref:[]}],keywords:["annotation","corpus_output","digital_preservation","geodata","history_studies","islamic_studies","manuscript"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/acdc/5e7ab61a-0c33-44fc-8175-a1930e6d08bc.json",{schema_version:"0.2.2",record_metadata:{uuid:"5e7ab61a-0c33-44fc-8175-a1930e6d08bc",record_created_on:"2022-09-07",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Automatic Collation for Diversifying Corpora",abbr:"ACDC",type:"project",ref:[],date:[{from:"2021-01-01",to:"2023-06-30"}],maintained:!1,websites:["https://openiti.org/projects/ACDC.html"],project_desc:"This project aims to significantly improve the accuracy of handwritten text recognition (HTR) for Arabic-script manuscripts. It will develop a collation tool to automatically create large amounts of training data from existing digital texts and manuscript images without time-consuming human annotation of individual manuscripts.",places:[{place_name:{text:"College Park",ref:["https://www.geonames.org/4351977/college-park.html"]},coordinates:{lat:"38.98067",lng:"-76.93692"}},{place_name:{text:"Leipzig",ref:["https://www.geonames.org/2879139/leipzig.html"]},coordinates:{lat:"51.33962",lng:"12.37129"}},{place_name:{text:"London",ref:["https://www.geonames.org/2643743/london.html"]},coordinates:{lat:"51.50853",lng:"-0.12574"}},{place_name:{text:"Vienna",ref:["https://www.geonames.org/2761369/vienna.html"]},coordinates:{lat:"48.20849",lng:"16.37208"}}],lang:["eng"],related_institutions:[],related_entities:[{relation_type:"parent",title:"Open Islamicate Texts Initiative",uuid:"bef2e507-b663-422e-9dd3-7e49ca299f05"},{relation_type:"sibling",title:"Open Islamicate Texts Initiative Arabic-script OCR Catalyst Project",uuid:"786edd87-476e-42a6-bcc0-521833ec73e5"},{relation_type:"sibling",title:"CorpusBuilder",uuid:"eb1591d7-75b9-4d62-9f67-0679e627587b"}],contacts:[{pers_name:{text:"Allen, Jonathan",ref:[]},roles:["investigation"],websites:["https://sllc.umd.edu/directory/jonathan-allen"]}],research_data:{lang:["ara","fas"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["htr","islamic_studies","machine_learning","ocr","vre"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/averroes_edition/a6e1fb68-e7a5-4125-8cfc-ec3aa16da73b.json",{schema_version:"0.2.2",record_metadata:{uuid:"a6e1fb68-e7a5-4125-8cfc-ec3aa16da73b",record_created_on:"2021-11-08",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-01-21"},project:{title:"Averroes Edition",abbr:"",type:"project",ref:[],date:[{from:"2016",to:"2041"}],maintained:!0,websites:["https://averroes.uni-koeln.de/project/about/"],project_desc:"The project’s main goal is to generate a trilingual critical edition of all commentaries by Ibn Rušd (Averroes) on Aristotle’s Physics, which are the synthesis of the late antique and Arabic reception of Greek philosophy. Next to the Arabic commentaries the edition will also contain their Latin and Hebrew translations.",places:[{place_name:{text:"Düsseldorf",ref:["https://www.geonames.org/2934246/duesseldorf.html"]},coordinates:{lat:"51.22172",lng:"6.77616"}},{place_name:{text:"Köln",ref:["https://www.geonames.org/2886242/koeln.html"]},coordinates:{lat:"50.93333",lng:"6.95"}}],lang:["deu","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Universität zu Köln",ref:["https://ror.org/00rcxh774","https://www.wikidata.org/wiki/Q54096"]},websites:["https://thomasinstitut.uni-koeln.de/"]}],related_entities:[{relation_type:"child",title:"Study of Averroes’s Long Commentary on the Physics in Hebrew and Latin Transmission",uuid:"3992a23d-8426-4b73-8b30-844e471e76e2"},{relation_type:"child",title:"Critical Edition of Ibn Bāğğa’s Commentary on Aristotle’s De generatione et corruptione",uuid:"c3e206ec-9989-4500-ac20-4126e35871f2"},{relation_type:"child",title:"Critical Edition of the Fragmentary Latin Translation of Averroes’s Commentary on De Partibus Animalium and De Generatione Animalium",uuid:"7c7438e6-4172-4059-ad60-54a6d0d61f7c"},{relation_type:"child",title:"Critical Edition of Ibn Bāǧǧa’s Commentary on Aristotle’s Physics",uuid:"f24e806a-0777-4690-b148-1b35ab3745e2"}],contacts:[{pers_name:{text:"Wirmer, David",ref:[]},roles:["supervision"],websites:["https://thomasinstitut.uni-koeln.de/mitarbeiterinnen/david-wirmer"]}],research_data:{lang:["ara","heb","lat"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","digital_edition","digital_preservation","jewish_studies","manuscript","philosophy","science_history"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/avestan_digital_archive/0a2ff403-834b-484f-b961-0822220bab58.json",{schema_version:"0.2.2",record_metadata:{uuid:"0a2ff403-834b-484f-b961-0822220bab58",record_created_on:"2023-02-03",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Avestan Digital Archive",abbr:"ADA",type:"project",ref:[],date:[{from:"2006",to:""}],maintained:null,websites:["https://ada.geschkult.fu-berlin.de/","https://www.geschkult.fu-berlin.de/e/iranistik/news/ada-umsetzung.html"],project_desc:"The ADA project seeks, on the one side, to find, to collect and to digitalize all the extant Avestan manuscripts. On the other hand, the ADA Project is developing a tool to provide all these manuscripts with indexes of the passages and to make them thus available on the web for researchers and for the general public. The electronic tool will allow an easy checking of all the manuscripts containing a concrete passage.",places:[{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Freie Universität Berlin",ref:["https://ror.org/046ak2485","https://www.wikidata.org/wiki/Q153006"]},websites:["https://www.fu-berlin.de/"]}],related_entities:[{relation_type:"sibling",title:"Corpus Avesticum Berolinense",uuid:"4c68f56a-2c44-41c0-acb9-ece91afaf70c"},{relation_type:"cooperation",title:"Tierrecht und Strafen im 'Gesetz zur Abwehr der Dämonen' (Vidçvdâd, Kapitel 13–15)",uuid:"57622367-8250-4932-ab3e-0356615d578a"},{relation_type:"sibling",title:"Tierrecht und Strafen im 'Gesetz zur Abwehr der Dämonen' (Vidçvdâd, Kapitel 13–15)",uuid:"57622367-8250-4932-ab3e-0356615d578a"},{relation_type:"sibling",title:"Zoroastrian Middle Persian Corpus and Dictionary",uuid:"7d8eb5d0-6284-4939-a48b-7ff7a2407989"},{relation_type:"cooperation",title:"Zoroastrian Middle Persian Corpus and Dictionary",uuid:"7d8eb5d0-6284-4939-a48b-7ff7a2407989"},{relation_type:"cooperation",title:"Corpus Avesticum Berolinense",uuid:"4c68f56a-2c44-41c0-acb9-ece91afaf70c"}],contacts:[{pers_name:{text:"Cantera Glera, Alberto",ref:["https://d-nb.info/gnd/1198415282"]},roles:["supervision"],websites:["https://www.geschkult.fu-berlin.de/e/iranistik/mitarbeiter/professoren/cantera/index.html"]}],research_data:{lang:["ave"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["corpus_output","digital_preservation","history_studies","iranian_studies","manuscript","religious_text","vre"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/babmed/942e9692-8e2a-4060-84d8-c8db17eae689.json",{schema_version:"0.2.2",record_metadata:{uuid:"942e9692-8e2a-4060-84d8-c8db17eae689",record_created_on:"2022-07-27",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"BABMED - Babylonische Medizin",abbr:"BABMED",type:"project",ref:[],date:[{from:"2013-07",to:"2018-06"}],maintained:null,websites:["https://www.geschkult.fu-berlin.de/e/babmed/index.html"],project_desc:"BabMed represents the first comprehensive study of ancient Babylonian medical science since the decipherment of the cuneiform writing system. It aims to make Babylonian medical texts available not only for the specialist, but for the wider public as well by publishing them in form of thematic online corpora. Its second objective is to study medicine in the Babylonian Talmud, in order to explore comparisons with later medical traditions from the same region in Aramaic, another language of ancient Mesopotamia.",places:[{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}},{place_name:{text:"Ramat Gan",ref:["https://www.geonames.org/293788/ramat-gan.html"]},coordinates:{lat:"32.08227",lng:"34.81065"}}],lang:["deu","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Freie Universität Berlin",ref:["https://ror.org/046ak2485","https://www.wikidata.org/wiki/Q153006"]},websites:["https://www.fu-berlin.de/"]},{relation_type:"host",org_name:{text:"Bar-Ilan University",ref:["https://www.wikidata.org/wiki/Q1124657","https://ror.org/000ke5995"]},websites:["https://www.biu.ac.il/en"]}],related_entities:[{relation_type:"cooperation",title:"Cuneiform Digital Library Initiative",uuid:"b8097890-6eeb-43ba-890d-28e1490fde08"}],contacts:[{pers_name:{text:"Geller, Markham J.",ref:["https://d-nb.info/gnd/14301918X"]},roles:["supervision"],websites:["https://www.geschkult.fu-berlin.de/e/babmed/Team/FU-Mitarbeiter/geller.html"]}],research_data:{lang:["arc"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["corpus_output","digital_preservation","history_studies","inscription","medicine_history","science_history","semitic_studies"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/bldcil/614f4c99-0d96-48a9-baa5-48a402a8deec.json",{schema_version:"0.2.2",record_metadata:{uuid:"614f4c99-0d96-48a9-baa5-48a402a8deec",record_created_on:"2022-06-16",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Bamberg Lexical Database for Contemporary Iranian Languages",abbr:"BLDCIL",type:"project",ref:[],date:[{from:"2016",to:""}],maintained:null,websites:["https://www.uni-bamberg.de/en/aspra/research/projects/bamberg-lexical-database-for-contemporary-iranian-languages-bldcil/"],project_desc:"The aim of this project is the sub-classification of Iranian languages which has proven to be a particularly recalcitrant problem in historical linguistics. BLDCIL will complement and extend existing scholarship by applying a novel phylogenetic methodology to this old problem. The research will be based on a compilation of standardized lexical data sets, together with sound files, from a representative set of Iranian languages, focusing initially on the West Iranian languages.",places:[{place_name:{text:"Bamberg",ref:["https://www.geonames.org/2952984/bamberg.html"]},coordinates:{lat:"49.89873",lng:"10.90067"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Otto-Friedrich-Universität Bamberg",ref:["https://www.wikidata.org/wiki/Q707272","https://ror.org/01c1w6d29"]},websites:["https://www.uni-bamberg.de/"]}],related_entities:[{relation_type:"sibling",title:"Multilingual Corpus of Annotated Spoken Texts",uuid:"b37c6bd1-90d3-4718-ab58-fb1d60873186"},{relation_type:"sibling",title:"Documentation of Gorani, an endangered language of West Iran",uuid:"17fa004d-c9d2-4ce3-8116-b7bfff5d14ed"},{relation_type:"sibling",title:"Compilation and critical edition of pre-19th century Kurmanji Kurdish",uuid:"d0bda69f-d8c4-4521-ab18-af2c097ffcfc"},{relation_type:"sibling",title:"Post-predicate Elements in Iranian: Inheritance, Contact, and Information Structure",uuid:"c1a2957b-0c24-46e6-9a67-381997525a87"}],contacts:[{pers_name:{text:"Haig, Geoffrey",ref:["https://d-nb.info/gnd/1016008090"]},roles:["supervision"],websites:["https://www.uni-bamberg.de/aspra/team/aktuelles-team/prof-dr-geoffrey-haig/"]}],research_data:{lang:["bqi","fas","kur","mzn","tks","zum"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["audio","corpus_resource","iranian_studies","language_documentation","linguistics"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/barlaam_and_josaphat/2ec36f1f-9f08-4284-964b-2f40a1d3e0db.json",{schema_version:"0.2.2",record_metadata:{uuid:"2ec36f1f-9f08-4284-964b-2f40a1d3e0db",record_created_on:"2023-01-02",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Barlaam and Josaphat in Arabic Literature and Culture",abbr:"",type:"project",ref:[],date:[{from:"2017",to:""}],maintained:null,websites:["https://barlaamandjosaphat.wp.st-andrews.ac.uk/"],project_desc:"The focus of this project lies on Arabic manuscripts of Barlaam and Josaphat, an outstanding work of world literature, and the rich history of its transmission in Arabic sources. In the course of the project the manuscripts will be published online in an open-access research platform ediarum developed at the Berlin Brandenburg Academy of Sciences and Humanities (Berlin, Germany). Along with the photocopies of the manuscripts, the platform will feature full transcriptions of the Arabic texts, an English translation of selected manuscripts as well as analytical metadata and bibliography. This will result in the creation of a comprehensive research tool on the history of Barlaam and Josaphat in Arabic literature.",places:[{place_name:{text:"Fife",ref:["https://www.geonames.org/2649469/fife.html"]},coordinates:{lat:"56.25",lng:"-3.16667"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"University of St Andrews",ref:["https://www.wikidata.org/wiki/Q216273","https://ror.org/02wn5qz54"]},websites:["https://www.st-andrews.ac.uk/"]}],related_entities:[],contacts:[{pers_name:{text:"Dmitriev, Kirill",ref:["https://d-nb.info/gnd/138140030"]},roles:["supervision"],websites:["https://www.st-andrews.ac.uk/modern-languages/people/arabic/kd25"]},{pers_name:{text:"Orfali, Bilal",ref:["https://d-nb.info/gnd/140143777"]},roles:["supervision"],websites:["https://www.bilalorfali.com/en","https://www.aub.edu.lb/fas/arabic/Pages/Bilal-Orfali-Par.aspx"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","classical_text","digital_edition","digital_preservation","literary_studies","manuscript","translation"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/sabaweb/9078ff92-18f1-4019-a9f3-8c7d9aaa0db8.json",{schema_version:"0.2.2",record_metadata:{uuid:"9078ff92-18f1-4019-a9f3-8c7d9aaa0db8",record_created_on:"2022-06-07",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Belegwörterbuch der sabäischen Sprache",abbr:"Sabaweb",type:"project",ref:[],date:[{from:"2012",to:"2024"}],maintained:!0,websites:["http://sabaweb.uni-jena.de/Sabaweb"],project_desc:"This long-term project is dedicated to Sabaic language and aims to create a comprehensive dictionary based on a complete database of all known Sabaic inscriptions covering the period from 14th century BC to 6th century AD. The results of the project are available in an open-access online database which is fully searchable for Sabaic roots, words and forms.",places:[{place_name:{text:"Jena",ref:["https://www.geonames.org/2895044/jena.html"]},coordinates:{lat:"50.92878",lng:"11.5899"}}],lang:["deu","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Friedrich Schiller University Jena",ref:["https://www.wikidata.org/wiki/Q154561","https://ror.org/00zfe1b87"]},websites:["https://www.uni-jena.de/en"]}],related_entities:[],contacts:[{pers_name:{text:"Nebes, Norbert",ref:["https://d-nb.info/gnd/1064027237"]},roles:["supervision"],websites:["https://www.gw.uni-jena.de/nebes-norbert"]}],research_data:{lang:["xsa"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["corpus_resource","lexicon","semitic_studies","translation"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/beta_masaheft_manuscripts_of_ethiopia_and_eritrea/169677fd-14f9-46e7-b8f1-2202fb91397c.json",{schema_version:"0.2.2",record_metadata:{uuid:"169677fd-14f9-46e7-b8f1-2202fb91397c",record_created_on:"2021-11-11",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-02-28"},project:{title:"Beta maṣāḥǝft Manuscripts of Ethiopia and Eritrea",abbr:"",type:"project",ref:[],date:[{from:"2016",to:"2040"}],maintained:!0,websites:["https://www.betamasaheft.uni-hamburg.de/","https://betamasaheft.eu/","https://www.csmc.uni-hamburg.de/research/current-projects/beta-masaheft.html","https://github.com/BetaMasaheft"],project_desc:"The objective of this long-term project is to create a digital XML-based platform on Ethiopian and Eritrean manuscripts. It will provide its users not only with the textual content of the documents but also with all the available information on the documents themselves: authors, owners, scribes, provenance, various physical elements, colophons, notes, etc. The interoperability of the platform will allow search across all existing repositories. The incorporated manuscripts come both from western libraries as well as form Ethiopia and Eritrea.",places:[{place_name:{text:"Hamburg",ref:["https://www.geonames.org/2911298/hamburg.html"]},coordinates:{lat:"53.55073",lng:"9.99302"}}],lang:["deu","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Helmut-Schmidt-Universität",ref:["https://www.wikidata.org/wiki/Q530991","https://ror.org/04e8jbs38"]},websites:["https://www.hsu-hh.de/"]},{relation_type:"host",org_name:{text:"Technische Universität Hamburg",ref:["https://ror.org/04bs1pb34","https://www.wikidata.org/wiki/Q1060"]},websites:["https://www.tuhh.de/"]},{relation_type:"host",org_name:{text:"Universität Hamburg",ref:["https://ror.org/00g30e956","https://www.wikidata.org/wiki/Q156725"]},websites:["https://www.uni-hamburg.de/"]}],related_entities:[{relation_type:"sibling",title:"Understanding Written Artefacts",uuid:"9ca46873-3089-4a04-99fa-89c0c1b01213"},{relation_type:"sibling",title:"Demarginalizing Medieval Africa: Images, Texts, and Identity in Early Solomonic Ethiopia",uuid:"46121edb-516b-4dbf-ba49-e2c5f07cec2e"},{relation_type:"sibling",title:"Grasping the World in Ottoman Istanbul: Visual Negotiation and Reading in Practices in Geographic Literature from the Sixteenth Century",uuid:"d1f743f2-7e94-4e00-a8bf-f46e56c7508e"},{relation_type:"sibling",title:"Afrikanische Stimmen in islamischen Manuskripten aus Mali: Erschließung und Erforschung afrikanischer Sprachen in arabischer Schrift (Ajami)",uuid:"eaf36ccc-5ee4-4749-80ea-7f71f479c968"},{relation_type:"sibling",title:"“The Evolution of Islamic Societies (c. 600–1600 CE): Algorithmic Analysis into Social History”",uuid:"659c0aba-3bdd-43eb-937d-dad4ad63e3fc"},{relation_type:"sibling",title:"The intertwined world of the oral and written transmission of sacred traditions in the Middle East",uuid:"bb852d81-0c6d-4413-8c20-1bb38c4db4e7"},{relation_type:"sibling",title:"The Evolution of Islamic Societies (c. 600–1600 CE): Algorithmic Analysis into Social History",uuid:"659c0aba-3bdd-43eb-937d-dad4ad63e3fc"},{relation_type:"sibling",title:"Audition Certificates Platform",uuid:"b333a11d-b9fc-4379-9e21-fbddfa9500b1"},{relation_type:"sibling",title:"Methoden der Bildverarbeitung zur Bestimmung von visuellen Manuskript- und Zeichenmerkmalen",uuid:"eb8e91fe-952e-48b7-af0d-c026ebe37826"},{relation_type:"sibling",title:"Datenrepositorium Manuskriptkulturen",uuid:"894dcf0c-7295-4fb8-b4ba-866a5ebe3310"},{relation_type:"sibling",title:"Documentation of Gorani, an endangered language of West Iran",uuid:"17fa004d-c9d2-4ce3-8116-b7bfff5d14ed"},{relation_type:"sibling",title:"Islamic Painted Page",uuid:"31534c48-6b74-4cc5-8aff-ea8dbc60c445"},{relation_type:"sibling",title:"Methoden der Manuskriptanalyse zur Wiedergewinnung verlorener Schrift",uuid:"892b783d-1788-451f-9efd-1c58bfb4b064"},{relation_type:"sibling",title:"SfarData",uuid:"81d8ad85-5da8-457f-99a3-6ab11128ef03"},{relation_type:"sibling",title:"SIHAFA: The Ideosphere of the Late Ottoman Arabic Press: Mapping the Discursive Field of Authors and Texts through Computational Approaches",uuid:"20ee58f5-f699-4262-a473-7765e249c871"},{relation_type:"sibling",title:"Ethio-SPaRe: Cultural Heritage of Christian Ethiopia. Salvation, Preservation, Research",uuid:"fbf007e0-7eee-4bb1-801d-568785d43d04"},{relation_type:"sibling",title:"From Translation to Creation: Changes in Ethiopic Style and Lexicon from Late Antiquity to the Middle Ages",uuid:"77ae1011-1b54-46b5-b676-02895e3300fc"},{relation_type:"sibling",title:"Corpus dei Manoscritti Copti Letterari",uuid:"c4f41a6d-9fb9-4c31-85f0-b66acfe41289"}],contacts:[{pers_name:{text:"Bausi, Alessandro",ref:["https://www.wikidata.org/wiki/Q62559559"]},roles:["supervision"],websites:["https://www.aai.uni-hamburg.de/afrika/personen/bausi.html"]}],research_data:{lang:["gez"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["african_studies","corpus_output","digital_preservation","manuscript","vre"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/biblia_arabica/c523675a-0e54-4d1e-8d08-2395d58323e3.json",{schema_version:"0.2.2",record_metadata:{uuid:"c523675a-0e54-4d1e-8d08-2395d58323e3",record_created_on:"2021-11-11",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-02-18"},project:{title:"Biblia Arabica: The Bible in Arabic among Jews, Christians and Muslims",abbr:"Biblia Arabica",type:"project",ref:[],date:[{from:"2012",to:"2018"}],maintained:null,websites:["https://biblia-arabica.com/"],project_desc:"Biblia Arabica serves as a research consortium with focus on Arabic translations of Hebrew, Aramaic, Syriac, Greek and Coptic Bible versions. It examines their stylistic and didactic features, vocabulary, scripts and strategies, as well as the mutual religious and cultural influences between the different religious communities, which were reinforced by the translation movements. The project attempts to set methodological standards on this field of study, charts countless manuscripts from across the globe and analyzes different method of translation form the various source languages.",places:[{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}},{place_name:{text:"Tel Aviv",ref:["https://www.geonames.org/293397/tel-aviv.html"]},coordinates:{lat:"32.08088",lng:"34.78057"}},{place_name:{text:"Munich",ref:["https://www.geonames.org/2867714/munich.html"]},coordinates:{lat:"48.13743",lng:"11.57549"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Freie Universität Berlin",ref:["https://ror.org/046ak2485","https://www.wikidata.org/wiki/Q153006"]},websites:["https://www.fu-berlin.de/"]},{relation_type:"host",org_name:{text:"Tel Aviv University",ref:["https://www.wikidata.org/wiki/Q319239","https://ror.org/04mhzgx49"]},websites:["https://english.tau.ac.il/"]},{relation_type:"host",org_name:{text:"Ludwig-Maximilians-Universität Munich",ref:["https://www.wikidata.org/wiki/Q156598","https://ror.org/05591te55"]},websites:["https://www.lmu.de/de/index.html"]}],related_entities:[],contacts:[{pers_name:{text:"Vollandt, Ronny",ref:["https://d-nb.info/gnd/1173742050"]},roles:["supervision"],websites:["https://www.naher-osten.uni-muenchen.de/personen/professoren/ronny_vollandt/index.html"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","religion_studies","religious_text","tei","translation","translation_studies"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/bibliotheca_arabica/ab7e5659-177f-40ed-befb-5d0eecea737f.json",{schema_version:"0.2.2",record_metadata:{uuid:"ab7e5659-177f-40ed-befb-5d0eecea737f",record_created_on:"2021-11-11",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Bibliotheca Arabica",abbr:"",type:"project",ref:[],date:[{from:"2018",to:"2035"}],maintained:!0,websites:["https://www.saw-leipzig.de/de/projekte/bibliotheca-arabica","https://khizana.bibliotheca-arabica.de/"],project_desc:"This project is dedicated to research on Arabic literatures dating from 1150 to 1850, a period perceived as a steady cultural decline of the region. The project counters this narrative by focusing on manuscripts that were produced and read throughout this time. Next to publication of 16 volumes and numerous articles and working papers, the project will provide a bio-bibliographical research platform that integrates digitized catalogue data and collections of manuscript notes, as well as a curated compilation of bio-bibliographical sources and Linked Data collections.",places:[{place_name:{text:"Leipzig",ref:["https://www.geonames.org/2879139/leipzig.html"]},coordinates:{lat:"51.33962",lng:"12.37129"}}],lang:["deu","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Sächsische Akademie der Wissenschaften zu Leipzig",ref:["https://www.wikidata.org/wiki/Q27891200","https://ror.org/03zxjdk07"]},websites:["https://www.saw-leipzig.de/de"]}],related_entities:[],contacts:[{pers_name:{text:"Klemm, Verena",ref:["https://www.wikidata.org/wiki/Q5675690"]},roles:["supervision"],websites:["https://www.gkr.uni-leipzig.de/orientalisches-institut/ueber-uns/team/prof-dr-verena-klemm"]},{pers_name:{text:"Liebrenz, Boris",ref:["https://d-nb.info/gnd/136837921"]},roles:["supervision"],websites:["https://www.saw-leipzig.de/de/mitarbeiter/liebrenzb"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","catalog","digital_preservation","literary_studies","manuscript"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/borno_and_old_kanembu_islamic_manuscripts/b485ffeb-bcbc-42a0-b141-4450ddc914e6.json",{schema_version:"0.2.2",record_metadata:{uuid:"b485ffeb-bcbc-42a0-b141-4450ddc914e6",record_created_on:"2022-09-05",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Borno and Old Kanembu Islamic Manuscripts",abbr:"",type:"project",ref:[],date:[{from:"2005",to:"2007"},{from:"2009",to:"2011"},{from:"2012",to:"2015"}],maintained:!1,websites:["https://web.archive.org/https://digital.soas.ac.uk/okim/about/"],project_desc:"This digital collection provides access to one of the earliest written sub-Saharan languages in manuscript form - Old Kanembu written in Arabic script was a language of Qur’anic interpretation in the ancient Borno Sultanate. The digitalized corpus contains more than 5000 folios of Old Kanembu Islamic manuscripts from Nigeria, Niger and Republic of Chad and is an outcome of three research projects conducted in SOAS University of London and University Hamburg.",places:[{place_name:{text:"London",ref:["https://www.geonames.org/2643743/london.html"]},coordinates:{lat:"51.50853",lng:"-0.12574"}},{place_name:{text:"Hamburg",ref:["https://www.geonames.org/2911298/hamburg.html"]},coordinates:{lat:"53.55073",lng:"9.99302"}}],lang:["eng"],related_institutions:[],related_entities:[],contacts:[{pers_name:{text:"Bondarev, Dmitry",ref:["https://d-nb.info/gnd/1185835431"]},roles:["supervision"],websites:["https://www.csmc.uni-hamburg.de/about/people/bondarev.html"]}],research_data:{lang:["kbl"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["african_studies","corpus_output","digital_preservation","linguistics","manuscript"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/change_projekt/f87c6596-0ce3-4f2e-8ec5-ea5d17253bba.json",{schema_version:"0.2.2",record_metadata:{uuid:"f87c6596-0ce3-4f2e-8ec5-ea5d17253bba",record_created_on:"2021-11-11",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-03-01"},project:{title:"Change Projekt - Wandel@FU-Bib",abbr:"",type:"project",ref:[],date:[{from:"2019",to:"2021"}],maintained:null,websites:["https://www.fu-berlin.de/sites/ub/ueber-uns/wandel/index.html"],project_desc:"The Change Project’s objective was to reorganize and optimize library infrastructure at FU Berlin. Within the two years of its activity the project’s team worked at improving connection and communication between university libraries and CeDiS (Centre for Digital Systems), simplifying structures, enhancing user orientation and service quality as well as increasing general efficiency and ability to manage future challenges.",places:[{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}}],lang:["deu"],related_institutions:[{relation_type:"host",org_name:{text:"Freie Universität Berlin",ref:["https://ror.org/046ak2485","https://www.wikidata.org/wiki/Q153006"]},websites:["https://www.fu-berlin.de/"]}],related_entities:[],contacts:[{pers_name:{text:"Riesenweber, Christina",ref:["https://www.wikidata.org/wiki/Q57684019"]},roles:["supervision"],websites:["https://web.archive.org/https://www.fu-berlin.de/sites/ub/ueber-uns/team/riesenweber"]},{pers_name:{text:"Lee, Martin",ref:[]},roles:["supervision"],websites:["https://www.ub.hu-berlin.de/de/ueber-uns/kontakt/ansprechpartner/ansprechpartner-leitende-mitarbeiterinnen-und-mitarbeiter/"]}],research_data:{lang:["deu"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["research_infrastructure"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/clariah_de/842dc7b3-020c-47ea-a37e-d5e5aae0bde0.json",{schema_version:"0.2.2",record_metadata:{uuid:"842dc7b3-020c-47ea-a37e-d5e5aae0bde0",record_created_on:"2022-05-24",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"CLARIAH-DE",abbr:"",type:"organization",ref:[],date:[{from:"2019",to:"2021"}],maintained:!0,websites:["https://www.clariah.de/"],project_desc:"CLARIAH-DE is the merger of the two research infrastructure networks CLARIN-D and DARIAH-DE. Over a period of two years, the project will merge the two established research infrastructures. In this way, researchers from the Humanities and cultural sciences will be able to work with complex digital tools and special data sets in a much easier manner.",places:[{place_name:{text:"Göttingen",ref:["https://www.geonames.org/2918632/goettingen.html"]},coordinates:{lat:"51.53443",lng:"9.93228"}},{place_name:{text:"Tübingen",ref:["https://www.geonames.org/2820860/tuebingen.html"]},coordinates:{lat:"48.52266",lng:"9.05222"}}],lang:["deu","eng"],related_institutions:[],related_entities:[{relation_type:"parent",title:"Digital Research Infrastructure for the Arts and Humanities (DARIAH-DE)",uuid:"ea8a1aa5-a2a1-4d4a-9254-f647158c66fa"},{relation_type:"parent",title:"CLARIN-D - European Research Infrastructure for Language Resources and Technology",uuid:"b5604b8b-e9fa-43d3-af0d-ef287cc2fee7"}],contacts:[{pers_name:{text:"Hinrichs, Erhard",ref:["https://d-nb.info/gnd/143840657"]},roles:["supervision"],websites:["https://www.ids-mannheim.de/digspra/personal/hinrichs/","https://www.sfs.uni-tuebingen.de/~eh/"]}],research_data:{lang:[],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["research_data_management","research_infrastructure"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/clarin/7e14a810-7d07-4e60-96eb-01fccf9323e8.json",{schema_version:"0.2.2",record_metadata:{uuid:"7e14a810-7d07-4e60-96eb-01fccf9323e8",record_created_on:"2022-05-09",record_created_by:"",last_edited_on:""},project:{title:"CLARIN - European Research Infrastructure for Language Resources and Technology",abbr:"CLARIN",type:"organization",ref:["https://www.wikidata.org/wiki/Q2986825"],date:[{from:"2012",to:""}],maintained:!0,websites:["https://www.clarin.eu/"],project_desc:"CLARIN (Common Language Resources and Technology Infrastructure) is a pan-European infrastructure which provides access to digital language data and advanced tools to discover, annotate, analyze or combine this data via a network of European repositories. The infrastructure mainly serves for purposes of social sciences and humanities.",places:[{place_name:{text:"Utrecht",ref:["https://www.geonames.org/2745912/utrecht.html"]},coordinates:{lat:"52.09083",lng:"5.12222"}},{place_name:{text:"Vienna",ref:["https://www.geonames.org/2761369/vienna.html"]},coordinates:{lat:"48.20849",lng:"16.37208"}},{place_name:{text:"Leiden",ref:["https://www.geonames.org/2751773/leiden.html"]},coordinates:{lat:"52.15833",lng:"4.49306"}},{place_name:{text:"Sofia",ref:["https://www.geonames.org/727011/sofia.html"]},coordinates:{lat:"42.69751",lng:"23.32415"}},{place_name:{text:"Zagreb",ref:["https://www.geonames.org/3186886/zagreb.html"]},coordinates:{lat:"45.81444",lng:"15.97798"}},{place_name:{text:"Limassol",ref:["https://www.geonames.org/146384/limassol.html"]},coordinates:{lat:"34.68406",lng:"33.03794"}},{place_name:{text:"Prague",ref:["https://www.geonames.org/3067696/prague.html"]},coordinates:{lat:"50.08804",lng:"14.42076"}},{place_name:{text:"Copenhagen",ref:["https://www.geonames.org/2618424/kobenhavn.html"]},coordinates:{lat:"55.6711",lng:"12.56529"}},{place_name:{text:"Tartu",ref:["https://www.geonames.org/588335/tartu.html"]},coordinates:{lat:"58.38062",lng:"26.72509"}},{place_name:{text:"Helsinki",ref:["https://www.geonames.org/658225/helsinki.html"]},coordinates:{lat:"60.16952",lng:"24.93545"}},{place_name:{text:"Mannheim",ref:["https://www.geonames.org/2873891/mannheim.html"]},coordinates:{lat:"49.4891",lng:"8.46694"}},{place_name:{text:"Maroúsi",ref:["https://www.geonames.org/265243/marousi.html"]},coordinates:{lat:"38.05",lng:"23.8"}},{place_name:{text:"Budapest",ref:["https://www.geonames.org/3054643/budapest.html"]},coordinates:{lat:"47.49835",lng:"19.04045"}},{place_name:{text:"Reykjavík",ref:["https://www.geonames.org/3413829/reykjavik.html"]},coordinates:{lat:"64.13548",lng:"-21.89541"}},{place_name:{text:"Pisa",ref:["https://www.geonames.org/3170647/pisa.html"]},coordinates:{lat:"43.70853",lng:"10.4036"}},{place_name:{text:"Riga",ref:["https://www.geonames.org/456172/riga.html"]},coordinates:{lat:"56.946",lng:"24.10589"}},{place_name:{text:"Kaunas",ref:["https://www.geonames.org/598316/kaunas.html"]},coordinates:{lat:"54.90272",lng:"23.90961"}},{place_name:{text:"Bergen",ref:["https://www.geonames.org/3161732/bergen.html"]},coordinates:{lat:"60.39299",lng:"5.32415"}},{place_name:{text:"Wrocław",ref:["https://www.geonames.org/3081368/wroclaw.html"]},coordinates:{lat:"51.1",lng:"17.03333"}},{place_name:{text:"Lisbon",ref:["https://www.geonames.org/2267057/lisbon.html"]},coordinates:{lat:"38.71667",lng:"-9.13333"}},{place_name:{text:"Ljubljana",ref:["https://www.geonames.org/3196359/ljubljana.html"]},coordinates:{lat:"46.05108",lng:"14.50513"}},{place_name:{text:"Gothenburg",ref:["https://www.geonames.org/2711537/goeteborg.html"]},coordinates:{lat:"57.70716",lng:"11.96679"}}],lang:["eng"],related_institutions:[{relation_type:"member",org_name:{text:"Österreichische Akademie der Wissenschaften",ref:["https://www.wikidata.org/wiki/Q299015","https://ror.org/03anc3s24"]},websites:["https://www.oeaw.ac.at/en/"]},{relation_type:"member",org_name:{text:"The Dutch Language Institute",ref:["https://www.wikidata.org/wiki/Q5200436"]},websites:["https://ivdnt.org/"]},{relation_type:"member",org_name:{text:"Bulgarian Academy of Sciences",ref:["https://ror.org/01x8hew03","https://www.wikidata.org/wiki/Q1003730"]},websites:["https://www.bas.bg/"]},{relation_type:"member",org_name:{text:"University of Zagreb",ref:["https://ror.org/00mv6sv71","https://www.wikidata.org/wiki/Q675848"]},websites:["http://www.unizg.hr/"]},{relation_type:"member",org_name:{text:"Cyprus University of Technology",ref:["https://ror.org/05qt8tf94","https://www.wikidata.org/wiki/Q1518320"]},websites:["https://www.cut.ac.cy/?languageId=1"]},{relation_type:"member",org_name:{text:"Charles University",ref:["https://www.wikidata.org/wiki/Q31519","https://ror.org/024d6js02"]},websites:["https://cuni.cz/UKEN-1.html"]},{relation_type:"member",org_name:{text:"University of Copenhagen",ref:["https://www.wikidata.org/wiki/Q186285","https://ror.org/035b05819"]},websites:["https://www.ku.dk/english/"]},{relation_type:"member",org_name:{text:"Center of Estonian Language Resources",ref:[]},websites:["https://keeleressursid.ee/en/"]},{relation_type:"member",org_name:{text:"University of Helsinki",ref:["https://ror.org/040af2s02","https://www.wikidata.org/wiki/Q28695"]},websites:["https://www.helsinki.fi/"]},{relation_type:"member",org_name:{text:"Universität Mannheim",ref:["https://www.wikidata.org/wiki/Q59668","https://ror.org/031bsb921"]},websites:["https://www.uni-mannheim.de/en/"]},{relation_type:"member",org_name:{text:"Institute for Language and Speech Processing",ref:["https://www.wikidata.org/wiki/Q15228720","https://ror.org/00z24kr14"]},websites:["https://www.ilsp.gr/en"]},{relation_type:"member",org_name:{text:"Hungarian Academy of Sciences",ref:["https://www.wikidata.org/wiki/Q265058","https://ror.org/02ks8qq67"]},websites:["https://mta.hu/english/"]},{relation_type:"member",org_name:{text:"Árni Magnússon Institute for Icelandic Studies",ref:["https://ror.org/001jk8698","https://www.wikidata.org/wiki/Q627418"]},websites:["https://www.arnastofnun.is/"]},{relation_type:"member",org_name:{text:"Institute for Computational Linguistics “A. Zampolli”",ref:["https://ror.org/028g3pe33","https://viaf.org/viaf/6050160062454135790009"]},websites:["http://www.ilc.cnr.it/"]},{relation_type:"member",org_name:{text:"University of Latvia",ref:["https://www.wikidata.org/wiki/Q498407","https://ror.org/00ss42h10"]},websites:["https://www.lu.lv"]},{relation_type:"member",org_name:{text:"Vytautas Magnus University",ref:["https://www.wikidata.org/wiki/Q1756541","https://ror.org/04y7eh037"]},websites:["https://www.vdu.lt/en/"]},{relation_type:"member",org_name:{text:"Utrecht University",ref:["https://www.wikidata.org/wiki/Q221653","https://ror.org/04pp8hn57"]},websites:["https://www.uu.nl/en"]},{relation_type:"member",org_name:{text:"University of Bergen",ref:["https://ror.org/03np4e098","https://www.wikidata.org/wiki/Q204457"]},websites:["https://www.uib.no/en"]},{relation_type:"member",org_name:{text:"Wrocław University of Science and Technology",ref:["https://ror.org/008fyn775","https://www.wikidata.org/wiki/Q522109"]},websites:["https://pwr.edu.pl/"]},{relation_type:"member",org_name:{text:"University of Lisbon",ref:["https://ror.org/04bcdt432","https://www.wikidata.org/wiki/Q1122926"]},websites:["https://www.ulisboa.pt/"]},{relation_type:"member",org_name:{text:"Jožef Stefan Institute",ref:["https://ror.org/05060sz93","https://www.wikidata.org/wiki/Q5918873"]},websites:["https://www.ijs.si/ijsw"]},{relation_type:"member",org_name:{text:"University of Gothenburg",ref:["https://ror.org/01tm6cn81","https://www.wikidata.org/wiki/Q371522"]},websites:["https://www.gu.se/en"]}],related_entities:[{relation_type:"child",title:"CLARIN-D - European Research Infrastructure for Language Resources and Technology",uuid:"b5604b8b-e9fa-43d3-af0d-ef287cc2fee7"},{relation_type:"cooperation",title:"European Lexicographic Infrastructure",uuid:"43f49ea7-ec28-4e08-9ff4-57de8c755acd"},{relation_type:"cooperation",title:"Digital Research Infrastructure for the Arts and Humanities (DARIAH)",uuid:"1ae31b2f-5c67-49a7-9fba-c162b314bbcb"}],contacts:[],research_data:{lang:[],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["research_data_management","research_infrastructure"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/clarin_d/b5604b8b-e9fa-43d3-af0d-ef287cc2fee7.json",{schema_version:"0.2.2",record_metadata:{uuid:"b5604b8b-e9fa-43d3-af0d-ef287cc2fee7",record_created_on:"2022-05-24",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"CLARIN-D - European Research Infrastructure for Language Resources and Technology",abbr:"CLARIN-D",type:"organization",ref:[],date:[{from:"2012",to:""}],maintained:null,websites:["https://www.clarin-d.net/en/"],project_desc:"CLARIN-D is a research-oriented infrastructure for the Humanities and Social Sciences which supports researchers with accessing, preparing and analyzing of research data based on all language-related resources. It offers information on a wide range of topics, including teaching material, help on data management plans and other, discipline-specific support and makes available tools for Humanities, Cultural and Social Sciences scholars to analyze their research data in different ways. It is a German center of a pan-European research infrastructure CLARIN.",places:[{place_name:{text:"Tübingen",ref:["https://www.geonames.org/2820860/tuebingen.html"]},coordinates:{lat:"48.52266",lng:"9.05222"}},{place_name:{text:"Leipzig",ref:["https://www.geonames.org/2879139/leipzig.html"]},coordinates:{lat:"51.33962",lng:"12.37129"}},{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}},{place_name:{text:"Stuttgart",ref:["https://www.geonames.org/2825297/stuttgart.html"]},coordinates:{lat:"48.78232",lng:"9.17702"}},{place_name:{text:"Mannheim",ref:["https://www.geonames.org/2873891/mannheim.html"]},coordinates:{lat:"49.4891",lng:"8.46694"}},{place_name:{text:"Munich",ref:["https://www.geonames.org/2867714/munich.html"]},coordinates:{lat:"48.13743",lng:"11.57549"}},{place_name:{text:"Hamburg",ref:["https://www.geonames.org/2911298/hamburg.html"]},coordinates:{lat:"53.55073",lng:"9.99302"}},{place_name:{text:"Saarbrücken",ref:["https://www.geonames.org/6551163/saarbruecken-landeshauptstadt.html"]},coordinates:{lat:"49.23425",lng:"6.9934"}}],lang:["deu","eng"],related_institutions:[],related_entities:[{relation_type:"parent",title:"CLARIN - European Research Infrastructure for Language Resources and Technology",uuid:"7e14a810-7d07-4e60-96eb-01fccf9323e8"},{relation_type:"child",title:"CLARIAH-DE",uuid:"842dc7b3-020c-47ea-a37e-d5e5aae0bde0"}],contacts:[{pers_name:{text:"Hinrichs, Erhard",ref:["https://d-nb.info/gnd/143840657"]},roles:["supervision"],websites:["https://www.ids-mannheim.de/digspra/personal/hinrichs/","https://www.sfs.uni-tuebingen.de/~eh/"]}],research_data:{lang:[],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["research_data_management","research_infrastructure"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/colophons_in_sumerian_and_akkadian/95a2024b-9fea-4ced-8136-1130b0fb8f51.json",{schema_version:"0.2.2",record_metadata:{uuid:"95a2024b-9fea-4ced-8136-1130b0fb8f51",record_created_on:"2022-02-28",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-03-02"},project:{title:"Colophons in Sumerian and Akkadian Literary Manuscripts from 3rd and 2nd Millennium BCE Mesopotamia",abbr:"",type:"project",ref:[],date:[{from:"2019",to:"2025"}],maintained:!0,websites:["https://www.csmc.uni-hamburg.de/written-artefacts/research-fields/field-i/rfi03.html"],project_desc:"The focus of this project are colophons of Sumerian and Akkadian manuscripts dating back to 3rd and 2nd millennium BC, which until now have been neglected in manuscript studies. The objective is to create a database containing a catalogue of respective manuscripts and an edition of the extant colophons. It should serve as solid base for the study of scribal practices in an ancient Mesopotamia and the relevance of colophons in its cultural history.",places:[{place_name:{text:"Hamburg",ref:["https://www.geonames.org/2911298/hamburg.html"]},coordinates:{lat:"53.55073",lng:"9.99302"}}],lang:["eng"],related_institutions:[],related_entities:[{relation_type:"parent",title:"Understanding Written Artefacts",uuid:"9ca46873-3089-4a04-99fa-89c0c1b01213"},{relation_type:"sibling",title:"Grasping the World in Ottoman Istanbul: Visual Negotiation and Reading in Practices in Geographic Literature from the Sixteenth Century",uuid:"d1f743f2-7e94-4e00-a8bf-f46e56c7508e"},{relation_type:"sibling",title:"Audition Certificates Platform",uuid:"b333a11d-b9fc-4379-9e21-fbddfa9500b1"}],contacts:[{pers_name:{text:"Jáka-Sövegjártó, Szilvia",ref:["https://d-nb.info/gnd/1156345170"]},roles:["supervision"],websites:["https://www.csmc.uni-hamburg.de/about/people/soevegjarto.html"]}],research_data:{lang:["akk","sux"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["corpus_output","digital_preservation","inscription","semitic_studies"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/wissensgemeinschaften/5f3c2fbb-ca17-41c9-acdb-d3e147869400.json",{schema_version:"0.2.2",record_metadata:{uuid:"5f3c2fbb-ca17-41c9-acdb-d3e147869400",record_created_on:"2021-11-01",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-05-06"},project:{title:"Communities of Knowledge: Interreligious Networks of Scholars in Ibn Abi Usaybi‘a’s “History of the Physicians”",abbr:"",type:"project",ref:[],date:[{from:"2018",to:"2021"}],maintained:null,websites:["https://usaybia.net/"],project_desc:"This project’s objective is to digitally examine the social encounters of Christian, Muslim, and Jewish scholars in the Abbasid Near East (750–1258) engaged in exchange of medical knowledge as described by Ibn Abi Usaybi‘a (d. 1270), a Muslim physician from Syria in his history of medicine. The project will digitally record these interactions and use network analysis in order to identify the persons most frequently involved in scholar exchange and compare the results with representations from other sources.",places:[{place_name:{text:"Munich",ref:["https://www.geonames.org/2867714/munich.html"]},coordinates:{lat:"48.13743",lng:"11.57549"}}],lang:["deu","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Ludwig-Maximilians-Universität Munich",ref:["https://www.wikidata.org/wiki/Q156598","https://ror.org/05591te55"]},websites:["https://www.lmu.de/"]}],related_entities:[],contacts:[{pers_name:{text:"Gibson, Nathan",ref:["https://id.loc.gov/authorities/names/no2016135689.html"]},roles:["supervision"],websites:["https://biblia-arabica.com/team/nathan-gibson/"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","biographical_data","geodata","network_analysis","science_history","tei","visualization"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/pre_19th_century_kurmanji_kurdish/d0bda69f-d8c4-4521-ab18-af2c097ffcfc.json",{schema_version:"0.2.2",record_metadata:{uuid:"d0bda69f-d8c4-4521-ab18-af2c097ffcfc",record_created_on:"2022-06-16",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Compilation and critical edition of pre-19th century Kurmanji Kurdish",abbr:"",type:"project",ref:[],date:[{from:"2014-10",to:"2016-06"}],maintained:!1,websites:["https://www.uni-bamberg.de/aspra/forschung/projekte/compilation-and-critical-edition-of-pre-19th-century-kurmanji-kurdish/"],project_desc:"The main purpose of this project is to lay a foundation for serious academic research on the history of Kurdish, which until now is severely hampered due to the lack of written attestation prior to the 15th century. The project will thus compile a selection of 10 Kurdish texts from prior to 1800, transliterated in a standardized format and supplied with English translations and an authoritative critical apparatus. The texts will also be made fully accessible as a digital corpus, accompanied by a concordance, and the resulting two volumes will be published on the open-access portal of the University of Bamberg.",places:[{place_name:{text:"Bamberg",ref:["https://www.geonames.org/2952984/bamberg.html"]},coordinates:{lat:"49.89873",lng:"10.90067"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Otto-Friedrich-Universität Bamberg",ref:["https://www.wikidata.org/wiki/Q707272","https://ror.org/01c1w6d29"]},websites:["https://www.uni-bamberg.de/"]}],related_entities:[{relation_type:"sibling",title:"Multilingual Corpus of Annotated Spoken Texts",uuid:"b37c6bd1-90d3-4718-ab58-fb1d60873186"},{relation_type:"sibling",title:"Bamberg Lexical Database for Contemporary Iranian Languages",uuid:"614f4c99-0d96-48a9-baa5-48a402a8deec"},{relation_type:"sibling",title:"Documentation of Gorani, an endangered language of West Iran",uuid:"17fa004d-c9d2-4ce3-8116-b7bfff5d14ed"},{relation_type:"sibling",title:"Post-predicate Elements in Iranian: Inheritance, Contact, and Information Structure",uuid:"c1a2957b-0c24-46e6-9a67-381997525a87"}],contacts:[{pers_name:{text:"Öpengin, Ergin",ref:["https://d-nb.info/gnd/1121608140"]},roles:["supervision"],websites:["https://www.uni-bamberg.de/aspra/team/ehemalige-mitarbeitende/dr-ergin-oepengin/"]}],research_data:{lang:["kur"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["corpus_output","digital_preservation","iranian_studies","linguistics","manuscript","translation"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/cls_infra/894f2c88-1713-480d-99cd-32d30f3c0ac2.json",{schema_version:"0.2.2",record_metadata:{uuid:"894f2c88-1713-480d-99cd-32d30f3c0ac2",record_created_on:"2022-05-24",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Computational Literary Studies Infrastructure (CLS INFRA)",abbr:"CLS INFRA",type:"project",ref:[],date:[{from:"2021-03-01",to:"2025-02-28"}],maintained:!0,websites:["https://clsinfra.io/"],project_desc:"This project is a partnership of various European research institutions to build a shared resource of high-quality data, tools and knowledge to aid new approaches to studying literature in the digital age. It aims to create an infrastructure which will align the diverse resources of Europe’s multilingual and interconnected literary heritage with each other, with the tools needed to interrogate them, and with a widened base of users.",places:[{place_name:{text:"Krakow",ref:["https://www.geonames.org/3094802/krakow.html"]},coordinates:{lat:"50.06143",lng:"19.93658"}},{place_name:{text:"Potsdam",ref:["https://www.geonames.org/2852458/potsdam.html"]},coordinates:{lat:"52.39886",lng:"13.06566"}},{place_name:{text:"Vienna",ref:["https://www.geonames.org/2761369/vienna.html"]},coordinates:{lat:"48.20849",lng:"16.37208"}},{place_name:{text:"Madrid",ref:["https://www.geonames.org/3117735/madrid.html"]},coordinates:{lat:"40.4165",lng:"-3.70256"}},{place_name:{text:"Lyon",ref:["https://www.geonames.org/2996944/lyon.html"]},coordinates:{lat:"45.74846",lng:"4.84671"}},{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}},{place_name:{text:"Prague",ref:["https://www.geonames.org/3067696/prague.html"]},coordinates:{lat:"50.08804",lng:"14.42076"}},{place_name:{text:"Paris",ref:["https://www.geonames.org/2988506/paris.html"]},coordinates:{lat:"48.85339",lng:"2.34864"}},{place_name:{text:"Gent",ref:["https://www.geonames.org/2797656/gent.html"]},coordinates:{lat:"51.05",lng:"3.71667"}},{place_name:{text:"Belgrade",ref:["https://www.geonames.org/792680/belgrade.html"]},coordinates:{lat:"44.80401",lng:"20.46513"}},{place_name:{text:"Amsterdam",ref:["https://www.geonames.org/2759794/amsterdam.html"]},coordinates:{lat:"52.37403",lng:"4.88969"}},{place_name:{text:"Trier",ref:["https://www.geonames.org/2821164/trier.html"]},coordinates:{lat:"49.75565",lng:"6.63935"}},{place_name:{text:"Gaillimh",ref:["https://www.geonames.org/2964180/gaillimh.html"]},coordinates:{lat:"53.27245",lng:"-9.05095"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"The Institute of the Polish Language of the Polish Academy of Sciences",ref:["https://ror.org/01h9sha04","https://www.wikidata.org/wiki/Q941016"]},websites:["https://ijp.pan.pl/"]},{relation_type:"host",org_name:{text:"Universität Potsdam",ref:["https://www.wikidata.org/wiki/Q153012","https://ror.org/03bnmw459"]},websites:["https://www.uni-potsdam.de/en/university-of-potsdam/"]},{relation_type:"host",org_name:{text:"Österreichische Akademie der Wissenschaften",ref:["https://www.wikidata.org/wiki/Q299015","https://ror.org/03anc3s24"]},websites:["https://www.oeaw.ac.at/en/"]},{relation_type:"host",org_name:{text:"National University of Distance Education",ref:["https://www.wikidata.org/wiki/Q421739","https://ror.org/02msb5n36"]},websites:["https://www.uned.es/universidad/inicio.html"]},{relation_type:"host",org_name:{text:"École Normale Supérieure de Lyon",ref:["https://ror.org/04zmssz18","https://www.wikidata.org/wiki/Q10159"]},websites:["https://www.ens-lyon.fr/"]},{relation_type:"host",org_name:{text:"Humboldt-Universität zu Berlin",ref:["https://www.wikidata.org/wiki/Q152087","https://ror.org/01j818n92"]},websites:["https://www.hu-berlin.de/en"]},{relation_type:"host",org_name:{text:"Charles University",ref:["https://www.wikidata.org/wiki/Q31519","https://ror.org/024d6js02"]},websites:["https://cuni.cz/UKEN-1.html"]},{relation_type:"host",org_name:{text:"Ghent University",ref:["https://www.wikidata.org/wiki/Q1137665","https://ror.org/00cv9y106"]},websites:["https://www.ugent.be/en"]},{relation_type:"host",org_name:{text:"Belgrade Centre for Digital Humanities",ref:[]},websites:["https://web.archive.org/web/20211027232432/http://www.humanistika.org/","https://wbc-rti.info/object/link/6612","https://elex.is/rs-bcdh/"]},{relation_type:"host",org_name:{text:"Royal Netherlands Academy of Arts and Sciences",ref:["https://ror.org/030a5r161","https://www.wikidata.org/wiki/Q253439"]},websites:["https://www.knaw.nl/nl"]},{relation_type:"host",org_name:{text:"Universität Trier",ref:["https://ror.org/02778hg05","https://www.wikidata.org/wiki/Q572286"]},websites:["https://www.uni-trier.de/"]},{relation_type:"host",org_name:{text:"National University of Ireland, Galway",ref:["https://ror.org/03bea9k73","https://www.wikidata.org/wiki/Q644478"]},websites:["https://www.nuigalway.ie/"]}],related_entities:[{relation_type:"parent",title:"Digital Research Infrastructure for the Arts and Humanities (DARIAH)",uuid:"1ae31b2f-5c67-49a7-9fba-c162b314bbcb"}],contacts:[{pers_name:{text:"Eder, Maciej",ref:["https://www.wikidata.org/wiki/Q24649708#sitelinks-wikipedia"]},roles:["supervision"],websites:["https://maciejeder.org/","https://ijp.pan.pl/en/pracownicy/maciej-eder/"]}],research_data:{lang:[],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["research_data_management","research_infrastructure"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/coptic_ocr/9fbb8b57-bd55-4b84-ab51-2c8a0d7ec5bc.json",{schema_version:"0.2.2",record_metadata:{uuid:"9fbb8b57-bd55-4b84-ab51-2c8a0d7ec5bc",record_created_on:"2023-01-02",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Copitc OCR",abbr:"",type:"project",ref:[],date:[{from:"2018",to:""}],maintained:null,websites:["https://kellia.uni-goettingen.de/digitalcoptic3/slides/CopticOCR_2020-12-07_Lincke.pdf","https://vcs.etrap.eu/Coptic-OCR/datasets"],project_desc:"The aim of this project is to improve the quality and accessibility of OCR software for Coptic texts and their different fonds using Machine Learning technologies.",places:[{place_name:{text:"Göttingen",ref:["https://www.geonames.org/2918632/goettingen.html"]},coordinates:{lat:"51.53443",lng:"9.93228"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Georg-August-Universität Göttingen",ref:["https://www.wikidata.org/wiki/Q152838","https://ror.org/01y9bpm73"]},websites:["https://www.uni-goettingen.de/"]}],related_entities:[],contacts:[{pers_name:{text:"Lincke, Eliese-Sophia",ref:["https://d-nb.info/gnd/1011716763"]},roles:["supervision"],websites:["https://www.geschkult.fu-berlin.de/e/aegyptologie/personen/Professorinnen-und-Professoren/Lincke"]}],research_data:{lang:["cop"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[{label:"GitLab",accessibility:"public",ref:["https://vcs.etrap.eu/Coptic-OCR/datasets"],licensing:[],description:"A collection of training and test data, OCR models, and documentation"}]}},stack:{database:[],backend:[],frontend:[],tools:[],languages:[]},policies:[],keywords:["egyptology","machine_learning","ocr"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/coranica/5f57a071-60c1-4fd2-b191-8fa8d15d70bb.json",{schema_version:"0.2.2",record_metadata:{uuid:"5f57a071-60c1-4fd2-b191-8fa8d15d70bb",record_created_on:"2021-11-11",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-03-01"},project:{title:"Coranica",abbr:"",type:"project",ref:[],date:[{from:"2011",to:"2014"}],maintained:!1,websites:["https://webarchive.bbaw.de/default/20210819141519/https://www.coranica.de/front-page-en/"],project_desc:"The focus of Coranica Project is to understand the early development and canonization of the Qur’an by giving priority to the empirical approach (analyses of material evidence like manuscripts), rather than to the data of the Arabo-Islamic tradition. The project consists of two components: the first, “Manuscripta et testimonia coranica,” aims at producing catalogued inventories and studies of the earliest manuscripts of the Qur’an. The second part, Glossarium Coranicum, will provide focused analysis and documentation on the languages (spoken and written) and religions that were practiced in Arabia at the time of Muhammad, and on their impact on the Qur’anic lexicon.",places:[{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}},{place_name:{text:"Paris",ref:["https://www.geonames.org/2988506/paris.html"]},coordinates:{lat:"48.85339",lng:"2.34864"}}],lang:["deu","eng","fra"],related_institutions:[{relation_type:"host",org_name:{text:"Berlin-Brandenburgische Akademie der Wissenschaften",ref:["https://ror.org/05jgq9443","https://www.wikidata.org/wiki/Q219989"]},websites:["https://www.bbaw.de/"]},{relation_type:"host",org_name:{text:"Académie des Inscriptions et Belles-Lettres Paris",ref:["https://www.wikidata.org/wiki/Q337526"]},websites:["https://aibl.fr/"]}],related_entities:[{relation_type:"sibling",title:"Corpus Coranicum",uuid:"0fd7b9cd-fdae-441b-a6fd-a791d4583ce0"},{relation_type:"cooperation",title:"Paleocoran",uuid:"d5448b02-b57f-429d-9553-637cc2add035"}],contacts:[{pers_name:{text:"Neuwirth, Angelika",ref:["https://d-nb.info/gnd/108800083"]},roles:["supervision"],websites:["https://web.archive.org/https://www.geschkult.fu-berlin.de/en/e/semiarab/arabistik/Seminar/Ehemalige-Mitarbeiterinnen-und-Mitarbeiter/Professuren/neuwirth/index.html"]},{pers_name:{text:"Robin, Christian Julien",ref:["https://www.wikidata.org/wiki/Q27919930"]},roles:["supervision"],websites:["https://www.aibl.fr/membres/academiciens-depuis-1663/article/robin-christian-julien"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["collaboration_platform","islamic_studies","lexicon","religion_studies","religious_text"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/cab/4c68f56a-2c44-41c0-acb9-ece91afaf70c.json",{schema_version:"0.2.2",record_metadata:{uuid:"4c68f56a-2c44-41c0-acb9-ece91afaf70c",record_created_on:"2023-01-30",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Corpus Avesticum Berolinense",abbr:"CAB",type:"project",ref:[],date:[{from:"2018",to:"2030"}],maintained:!0,websites:["https://cab.geschkult.fu-berlin.de/","https://www.geschkult.fu-berlin.de/en/e/iranistik/forschung/CAB/index.html"],project_desc:"The CAB project represents the first attempt to edit the entire Avestan Zoroastrian textual corpus within its ritual context, and to produce and offer both printed and digital editions of the texts. It will also develop a set of tools for an assisted reading of these texts, including translations, grammatical and semantic analysis of words, etc., which will be accessible also for non-specialist readers. Amongst these tools, the project will offer a digital version of the standard dictionary of the Avestan language (Bartholomae’s Altiranisches Woerterbuch).",places:[{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Freie Universität Berlin",ref:["https://ror.org/046ak2485","https://www.wikidata.org/wiki/Q153006"]},websites:["https://www.fu-berlin.de/"]}],related_entities:[{relation_type:"sibling",title:"Avestan Digital Archive",uuid:"0a2ff403-834b-484f-b961-0822220bab58"},{relation_type:"cooperation",title:"Tierrecht und Strafen im 'Gesetz zur Abwehr der Dämonen' (Vidçvdâd, Kapitel 13–15)",uuid:"57622367-8250-4932-ab3e-0356615d578a"},{relation_type:"sibling",title:"Tierrecht und Strafen im 'Gesetz zur Abwehr der Dämonen' (Vidçvdâd, Kapitel 13–15)",uuid:"57622367-8250-4932-ab3e-0356615d578a"},{relation_type:"sibling",title:"Zoroastrian Middle Persian Corpus and Dictionary",uuid:"7d8eb5d0-6284-4939-a48b-7ff7a2407989"},{relation_type:"cooperation",title:"Avestan Digital Archive",uuid:"0a2ff403-834b-484f-b961-0822220bab58"},{relation_type:"cooperation",title:"Zoroastrian Middle Persian Corpus and Dictionary",uuid:"7d8eb5d0-6284-4939-a48b-7ff7a2407989"}],contacts:[{pers_name:{text:"Cantera Glera, Alberto",ref:["https://d-nb.info/gnd/1198415282"]},roles:["supervision"],websites:["https://www.geschkult.fu-berlin.de/e/iranistik/mitarbeiter/professoren/cantera/index.html"]}],research_data:{lang:["ave"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["corpus_output","digital_preservation","iranian_studies","manuscript","religious_text","vre"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/corpus_coranicum/0fd7b9cd-fdae-441b-a6fd-a791d4583ce0.json",{schema_version:"0.2.2",record_metadata:{uuid:"0fd7b9cd-fdae-441b-a6fd-a791d4583ce0",record_created_on:"2021-11-12",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-03-01"},project:{title:"Corpus Coranicum",abbr:"",type:"project",ref:[],date:[{from:"2007",to:""}],maintained:null,websites:["https://corpuscoranicum.de/en"],project_desc:"Corpus Coranicum develops a catalogue of early Qur’anic manuscripts and texts of the Islamic scholarly tradition, which are all published online (open access) by using TEI standards. It offers not only transcriptions of the manuscripts in original languages and their German translations, but also images of originals, variant readings and commentaries explaining their literary, cultural and historical context. The project focuses on the systematic documentation of sources related to the Qur’an with the objective to reconstruct the development of the first Muslim community as the interaction between the Prophet and the first addressees in Mecca and Medina.",places:[{place_name:{text:"Potsdam",ref:["https://www.geonames.org/2852458/potsdam.html"]},coordinates:{lat:"52.39886",lng:"13.06566"}}],lang:["deu","eng","fra"],related_institutions:[{relation_type:"host",org_name:{text:"Zentrum Grundlagenforschung Alte Welt",ref:[]},websites:["https://www.bbaw.de/forschung/zentren/zentrum-alte-welt"]},{relation_type:"host",org_name:{text:"Union der Deutschen Akademien der Wissenschaften",ref:["https://ror.org/04bvdz568","https://www.wikidata.org/wiki/Q1662834"]},websites:["https://www.akademienunion.de/"]}],related_entities:[{relation_type:"sibling",title:"Altägyptisches Wörterbuch",uuid:"a4d189e4-f03f-4db0-8742-b777e22da760"},{relation_type:"sibling",title:"Coranica",uuid:"5f57a071-60c1-4fd2-b191-8fa8d15d70bb"},{relation_type:"sibling",title:"Irankoran",uuid:"8e4ab5b4-7298-4d55-b490-eb2943527981"},{relation_type:"sibling",title:"Paleocoran",uuid:"d5448b02-b57f-429d-9553-637cc2add035"},{relation_type:"sibling",title:"Strukturen und Transformationen des Wortschatzes der ägyptischen Sprache: Text- und Wissenskultur im Alten Ägypten",uuid:"85d053c3-4ce6-4130-bc6a-63f96acfb067"}],contacts:[{pers_name:{text:"Neuwirth, Angelika",ref:["https://d-nb.info/gnd/108800083"]},roles:["supervision"],websites:["https://web.archive.org/https://www.geschkult.fu-berlin.de/en/e/semiarab/arabistik/Seminar/Ehemalige-Mitarbeiterinnen-und-Mitarbeiter/Professuren/neuwirth/index.html"]},{pers_name:{text:"Marx, Michael",ref:[]},roles:["supervision"],websites:["https://www.bbaw.de/die-akademie/mitarbeiterinnen-mitarbeiter/marx-michael"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["digital_edition","digital_preservation","islamic_studies","manuscript","religion_studies","religious_text","translation"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/cmcl/c4f41a6d-9fb9-4c31-85f0-b66acfe41289.json",{schema_version:"0.2.2",record_metadata:{uuid:"c4f41a6d-9fb9-4c31-85f0-b66acfe41289",record_created_on:"2023-11-14",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Corpus dei Manoscritti Copti Letterari",abbr:"CMCL",type:"project",ref:[],date:[{from:"1968",to:"1980"},{from:"1980",to:"1990"},{from:"2011",to:""}],maintained:null,websites:["https://www.aai.uni-hamburg.de/en/ethiostudies/research/cmcl.html","http://www.cmcl.it/"],project_desc:"The CMCL project digitally reconstructs manuscripts, critically edits Coptic texts, and maintains a comprehensive electronic database encompassing authors, works, manuscripts, electronic editions, computational grammar, and a bibliography in Egyptology, Coptology, and Christian Orient.",places:[{place_name:{text:"Hamburg",ref:["https://www.geonames.org/2911298/hamburg.html"]},coordinates:{lat:"53.55073",lng:"9.99302"}},{place_name:{text:"Rome",ref:["https://www.geonames.org/3169070/rome.html"]},coordinates:{lat:"41.89193",lng:"12.51133"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Universität Hamburg",ref:["https://ror.org/00g30e956","https://www.wikidata.org/wiki/Q156725"]},websites:["https://www.uni-hamburg.de/"]},{relation_type:"host",org_name:{text:"Unione Accademica Nazionale",ref:["https://www.wikidata.org/wiki/Q4005545"]},websites:["http://www.uan.it/"]}],related_entities:[{relation_type:"sibling",title:"From Translation to Creation: Changes in Ethiopic Style and Lexicon from Late Antiquity to the Middle Ages",uuid:"77ae1011-1b54-46b5-b676-02895e3300fc"},{relation_type:"sibling",title:"Audition Certificates Platform",uuid:"b333a11d-b9fc-4379-9e21-fbddfa9500b1"},{relation_type:"sibling",title:"Afrikanische Stimmen in islamischen Manuskripten aus Mali: Erschließung und Erforschung afrikanischer Sprachen in arabischer Schrift (Ajami)",uuid:"eaf36ccc-5ee4-4749-80ea-7f71f479c968"},{relation_type:"sibling",title:"Beta maṣāḥǝft Manuscripts of Ethiopia and Eritrea",uuid:"169677fd-14f9-46e7-b8f1-2202fb91397c"},{relation_type:"sibling",title:"Methoden der Bildverarbeitung zur Bestimmung von visuellen Manuskript- und Zeichenmerkmalen",uuid:"eb8e91fe-952e-48b7-af0d-c026ebe37826"},{relation_type:"sibling",title:"Datenrepositorium Manuskriptkulturen",uuid:"894dcf0c-7295-4fb8-b4ba-866a5ebe3310"},{relation_type:"sibling",title:"Demarginalizing Medieval Africa: Images, Texts, and Identity in Early Solomonic Ethiopia",uuid:"46121edb-516b-4dbf-ba49-e2c5f07cec2e"},{relation_type:"sibling",title:"Documentation of Gorani, an endangered language of West Iran",uuid:"17fa004d-c9d2-4ce3-8116-b7bfff5d14ed"},{relation_type:"sibling",title:"Ethio-SPaRe: Cultural Heritage of Christian Ethiopia. Salvation, Preservation, Research",uuid:"fbf007e0-7eee-4bb1-801d-568785d43d04"},{relation_type:"sibling",title:"The Evolution of Islamic Societies (c. 600–1600 CE): Algorithmic Analysis into Social History",uuid:"659c0aba-3bdd-43eb-937d-dad4ad63e3fc"},{relation_type:"sibling",title:"The intertwined world of the oral and written transmission of sacred traditions in the Middle East",uuid:"bb852d81-0c6d-4413-8c20-1bb38c4db4e7"},{relation_type:"sibling",title:"Islamic Painted Page",uuid:"31534c48-6b74-4cc5-8aff-ea8dbc60c445"},{relation_type:"sibling",title:"Methoden der Manuskriptanalyse zur Wiedergewinnung verlorener Schrift",uuid:"892b783d-1788-451f-9efd-1c58bfb4b064"},{relation_type:"sibling",title:"SfarData",uuid:"81d8ad85-5da8-457f-99a3-6ab11128ef03"},{relation_type:"sibling",title:"SIHAFA: The Ideosphere of the Late Ottoman Arabic Press: Mapping the Discursive Field of Authors and Texts through Computational Approaches",uuid:"20ee58f5-f699-4262-a473-7765e249c871"},{relation_type:"sibling",title:"Understanding Written Artefacts",uuid:"9ca46873-3089-4a04-99fa-89c0c1b01213"}],contacts:[{pers_name:{text:"Orlandi, Tito",ref:["https://d-nb.info/gnd/1022012592"]},roles:["supervision"],websites:["https://www.aai.uni-hamburg.de/afrika/personen/orlandi.html"]}],research_data:{lang:["cop"],sustainability_plan:null,publications:{open_access:0,licensing:[]},data:{datatypes:[{label:"",stage:"raw",licensing:[],open_access:0}],repositories:[{label:"",accessibility:"public",ref:[],licensing:[],description:""}]}},stack:{database:[],backend:[],frontend:[],tools:[{label:"",self_developed:!1,ref:[],description:""}],languages:[]},policies:[{description:"",ref:[]}],keywords:["annotation","corpus_output","digital_preservation","egyptology","linguistics","manuscript"],comment:"Apart from the first founding phase, the dates are approximate."}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/casg/5d194da4-2d99-4793-9757-59a197059b9b.json",{schema_version:"0.2.2",record_metadata:{uuid:"5d194da4-2d99-4793-9757-59a197059b9b",record_created_on:"2023-10-31",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Corpus der arabischen und syrischen Gnomologien",abbr:"CASG",type:"project",ref:[],date:[{from:"2009",to:"2011"},{from:"2023",to:""}],maintained:!1,websites:[],project_desc:"The corpus represents an assemblage of proverbs, aphorisms, and sagacious declarations sourced from the literary traditions of Arabic and Syriac. Additionally, it encompasses Greek texts, facilitating the examination of knowledge transmission across these three distinct cultural spheres.",places:[{place_name:{text:"Halle (Saale)",ref:["https://www.geonames.org/6551220/halle-saale.html"]},coordinates:{lat:"51.48298",lng:"11.97202"}}],lang:["deu","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Martin-Luther-Universität Halle-Wittenberg",ref:["https://ror.org/05gqaka33","https://www.wikidata.org/wiki/Q32120"]},websites:["https://www.uni-halle.de/"]}],related_entities:[],contacts:[{pers_name:{text:"Pietruschka, Ute ",ref:["https://d-nb.info/gnd/111231965"]},roles:["supervision"],websites:["https://www.uni-goettingen.de/de/654951.html"]}],research_data:{lang:["ara","grc","syr"],sustainability_plan:null,publications:{open_access:0,licensing:[]},data:{datatypes:[{label:"",stage:"raw",licensing:[],open_access:0}],repositories:[{label:"",accessibility:"public",ref:[],licensing:[],description:""}]}},stack:{database:["sql","xml"],backend:[],frontend:[],tools:[{label:"",self_developed:!1,ref:[],description:""}],languages:[]},policies:[{description:"",ref:[]}],keywords:["corpus_output","digital_preservation","literary_studies","semitic_studies","tei"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/corpus_masoreticum/1c38b421-95a2-4b2b-becf-119f36721a07.json",{schema_version:"0.2.2",record_metadata:{uuid:"1c38b421-95a2-4b2b-becf-119f36721a07",record_created_on:"2021-11-12",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-03-25"},project:{title:"Corpus Masoreticum",abbr:"",type:"project",ref:[],date:[{from:"2018",to:"2021"},{from:"2018",to:"2030"}],maintained:!0,websites:["https://digi.ub.uni-heidelberg.de/de/corpusmasoreticum/index.html"],project_desc:"The long-term project Corups Masoreticum is dedicated to the Masorah of the Hebrew Bible – a corpus of annotations regarding rules of orthography, syntax, vocalization, cantillation etc. of the Biblical Text. This project is the first ever scientific engagement with the Wester European (Ashkenazic) Masorah tradition between the 11th and 13th centuries. The philological work is integrated into a digital work environment BIMA, which was develop for the need of the project, and will result in an openly accessible digital edition of Ashkenazic Masorah.",places:[{place_name:{text:"Heidelberg",ref:["https://www.geonames.org/2907911/heidelberg.html"]},coordinates:{lat:"49.40768",lng:"8.69079"}}],lang:["deu","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Hochschule für Jüdische Studien Heidelberg",ref:["https://www.wikidata.org/wiki/Q1622186"]},websites:["https://www.hfjs.eu/"]}],related_entities:[],contacts:[{pers_name:{text:"Liss, Hanna",ref:["https://d-nb.info/gnd/115755853"]},roles:["supervision"],websites:["https://www.hfjs.eu/hochschule/dozenten/professoren/hliss.html#AF"]}],research_data:{lang:["heb"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["annotation","corpus_output","digital_preservation","jewish_studies","manuscript","religion_studies","religious_text"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/corpus_musicae_ottomanicae/5838a872-ff79-4e68-afff-edd784b0952e.json",{schema_version:"0.2.2",record_metadata:{uuid:"5838a872-ff79-4e68-afff-edd784b0952e",record_created_on:"2022-06-14",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Corpus Musicae Ottomanicae",abbr:"CMO",type:"project",ref:[],date:[{from:"2015",to:"2027"}],maintained:!0,websites:["https://www.uni-muenster.de/CMO-Edition/cmo/cmo.html","https://corpus-musicae-ottomanicae.de/content/edition/browse.xml","https://gepris.dfg.de/gepris/projekt/265450857"],project_desc:"This long-term project is dedicated to the transcription and critical editing of nineteenth-century sources of Ottoman music written in Hampartsum and staff notations, as well as the accompanying song texts. The end results of the project will be made available through an online platform which will provide access to both music and text editions, as well as the source catalogue, which is a comprehensive database of printed, manuscript, and online sources. The materials of the edited corpus represent the multi-ethnic and multi-religious environment of the region and period.",places:[{place_name:{text:"Münster",ref:["https://www.geonames.org/2867543/muenster.html"]},coordinates:{lat:"51.96236",lng:"7.62571"}},{place_name:{text:"Bonn",ref:["https://www.geonames.org/2946447/bonn.html"]},coordinates:{lat:"50.73438",lng:"7.09549"}},{place_name:{text:"Istanbul",ref:["https://www.geonames.org/745044/istanbul.html"]},coordinates:{lat:"41.01384",lng:"28.94966"}}],lang:["deu","eng","tur"],related_institutions:[{relation_type:"host",org_name:{text:"Westfälische Wilhelms-Universität Münster",ref:["https://ror.org/00pd74e08","https://www.wikidata.org/wiki/Q168426"]},websites:["https://www.uni-muenster.de/en/"]},{relation_type:"host",org_name:{text:"Max Weber Foundation International Humanities",ref:["https://www.wikidata.org/wiki/Q1913589"]},websites:["https://www.maxweberstiftung.de/en/"]},{relation_type:"host",org_name:{text:"Orient-Institut Istanbul",ref:["https://ror.org/05jm6kj71","https://www.wikidata.org/wiki/Q15837722"]},websites:["https://www.oiist.org/"]}],related_entities:[],contacts:[{pers_name:{text:"Jäger, Ralf Martin",ref:["https://d-nb.info/gnd/122654099"]},roles:["supervision"],websites:["https://www.uni-muenster.de/CMO-Edition/mitarbeiter/leitung/ralf_martin_jaeger.html"]}],research_data:{lang:["ara","tur"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","corpus_output","digital_preservation","manuscript","music_studies","vre"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/corpus_builder/eb1591d7-75b9-4d62-9f67-0679e627587b.json",{schema_version:"0.2.2",record_metadata:{uuid:"eb1591d7-75b9-4d62-9f67-0679e627587b",record_created_on:"2022-09-07",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"CorpusBuilder",abbr:"",type:"project",ref:[],date:[{from:"2017",to:"2020"}],maintained:null,websites:["https://openiti.org/projects/CorpusBuilder.html"],project_desc:"The objective of this project is to develop a robust and user-friendly OCR pipeline for Islamic texts.",places:[{place_name:{text:"College Park",ref:["https://www.geonames.org/4351977/college-park.html"]},coordinates:{lat:"38.98067",lng:"-76.93692"}},{place_name:{text:"Leipzig",ref:["https://www.geonames.org/2879139/leipzig.html"]},coordinates:{lat:"51.33962",lng:"12.37129"}},{place_name:{text:"London",ref:["https://www.geonames.org/2643743/london.html"]},coordinates:{lat:"51.50853",lng:"-0.12574"}},{place_name:{text:"Vienna",ref:["https://www.geonames.org/2761369/vienna.html"]},coordinates:{lat:"48.20849",lng:"16.37208"}},{place_name:{text:"Cambridge",ref:["https://www.geonames.org/4931972/cambridge.html"]},coordinates:{lat:"42.3751",lng:"-71.10561"}}],lang:[],related_institutions:[],related_entities:[{relation_type:"parent",title:"SHARIAsource",uuid:"1b2ca0bf-fb29-4b5c-852b-2eedd6a85773"},{relation_type:"parent",title:"Open Islamicate Texts Initiative",uuid:"bef2e507-b663-422e-9dd3-7e49ca299f05"},{relation_type:"sibling",title:"Open Islamicate Texts Initiative Arabic-script OCR Catalyst Project",uuid:"786edd87-476e-42a6-bcc0-521833ec73e5"},{relation_type:"sibling",title:"Automatic Collation for Diversifying Corpora",uuid:"5e7ab61a-0c33-44fc-8175-a1930e6d08bc"}],contacts:[{pers_name:{text:"Allen, Jonathan",ref:[]},roles:["investigation"],websites:["https://sllc.umd.edu/directory/jonathan-allen"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["islamic_studies","machine_learning","ocr"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/pal_read/2adf7ddc-9dd5-49b3-842c-9dc48dbbf36e.json",{schema_version:"0.2.2",record_metadata:{uuid:"2adf7ddc-9dd5-49b3-842c-9dc48dbbf36e",record_created_on:"2021-11-01",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-05-05"},project:{title:"Country of Words: Reading and Reception of Palestinian Literature from 1948 to the Present",abbr:"PalREAD",type:"project",ref:[],date:[{from:"2018-04-01",to:"2023-03-31"}],maintained:!0,websites:["https://www.geschkult.fu-berlin.de/en/e/palread/index.html"],project_desc:"PalREAD is a project dedicated to Palestinian literature from 1948 to the present which aims to find new ways to account for the literary production of a displaced population. It elaborates a new methodology of literary analysis that challenges and lies outside conventional conceptions of the nation-state and adopts an interdisciplinary and transmedial approach that embeds literary production in a wider cultural web of intersecting media and genres. The output of the project will be made accessible in the form of an online platform.",places:[{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}}],lang:[],related_institutions:[{relation_type:"host",org_name:{text:"Freie Universität Berlin",ref:["https://ror.org/046ak2485","https://www.wikidata.org/wiki/Q153006"]},websites:["https://www.fu-berlin.de/"]}],related_entities:[{relation_type:"sibling",title:"Verse und Sprueche: Impulse und Reichweiten wissenschaftlicher und popularisierender Diskurse im arabischen Sprachraum",uuid:"a2984fec-9396-488e-ad56-d3d21dc49052"},{relation_type:"sibling",title:"Kalila and Dimna – AnonymClassic",uuid:"d1e6d69b-5e9a-4b4a-85ad-09aac56ed2d9"},{relation_type:"sibling",title:"Keywords for the Study of the Arabic Literary and Manuscript Tradition",uuid:"7050ac6d-523c-4ba0-b381-48ec200ff6c4"},{relation_type:"sibling",title:"Arabic Literature Cosmopolitan",uuid:"46aff246-b6ef-4632-90c2-0993a9f9b1f5"},{relation_type:"sibling",title:"Memory Spaces: Mapping Oral History in Mosul",uuid:"aec92ee9-7c8a-49ce-8491-46667fc75505"}],contacts:[{pers_name:{text:"Abu-Remaileh, Refqa",ref:[]},roles:["supervision"],websites:["https://www.geschkult.fu-berlin.de/e/semiarab/arabistik/Seminar/Mitarbeiterinnen-und-Mitarbeiter/Professuren/Abu-Remaileh/index.html"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","literary_studies"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/averroes_ibn_baggas_de_generatione_et_corruptione/c3e206ec-9989-4500-ac20-4126e35871f2.json",{schema_version:"0.2.2",record_metadata:{uuid:"c3e206ec-9989-4500-ac20-4126e35871f2",record_created_on:"2022-02-21",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-02-22"},project:{title:"Critical Edition of Ibn Bāğğa’s Commentary on Aristotle’s De generatione et corruptione",abbr:"",type:"project",ref:[],date:[{from:"2016",to:"2021"}],maintained:null,websites:["https://averroes.uni-koeln.de/edition/current-editions/"],project_desc:"This project focuses on Ibn Bāğğa’s Commentary on Aristotle’s “De generatione et corruption” which, eclipsed by the subsequent commentaries of Averroes, received scant attention, even though the importance of Ibn Bāğğa’s influence on the thought of the latter is undeniable. The objective of the project is a critical edition of Ibn Bāğğa’s commentaries, who not only follows Aristotle but also presents different examples and develops ideas of his own.",places:[{place_name:{text:"Köln",ref:["https://www.geonames.org/2886242/koeln.html"]},coordinates:{lat:"50.93333",lng:"6.95"}}],lang:["eng"],related_institutions:[],related_entities:[{relation_type:"parent",title:"Averroes Edition",uuid:"a6e1fb68-e7a5-4125-8cfc-ec3aa16da73b"},{relation_type:"sibling",title:"Study of Averroes’s Long Commentary on the Physics in Hebrew and Latin Transmission",uuid:"3992a23d-8426-4b73-8b30-844e471e76e2"},{relation_type:"sibling",title:"Critical Edition of the Fragmentary Latin Translation of Averroes’s Commentary on De Partibus Animalium and De Generatione Animalium",uuid:"7c7438e6-4172-4059-ad60-54a6d0d61f7c"},{relation_type:"sibling",title:"Critical Edition of Ibn Bāǧǧa’s Commentary on Aristotle’s Physics",uuid:"f24e806a-0777-4690-b148-1b35ab3745e2"}],contacts:[{pers_name:{text:"La Martire, Corrado",ref:["https://d-nb.info/gnd/118137412X"]},roles:["investigation"],websites:["https://thomasinstitut.uni-koeln.de/mitarbeiterinnen/corrado-la-martire"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","digital_edition","digital_preservation","jewish_studies","manuscript","philosophy","science_history"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/averroes_ibn_baggas_physics/f24e806a-0777-4690-b148-1b35ab3745e2.json",{schema_version:"0.2.2",record_metadata:{uuid:"f24e806a-0777-4690-b148-1b35ab3745e2",record_created_on:"2022-02-21",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-02-22"},project:{title:"Critical Edition of Ibn Bāǧǧa’s Commentary on Aristotle’s Physics",abbr:"",type:"project",ref:[],date:[{from:"2016",to:""}],maintained:null,websites:["https://averroes.uni-koeln.de/edition/current-editions/"],project_desc:"Ibn Bāǧǧa’s commentaries provide an exposition of the content of Aristotle’s “Physics,” which is partly incomplete. They also had a decisive impact on Averroes’s commentaries on the same work. The project’s objective is a critical edition of Ibn Bāǧǧa’s commentaries, the study of their genesis and structure as well as their first ever presentation in form of a complete and reliable text.",places:[{place_name:{text:"Köln",ref:["https://www.geonames.org/2886242/koeln.html"]},coordinates:{lat:"50.93333",lng:"6.95"}}],lang:["eng"],related_institutions:[],related_entities:[{relation_type:"parent",title:"Averroes Edition",uuid:"a6e1fb68-e7a5-4125-8cfc-ec3aa16da73b"},{relation_type:"sibling",title:"Study of Averroes’s Long Commentary on the Physics in Hebrew and Latin Transmission",uuid:"3992a23d-8426-4b73-8b30-844e471e76e2"},{relation_type:"sibling",title:"Critical Edition of Ibn Bāğğa’s Commentary on Aristotle’s De generatione et corruptione",uuid:"c3e206ec-9989-4500-ac20-4126e35871f2"},{relation_type:"sibling",title:"Critical Edition of the Fragmentary Latin Translation of Averroes’s Commentary on De Partibus Animalium and De Generatione Animalium",uuid:"7c7438e6-4172-4059-ad60-54a6d0d61f7c"}],contacts:[{pers_name:{text:"Cherif Zahar, Farah",ref:["https://viaf.org/viaf/209127583"]},roles:["investigation"],websites:["https://philosophie.univ-paris8.fr/Farah-CHERIF-ZAHAR"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","digital_edition","digital_preservation","jewish_studies","manuscript","philosophy","science_history"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/averroes_de_partibus_animalium_and_de_generatione_animalium/7c7438e6-4172-4059-ad60-54a6d0d61f7c.json",{schema_version:"0.2.2",record_metadata:{uuid:"7c7438e6-4172-4059-ad60-54a6d0d61f7c",record_created_on:"2022-02-21",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-02-22"},project:{title:"Critical Edition of the Fragmentary Latin Translation of Averroes’s Commentary on De Partibus Animalium and De Generatione Animalium",abbr:"",type:"project",ref:[],date:[{from:"2016",to:""}],maintained:null,websites:["https://averroes.uni-koeln.de/edition/current-editions/"],project_desc:"The project aims at proving inside in Averroes’s lost commentary on Aristotle’s De partibus animalium and De generatione animalium by editing its Latin translation together with a study of work’s transmission into Hebrew.",places:[{place_name:{text:"Köln",ref:["https://www.geonames.org/2886242/koeln.html"]},coordinates:{lat:"50.93333",lng:"6.95"}}],lang:["eng"],related_institutions:[],related_entities:[{relation_type:"parent",title:"Averroes Edition",uuid:"a6e1fb68-e7a5-4125-8cfc-ec3aa16da73b"},{relation_type:"sibling",title:"Study of Averroes’s Long Commentary on the Physics in Hebrew and Latin Transmission",uuid:"3992a23d-8426-4b73-8b30-844e471e76e2"},{relation_type:"sibling",title:"Critical Edition of Ibn Bāğğa’s Commentary on Aristotle’s De generatione et corruptione",uuid:"c3e206ec-9989-4500-ac20-4126e35871f2"},{relation_type:"sibling",title:"Critical Edition of Ibn Bāǧǧa’s Commentary on Aristotle’s Physics",uuid:"f24e806a-0777-4690-b148-1b35ab3745e2"}],contacts:[{pers_name:{text:"Clesse, Grégory",ref:["https://viaf.org/viaf/48155707096822411871/"]},roles:["investigation"],websites:[]},{pers_name:{text:"Visi, Tamás",ref:["https://d-nb.info/gnd/1052000452"]},roles:["investigation"],websites:["https://thomasinstitut.uni-koeln.de/en/mitarbeiterinnen/tamas-visi"]}],research_data:{lang:["heb","lat","ara"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","digital_edition","digital_preservation","jewish_studies","manuscript","philosophy","science_history"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/cdli/b8097890-6eeb-43ba-890d-28e1490fde08.json",{schema_version:"0.2.2",record_metadata:{uuid:"b8097890-6eeb-43ba-890d-28e1490fde08",record_created_on:"2022-10-06",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Cuneiform Digital Library Initiative",abbr:"CDLI",type:"project",ref:["https://viaf.org/viaf/146927082/"],date:[{from:"2000",to:"2003"},{from:"2004",to:"2006"},{from:"2009",to:"2011"},{from:"2011",to:"2013"}],maintained:null,websites:["https://cdli.ucla.edu/"],project_desc:"The main goal of this project it to make available through the internet the form and content of cuneiform inscriptions dating from the beginning of writing, ca. 3350 BC, until the end of the pre-Christian era. It already catalogued 320,00 of approximately more than 500,000 artefacts kept in public and private collections.",places:[{place_name:{text:"Los Angeles",ref:["https://www.geonames.org/5368361/los-angeles.html"]},coordinates:{lat:"34.05223",lng:"-118.24368"}},{place_name:{text:"Oxford",ref:["https://www.geonames.org/2640729/oxford.html"]},coordinates:{lat:"51.75222",lng:"-1.25596"}},{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"University of California, Los Angeles",ref:["https://ror.org/025j2nd68","https://www.wikidata.org/wiki/Q174710"]},websites:["https://www.ucla.edu/"]},{relation_type:"host",org_name:{text:"University of Oxford",ref:["https://www.wikidata.org/wiki/Q34433","https://ror.org/052gg0110"]},websites:["https://www.ox.ac.uk/"]},{relation_type:"host",org_name:{text:"Max-Planck-Institut für Wissenschaftsgeschichte",ref:["https://ror.org/0492sjc74","https://www.wikidata.org/wiki/Q318118"]},websites:["https://www.mpiwg-berlin.mpg.de/de"]}],related_entities:[{relation_type:"child",title:"Mesopotamian Royal Inscriptions",uuid:"9efa71cc-aaf8-4481-a155-caa8d9fe23c1"},{relation_type:"child",title:"Nimrud NW Palace",uuid:"bef67936-aeda-45ea-86fa-d06d79620459"},{relation_type:"child",title:"Mesopotamian Seals",uuid:"9497c5c0-0cdc-4f43-96de-4843bd246bac"},{relation_type:"cooperation",title:"Machine Translation and Automated Analysis of Cuneiform Language",uuid:"47a62965-3241-4531-b01a-a25e25dac602"},{relation_type:"child",title:"Oracc: The Open Richly Annotated Cuneiform Corpus",uuid:"3e56a148-845f-4a39-a7d4-c05c75cabd31"},{relation_type:"cooperation",title:"Reallexikon der Assyriologie und Vorderasiatischen Archäologie",uuid:"b0da2d75-183c-4fa4-8b12-47366c02ed7c"},{relation_type:"cooperation",title:"Hethitologie Portal Mainz",uuid:"da4755a8-5d05-4bda-8d2e-afab81c7ce27"},{relation_type:"cooperation",title:"BABMED - Babylonische Medizin",uuid:"942e9692-8e2a-4060-84d8-c8db17eae689"}],contacts:[{pers_name:{text:"Renn, Jürgen",ref:["https://d-nb.info/gnd/121180719"]},roles:["supervision"],websites:["https://www.mpiwg-berlin.mpg.de/users/renn"]}],research_data:{lang:["akk","sux"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["corpus_output","digital_preservation","inscription","semitic_studies","vre"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/refaiya/38e6dfb4-730a-4a80-8090-4b7ea551b3c7.json",{schema_version:"0.2.2",record_metadata:{uuid:"38e6dfb4-730a-4a80-8090-4b7ea551b3c7",record_created_on:"2022-03-29",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-03-31"},project:{title:"Datenbankgestützte Erfassung, Erforschung und digitale Präsentation der Familienbibliothek Refaiya",abbr:"Refaiya",type:"project",ref:[],date:[{from:"2008",to:"2013"}],maintained:null,websites:["https://web.archive.org/web/20211005153037/https://www.refaiya.uni-leipzig.de/content/index.xml","https://www.ub.uni-leipzig.de/forschungsbibliothek/projekte/projekte-chronologisch-alle/damaszener-familienbibliothek-refaiya/"],project_desc:"This project is dedicated to digital presentation, cataloguing, and research on the private Arabic-Islamic library of the Damascene Rifā‘ī family. The Refaiya library contains 488 carefully preserved volumes, which can be seen as an archive of a traditional Islamic culture of scholarship, knowledge, and books handed down over several centuries—until its purchase by Prussian Consul and Arabist Johann Gottfried Wetzstein in the 19th century. A trilingual database (English, German, and Arabic) will make the manuscripts accessible internationally, including in the Islamic world.",places:[{place_name:{text:"Leipzig",ref:["https://www.geonames.org/2879139/leipzig.html"]},coordinates:{lat:"51.33962",lng:"12.37129"}}],lang:["ara","deu","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Universität Leipzig",ref:["https://ror.org/03s7gtk40","https://www.wikidata.org/wiki/Q154804"]},websites:["https://www.uni-leipzig.de/en/"]}],related_entities:[{relation_type:"sibling",title:"Project for the digitisation and online presentation of Arabic, Persian, and Turkish manuscripts at Leipzig University Library",uuid:"cad00fa7-09a1-4df1-a08b-4ab5b2a48703"},{relation_type:"sibling",title:"Pilotprojekt zur datenbankgestützten Erschließung und digitalen Bereitstellung der neu erworbenen arabischen, persischen und türkischen Handschriften der Universitätsbibliothek Leipzig",uuid:"0a75cf74-9cbe-4ce2-9799-ee16dcc1e88e"},{relation_type:"cooperation",title:"Qalamos",uuid:"3c5b84d0-791c-43bc-ab68-7372478bc568"}],contacts:[{pers_name:{text:"Verena Klemm",ref:["https://www.wikidata.org/wiki/Q5675690"]},roles:["supervision"],websites:["https://www.gkr.uni-leipzig.de/orientalisches-institut/ueber-uns/team/prof-dr-verena-klemm"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","catalog","digital_preservation","manuscript"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/datenrepositorium_manuskriptkulturen/894dcf0c-7295-4fb8-b4ba-866a5ebe3310.json",{schema_version:"0.2.2",record_metadata:{uuid:"894dcf0c-7295-4fb8-b4ba-866a5ebe3310",record_created_on:"2022-02-28",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-03-28"},project:{title:"Datenrepositorium Manuskriptkulturen",abbr:"",type:"project",ref:[],date:[{from:"2015",to:"2019"}],maintained:null,websites:["https://gepris.dfg.de/gepris/projekt/203077103","https://www.manuscript-cultures.uni-hamburg.de/Poster/INF_A4_P2.pdf","https://www.manuscript-cultures.uni-hamburg.de/Projekte_p2.html"],project_desc:"This project was dedicated to the systematic securing and long-term use of all research data relevant for SFB (Sonderforschungsbereich for Manuscript Cultures in Asia, Africa and Europe). As result a centralized data repository was created for all the sub-projects of SBF synchronizing them with the administration and freeing them of the tasks of securing data and of developing specific tools. Next to the collection of all the data of SFB the created infrastructure helps to optimize manuscript research by making all manuscripts available in one place, offering the possibility to annotate documents, to write glossaries and to make results available to the public as well as by supporting the graduate college on using e-learning.",places:[{place_name:{text:"Hamburg",ref:["https://www.geonames.org/2911298/hamburg.html"]},coordinates:{lat:"53.55073",lng:"9.99302"}}],lang:["deu","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Universität Hamburg",ref:["https://ror.org/00g30e956","https://www.wikidata.org/wiki/Q156725"]},websites:["https://www.uni-hamburg.de/"]}],related_entities:[{relation_type:"sibling",title:"Methoden der Manuskriptanalyse zur Wiedergewinnung verlorener Schrift",uuid:"892b783d-1788-451f-9efd-1c58bfb4b064"},{relation_type:"sibling",title:"Methoden der Bildverarbeitung zur Bestimmung von visuellen Manuskript- und Zeichenmerkmalen",uuid:"eb8e91fe-952e-48b7-af0d-c026ebe37826"},{relation_type:"sibling",title:"Audition Certificates Platform",uuid:"b333a11d-b9fc-4379-9e21-fbddfa9500b1"},{relation_type:"sibling",title:"Afrikanische Stimmen in islamischen Manuskripten aus Mali: Erschließung und Erforschung afrikanischer Sprachen in arabischer Schrift (Ajami)",uuid:"eaf36ccc-5ee4-4749-80ea-7f71f479c968"},{relation_type:"sibling",title:"Beta maṣāḥǝft Manuscripts of Ethiopia and Eritrea",uuid:"169677fd-14f9-46e7-b8f1-2202fb91397c"},{relation_type:"sibling",title:"Demarginalizing Medieval Africa: Images, Texts, and Identity in Early Solomonic Ethiopia",uuid:"46121edb-516b-4dbf-ba49-e2c5f07cec2e"},{relation_type:"sibling",title:"Documentation of Gorani, an endangered language of West Iran",uuid:"17fa004d-c9d2-4ce3-8116-b7bfff5d14ed"},{relation_type:"sibling",title:"The Evolution of Islamic Societies (c. 600–1600 CE): Algorithmic Analysis into Social History",uuid:"659c0aba-3bdd-43eb-937d-dad4ad63e3fc"},{relation_type:"sibling",title:"The intertwined world of the oral and written transmission of sacred traditions in the Middle East",uuid:"bb852d81-0c6d-4413-8c20-1bb38c4db4e7"},{relation_type:"sibling",title:"Islamic Painted Page",uuid:"31534c48-6b74-4cc5-8aff-ea8dbc60c445"},{relation_type:"sibling",title:"SfarData",uuid:"81d8ad85-5da8-457f-99a3-6ab11128ef03"},{relation_type:"sibling",title:"SIHAFA: The Ideosphere of the Late Ottoman Arabic Press: Mapping the Discursive Field of Authors and Texts through Computational Approaches",uuid:"20ee58f5-f699-4262-a473-7765e249c871"},{relation_type:"sibling",title:"Understanding Written Artefacts",uuid:"9ca46873-3089-4a04-99fa-89c0c1b01213"},{relation_type:"sibling",title:"Ethio-SPaRe: Cultural Heritage of Christian Ethiopia. Salvation, Preservation, Research",uuid:"fbf007e0-7eee-4bb1-801d-568785d43d04"},{relation_type:"sibling",title:"From Translation to Creation: Changes in Ethiopic Style and Lexicon from Late Antiquity to the Middle Ages",uuid:"77ae1011-1b54-46b5-b676-02895e3300fc"},{relation_type:"sibling",title:"Corpus dei Manoscritti Copti Letterari",uuid:"c4f41a6d-9fb9-4c31-85f0-b66acfe41289"}],contacts:[{pers_name:{text:"Friedrich, Michael",ref:["https://d-nb.info/gnd/1106567749"]},roles:["supervision"],websites:["https://www.aai.uni-hamburg.de/china/personen/friedrich.html"]}],research_data:{lang:["deu","eng"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["research_data_management","research_infrastructure"],comment:"The website of the project may not work, you can find further information on the website of the funding institution (DFG:GEPRIS)."}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/demarginalizing_medieval_africa/46121edb-516b-4dbf-ba49-e2c5f07cec2e.json",{schema_version:"0.2.2",record_metadata:{uuid:"46121edb-516b-4dbf-ba49-e2c5f07cec2e",record_created_on:"2021-11-12",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-03-28"},project:{title:"Demarginalizing Medieval Africa: Images, Texts, and Identity in Early Solomonic Ethiopia",abbr:"ITIESE",type:"project",ref:[],date:[{from:"2021",to:"2024"}],maintained:!0,websites:["https://www.csmc.uni-hamburg.de/research/current-projects/demarginalizing-medieval-africa.html"],project_desc:"The research object of the ITIESE project are manuscripts belonging to the literary tradition of the Ethiopian Orthodox Church, which until now unjustly remain at the periphery of academic interest. The project’s intention is to shed new light on the cultural heritage of Ethiopian Empire by examining manuscripts illuminations made by medieval Ethiopian artists with focus on the cultural, religious and socio-political significance of their activities. The project will furthermore set up a platform for exchange between scholars working on the history of manuscripts illumination.",places:[{place_name:{text:"Hamburg",ref:["https://www.geonames.org/2911298/hamburg.html"]},coordinates:{lat:"53.55073",lng:"9.99302"}},{place_name:{text:"London",ref:["https://www.geonames.org/2643743/london.html"]},coordinates:{lat:"51.50853",lng:"-0.12574"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Helmut-Schmidt-Universität",ref:["https://www.wikidata.org/wiki/Q530991","https://ror.org/04e8jbs38"]},websites:["https://www.hsu-hh.de/"]},{relation_type:"host",org_name:{text:"Technische Universität Hamburg",ref:["https://ror.org/04bs1pb34","https://www.wikidata.org/wiki/Q1060"]},websites:["https://www.tuhh.de/"]},{relation_type:"host",org_name:{text:"University College London",ref:["https://www.wikidata.org/wiki/Q193196","https://ror.org/02jx3x895"]},websites:["https://www.ucl.ac.uk"]},{relation_type:"host",org_name:{text:"Universität Hamburg",ref:["https://ror.org/00g30e956","https://www.wikidata.org/wiki/Q156725"]},websites:["https://www.uni-hamburg.de/"]}],related_entities:[{relation_type:"sibling",title:"Understanding Written Artefacts",uuid:"9ca46873-3089-4a04-99fa-89c0c1b01213"},{relation_type:"sibling",title:"Grasping the World in Ottoman Istanbul: Visual Negotiation and Reading in Practices in Geographic Literature from the Sixteenth Century",uuid:"d1f743f2-7e94-4e00-a8bf-f46e56c7508e"},{relation_type:"sibling",title:"Beta maṣāḥǝft Manuscripts of Ethiopia and Eritrea",uuid:"169677fd-14f9-46e7-b8f1-2202fb91397c"},{relation_type:"sibling",title:"Afrikanische Stimmen in islamischen Manuskripten aus Mali: Erschließung und Erforschung afrikanischer Sprachen in arabischer Schrift (Ajami)",uuid:"eaf36ccc-5ee4-4749-80ea-7f71f479c968"},{relation_type:"sibling",title:"The Evolution of Islamic Societies (c. 600–1600 CE): Algorithmic Analysis into Social History",uuid:"659c0aba-3bdd-43eb-937d-dad4ad63e3fc"},{relation_type:"sibling",title:"The intertwined world of the oral and written transmission of sacred traditions in the Middle East",uuid:"bb852d81-0c6d-4413-8c20-1bb38c4db4e7"},{relation_type:"sibling",title:"Audition Certificates Platform",uuid:"b333a11d-b9fc-4379-9e21-fbddfa9500b1"},{relation_type:"sibling",title:"Methoden der Bildverarbeitung zur Bestimmung von visuellen Manuskript- und Zeichenmerkmalen",uuid:"eb8e91fe-952e-48b7-af0d-c026ebe37826"},{relation_type:"sibling",title:"Datenrepositorium Manuskriptkulturen",uuid:"894dcf0c-7295-4fb8-b4ba-866a5ebe3310"},{relation_type:"sibling",title:"Documentation of Gorani, an endangered language of West Iran",uuid:"17fa004d-c9d2-4ce3-8116-b7bfff5d14ed"},{relation_type:"sibling",title:"Islamic Painted Page",uuid:"31534c48-6b74-4cc5-8aff-ea8dbc60c445"},{relation_type:"sibling",title:"Methoden der Manuskriptanalyse zur Wiedergewinnung verlorener Schrift",uuid:"892b783d-1788-451f-9efd-1c58bfb4b064"},{relation_type:"sibling",title:"SfarData",uuid:"81d8ad85-5da8-457f-99a3-6ab11128ef03"},{relation_type:"sibling",title:"SIHAFA: The Ideosphere of the Late Ottoman Arabic Press: Mapping the Discursive Field of Authors and Texts through Computational Approaches",uuid:"20ee58f5-f699-4262-a473-7765e249c871"},{relation_type:"sibling",title:"Ethio-SPaRe: Cultural Heritage of Christian Ethiopia. Salvation, Preservation, Research",uuid:"fbf007e0-7eee-4bb1-801d-568785d43d04"},{relation_type:"sibling",title:"From Translation to Creation: Changes in Ethiopic Style and Lexicon from Late Antiquity to the Middle Ages",uuid:"77ae1011-1b54-46b5-b676-02895e3300fc"},{relation_type:"sibling",title:"Corpus dei Manoscritti Copti Letterari",uuid:"c4f41a6d-9fb9-4c31-85f0-b66acfe41289"}],contacts:[{pers_name:{text:"Bausi, Alessandro",ref:["https://www.wikidata.org/wiki/Q62559559"]},roles:["supervision"],websites:["https://www.aai.uni-hamburg.de/afrika/personen/bausi.html"]}],research_data:{lang:[],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["african_studies","art_studies","collaboration_platform","image"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/der_bibeltext_der_handschriften/9ed78f16-e6fa-4156-a03d-f6581b7b7367.json",{schema_version:"0.2.2",record_metadata:{uuid:"9ed78f16-e6fa-4156-a03d-f6581b7b7367",record_created_on:"2021-11-12",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-03-28"},project:{title:"Der Bibeltext der Handschriften mit babylonisch-jemenitischer Punktation: Erfassung der Textvarianten",abbr:"",type:"project",ref:[],date:[{from:"2015",to:"2020"}],maintained:!1,websites:["https://www.hfjs.eu//abc/projekte.babylonisch-jemenitische-bibeltext-Tradition.html"],project_desc:"This project is dedicated to the complete collection and computerization of textual variants of the Biblical manuscripts of the Babylonian and Yemenite tradition. The variants will be compered with other ancient textual witnesses and classified in their historical context. The analyses of the hitherto unexplored material will open a new perspective for the reconstruction of the biblical text history.",places:[{place_name:{text:"Heidelberg",ref:["https://www.geonames.org/2907911/heidelberg.html"]},coordinates:{lat:"49.40768",lng:"8.69079"}}],lang:["deu","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Hochschule für Jüdische Studien Heidelberg",ref:["https://www.wikidata.org/wiki/Q1622186"]},websites:["https://www.hfjs.eu"]}],related_entities:[],contacts:[{pers_name:{text:"Liss, Hanna",ref:["https://d-nb.info/gnd/115755853"]},roles:["supervision"],websites:["https://www.hfjs.eu/hochschule/dozenten/professoren/hliss.html"]}],research_data:{lang:["heb"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["digital_preservation","jewish_studies","manuscript","religion_studies","religious_text","vre"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/ibn_nubata_gesamtedition/04ea57c8-69c7-4c83-8249-753850e9cc53.json",{schema_version:"0.2.2",record_metadata:{uuid:"04ea57c8-69c7-4c83-8249-753850e9cc53",record_created_on:"2021-11-01",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-04-26"},project:{title:"DFG-Langfristvorhaben Gesamtedition des Werkes von Ibn Nubata Al-Misri",abbr:"",type:"project",ref:[],date:[{from:"2019",to:""}],maintained:null,websites:["https://www.uni-muenster.de/ALEA/","https://scdh.zivgitlabpages.uni-muenster.de/hees-alea/alea-hugo-website/","https://gepris.dfg.de/gepris/projekt/423723105"],project_desc:"Against the concept of the decline of Islamic cultures after the 11th century it becomes apparent that this period witnessed vast literal and cultural developments. One of these is a major impact of the most important poet of Mamluk era, Ibn Nubātah, on the Arabic literature for the centuries after him. The aim of this project is a complete digital edition of his diwan and twelve other works, most of with are available only in bad prints. Due to many revisions and rewritings made by the author the editing of his works is a great challenge. In order to represent his poetry correctly the edition will contain may versions of the poems enabling their comparison.",places:[{place_name:{text:"Münster",ref:["https://www.geonames.org/6553087/muenster.html"]},coordinates:{lat:"51.95973",lng:"7.63137"}}],lang:["deu"],related_institutions:[{relation_type:"host",org_name:{text:"Westfälische Wilhelms-Universität Münster",ref:["https://ror.org/00pd74e08","https://www.wikidata.org/wiki/Q168426"]},websites:["https://www.uni-muenster.de/de/"]}],related_entities:[],contacts:[{pers_name:{text:"Bauer, Thomas",ref:["https://d-nb.info/gnd/130608467/"]},roles:["supervision"],websites:["https://www.uni-muenster.de/ArabistikIslam/Mitarbeiter/bauer.html"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","digital_edition","digital_preservation","lexicon","literary_studies","manuscript","vre"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/dhimmis_and_muslims/5c1c0e5b-cb6c-4d8e-9d1e-55e622a3ca40.json",{schema_version:"0.2.2",record_metadata:{uuid:"5c1c0e5b-cb6c-4d8e-9d1e-55e622a3ca40",record_created_on:"2022-05-09",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Dhimmis and Muslims - Analysing Multi-Religious Spaces in the Medieval Muslim World",abbr:"DAMAST",type:"project",ref:[],date:[{from:"2017",to:"2021"}],maintained:null,websites:["https://damast.geschichte.hu-berlin.de/","https://www.geschichte.uni-frankfurt.de/87681539/Dhimmis_and_Muslims","https://portal.volkswagenstiftung.de/search/projectDetails.do?ref=93252","https://www.geschichte.hu-berlin.de/de/bereiche-und-lehrstuehle/gmspaet/forschung-projekte/projekte_weltecke/dhimmis-and-muslims","https://github.com/UniStuttgart-VISUS/damast"],project_desc:"This project is dedicated to the study of religious diversity in medieval Muslim cities. The main purpose is to create a comprehensive database containing geographical information about religious communities compiled from various medieval sources and to make the data accessible via interactive visualization as well as a pilot web-based geo-temporal multi-view system.",places:[{place_name:{text:"Frankfurt",ref:["https://www.geonames.org/2925533/frankfurt-am-main.html"]},coordinates:{lat:"50.11552",lng:"8.68417"}},{place_name:{text:"Stuttgart",ref:["https://www.geonames.org/2825297/stuttgart.html"]},coordinates:{lat:"48.78232",lng:"9.17702"}},{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}}],lang:["deu","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Goethe-Universität Frankfurt am Main",ref:["https://ror.org/04cvxnb49","https://www.wikidata.org/wiki/Q50662"]},websites:["https://www.goethe-university-frankfurt.de/en?"]},{relation_type:"host",org_name:{text:"Universität Stuttgart",ref:["https://ror.org/04vnq7t77","https://www.wikidata.org/wiki/Q122453"]},websites:["https://www.uni-stuttgart.de/home/index.en.html"]},{relation_type:"host",org_name:{text:"Humboldt-Universität zu Berlin",ref:["https://www.wikidata.org/wiki/Q152087","https://ror.org/01j818n92"]},websites:["https://www.hu-berlin.de/de"]}],related_entities:[],contacts:[{pers_name:{text:"Koch, Steffen",ref:["https://d-nb.info/gnd/1041280173"]},roles:["supervision"],websites:["https://www.vis.uni-stuttgart.de/en/institute/team/Koch-00006/"]},{pers_name:{text:"Weltecke, Dorothea",ref:["https://d-nb.info/gnd/124993095"]},roles:["supervision"],websites:["https://www.geschichte.uni-frankfurt.de/66156354/Dorothea_Weltecke"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["geodata","history_studies","islamic_studies","religion_studies","visualization"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/qhod_die_grossbotschaften/ff1ec94f-2233-46e9-b550-45c792ae581e.json",{schema_version:"0.2.2",record_metadata:{uuid:"ff1ec94f-2233-46e9-b550-45c792ae581e",record_created_on:"2022-10-21",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Die Großbotschaften Damian Hugo von Virmonts und Ibrahim Paschas (1719/20)",abbr:"",type:"project",ref:[],date:[{from:"2020",to:""}],maintained:null,websites:["https://gams.uni-graz.at/context:vipa"],project_desc:"The aim of this project is the edition of all Habsburg and Ottoman sources documenting the diplomatic mission of Damian Hugo of Virmont and Ibrahim Pasha 1719/20, which are letters reports, travelogues, invoices, pictures, maps, artifacts, leaflets, pamphlets and newspapers. Sources written in Ottoman Turkish are translated into English and the editing work is based on a dynamic indexing process, according to which sources and metadata are put online even before the historical-critical editing is fully completed.",places:[{place_name:{text:"Vienna",ref:["https://www.geonames.org/2761369/vienna.html"]},coordinates:{lat:"48.20849",lng:"16.37208"}},{place_name:{text:"Salzburg",ref:["https://www.geonames.org/2766823/salzburg.html"]},coordinates:{lat:"47.41667",lng:"13.25"}},{place_name:{text:"Graz",ref:["https://www.geonames.org/2778067/graz.html"]},coordinates:{lat:"47.06667",lng:"15.45"}}],lang:["deu","eng"],related_institutions:[],related_entities:[{relation_type:"parent",title:"QhoD – Digitale Edition von Quellen zur habsburgisch-osmanischen Diplomatie 1500–1918",uuid:"6298a9cd-d41a-40d8-91d0-c532692e95c9"},{relation_type:"sibling",title:"Die Schreiben Selims II. an Maximilian II. und Mustafa Paşa (1566–1574)",uuid:"e9b15bcd-05ec-4de1-95f5-07d5bb44e482"}],contacts:[{pers_name:{text:"Strohmeyer, Arno",ref:["https://d-nb.info/gnd/115840060"]},roles:["supervision"],websites:["https://www.oeaw.ac.at/ihb/personen/strohmeyer-arno"]}],research_data:{lang:["deu","tur"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["annotation","digital_edition","digital_preservation","manuscript","translation","turkology","vre"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/qhod_die_schreiben_selims_ii/e9b15bcd-05ec-4de1-95f5-07d5bb44e482.json",{schema_version:"0.2.2",record_metadata:{uuid:"e9b15bcd-05ec-4de1-95f5-07d5bb44e482",record_created_on:"2022-10-21",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Die Schreiben Selims II. an Maximilian II. und Mustafa Paşa (1566–1574)",abbr:"",type:"project",ref:[],date:[{from:"2020",to:""}],maintained:null,websites:["https://gams.uni-graz.at/context:sema"],project_desc:"The purpose if this project was to edit documents from the MA thesis “Die Schreiben Selims II. aus dem Haus-, Hof- und Staatsarchiv zu Wien und die habsburgisch-osmanischen Beziehungen zwischen 1566 und 1574,” Vienna 2020, written by Halit Temiz and supervised by Univ.-Prof. Dr. Claudia Römer. They were converted into TEI-XML within the framework of the project Digital Edition of Sources on Habsburg-Ottoman Diplomacy 1500-1918 (QhoD), including all apparatus, and are available here under free license as an XML corpus.",places:[{place_name:{text:"Vienna",ref:["https://www.geonames.org/2761369/vienna.html"]},coordinates:{lat:"48.20849",lng:"16.37208"}},{place_name:{text:"Salzburg",ref:["https://www.geonames.org/2766823/salzburg.html"]},coordinates:{lat:"47.41667",lng:"13.25"}},{place_name:{text:"Graz",ref:["https://www.geonames.org/2778067/graz.html"]},coordinates:{lat:"47.06667",lng:"15.45"}}],lang:["deu","eng"],related_institutions:[],related_entities:[{relation_type:"parent",title:"QhoD – Digitale Edition von Quellen zur habsburgisch-osmanischen Diplomatie 1500–1918",uuid:"6298a9cd-d41a-40d8-91d0-c532692e95c9"},{relation_type:"sibling",title:"Die Großbotschaften Damian Hugo von Virmonts und Ibrahim Paschas (1719/20)",uuid:"ff1ec94f-2233-46e9-b550-45c792ae581e"}],contacts:[{pers_name:{text:"Temiz, Halit",ref:[]},roles:["investigation"],websites:["https://gams.uni-graz.at/context:sema/sdef:Context/get?mode=team"]},{pers_name:{text:"Kurz, Stephan",ref:["https://d-nb.info/gnd/13281899X"]},roles:["investigation"],websites:["https://www.oeaw.ac.at/ihb/personen/kurz-stephan"]}],research_data:{lang:["deu","tur"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["annotation","digital_edition","digital_preservation","manuscript","translation","turkology","vre"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/digital_corpus_for_greco_arabic_studies/df700e7b-1fad-4e54-b534-f63cf5805925.json",{schema_version:"0.2.2",record_metadata:{uuid:"df700e7b-1fad-4e54-b534-f63cf5805925",record_created_on:"2022-05-09",record_created_by:"Kudela. Xenia Monika",last_edited_on:""},project:{title:"Digital Corpus for Greco-Arabic Studies",abbr:"",type:"project",ref:[],date:[{from:"2010",to:"2013"}],maintained:null,websites:["https://www.graeco-arabic-studies.org/home.html"],project_desc:"The Digital Corpus for Graeco-Arabic Studies was created in the course of a collaborative project at Harvard and Tufts University and contains ca. 230 texts, three fifths of which are Greek originals and the rest are Arabic translations. In addition, the platform offers a list of authors and works included in the corpus that can be filtered by language, subject and text type and a search interface to search for Arabic or Greek words and phrases.",places:[{place_name:{text:"Cambridge",ref:["https://www.geonames.org/4931972/cambridge.html"]},coordinates:{lat:"42.3751",lng:"-71.10561"}},{place_name:{text:"Medford",ref:["https://www.geonames.org/4943629/medford.html"]},coordinates:{lat:"42.41843",lng:"-71.10616"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Harvard University",ref:["https://ror.org/03vek6s52","https://www.wikidata.org/wiki/Q13371"]},websites:["https://www.harvard.edu/"]},{relation_type:"host",org_name:{text:"Tufts University",ref:["https://www.wikidata.org/wiki/Q49120","https://ror.org/05wvpxv85"]},websites:["https://www.tufts.edu/"]}],related_entities:[],contacts:[{pers_name:{text:"Schiefsky, Mark",ref:["https://viaf.org/viaf/44561461/#Schiefsky,_Mark_John"]},roles:["supervision"],websites:["https://scholar.harvard.edu/schiefsky/home"]}],research_data:{lang:["ara","grc"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","corpus_output","digital_preservation","science_history","translation","translation_studies","vre"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/dariah/1ae31b2f-5c67-49a7-9fba-c162b314bbcb.json",{schema_version:"0.2.2",record_metadata:{uuid:"1ae31b2f-5c67-49a7-9fba-c162b314bbcb",record_created_on:"2022-05-19",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Digital Research Infrastructure for the Arts and Humanities (DARIAH)",abbr:"DARIAH",type:"organization",ref:["https://www.wikidata.org/wiki/Q49103279"],date:[{from:"2006",to:""}],maintained:!0,websites:["https://www.dariah.eu/"],project_desc:"DARIAH is a pan-European research infrastructure with 20 Members, 1 Observer and several Cooperating Partners in six non-member countries. It aims to enhance and support digitally-enabled research and teaching across the arts and humanities. DARIAH is a network of people, expertise, information, knowledge, content, methods, tools and technologies from its member countries. It develops, maintains and operates an infrastructure in support of ICT-based research practices and sustains researchers in using them to build, analyze and interpret digital resources.",places:[{place_name:{text:"Paris",ref:["https://www.geonames.org/2988506/paris.html"]},coordinates:{lat:"48.85339",lng:"2.34864"}},{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}},{place_name:{text:"Dublin",ref:["https://www.geonames.org/2964574/dublin.html"]},coordinates:{lat:"53.33306",lng:"-6.24889"}},{place_name:{text:"The Hague",ref:["https://www.geonames.org/2747373/the-hague.html"]},coordinates:{lat:"52.07667",lng:"4.29861"}},{place_name:{text:"Lisbon",ref:["https://www.geonames.org/2267057/lisbon.html"]},coordinates:{lat:"38.71667",lng:"-9.13333"}},{place_name:{text:"Rome",ref:["https://www.geonames.org/3169070/rome.html"]},coordinates:{lat:"41.89193",lng:"12.51133"}},{place_name:{text:"Cork",ref:["https://www.geonames.org/2965140/cork.html"]},coordinates:{lat:"51.89797",lng:"-8.47061"}},{place_name:{text:"Luxembourg",ref:["https://www.geonames.org/2960316/luxembourg.html"]},coordinates:{lat:"49.61167",lng:"6.13"}},{place_name:{text:"Gent",ref:["https://www.geonames.org/2797656/gent.html"]},coordinates:{lat:"51.05",lng:"3.71667"}},{place_name:{text:"Amsterdam",ref:["https://www.geonames.org/2759794/amsterdam.html"]},coordinates:{lat:"52.37403",lng:"4.88969"}},{place_name:{text:"Göttingen",ref:["https://www.geonames.org/2918632/goettingen.html"]},coordinates:{lat:"51.53443",lng:"9.93228"}},{place_name:{text:"Copenhagen",ref:["https://www.geonames.org/2618424/kobenhavn.html"]},coordinates:{lat:"55.6711",lng:"12.56529"}},{place_name:{text:"Warsaw",ref:["https://www.geonames.org/756135/warsaw.html"]},coordinates:{lat:"52.22977",lng:"21.01178"}},{place_name:{text:"Prague",ref:["https://www.geonames.org/3067696/prague.html"]},coordinates:{lat:"50.08804",lng:"14.42076"}},{place_name:{text:"Vienna",ref:["https://www.geonames.org/2761369/vienna.html"]},coordinates:{lat:"48.20849",lng:"16.37208"}},{place_name:{text:"Ljubljana",ref:["https://www.geonames.org/3196359/ljubljana.html"]},coordinates:{lat:"46.05108",lng:"14.50513"}},{place_name:{text:"Centar",ref:["https://www.geonames.org/6618983/centar.html"]},coordinates:{lat:"45.81313",lng:"15.97753"}},{place_name:{text:"Sarajevo",ref:["https://www.geonames.org/3191281/sarajevo.html"]},coordinates:{lat:"43.84864",lng:"18.35644"}},{place_name:{text:"Belgrade",ref:["https://www.geonames.org/792680/belgrade.html"]},coordinates:{lat:"44.80401",lng:"20.46513"}},{place_name:{text:"Sofia",ref:["https://www.geonames.org/727011/sofia.html"]},coordinates:{lat:"42.69751",lng:"23.32415"}},{place_name:{text:"Athens",ref:["https://www.geonames.org/264371/athens.html"]},coordinates:{lat:"37.98376",lng:"23.72784"}},{place_name:{text:"Limassol",ref:["https://www.geonames.org/146384/limassol.html"]},coordinates:{lat:"34.68406",lng:"33.03794"}}],lang:["eng"],related_institutions:[{relation_type:"member",org_name:{text:"French National Centre for Scientific Research",ref:["https://www.wikidata.org/wiki/Q280413","https://ror.org/0331qyx19"]},websites:["https://www.cnrs.fr/"]},{relation_type:"member",org_name:{text:"Universidade Nova de Lisboa",ref:["https://www.wikidata.org/wiki/Q1979891","https://ror.org/012habm93"]},websites:["https://www.unl.pt/en/"]},{relation_type:"member",org_name:{text:"National Research Council",ref:["https://www.wikidata.org/wiki/Q1340198","https://ror.org/03bjn0010"]},websites:["https://www.cnr.it/it"]},{relation_type:"member",org_name:{text:"University College Cork",ref:["https://ror.org/04q107642","https://www.wikidata.org/wiki/Q1574185"]},websites:["https://www.ucc.ie/en/"]},{relation_type:"member",org_name:{text:"University of Luxembourg",ref:["https://www.wikidata.org/wiki/Q59668","https://ror.org/036x5ad56"]},websites:["https://wwwen.uni.lu/"]},{relation_type:"member",org_name:{text:"Ghent University",ref:["https://www.wikidata.org/wiki/Q1137665","https://ror.org/00cv9y106"]},websites:["https://www.ugent.be/en"]},{relation_type:"member",org_name:{text:"International Institute of Social History",ref:["https://www.wikidata.org/wiki/Q1667757","https://ror.org/05dq4pp56"]},websites:["https://iisg.amsterdam/en"]},{relation_type:"member",org_name:{text:"Niedersächsische Staats- und Universitätsbibliothek Göttingen",ref:["https://www.wikidata.org/wiki/Q564783"]},websites:["https://www.sub.uni-goettingen.de/sub-aktuell/"]},{relation_type:"member",org_name:{text:"Danish Agency for Science and Higher Education",ref:["https://www.wikidata.org/wiki/Q50037707","https://ror.org/02sptwz63"]},websites:["https://ufm.dk/en/the-ministry/organisation/danish-agency-for-higher-education-and-science"]},{relation_type:"member",org_name:{text:"University of Warsaw",ref:["https://www.wikidata.org/wiki/Q144488","https://ror.org/039bjqg32"]},websites:["https://en.uw.edu.pl/"]},{relation_type:"member",org_name:{text:"Charles University",ref:["https://www.wikidata.org/wiki/Q31519","https://ror.org/024d6js02"]},websites:["https://cuni.cz/UKEN-1.html"]},{relation_type:"member",org_name:{text:"Österreichische Akademie der Wissenschaften",ref:["https://www.wikidata.org/wiki/Q299015","https://ror.org/03anc3s24"]},websites:["https://www.oeaw.ac.at/en/"]},{relation_type:"member",org_name:{text:"Institute of Contemporary History",ref:["https://www.wikidata.org/wiki/Q12791409","https://ror.org/008pp7a77"]},websites:["https://www.inz.si/en/"]},{relation_type:"member",org_name:{text:"Institute of Ethnology and Folklore Research",ref:["https://www.wikidata.org/wiki/Q30297130","https://ror.org/04mpn1847"]},websites:["https://www.ief.hr/"]},{relation_type:"member",org_name:{text:"University of Sarajevo",ref:["https://www.wikidata.org/wiki/Q572286","https://ror.org/02hhwgd43"]},websites:["https://www.unsa.ba/en"]},{relation_type:"member",org_name:{text:"Serbian Academy of Sciences and Arts",ref:["https://www.wikidata.org/wiki/Q1132636","https://ror.org/02f2wk572"]},websites:["https://www.sanu.ac.rs/"]},{relation_type:"member",org_name:{text:"Sofia University",ref:["https://ror.org/05x358x43","https://www.wikidata.org/wiki/Q841581"]},websites:["https://www.uni-sofia.bg/"]},{relation_type:"member",org_name:{text:"Academy of Athens",ref:["https://www.wikidata.org/wiki/Q414403","https://ror.org/00qsdn986"]},websites:["http://www.academyofathens.gr/en"]},{relation_type:"member",org_name:{text:"Cyprus University of Technology",ref:["https://ror.org/05qt8tf94","https://www.wikidata.org/wiki/Q1518320"]},websites:["https://www.cut.ac.cy/?languageId=1"]}],related_entities:[{relation_type:"child",title:"Digital Research Infrastructure for the Arts and Humanities (DARIAH-DE)",uuid:"ea8a1aa5-a2a1-4d4a-9254-f647158c66fa"},{relation_type:"child",title:"Computational Literary Studies Infrastructure (CLS INFRA)",uuid:"894f2c88-1713-480d-99cd-32d30f3c0ac2"},{relation_type:"cooperation",title:"European Lexicographic Infrastructure",uuid:"43f49ea7-ec28-4e08-9ff4-57de8c755acd"},{relation_type:"cooperation",title:"CLARIN - European Research Infrastructure for Language Resources and Technology",uuid:"7e14a810-7d07-4e60-96eb-01fccf9323e8"}],contacts:[{pers_name:{text:"Morselli, Francesca",ref:[]},roles:["supervision"],websites:["https://www.dariah.eu/network/we-are-dariah-team"]},{pers_name:{text:"Scharnhorst, Andrea",ref:["https://d-nb.info/gnd/1024345688"]},roles:["supervision"],websites:["https://www.dariah.eu/network/we-are-dariah-team"]}],research_data:{lang:[],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["research_data_management","research_infrastructure"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/dariah_de/ea8a1aa5-a2a1-4d4a-9254-f647158c66fa.json",{schema_version:"0.2.2",record_metadata:{uuid:"ea8a1aa5-a2a1-4d4a-9254-f647158c66fa",record_created_on:"2022-05-19",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Digital Research Infrastructure for the Arts and Humanities (DARIAH-DE)",abbr:"DARIAH-DE",type:"organization",ref:["https://www.wikidata.org/wiki/Q55520740"],date:[{from:"2011",to:""}],maintained:!0,websites:["https://www.wikidata.org/wiki/Q55520740"],project_desc:"DARIAH-DE is a member of the pan-European research infrastructure for the arts and humanities. It supports research in the humanities and cultural studies that work with digital methods and procedures with a research infrastructure consisting of four pillars: teaching, research, research data and technical components.",places:[{place_name:{text:"Göttingen",ref:["https://www.geonames.org/2918632/goettingen.html"]},coordinates:{lat:"51.53443",lng:"9.93228"}}],lang:["deu","eng"],related_institutions:[],related_entities:[{relation_type:"parent",title:"Digital Research Infrastructure for the Arts and Humanities (DARIAH)",uuid:"1ae31b2f-5c67-49a7-9fba-c162b314bbcb"},{relation_type:"child",title:"CLARIAH-DE",uuid:"842dc7b3-020c-47ea-a37e-d5e5aae0bde0"}],contacts:[{pers_name:{text:"Horstmann, Wolfram",ref:["https://d-nb.info/gnd/129236187"]},roles:["supervision"],websites:["https://www.fiz-karlsruhe.de/de/ueber-uns/curriculum-vitae-prof-dr-wolfram-horstmann"]}],research_data:{lang:[],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["research_data_management","research_infrastructure"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/digital_sirah_project/5209d91c-6fe3-4349-9a58-c5fde8c62ebf.json",{schema_version:"0.2.2",record_metadata:{uuid:"5209d91c-6fe3-4349-9a58-c5fde8c62ebf",record_created_on:"2022-10-24",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Digital Sirah Project",abbr:"DSP",type:"project",ref:[],date:[{from:"2019",to:"2021"}],maintained:null,websites:["https://kitab-project.org/about/funders#qatar-national-library-digital-sirah-project"],project_desc:"This project combines traditional methods of textual discovery and machine learning technologies with the goal of developing algorithms that are capable to locate reuse of Sirah (Biography) of the Prophet Muhammad, written by Muhammad b. Ishaq (d. 150/767) in a 1.5 billion word corpus of classical Arabic texts.",places:[{place_name:{text:"London",ref:["https://www.geonames.org/2643743/london.html"]},coordinates:{lat:"51.50853",lng:"-0.12574"}},{place_name:{text:"Doha",ref:["https://www.geonames.org/290030/doha.html"]},coordinates:{lat:"25.28545",lng:"51.53096"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Qatar National Library",ref:["https://ror.org/02jv93662","https://www.wikidata.org/wiki/Q1361436"]},websites:["https://www.qnl.qa/en"]}],related_entities:[{relation_type:"parent",title:"Knowledge, Information Technology, and the Arabic Book",uuid:"d4d49850-4711-4d43-97e9-c3563626d8df"}],contacts:[{pers_name:{text:"Jaques, Kevin",ref:["https://viaf.org/viaf/65884589"]},roles:["supervision"],websites:["https://religiousstudies.indiana.edu/about/faculty/jaques-kevin.html"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["classical_text","computational_text_analysis","islamic_studies","machine_learning","nlp","religion_studies","text_reuse"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/digital_edition_of_the_coptic_old_testament/1b19963e-ffc5-48f0-a1b3-81553d601497.json",{schema_version:"0.2.2",record_metadata:{uuid:"1b19963e-ffc5-48f0-a1b3-81553d601497",record_created_on:"2022-04-05",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Digitale Gesamtedition und Übersetzung des koptisch-sahidischen Alten Testaments",abbr:"",type:"project",ref:[],date:[{from:"2015",to:""}],maintained:null,websites:["https://coptot.manuscriptroom.com/","https://adw-goe.de/forschung/forschungsprojekte-akademienprogramm/koptisches-altes-testament/"],project_desc:"In this long-term project, the objective is to digitally reconstruct the Coptic Old Testament composed in an extinct Coptic dialect, Sahidic. The vast majority of manuscripts of this text are scattered across institutions in Europe and North America, which until now made a complete edition impossible. Equipped with new technologies of digital scholarship, the project will aim at overcoming this challenge by recreating the Coptic Old Testament in the form of an online database, which will contain photos and descriptions of catalogued manuscripts or their fragments, as well as English, German, and Arabic translations. It will also develop a system of digital tools for research on Coptic literature.",places:[{place_name:{text:"Göttingen",ref:["https://www.geonames.org/2918632/goettingen.html"]},coordinates:{lat:"51.53443",lng:"9.93228"}}],lang:["deu","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Akademie der Wissenschaften zu Göttingen",ref:["https://www.wikidata.org/wiki/Q414188","https://ror.org/04hsa7a08"]},websites:["https://adw-goe.de"]}],related_entities:[{relation_type:"sibling",title:"KOHD Coptica",uuid:"f67c8fcd-d190-4419-a85a-e6998da4f0ba"},{relation_type:"sibling",title:"KOHD Digital",uuid:"01ac0c0c-b09c-40cf-a75f-42e540b67c2f"},{relation_type:"sibling",title:"Qumran Digital: Text und Lexikon",uuid:"99718590-5e1e-4a64-bf84-6e2213ad1836"},{relation_type:"sibling",title:"Scripta Qumranica Electronica: Eine Verbunddatenbank und virtuelle Forschungsumgebung für die Texte vom Toten Meer",uuid:"9513964d-3509-462e-9d64-c47fd3922459"}],contacts:[{pers_name:{text:"Feder, Frank",ref:["https://d-nb.info/gnd/1162448369"]},roles:["supervision"],websites:["https://adw-goe.de/forschung/forschungsprojekte-akademienprogramm/koptisches-altes-testament/mitarbeiter/frank-feder/"]}],research_data:{lang:["cop"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["digital_edition","digital_preservation","egyptology","manuscript","religious_text","vre"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/dobes/a8ee7d05-56b3-4312-8e1a-a07a46fdc809.json",{schema_version:"0.2.2",record_metadata:{uuid:"a8ee7d05-56b3-4312-8e1a-a07a46fdc809",record_created_on:"2022-06-21",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Documentation of Endangered Languages / Dokumentation Bedrohter Sprachen",abbr:"DoBeS",type:"project",ref:["https://www.wikidata.org/wiki/Q28134351"],date:[{from:"2000",to:"2011"}],maintained:null,websites:["https://dobes.mpi.nl/"],project_desc:"The DoBeS program was initiated in 2000 by the Volkswagen Foundation in order to document languages that are potentially in danger of becoming extinct within a few years' time. It consisted of one archiving team and several documentation teams recording language data through fieldwork. The teams carried out 67 documentation projects collecting audio and video data in a close cooperation with the speech communities. The data are described with a set of standardized metadata categories and digitally archived according to open standards and made accessible. In addition, the archive ensures the long-term persistency of the digital material.",places:[{place_name:{text:"Hanover",ref:["https://www.geonames.org/6559065/hannover-landeshauptstadt.html"]},coordinates:{lat:"52.37362",lng:"9.73711"}},{place_name:{text:"Nijmegen",ref:["https://www.geonames.org/2750053/nijmegen.html"]},coordinates:{lat:"51.8425",lng:"5.85278"}}],lang:["eng","fra","ind","por","rus","spa"],related_institutions:[{relation_type:"host",org_name:{text:"Volkswagen Stiftung",ref:["https://www.wikidata.org/wiki/Q1766743"]},websites:["https://www.volkswagenstiftung.de/","https://www.volkswagenstiftung.de/en/funding/funding-offer/documentation-endangered-languages-completed"]}],related_entities:[{relation_type:"child",title:"Documentation of Gorani, an endangered language of West Iran",uuid:"17fa004d-c9d2-4ce3-8116-b7bfff5d14ed"}],contacts:[{pers_name:{text:"Austin, Peter",ref:["https://d-nb.info/gnd/133996271"]},roles:["investigation"],websites:["https://www.soas.ac.uk/staff/staff30592.php"]}],research_data:{lang:[],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["audio","language_documentation","linguistics","video","vre"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/documentation_of_gorani/17fa004d-c9d2-4ce3-8116-b7bfff5d14ed.json",{schema_version:"0.2.2",record_metadata:{uuid:"17fa004d-c9d2-4ce3-8116-b7bfff5d14ed",record_created_on:"2022-06-16",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Documentation of Gorani, an endangered language of West Iran",abbr:"",type:"project",ref:[],date:[{from:"2007",to:"2012"}],maintained:null,websites:["https://dobes.mpi.nl/projects/gorani/","https://www.uni-bamberg.de/en/aspra/research/projects/documentation-of-gorani-an-endangered-language-of-west-iran/"],project_desc:"This project aims at documenting the endangered language and cultural practices of the Gorani speech community in western Iran. It will provide a collection of film recordings, highlighting the importance of musical performances in all areas of Gorani folklore and culture, annotated collections of religious texts, traditional folklore, oral narratives (mainly from recent history), and everyday speech, descriptive grammatical sketch of the Gawraju’i variety of Gorani and an electronic lexicon with multimedia applications.",places:[{place_name:{text:"Bamberg",ref:["https://www.geonames.org/2952984/bamberg.html"]},coordinates:{lat:"49.89873",lng:"10.90067"}},{place_name:{text:"Hamburg",ref:["https://www.geonames.org/2911298/hamburg.html"]},coordinates:{lat:"53.55073",lng:"9.99302"}},{place_name:{text:"Göttingen",ref:["https://www.geonames.org/2918632/goettingen.html"]},coordinates:{lat:"51.53443",lng:"9.93228"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Otto-Friedrich-Universität Bamberg",ref:["https://www.wikidata.org/wiki/Q707272","https://ror.org/01c1w6d29"]},websites:["https://www.uni-bamberg.de/"]},{relation_type:"host",org_name:{text:"Universität Hamburg",ref:["https://ror.org/00g30e956","https://www.wikidata.org/wiki/Q156725"]},websites:["https://www.uni-hamburg.de/"]},{relation_type:"host",org_name:{text:"Georg-August-Universität Göttingen",ref:["https://www.wikidata.org/wiki/Q152838","https://ror.org/01y9bpm73"]},websites:["https://www.uni-goettingen.de/en/1.html"]}],related_entities:[{relation_type:"parent",title:"Dokumentation Bedrohter Sprachen (DoBeS)",uuid:"a8ee7d05-56b3-4312-8e1a-a07a46fdc809"},{relation_type:"sibling",title:"Multilingual Corpus of Annotated Spoken Texts",uuid:"b37c6bd1-90d3-4718-ab58-fb1d60873186"},{relation_type:"sibling",title:"Bamberg Lexical Database for Contemporary Iranian Languages",uuid:"614f4c99-0d96-48a9-baa5-48a402a8deec"},{relation_type:"sibling",title:"Compilation and critical edition of pre-19th century Kurmanji Kurdish",uuid:"d0bda69f-d8c4-4521-ab18-af2c097ffcfc"},{relation_type:"sibling",title:"Post-predicate Elements in Iranian: Inheritance, Contact, and Information Structure",uuid:"c1a2957b-0c24-46e6-9a67-381997525a87"},{relation_type:"sibling",title:"Audition Certificates Platform",uuid:"b333a11d-b9fc-4379-9e21-fbddfa9500b1"},{relation_type:"sibling",title:"Afrikanische Stimmen in islamischen Manuskripten aus Mali: Erschließung und Erforschung afrikanischer Sprachen in arabischer Schrift (Ajami)",uuid:"eaf36ccc-5ee4-4749-80ea-7f71f479c968"},{relation_type:"sibling",title:"Beta maṣāḥǝft Manuscripts of Ethiopia and Eritrea",uuid:"169677fd-14f9-46e7-b8f1-2202fb91397c"},{relation_type:"sibling",title:"Methoden der Bildverarbeitung zur Bestimmung von visuellen Manuskript- und Zeichenmerkmalen",uuid:"eb8e91fe-952e-48b7-af0d-c026ebe37826"},{relation_type:"sibling",title:"Datenrepositorium Manuskriptkulturen",uuid:"894dcf0c-7295-4fb8-b4ba-866a5ebe3310"},{relation_type:"sibling",title:"Demarginalizing Medieval Africa: Images, Texts, and Identity in Early Solomonic Ethiopia",uuid:"46121edb-516b-4dbf-ba49-e2c5f07cec2e"},{relation_type:"sibling",title:"The Evolution of Islamic Societies (c. 600–1600 CE): Algorithmic Analysis into Social History",uuid:"659c0aba-3bdd-43eb-937d-dad4ad63e3fc"},{relation_type:"sibling",title:"The intertwined world of the oral and written transmission of sacred traditions in the Middle East",uuid:"bb852d81-0c6d-4413-8c20-1bb38c4db4e7"},{relation_type:"sibling",title:"Islamic Painted Page",uuid:"31534c48-6b74-4cc5-8aff-ea8dbc60c445"},{relation_type:"sibling",title:"Methoden der Manuskriptanalyse zur Wiedergewinnung verlorener Schrift",uuid:"892b783d-1788-451f-9efd-1c58bfb4b064"},{relation_type:"sibling",title:"SfarData",uuid:"81d8ad85-5da8-457f-99a3-6ab11128ef03"},{relation_type:"sibling",title:"SIHAFA: The Ideosphere of the Late Ottoman Arabic Press: Mapping the Discursive Field of Authors and Texts through Computational Approaches",uuid:"20ee58f5-f699-4262-a473-7765e249c871"},{relation_type:"sibling",title:"Understanding Written Artefacts",uuid:"9ca46873-3089-4a04-99fa-89c0c1b01213"},{relation_type:"sibling",title:"Ethio-SPaRe: Cultural Heritage of Christian Ethiopia. Salvation, Preservation, Research",uuid:"fbf007e0-7eee-4bb1-801d-568785d43d04"},{relation_type:"sibling",title:"From Translation to Creation: Changes in Ethiopic Style and Lexicon from Late Antiquity to the Middle Ages",uuid:"77ae1011-1b54-46b5-b676-02895e3300fc"},{relation_type:"sibling",title:"Corpus dei Manoscritti Copti Letterari",uuid:"c4f41a6d-9fb9-4c31-85f0-b66acfe41289"}],contacts:[{pers_name:{text:"Haig, Geoffrey",ref:["https://d-nb.info/gnd/1016008090"]},roles:["supervision"],websites:["https://www.uni-bamberg.de/aspra/team/aktuelles-team/prof-dr-geoffrey-haig/"]},{pers_name:{text:"Paul, Ludwig",ref:["https://www.wikidata.org/wiki/Q24043463"]},roles:["supervision"],websites:["https://www.aai.uni-hamburg.de/voror/personen/paul.html"]},{pers_name:{text:"Kreyenbroek, Philip G",ref:["https://d-nb.info/gnd/130880825"]},roles:["supervision"],websites:["https://www.uni-goettingen.de/de/133087.html"]}],research_data:{lang:["hac","kur"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["annotation","audio","corpus_resource","dialectology","iranian_studies","language_documentation","lexicon","linguistics","video","visualization","vre"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/doha_historical_dictionary/6f32aa08-b11d-48f4-8a9d-8f76738dc62e.json",{schema_version:"0.2.2",record_metadata:{uuid:"6f32aa08-b11d-48f4-8a9d-8f76738dc62e",record_created_on:"2021-11-12",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-04-04"},project:{title:"Doha Historical Dictionary (معجم الدوحة التأريخي للغة العربية)",abbr:"",type:"project",ref:[],date:[{from:"2013-05-23",to:"2028"}],maintained:!0,websites:["https://dohadictionary.org/"],project_desc:"This project aims to create a historical dictionary of Arabic language. The entries will follow changes in usage and meaning of each word from its first documented record until approximately 200 years AH / 820 AD (first phase of the project).",places:[{place_name:{text:"Doha",ref:["https://www.geonames.org/290030/doha.html"]},coordinates:{lat:"25.28545",lng:"51.53096"}}],lang:["ara"],related_institutions:[{relation_type:"host",org_name:{text:"Arab Center for Research and Policy Studies",ref:["https://www.wikidata.org/wiki/Q12192828"]},websites:["https://www.dohainstitute.edu.qa/en/pages/default.aspx"]},{relation_type:"host",org_name:{text:"Doha Institute for Graduate Studies",ref:["https://ror.org/05gd1cs26","https://www.wikidata.org/wiki/Q23418976"]},websites:["https://www.dohainstitute.org/en/Pages/index.aspx"]}],related_entities:[],contacts:[{pers_name:{text:"Baalbaki, Ramzi",ref:["https://www.wikidata.org/wiki/Q19664932"]},roles:["supervision"],websites:["https://www.aub.edu.lb/fas/arabic/Pages/Ramzi-Baalbaki-par.aspx"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","lexicography","lexicon"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/e_scriptorium/31ad93ff-ca97-4cf0-b30c-60685624e2c8.json",{schema_version:"0.2.2",record_metadata:{uuid:"31ad93ff-ca97-4cf0-b30c-60685624e2c8",record_created_on:"2022-09-08",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"eScriptorium",abbr:"",type:"project",ref:[],date:[{from:"2018",to:""}],maintained:null,websites:["https://escriptorium.openiti.org/","https://gitlab.com/scripta/escriptorium/"],project_desc:"This project provides digital recognition of handwritten documents using machine learning techniques. It offers an integrated set of tools to transcribe, annotate, translate and publish historical documents written in Arabic script.",places:[{place_name:{text:"Paris",ref:["https://www.geonames.org/2988506/paris.html"]},coordinates:{lat:"48.85339",lng:"2.34864"}},{place_name:{text:"College Park",ref:["https://www.geonames.org/4351977/college-park.html"]},coordinates:{lat:"38.98067",lng:"-76.93692"}},{place_name:{text:"Leipzig",ref:["https://www.geonames.org/2879139/leipzig.html"]},coordinates:{lat:"51.33962",lng:"12.37129"}},{place_name:{text:"London",ref:["https://www.geonames.org/2643743/london.html"]},coordinates:{lat:"51.50853",lng:"-0.12574"}},{place_name:{text:"Vienna",ref:["https://www.geonames.org/2761369/vienna.html"]},coordinates:{lat:"48.20849",lng:"16.37208"}}],lang:["eng"],related_institutions:[],related_entities:[{relation_type:"parent",title:"Scripta-PSL",uuid:"0cf58379-39c3-4e95-b7b1-cc9f7f11c7ba"},{relation_type:"parent",title:"Open Islamicate Texts Initiative",uuid:"bef2e507-b663-422e-9dd3-7e49ca299f05"}],contacts:[{pers_name:{text:"Allen, Jonathan",ref:[]},roles:["investigation"],websites:["https://sllc.umd.edu/directory/jonathan-allen"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["annotation","computational_text_analysis","htr","islamic_studies","machine_learning","nlp","ocr","translation","vre"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/ethio_spare/fbf007e0-7eee-4bb1-801d-568785d43d04.json",{schema_version:"0.2.2",record_metadata:{uuid:"fbf007e0-7eee-4bb1-801d-568785d43d04",record_created_on:"2023-11-13",record_created_by:"Kudela, Xeina Monika",last_edited_on:""},project:{title:"Ethio-SPaRe: Cultural Heritage of Christian Ethiopia. Salvation, Preservation, Research",abbr:"Ethio-SPaRe",type:"project",ref:[],date:[{from:"2009",to:"2015"}],maintained:null,websites:["https://www.aai.uni-hamburg.de/en/ethiostudies/research/ethiospare.html"],project_desc:"The Ethio-SPaRe project focused on preserving and analyzing manuscripts in Ethiopian churches and monasteries, particularly in the Tigray region. With a mission to safeguard Ethiopia's rich Christian heritage, the project aimed to identify, protect, digitize, and catalog manuscripts, creating searchable databases and virtual libraries while conducting extensive research into Ethiopian literature and oral traditions. The urgency stemmed from the imminent extinction of a substantial part of this unique cultural heritage.",places:[{place_name:{text:"Hamburg",ref:["https://www.geonames.org/2911298/hamburg.html"]},coordinates:{lat:"53.55073",lng:"9.99302"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Universität Hamburg",ref:["https://ror.org/00g30e956","https://www.wikidata.org/wiki/Q156725"]},websites:["https://www.uni-hamburg.de/"]}],related_entities:[{relation_type:"sibling",title:"Audition Certificates Platform",uuid:"b333a11d-b9fc-4379-9e21-fbddfa9500b1"},{relation_type:"sibling",title:"Afrikanische Stimmen in islamischen Manuskripten aus Mali: Erschließung und Erforschung afrikanischer Sprachen in arabischer Schrift (Ajami)",uuid:"eaf36ccc-5ee4-4749-80ea-7f71f479c968"},{relation_type:"sibling",title:"Beta maṣāḥǝft Manuscripts of Ethiopia and Eritrea",uuid:"169677fd-14f9-46e7-b8f1-2202fb91397c"},{relation_type:"sibling",title:"Methoden der Bildverarbeitung zur Bestimmung von visuellen Manuskript- und Zeichenmerkmalen",uuid:"eb8e91fe-952e-48b7-af0d-c026ebe37826"},{relation_type:"sibling",title:"Datenrepositorium Manuskriptkulturen",uuid:"894dcf0c-7295-4fb8-b4ba-866a5ebe3310"},{relation_type:"sibling",title:"Demarginalizing Medieval Africa: Images, Texts, and Identity in Early Solomonic Ethiopia",uuid:"46121edb-516b-4dbf-ba49-e2c5f07cec2e"},{relation_type:"sibling",title:"Documentation of Gorani, an endangered language of West Iran",uuid:"17fa004d-c9d2-4ce3-8116-b7bfff5d14ed"},{relation_type:"sibling",title:"The Evolution of Islamic Societies (c. 600–1600 CE): Algorithmic Analysis into Social History",uuid:"659c0aba-3bdd-43eb-937d-dad4ad63e3fc"},{relation_type:"sibling",title:"The intertwined world of the oral and written transmission of sacred traditions in the Middle East",uuid:"bb852d81-0c6d-4413-8c20-1bb38c4db4e7"},{relation_type:"sibling",title:"Islamic Painted Page",uuid:"31534c48-6b74-4cc5-8aff-ea8dbc60c445"},{relation_type:"sibling",title:"Methoden der Manuskriptanalyse zur Wiedergewinnung verlorener Schrift",uuid:"892b783d-1788-451f-9efd-1c58bfb4b064"},{relation_type:"sibling",title:"SfarData",uuid:"81d8ad85-5da8-457f-99a3-6ab11128ef03"},{relation_type:"sibling",title:"SIHAFA: The Ideosphere of the Late Ottoman Arabic Press: Mapping the Discursive Field of Authors and Texts through Computational Approaches",uuid:"20ee58f5-f699-4262-a473-7765e249c871"},{relation_type:"sibling",title:"Understanding Written Artefacts",uuid:"9ca46873-3089-4a04-99fa-89c0c1b01213"},{relation_type:"sibling",title:"From Translation to Creation: Changes in Ethiopic Style and Lexicon from Late Antiquity to the Middle Ages",uuid:"77ae1011-1b54-46b5-b676-02895e3300fc"},{relation_type:"sibling",title:"Corpus dei Manoscritti Copti Letterari",uuid:"c4f41a6d-9fb9-4c31-85f0-b66acfe41289"}],contacts:[{pers_name:{text:"Nosnitsin, Denis",ref:["https://d-nb.info/gnd/104770255X"]},roles:["supervision"],websites:["https://www.aai.uni-hamburg.de/afrika/personen/nosnitsin.html"]}],research_data:{lang:["gez"],sustainability_plan:null,publications:{open_access:0,licensing:[]},data:{datatypes:[{label:"",stage:"raw",licensing:[],open_access:0}],repositories:[{label:"",accessibility:"public",ref:[],licensing:[],description:""}]}},stack:{database:[],backend:[],frontend:[],tools:[{label:"",self_developed:!1,ref:[],description:""}],languages:[]},policies:[{description:"",ref:[]}],keywords:["african_studies","corpus_output","digital_preservation","manuscript"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/elexis/43f49ea7-ec28-4e08-9ff4-57de8c755acd.json",{schema_version:"0.2.2",record_metadata:{uuid:"43f49ea7-ec28-4e08-9ff4-57de8c755acd",record_created_on:"2022-05-31",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"European Lexicographic Infrastructure",abbr:"ELEXIS",type:"organization",ref:["https://d-nb.info/gnd/124425259X"],date:[{from:"2018-02-01",to:"2022-07-31"}],maintained:!0,websites:["https://elex.is/"],project_desc:"ELEXIS is a cooperation project carried out by 17 European partner institutions that aims to develop an infrastructure which will foster cooperation and knowledge exchange between different research communities in lexicography in order to bridge the gap between lesser-resourced languages and those for which advanced experience in e-lexicography exists. ELEXIS will introduce common standards of data management for lexicographic resources and dictionary databases and develop tools and infrastructure which will enhance and harmonize cooperation between European institutions, publishers, universities and communities have been developing dictionaries and/or dictionary data.",places:[{place_name:{text:"Ljubljana",ref:["https://www.geonames.org/3196359/ljubljana.html"]},coordinates:{lat:"46.05108",lng:"14.50513"}},{place_name:{text:"Rome",ref:["https://www.geonames.org/3169070/rome.html"]},coordinates:{lat:"41.89193",lng:"12.51133"}},{place_name:{text:"Vienna",ref:["https://www.geonames.org/2761369/vienna.html"]},coordinates:{lat:"48.20849",lng:"16.37208"}},{place_name:{text:"Tallinn",ref:["https://www.geonames.org/588409/tallinn.html"]},coordinates:{lat:"59.43696",lng:"24.75353"}},{place_name:{text:"Gaillimh",ref:["https://www.geonames.org/2964180/gaillimh.html"]},coordinates:{lat:"53.27245",lng:"-9.05095"}},{place_name:{text:"Copenhagen",ref:["https://www.geonames.org/2618424/kobenhavn.html"]},coordinates:{lat:"55.6711",lng:"12.56529"}},{place_name:{text:"Leiden",ref:["https://www.geonames.org/2751773/leiden.html"]},coordinates:{lat:"52.15833",lng:"4.49306"}},{place_name:{text:"Sofia",ref:["https://www.geonames.org/727011/sofia.html"]},coordinates:{lat:"42.69751",lng:"23.32415"}},{place_name:{text:"Madrid",ref:["https://www.geonames.org/3117735/madrid.html"]},coordinates:{lat:"40.4165",lng:"-3.70256"}},{place_name:{text:"Brno",ref:["https://www.geonames.org/3078610/brno.html"]},coordinates:{lat:"49.19522",lng:"16.60796"}},{place_name:{text:"Tel Aviv",ref:["https://www.geonames.org/293397/tel-aviv.html"]},coordinates:{lat:"32.08088",lng:"34.78057"}},{place_name:{text:"Lisbon",ref:["https://www.geonames.org/2267057/lisbon.html"]},coordinates:{lat:"38.71667",lng:"-9.13333"}},{place_name:{text:"Belgrade",ref:["https://www.geonames.org/792680/belgrade.html"]},coordinates:{lat:"44.80401",lng:"20.46513"}},{place_name:{text:"Budapest",ref:["https://www.geonames.org/3054643/budapest.html"]},coordinates:{lat:"47.49835",lng:"19.04045"}},{place_name:{text:"Trier",ref:["https://www.geonames.org/2821164/trier.html"]},coordinates:{lat:"49.75565",lng:"6.63935"}},{place_name:{text:"Pisa",ref:["https://www.geonames.org/3170647/pisa.html"]},coordinates:{lat:"43.70853",lng:"10.4036"}}],lang:["eng"],related_institutions:[{relation_type:"member",org_name:{text:"Jožef Stefan Institute",ref:["https://ror.org/05060sz93","https://www.wikidata.org/wiki/Q5918873"]},websites:["https://www.ijs.si/ijsw"]},{relation_type:"member",org_name:{text:"Sapienza University of Rome",ref:["https://www.wikidata.org/wiki/Q209344","https://ror.org/011cabk38"]},websites:["https://www.uniroma1.it/"]},{relation_type:"member",org_name:{text:"Österreichische Akademie der Wissenschaften",ref:["https://www.wikidata.org/wiki/Q299015","https://ror.org/03anc3s24"]},websites:["https://www.oeaw.ac.at/en/"]},{relation_type:"member",org_name:{text:"Institute of the Estonian Language",ref:["https://www.wikidata.org/wiki/Q387634","https://ror.org/041dzw371"]},websites:["https://en.eki.ee/index.php"]},{relation_type:"member",org_name:{text:"National University of Ireland, Galway",ref:["https://ror.org/03bea9k73","https://www.wikidata.org/wiki/Q644478"]},websites:["https://www.nuigalway.ie/"]},{relation_type:"member",org_name:{text:"Society for Danish Language and Literature",ref:["https://www.wikidata.org/wiki/Q12308333"]},websites:["https://dsl.dk/"]},{relation_type:"member",org_name:{text:"University of Copenhagen",ref:["https://www.wikidata.org/wiki/Q186285","https://ror.org/035b05819"]},websites:["https://www.ku.dk/english/"]},{relation_type:"member",org_name:{text:"The Dutch Language Institute",ref:["https://www.wikidata.org/wiki/Q5200436"]},websites:["https://ivdnt.org/"]},{relation_type:"member",org_name:{text:"Institute for Bulgarian Language",ref:["https://ror.org/00f23qy62","https://www.wikidata.org/wiki/Q12281765"]},websites:["https://ibl.bas.bg/en/"]},{relation_type:"member",org_name:{text:"Royal Spanish Academy",ref:["https://ror.org/05t8ffp36","https://www.wikidata.org/wiki/Q11993457"]},websites:["https://www.rae.es/"]},{relation_type:"member",org_name:{text:"Universidade Nova de Lisboa",ref:["https://www.wikidata.org/wiki/Q1979891","https://ror.org/012habm93"]},websites:["https://www.unl.pt/en/"]},{relation_type:"member",org_name:{text:"Belgrade Centre for Digital Humanities",ref:[]},websites:["https://web.archive.org/web/20211027232432/http://www.humanistika.org/","https://wbc-rti.info/object/link/6612","https://elex.is/rs-bcdh/"]},{relation_type:"member",org_name:{text:"Hungarian Academy of Sciences",ref:["https://www.wikidata.org/wiki/Q265058","https://ror.org/02ks8qq67"]},websites:["https://mta.hu/english/"]},{relation_type:"member",org_name:{text:"Universität Trier",ref:["https://ror.org/02778hg05","https://www.wikidata.org/wiki/Q572286"]},websites:["https://www.uni-trier.de/"]},{relation_type:"member",org_name:{text:"Institute for Computational Linguistics “A. Zampolli”",ref:["https://www.wikidata.org/wiki/Q61932915","https://ror.org/028g3pe33"]},websites:["http://www.ilc.cnr.it/"]}],related_entities:[{relation_type:"cooperation",title:"Digital Research Infrastructure for the Arts and Humanities (DARIAH)",uuid:"1ae31b2f-5c67-49a7-9fba-c162b314bbcb"},{relation_type:"cooperation",title:"CLARIN - European Research Infrastructure for Language Resources and Technology",uuid:"7e14a810-7d07-4e60-96eb-01fccf9323e8"}],contacts:[{pers_name:{text:"Krek, Simon",ref:["https://viaf.org/viaf/308782046/#Krek,_Simon,__1967-"]},roles:["supervision"],websites:["https://www.simonkrek.si/en/"]}],research_data:{lang:[],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["lexicography","research_data_management","research_infrastructure"],comment:"Some of the partner institutions are private companies which were not included in the list, as the projects focuses only on research institutions"}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/fdnext/2fd5c31a-17a5-41ea-ae62-b6c2d3921cf5.json",{schema_version:"0.2.2",record_metadata:{uuid:"2fd5c31a-17a5-41ea-ae62-b6c2d3921cf5",record_created_on:"2021-11-12",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-04-05"},project:{title:"FDNext",abbr:"",type:"project",ref:[],date:[{from:"2020",to:"2023"}],maintained:!0,websites:["https://www.forschungsdaten.org/index.php/FDNext"],project_desc:"In this project six universities in Berlin and Brandenburg cooperate and exchange their expertise to optimize and improve Research Data Management (RDM) systems in their institutions. The focus of the project lies on the following aspects: 1) establishment of a contact point for legal questions concerning RDM (First-Level-Support), 2) fostering the qualifications of researchers by extending the offer on RDM training, 3) development of subject-specific RDM strategies and project-based RDM policies, 4) analyses and establishment of suitable services and central facilities as well as 5) enhancing the interoperability with external infrastructures and international cooperation.",places:[{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}},{place_name:{text:"Potsdam",ref:["https://www.geonames.org/2852458/potsdam.html"]},coordinates:{lat:"52.39886",lng:"13.06566"}},{place_name:{text:"Frankfurt (Oder)",ref:["https://www.geonames.org/2925535/frankfurt-oder.html"]},coordinates:{lat:"52.34714",lng:"14.55062"}},{place_name:{text:"Cottbus",ref:["https://www.geonames.org/2939811/cottbus.html"]},coordinates:{lat:"51.75769",lng:"14.32888"}}],lang:["deu","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Humboldt-Universität zu Berlin",ref:["https://www.wikidata.org/wiki/Q152087","https://ror.org/01j818n92"]},websites:["https://www.hu-berlin.de/de"]},{relation_type:"host",org_name:{text:"Freie Universität Berlin",ref:["https://ror.org/046ak2485","https://www.wikidata.org/wiki/Q153006"]},websites:["https://www.fu-berlin.de/"]},{relation_type:"host",org_name:{text:"Technische Universität Berlin",ref:["https://www.wikidata.org/wiki/Q51985","https://ror.org/03v4gjf40"]},websites:["https://www.tu.berlin/"]},{relation_type:"host",org_name:{text:"Universität Potsdam",ref:["https://www.wikidata.org/wiki/Q153012","https://ror.org/03bnmw459"]},websites:["https://www.uni-potsdam.de/en/university-of-potsdam/"]},{relation_type:"host",org_name:{text:"Europa-Universität Viadrina Frankfurt (Oder)",ref:["https://www.wikidata.org/wiki/Q149481","https://ror.org/02msan859"]},websites:["https://www.europa-uni.de/en/index.html"]},{relation_type:"host",org_name:{text:"Brandenburgische Technische Universität Cottbus-Senftenberg",ref:["https://www.wikidata.org/wiki/Q149433","https://ror.org/02wxx3e24"]},websites:["https://www.b-tu.de/"]}],related_entities:[],contacts:[{pers_name:{text:"Schmiederer, Simon",ref:["https://d-nb.info/gnd/1227354606"]},roles:["investigation"],websites:["https://www.researchgate.net/profile/Simon-Schmiederer"]}],research_data:{lang:[],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["research_data_management","research_infrastructure"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/traces/77ae1011-1b54-46b5-b676-02895e3300fc.json",{schema_version:"0.2.2",record_metadata:{uuid:"77ae1011-1b54-46b5-b676-02895e3300fc",record_created_on:"2023-11-14",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"From Translation to Creation: Changes in Ethiopic Style and Lexicon from Late Antiquity to the Middle Ages",abbr:"TraCES",type:"project",ref:[],date:[{from:"2014",to:"2019"}],maintained:null,websites:["https://www.traces.uni-hamburg.de/"],project_desc:"The TraCes meticulously analyzed lexical, morphological, and stylistic features in Ethiopic texts, creating a groundbreaking digital corpus. The project's highlight is a comprehensive digital lexicon of the Gəʿəz language, departing from traditional dictionaries, providing complete lemmas, full translations, and contextual insights, resulting in the first-ever thesaurus for Gəʿəz.",places:[{place_name:{text:"Hamburg",ref:["https://www.geonames.org/2911298/hamburg.html"]},coordinates:{lat:"53.55073",lng:"9.99302"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Universität Hamburg",ref:["https://ror.org/00g30e956","https://www.wikidata.org/wiki/Q156725"]},websites:["https://www.uni-hamburg.de/"]}],related_entities:[{relation_type:"sibling",title:"Audition Certificates Platform",uuid:"b333a11d-b9fc-4379-9e21-fbddfa9500b1"},{relation_type:"sibling",title:"Afrikanische Stimmen in islamischen Manuskripten aus Mali: Erschließung und Erforschung afrikanischer Sprachen in arabischer Schrift (Ajami)",uuid:"eaf36ccc-5ee4-4749-80ea-7f71f479c968"},{relation_type:"sibling",title:"Beta maṣāḥǝft Manuscripts of Ethiopia and Eritrea",uuid:"169677fd-14f9-46e7-b8f1-2202fb91397c"},{relation_type:"sibling",title:"Methoden der Bildverarbeitung zur Bestimmung von visuellen Manuskript- und Zeichenmerkmalen",uuid:"eb8e91fe-952e-48b7-af0d-c026ebe37826"},{relation_type:"sibling",title:"Datenrepositorium Manuskriptkulturen",uuid:"894dcf0c-7295-4fb8-b4ba-866a5ebe3310"},{relation_type:"sibling",title:"Demarginalizing Medieval Africa: Images, Texts, and Identity in Early Solomonic Ethiopia",uuid:"46121edb-516b-4dbf-ba49-e2c5f07cec2e"},{relation_type:"sibling",title:"Documentation of Gorani, an endangered language of West Iran",uuid:"17fa004d-c9d2-4ce3-8116-b7bfff5d14ed"},{relation_type:"sibling",title:"Ethio-SPaRe: Cultural Heritage of Christian Ethiopia. Salvation, Preservation, Research",uuid:"fbf007e0-7eee-4bb1-801d-568785d43d04"},{relation_type:"sibling",title:"The Evolution of Islamic Societies (c. 600–1600 CE): Algorithmic Analysis into Social History",uuid:"659c0aba-3bdd-43eb-937d-dad4ad63e3fc"},{relation_type:"sibling",title:"The intertwined world of the oral and written transmission of sacred traditions in the Middle East",uuid:"bb852d81-0c6d-4413-8c20-1bb38c4db4e7"},{relation_type:"sibling",title:"Islamic Painted Page",uuid:"31534c48-6b74-4cc5-8aff-ea8dbc60c445"},{relation_type:"sibling",title:"Methoden der Manuskriptanalyse zur Wiedergewinnung verlorener Schrift",uuid:"892b783d-1788-451f-9efd-1c58bfb4b064"},{relation_type:"sibling",title:"SfarData",uuid:"81d8ad85-5da8-457f-99a3-6ab11128ef03"},{relation_type:"sibling",title:"SIHAFA: The Ideosphere of the Late Ottoman Arabic Press: Mapping the Discursive Field of Authors and Texts through Computational Approaches",uuid:"20ee58f5-f699-4262-a473-7765e249c871"},{relation_type:"sibling",title:"Understanding Written Artefacts",uuid:"9ca46873-3089-4a04-99fa-89c0c1b01213"},{relation_type:"sibling",title:"Corpus dei Manoscritti Copti Letterari",uuid:"c4f41a6d-9fb9-4c31-85f0-b66acfe41289"}],contacts:[{pers_name:{text:"Bausi, Alessandro",ref:["https://www.wikidata.org/wiki/Q62559559"]},roles:["supervision"],websites:["https://www.aai.uni-hamburg.de/afrika/personen/bausi.html"]}],research_data:{lang:["ara","gez"],sustainability_plan:null,publications:{open_access:0,licensing:[]},data:{datatypes:[{label:"",stage:"raw",licensing:[],open_access:0}],repositories:[{label:"",accessibility:"public",ref:[],licensing:[],description:""}]}},stack:{database:[],backend:[],frontend:[],tools:[{label:"",self_developed:!1,ref:[],description:""}],languages:[]},policies:[{description:"",ref:[]}],keywords:["african_studies","annotation","corpus_output","digital_preservation","lexicography","lexicon","linguistics","tei","vre"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/genesis_rabbah_loanwords/94044a63-eae5-4e1d-ba04-64874109fc36.json",{schema_version:"0.2.2",record_metadata:{uuid:"94044a63-eae5-4e1d-ba04-64874109fc36",record_created_on:"2022-05-17",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Genesis Rabbah Loanwords",abbr:"",type:"project",ref:[],date:[{from:"2018-04-04",to:"2022-09-30"}],maintained:null,websites:["https://www.oeaw.ac.at/acdh/projects/completed-projects/genr-loanwords","https://uni-salzburg.elsevierpure.com/de/projects/w%C3%B6rterbuch-der-lehnw%C3%B6rter-im-midrasch-genesis-rabba"],project_desc:"This project investigates the predominantly Greek borrowed vocabulary in the Midrash Genesis Rabbah, the earliest rabbinic commentary on the Book of Genesis written in Rabbinic Hebrew and Aramaic. It aims to compile a dictionary in TEI format and the annotation of the loanwords in the corpus for the investigation of issues pertaining to sociolinguistics as well as corpus linguistics.",places:[{place_name:{text:"Vienna",ref:["https://www.geonames.org/2761369/vienna.html"]},coordinates:{lat:"48.20849",lng:"16.37208"}},{place_name:{text:"Salzburg",ref:["https://www.geonames.org/2766824/salzburg.html"]},coordinates:{lat:"47.79941",lng:"13.04399"}}],lang:["deu","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Österreichische Akademie der Wissenschaften",ref:["https://www.wikidata.org/wiki/Q299015","https://ror.org/03anc3s24"]},websites:["https://www.oeaw.ac.at/en/"]},{relation_type:"host",org_name:{text:"Universität Salzburg",ref:["https://ror.org/00tfmqe91","https://www.wikidata.org/wiki/Q27265"]},websites:["https://www.plus.ac.at/"]}],related_entities:[{relation_type:"sibling",title:"WIBARAB: What is Bedouin-Type Arabic?",uuid:"e9cb8ab1-2d2c-4cc3-a44d-a793220a8638"},{relation_type:"sibling",title:"Vienna Corpus of Arabic Varieties",uuid:"8f343a28-a873-449c-b359-efcfab7d1201"},{relation_type:"sibling",title:"Shawi",uuid:"68422d65-ccba-4dcb-8a0e-bd4f3f9e1dc9"},{relation_type:"sibling",title:"NoMansLand: Nomads’ Manuscripts Landscape",uuid:"e050deba-6e1d-4d82-851b-cf6c1f7187a5"},{relation_type:"sibling",title:"Linguistic dynamics in the Greater Tunis Area: a corpus-based approach (TUNICO)",uuid:"79462111-75a7-4fa0-8e11-9d424293a074"},{relation_type:"sibling",title:"TUNOCENT",uuid:"325a929a-6764-41e1-b452-6556209fa74f"}],contacts:[{pers_name:{text:"Plietzsch, Susanne",ref:["https://d-nb.info/gnd/121776832"]},roles:["supervision"],websites:["https://uni-salzburg.elsevierpure.com/de/persons/susanne-plietzsch-4"]}],research_data:{lang:["arc","grc","heb"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["annotation","corpus_resource","jewish_studies","lexicon","linguistics","tei"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/glossarion/ee6404e6-57f0-4e11-bb4a-1bbd13b08cb7.json",{schema_version:"0.2.2",record_metadata:{uuid:"ee6404e6-57f0-4e11-bb4a-1bbd13b08cb7",record_created_on:"2021-11-12",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-04-08"},project:{title:"Glossarion",abbr:"",type:"project",ref:[],date:[{from:"2020",to:"2024"}],maintained:!0,websites:[],project_desc:"This project’s objective is to develop an integrative database for the results of the research project “Verses and Sayings” (Verse und Sprüche).",places:[{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}}],lang:["deu","eng"],related_institutions:[],related_entities:[{relation_type:"parent",title:"Verse und Sprueche: Impulse und Reichweiten wissenschaftlicher und popularisierender Diskurse im arabischen Sprachraum",uuid:"a2984fec-9396-488e-ad56-d3d21dc49052"}],contacts:[{pers_name:{text:"Grote, Brigitte",ref:[]},roles:["investigation"],websites:["https://www.cedis.fu-berlin.de/cedis/mitarbeiter/beschaeftigte/bgrote.html"]}],research_data:{lang:[],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["research_infrastructure"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/glossarium_graeco_arabicum/7a287a76-c663-413d-9e3e-3191b1d6093e.json",{schema_version:"0.2.2",record_metadata:{uuid:"7a287a76-c663-413d-9e3e-3191b1d6093e",record_created_on:"2022-09-26",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Glossarium Graeco-Arabicum",abbr:"",type:"project",ref:[],date:[{from:"1994",to:"2006"},{from:"2010",to:"2015"}],maintained:null,websites:["https://glossga.bbaw.de/index.html","http://www.greekintoarabic.eu/indexdcfd.html"],project_desc:"Glossarium Græco-Arabicum serves as a database which makes available the files of a lexical project, intended to open up the lexicon of the medieval Arabic translations from the Greek in all the major disciplines of philosophy and the sciences. It provides information on vocabulary and syntax of Classical and Middle Arabic and Greek, on the development of scientific and technical vocabulary and on lexical consequences of the translation movement form Greek to Arabic. The sources of the projects are mainly complied form earlier glossaries, printed editions and manuscripts.",places:[{place_name:{text:"Bochum",ref:["https://www.geonames.org/2947416/bochum.html"]},coordinates:{lat:"51.48165",lng:"7.21648"}},{place_name:{text:"Pisa",ref:["https://www.geonames.org/3170647/pisa.html"]},coordinates:{lat:"43.70853",lng:"10.4036"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Ruhr-Universität Bochum",ref:["https://ror.org/04tsk2644","https://www.wikidata.org/wiki/Q309948"]},websites:["https://www.ruhr-uni-bochum.de/de"]},{relation_type:"host",org_name:{text:"University of Pisa",ref:["https://ror.org/05xrcj819","https://www.wikidata.org/wiki/Q645663"]},websites:["https://www.unipi.it/"]}],related_entities:[],contacts:[{pers_name:{text:"Endreß, Gerhard",ref:["https://d-nb.info/gnd/115696954"]},roles:["supervision"],websites:["https://www.ruhr-uni-bochum.de/islamwiss/personen/endress.html"]}],research_data:{lang:["ara","grc"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","corpus_resource","lexicography","lexicon","science_history","tei","translation","translation_studies","vre"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/grasping_the_world_in_ottoman_istanbul/d1f743f2-7e94-4e00-a8bf-f46e56c7508e.json",{schema_version:"0.2.2",record_metadata:{uuid:"d1f743f2-7e94-4e00-a8bf-f46e56c7508e",record_created_on:"2021-11-12",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-04-08"},project:{title:"Grasping the World in Ottoman Istanbul: Visual Negotiation and Reading in Practices in Geographic Literature from the Sixteenth Century",abbr:"",type:"project",ref:[],date:[{from:"2019",to:"2022"}],maintained:null,websites:["https://www.csmc.uni-hamburg.de/written-artefacts/completed-projects/rfi02.html"],project_desc:"This project examines how geographical literature in sixteenth-century Istanbul was impacted by the vast cultural and political expiation of the Ottoman Empire in that time. As the city became a new center for scholarship and art, the elites began circulating Arabic and Persian geographical manuscripts. The project asks how this exchange was received by artists and cartographers who in turn negotiated and transformed geographic knowledge through images. Besides that, the project will also build a comprehensive online database of geographic manuscripts and their illustrations.",places:[{place_name:{text:"Hamburg",ref:["https://www.geonames.org/2911298/hamburg.html"]},coordinates:{lat:"53.55073",lng:"9.99302"}}],lang:["eng"],related_institutions:[],related_entities:[{relation_type:"parent",title:"Understanding Written Artefacts",uuid:"9ca46873-3089-4a04-99fa-89c0c1b01213"},{relation_type:"sibling",title:"Beta maṣāḥǝft Manuscripts of Ethiopia and Eritrea",uuid:"169677fd-14f9-46e7-b8f1-2202fb91397c"},{relation_type:"sibling",title:"Demarginalizing Medieval Africa: Images, Texts, and Identity in Early Solomonic Ethiopia",uuid:"46121edb-516b-4dbf-ba49-e2c5f07cec2e"},{relation_type:"sibling",title:"Colophons in Sumerian and Akkadian Literary Manuscripts from 3rd and 2nd Millennium BCE Mesopotamia",uuid:"95a2024b-9fea-4ced-8136-1130b0fb8f51"},{relation_type:"sibling",title:"Audition Certificates Platform",uuid:"b333a11d-b9fc-4379-9e21-fbddfa9500b1"}],contacts:[{pers_name:{text:"Danilenko, Nadja",ref:["https://d-nb.info/gnd/1195099657"]},roles:["supervision"],websites:["https://www.bgsmcs.fu-berlin.de/about/alumni_doctoral_fellows/nadja_danilenko.html"]}],research_data:{lang:["ara","fas","lat","tur"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["corpus_output","digital_preservation","geography","islamic_studies","manuscript"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/handschriftenportal/d0a1971a-e11b-442f-ab1a-6d8d421422c5.json",{schema_version:"0.2.2",record_metadata:{uuid:"d0a1971a-e11b-442f-ab1a-6d8d421422c5",record_created_on:"2021-11-12",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2021-11-22"},project:{title:"Handschriftenportal",abbr:"",type:"project",ref:[],date:[{from:"2018",to:"2021"}],maintained:null,websites:["https://handschriftenportal.de/"],project_desc:"This collaborative project carried out by four German libraries (see parent projects) will develop an online platform to provide metadata, descriptive information and images of all manuscripts held at German institutions, as well as a user-friendly workspace for manuscript research. It will enable researchers to access and work on data presented in a standardized and coherent way from one central access point.",places:[{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}},{place_name:{text:"Leipzig",ref:["https://www.geonames.org/2879139/leipzig.html"]},coordinates:{lat:"51.33962",lng:"12.37129"}},{place_name:{text:"Munich",ref:["https://www.geonames.org/2867714/munich.html"]},coordinates:{lat:"48.13743",lng:"11.57549"}},{place_name:{text:"Wolfenbüttel",ref:["https://www.geonames.org/2806914/wolfenbuettel.html"]},coordinates:{lat:"52.16442",lng:"10.54095"}}],lang:["deu","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Staatsbibliothek zu Berlin",ref:["https://ror.org/02ysgg478","https://www.wikidata.org/wiki/Q170109"]},websites:["https://staatsbibliothek-berlin.de/"]},{relation_type:"host",org_name:{text:"Universitätsbibliothek Leipzig",ref:["https://www.wikidata.org/wiki/Q872896"]},websites:["https://www.ub.uni-leipzig.de/start/"]},{relation_type:"host",org_name:{text:"Bayerische Staatsbibliothek",ref:["https://ror.org/031h71w90","https://www.wikidata.org/wiki/Q256507"]},websites:["https://www.bsb-muenchen.de/"]},{relation_type:"host",org_name:{text:"Herzog August Bibliothek Wolfenbüttel",ref:["https://www.wikidata.org/wiki/Q663820","https://ror.org/02y5mkh60"]},websites:["https://www.hab.de/"]}],related_entities:[],contacts:[{pers_name:{text:"Bonte, Achim",ref:["https://d-nb.info/gnd/1023548224"]},roles:["supervision"],websites:["https://staatsbibliothek-berlin.de/die-staatsbibliothek/abteilungen/generaldirektion/info-gd"]}],research_data:{lang:[],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["research_data_management","research_infrastructure"],comment:"In case of funding extension the second phase of the project should start in 2022"}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/hannah_arendt_digital/5f9179dc-cfdf-442b-b4a4-73ebf2f6256d.json",{schema_version:"0.2.2",record_metadata:{uuid:"5f9179dc-cfdf-442b-b4a4-73ebf2f6256d",record_created_on:"2021-11-12",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-04-26"},project:{title:"Hannah Arendt Digital",abbr:"",type:"project",ref:[],date:[{from:"2020-2",to:""}],maintained:null,websites:["https://hannah-arendt-edition.net/home","https://www.arendteditionprojekt.de/en/projekt/General-Information/index.html"],project_desc:"The objective of this long-term project is a first ever complete hybrid (print and online) edition of all Arendt’s published and unpublished works in their original languages. The digital edition offers commentaries and additional information about each text in the corpus as well as diverse search options. The project enables a new approach to the development of stile and thought of the author and her practice of writing between and across languages and audiences.",places:[{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}}],lang:["deu","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Freie Universität Berlin",ref:["https://ror.org/046ak2485","https://www.wikidata.org/wiki/Q153006"]},websites:["https://www.fu-berlin.de/"]}],related_entities:[],contacts:[{pers_name:{text:"Hahn, Barbara",ref:["https://d-nb.info/gnd/115655271"]},roles:["supervision"],websites:["https://as.vanderbilt.edu/german-russian-studies/bio/barbara-hahn/"]},{pers_name:{text:"Grote, Brigitte",ref:[]},roles:["investigation"],websites:["https://www.cedis.fu-berlin.de/cedis/mitarbeiter/beschaeftigte/bgrote.html"]}],research_data:{lang:["deu","eng","fra","yid"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["digital_edition","digital_preservation","literary_studies","vre"],comment:"Long-term project"}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/hpm/da4755a8-5d05-4bda-8d2e-afab81c7ce27.json",{schema_version:"0.2.2",record_metadata:{uuid:"da4755a8-5d05-4bda-8d2e-afab81c7ce27",record_created_on:"2023-01-16",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Hethitologie Portal Mainz",abbr:"HPM",type:"project",ref:[],date:[{from:"2001",to:"2007"}],maintained:null,websites:["https://www.hethport.uni-wuerzburg.de/HPM/"],project_desc:"This concluded project is an infrastructure for digital publication of cuneiform documents. Its aim is to modernize and foster the development of hittitological research by building an openly accessible database for its founding and elaborating new standardized way of their documentation. Currently the HPM infrastructure hosts data of many external researchers and projects form the field of Hittitology.",places:[{place_name:{text:"Mainz",ref:["https://www.geonames.org/2874225/mainz.html"]},coordinates:{lat:"49.98419",lng:"8.2791"}},{place_name:{text:"Würzburg",ref:["https://www.geonames.org/2805615/wuerzburg.html"]},coordinates:{lat:"49.79391",lng:"9.95121"}}],lang:["deu","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Julius Maximilian University of Würzburg",ref:["https://ror.org/00fbnyb24","https://www.wikidata.org/wiki/Q161976"]},websites:["https://www.uni-wuerzburg.de/startseite/"]},{relation_type:"host",org_name:{text:"Akademie der Wissenschaften und der Literatur Mainz",ref:["https://www.wikidata.org/wiki/Q414163","https://ror.org/01kdxra28"]},websites:["https://www.adwmainz.de/startseite.html"]}],related_entities:[{relation_type:"cooperation",title:"Cuneiform Digital Library Initiative",uuid:"b8097890-6eeb-43ba-890d-28e1490fde08"}],contacts:[{pers_name:{text:"Schwemer, Daniel",ref:["https://d-nb.info/gnd/120374277"]},roles:["supervision"],websites:["https://www.phil.uni-wuerzburg.de/altorientalistik/team/schwemer/"]}],research_data:{lang:["hit"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["corpus_output","digital_preservation","digital_publishing","inscription"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/hmml/52ce273e-7935-42fd-82e8-806f6aaa3049.json",{schema_version:"0.2.2",record_metadata:{uuid:"52ce273e-7935-42fd-82e8-806f6aaa3049",record_created_on:"2021-11-12",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-04-26"},project:{title:"Hill Museum & Manuscript Library",abbr:"HMML",type:"organization",ref:["https://www.wikidata.org/wiki/Property:P9943"],date:[{from:"1965",to:""}],maintained:!0,websites:["https://hmml.org"],project_desc:"HMML is an enterprise of saving and cataloguing manuscripts from all across the globe. It’s history reaches back to the 1960s when first repository of manuscripts’ photographs in form of microfilms was initiated at the Saint John’s University. Nowadays HMML archives approximately 300,000 manuscripts containing more than 70 languages. In 2015 the library launched its online platform of digitalized manuscripts to make them available for public and further research.",places:[{place_name:{text:"Collegeville",ref:["https://www.geonames.org/5021784/collegeville.html"]},coordinates:{lat:"45.59441",lng:"-94.36305"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"College of Saint Benedict & Saint John’s University",ref:["https://ror.org/00watgv28","https://www.wikidata.org/wiki/Q5146820"]},websites:["https://www.csbsju.edu/"]}],related_entities:[],contacts:[{pers_name:{text:"Stewart, Columba",ref:["https://www.wikidata.org/wiki/Q5149540"]},roles:["supervision"],websites:["https://hmml.org/about/staff/stewart/","https://www.csbsju.edu/sot/sem/faculty/staff-listing/sot/sem-faculty/stewart-columba"]}],research_data:{lang:["amh","ara","bam","deu","ful","gez","hye","lat","mal","mlt","nep","por","san","syr"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["catalog","digital_preservation","manuscript"],comment:"The history of the organization reaches back to 1964. In 2005 it was renamed to its current name, “Hill Museum & Manuscript Library”; see the history of the organization: https://hmml.org/about/history/"}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/hist-me/85590bb4-4b9a-49c9-8e41-d548a7d234e1.json",{schema_version:"0.2.2",record_metadata:{uuid:"85590bb4-4b9a-49c9-8e41-d548a7d234e1",record_created_on:"2021-11-12",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-04-26"},project:{title:"Historical Middle East Data Alliance",abbr:"Hist-ME",type:"project",ref:[],date:[{from:"2020",to:""}],maintained:null,websites:["https://github.com/Hist-ME"],project_desc:"An informal alliance for exchanging research data related to the historical Middle East.",places:[{place_name:{text:"",ref:[]},coordinates:{lat:"52.52437",lng:"13.41053"}}],lang:[],related_institutions:[],related_entities:[],contacts:[{pers_name:{text:"Grossner, Karl",ref:["https://viaf.org/viaf/308232467/#Grossner,_Karl,_1950-"]},roles:["supervision"],websites:["https://www.worldhistory.pitt.edu/people/ant-23"]},{pers_name:{text:"Gibson, Nathan",ref:["https://viaf.org/viaf/59147905242279092527/#Gibson,_Nathan_P."]},roles:["supervision"],websites:["https://biblia-arabica.com/team/nathan-gibson/"]},{pers_name:{text:"Beers, Theodore",ref:[]},roles:["supervision"],websites:["https://www.geschkult.fu-berlin.de/en/e/semiarab/arabistik/Seminar/Mitarbeiterinnen-und-Mitarbeiter/bua/beers/"]},{pers_name:{text:"Grallert, Till",ref:["https://www.wikidata.org/wiki/Q110952396"]},roles:["supervision"],websites:["https://www.geschichte.hu-berlin.de/de/bereiche-und-lehrstuehle/digital-history/personen/till-grallert"]}],research_data:{lang:[],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["collaboration_platform","research_data_management"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/hunaynnet/70944a30-3932-46bb-8c3f-410a48d9e0b9.json",{schema_version:"0.2.2",record_metadata:{uuid:"70944a30-3932-46bb-8c3f-410a48d9e0b9",record_created_on:"2022-05-09",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"HUNAYNNET",abbr:"",type:"project",ref:[],date:[{from:"2016",to:"2021"}],maintained:null,websites:["https://hunaynnet.oeaw.ac.at/","https://cordis.europa.eu/project/id/679083/de"],project_desc:"This project is a first ever attempt to compile a digital trilingual and linguistically annotated parallel corpus of Greek classical scientific and philosophical literature and the Syriac and Arabic translations thereof. Besides an online lexicography the database is enhanced by a linguistic corpus management system providing advanced search tools which help to compare and analyze the texts in all three languages.",places:[{place_name:{text:"Vienna",ref:["https://www.geonames.org/2761369/vienna.html"]},coordinates:{lat:"48.20849",lng:"16.37208"}}],lang:["deu","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Österreichische Akademie der Wissenschaften",ref:["https://www.wikidata.org/wiki/Q299015","https://ror.org/03anc3s24"]},websites:["https://www.oeaw.ac.at/en/"]}],related_entities:[],contacts:[{pers_name:{text:"Kessel, Grigory",ref:["https://d-nb.info/gnd/1069608009"]},roles:["supervision"],websites:["https://www.oeaw.ac.at/fileadmin/Institute/imafo/pdf/forschung/byzanzforschung/Staff/CV_GrigoryKessel_de.pdf","https://www.ias.edu/scholars/grigory-kessel"]}],research_data:{lang:["ara","grc","syr"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["annotation","arabic_studies","corpus_output","digital_preservation","manuscript","science_history","semitic_studies","translation","translation_studies","vre"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/irankoran/8e4ab5b4-7298-4d55-b490-eb2943527981.json",{schema_version:"0.2.2",record_metadata:{uuid:"8e4ab5b4-7298-4d55-b490-eb2943527981",record_created_on:"2021-11-01",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-04-26"},project:{title:"Irankoran",abbr:"",type:"project",ref:[],date:[{from:"2017",to:"2020"}],maintained:null,websites:["https://www.bbaw.de/forschung/irankoran","https://corpuscoranicum.de/de/about"],project_desc:"This project is dedicated to the study of early Qur’anic manuscripts from Iran with the central question of which kind of deviations in the text of the Quran, as it was fixed in the 10th century, are historically verifiable. The project will develop an online catalogue of all Qur’anic manuscripts held in the National Museum of Iran and other collections, create transliterations of Arabic text from selected pages and date the parchment with radiocarbon measurement. All these steps will be followed by analysis of the selected texts in order to verify the deviation from the canonical readings.",places:[{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}}],lang:["deu","eng","fra"],related_institutions:[{relation_type:"host",org_name:{text:"Berlin-Brandenburgische Akademie der Wissenschaften",ref:["https://ror.org/05jgq9443","https://www.wikidata.org/wiki/Q219989"]},websites:["https://www.bbaw.de/"]}],related_entities:[{relation_type:"sibling",title:"Corpus Coranicum",uuid:"0fd7b9cd-fdae-441b-a6fd-a791d4583ce0"}],contacts:[{pers_name:{text:"Aghaei, Ali",ref:[]},roles:["supervision"],websites:["https://www.uni-paderborn.de/person/87590"]}],research_data:{lang:["ara","fas"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["digital_edition","digital_preservation","islamic_studies","manuscript","religion_studies","religious_text","translation"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/islamic_painted_page/31534c48-6b74-4cc5-8aff-ea8dbc60c445.json",{schema_version:"0.2.2",record_metadata:{uuid:"31534c48-6b74-4cc5-8aff-ea8dbc60c445",record_created_on:"2022-08-12",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Islamic Painted Page",abbr:"",type:"project",ref:[],date:[{from:"2013",to:""}],maintained:null,websites:["http://ipp.manuscript-cultures.uni-hamburg.de/","https://blogs.bl.uk/asian-and-african/2019/06/islamic-painted-page-growing-a-database.html"],project_desc:"Islamic Painted Page is an online database of Islamicate arts of the book, which originated from a personal project of Stephen Serpell and now turned to major international recourse with over 42,000 references to paintings, illuminations and bindings from over 270 collections around the globe. Its functions are twofold: firstly, it enables users to locate and compare works worldwide using a single database, displaying images wherever possible; and secondly, it signposts users onward to more authoritative sources, with hotlinks direct to the specific image pages of collection websites where available, and page-specific references for printed publications. The database is currently hosted by the University Hamburg.",places:[{place_name:{text:"Hamburg",ref:["https://www.geonames.org/2911298/hamburg.html"]},coordinates:{lat:"53.55073",lng:"9.99302"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Universität Hamburg",ref:["https://ror.org/00g30e956","https://www.wikidata.org/wiki/Q156725"]},websites:["https://www.uni-hamburg.de/"]}],related_entities:[{relation_type:"sibling",title:"Audition Certificates Platform",uuid:"b333a11d-b9fc-4379-9e21-fbddfa9500b1"},{relation_type:"sibling",title:"Afrikanische Stimmen in islamischen Manuskripten aus Mali: Erschließung und Erforschung afrikanischer Sprachen in arabischer Schrift (Ajami)",uuid:"eaf36ccc-5ee4-4749-80ea-7f71f479c968"},{relation_type:"sibling",title:"Beta maṣāḥǝft Manuscripts of Ethiopia and Eritrea",uuid:"169677fd-14f9-46e7-b8f1-2202fb91397c"},{relation_type:"sibling",title:"Methoden der Bildverarbeitung zur Bestimmung von visuellen Manuskript- und Zeichenmerkmalen",uuid:"eb8e91fe-952e-48b7-af0d-c026ebe37826"},{relation_type:"sibling",title:"Datenrepositorium Manuskriptkulturen",uuid:"894dcf0c-7295-4fb8-b4ba-866a5ebe3310"},{relation_type:"sibling",title:"Demarginalizing Medieval Africa: Images, Texts, and Identity in Early Solomonic Ethiopia",uuid:"46121edb-516b-4dbf-ba49-e2c5f07cec2e"},{relation_type:"sibling",title:"Documentation of Gorani, an endangered language of West Iran",uuid:"17fa004d-c9d2-4ce3-8116-b7bfff5d14ed"},{relation_type:"sibling",title:"The Evolution of Islamic Societies (c. 600–1600 CE): Algorithmic Analysis into Social History",uuid:"659c0aba-3bdd-43eb-937d-dad4ad63e3fc"},{relation_type:"sibling",title:"The intertwined world of the oral and written transmission of sacred traditions in the Middle East",uuid:"bb852d81-0c6d-4413-8c20-1bb38c4db4e7"},{relation_type:"sibling",title:"Methoden der Manuskriptanalyse zur Wiedergewinnung verlorener Schrift",uuid:"892b783d-1788-451f-9efd-1c58bfb4b064"},{relation_type:"sibling",title:"SfarData",uuid:"81d8ad85-5da8-457f-99a3-6ab11128ef03"},{relation_type:"sibling",title:"SIHAFA: The Ideosphere of the Late Ottoman Arabic Press: Mapping the Discursive Field of Authors and Texts through Computational Approaches",uuid:"20ee58f5-f699-4262-a473-7765e249c871"},{relation_type:"sibling",title:"Understanding Written Artefacts",uuid:"9ca46873-3089-4a04-99fa-89c0c1b01213"},{relation_type:"sibling",title:"Ethio-SPaRe: Cultural Heritage of Christian Ethiopia. Salvation, Preservation, Research",uuid:"fbf007e0-7eee-4bb1-801d-568785d43d04"},{relation_type:"sibling",title:"From Translation to Creation: Changes in Ethiopic Style and Lexicon from Late Antiquity to the Middle Ages",uuid:"77ae1011-1b54-46b5-b676-02895e3300fc"},{relation_type:"sibling",title:"Corpus dei Manoscritti Copti Letterari",uuid:"c4f41a6d-9fb9-4c31-85f0-b66acfe41289"}],contacts:[{pers_name:{text:"Serpell, Stephen",ref:[]},roles:["supervision"],websites:["https://www.csmc.uni-hamburg.de/about/people/serpell.html"]}],research_data:{lang:["ara","fas","tur"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["art_studies","catalog","digital_preservation","image","islamic_studies","manuscript"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/isnalyser/da852d13-2483-443b-a2f3-77c0d19d08bd.json",{schema_version:"0.2.2",record_metadata:{uuid:"da852d13-2483-443b-a2f3-77c0d19d08bd",record_created_on:"2022-11-25",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Isnalyser",abbr:"",type:"project",ref:[],date:[{from:"2019",to:""}],maintained:null,websites:["https://github.com/dhakarat/isnalyser"],project_desc:"For scholars studying ḥadīth texts, drawing an isnād tree with more than 40 transmitters is a tedious task, and finding the right medium to display it fully can even prove to be impossible. isnalyser is a simple program for the automation of drawing isnād trees and for their customizable display in handy formats.",places:[{place_name:{text:"Tübingen",ref:["https://www.geonames.org/2820860/tuebingen.html"]},coordinates:{lat:"48.52266",lng:"9.05222"}}],lang:["eng"],related_institutions:[],related_entities:[{relation_type:"parent",title:"Time, Space and Relations in Hadith Literature: A Machine Learning Approach",uuid:"2b2d72f0-c4d6-462b-b47f-7c3550acdad3"}],contacts:[{pers_name:{text:"Bednarkiewicz, Maroussia",ref:["https://viaf.org/viaf/9154380928130290538/"]},roles:["supervision"],websites:["https://uni-tuebingen.de/en/faculties/faculty-of-humanities/departments/asian-and-oriental-studies/oriental-and-islamic-studies/department/staff/maroussia-bednarkiewicz/"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:[],backend:[],frontend:[],tools:[{label:"isnalyser",self_developed:!0,ref:["https://github.com/dhakarat/isnalyser"],description:"isnalyser is a simple program for the automation of drawing isnād trees and for their customizable display in handy formats."}],languages:["python"]},policies:[],keywords:["hadith","islamic_studies","isnad","religion_studies"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/anonym_classic/d1e6d69b-5e9a-4b4a-85ad-09aac56ed2d9.json",{schema_version:"0.2.2",record_metadata:{uuid:"d1e6d69b-5e9a-4b4a-85ad-09aac56ed2d9",record_created_on:"2021-11-08",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-02-18"},project:{title:"Kalila and Dimna – AnonymClassic",abbr:"",type:"project",ref:[],date:[{from:"2018-01-01",to:"2022-12-31"}],maintained:null,websites:["https://www.geschkult.fu-berlin.de/en/e/kalila-wa-dimna/index.html","https://kalila-and-dimna.fu-berlin.de/"],project_desc:"AnonymClassic is the first ever comprehensive study of Kalila and Dimna, one of the most important text of premodern world literature which passed from Hinduism and Buddhism via Islam to Christianity. Its Arabic versions constitute a source of all further translations into European languages and are also the main focus of the project, which analyzes the transmission processes of the work from India to Europe with Arabic as cultural bridge.",places:[{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}}],lang:["deu","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Freie Universität Berlin",ref:["https://ror.org/046ak2485","https://www.wikidata.org/wiki/Q153006"]},websites:["https://www.fu-berlin.de/"]}],related_entities:[{relation_type:"sibling",title:"Verse und Sprueche: Impulse und Reichweiten wissenschaftlicher und popularisierender Diskurse im arabischen Sprachraum",uuid:"a2984fec-9396-488e-ad56-d3d21dc49052"},{relation_type:"sibling",title:"Country of Words: Reading and Reception of Palestinian Literature from 1948 to the Present",uuid:"2adf7ddc-9dd5-49b3-842c-9dc48dbbf36e"},{relation_type:"sibling",title:"Keywords for the Study of the Arabic Literary and Manuscript Tradition",uuid:"7050ac6d-523c-4ba0-b381-48ec200ff6c4"},{relation_type:"cooperation",title:"Arabic Literature Cosmopolitan",uuid:"46aff246-b6ef-4632-90c2-0993a9f9b1f5"},{relation_type:"sibling",title:"Memory Spaces: Mapping Oral History in Mosul",uuid:"aec92ee9-7c8a-49ce-8491-46667fc75505"}],contacts:[{pers_name:{text:"Gruendler, Beatrice",ref:["https://d-nb.info/gnd/111749344X"]},roles:["supervision"],websites:["https://www.geschkult.fu-berlin.de/e/semiarab/arabistik/Seminar/Mitarbeiterinnen-und-Mitarbeiter/Professuren/Gruendler/"]}],research_data:{lang:["ara","fas"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","classical_text","digital_edition","digital_preservation","literary_studies","manuscript","translation","vre"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/kallimachos/5755bad5-4162-48ce-84b4-997819fa61b7.json",{schema_version:"0.2.2",record_metadata:{uuid:"5755bad5-4162-48ce-84b4-997819fa61b7",record_created_on:"2021-11-01",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-05-04"},project:{title:"Kallimachos",abbr:"",type:"organization",ref:[],date:[{from:"2014",to:"2017"},{from:"2017",to:"2019"}],maintained:null,websites:["https://www.kallimachos.de/"],project_desc:"Kallimachos is a Digital Humanities center at the University of Würzburg. It was developed via a project by the same name funded between 2014 and 2019. The center supports humanities scholars in applying digital methods in their research by providing technical and social infrastructure, software, and prototypical workflows. The center also establishes an integral structure for research data management.",places:[{place_name:{text:"Würzburg",ref:["https://www.geonames.org/2805615/wuerzburg.html"]},coordinates:{lat:"49.79391",lng:"9.95121"}}],lang:["deu"],related_institutions:[{relation_type:"host",org_name:{text:"Julius Maximilian University of Würzburg",ref:["https://ror.org/00fbnyb24","https://www.wikidata.org/wiki/Q161976"]},websites:["https://www.uni-wuerzburg.de/startseite/"]}],related_entities:[],contacts:[{pers_name:{text:"Hasse, Dag Nikolaus",ref:[]},roles:["investigation"],websites:["https://www.philosophie.uni-wuerzburg.de/institut/allelehrsthlefrphilosophie/profdrdagnikolaushasse/"]}],research_data:{lang:[],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["collaboration_platform","research_data_management","research_infrastructure"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/kalimat/7050ac6d-523c-4ba0-b381-48ec200ff6c4.json",{schema_version:"0.2.2",record_metadata:{uuid:"7050ac6d-523c-4ba0-b381-48ec200ff6c4",record_created_on:"2021-10-30",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Keywords for the Study of the Arabic Literary and Manuscript Tradition",abbr:"KALiMaT",type:"project",ref:[],date:[{from:"2024",to:"2027"}],maintained:!0,websites:[],project_desc:"KALiMaT is the first bilingual, open-access Arabic-English online living handbook of short articles on historical terms from the pre-modern and early modern literary tradition. Each article addresses a lemma, providing analysis and contextualization that makes the historical term accessible. With its nuanced approach focused on the analysis of concepts from the Arabic tradition and the critical examination of Western and modern literary categories, as well as with its bilingual publication strategy in both English and Arabic, KALiMaT contributes to the decolonization of knowledge. The project will be hosted on the Open Encyclopedia System infrastructure offered by Freie Universität Berlin.",places:[{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}}],lang:["ara","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Freie Universität Berlin",ref:["https://ror.org/046ak2485","https://www.wikidata.org/wiki/Q153006"]},websites:["https://www.fu-berlin.de/"]}],related_entities:[{relation_type:"sibling",title:"Country of Words: Reading and Reception of Palestinian Literature from 1948 to the Present",uuid:"2adf7ddc-9dd5-49b3-842c-9dc48dbbf36e"},{relation_type:"sibling",title:"Verse und Sprueche: Impulse und Reichweiten wissenschaftlicher und popularisierender Diskurse im arabischen Sprachraum",uuid:"a2984fec-9396-488e-ad56-d3d21dc49052"},{relation_type:"sibling",title:"Kalila and Dimna – AnonymClassic",uuid:"d1e6d69b-5e9a-4b4a-85ad-09aac56ed2d9"},{relation_type:"cooperation",title:"Open Encyclopedia System",uuid:"2860c96f-323e-4c33-97c6-4219bcf99f52"},{relation_type:"sibling",title:"Arabic Literature Cosmopolitan",uuid:"46aff246-b6ef-4632-90c2-0993a9f9b1f5"},{relation_type:"sibling",title:"Memory Spaces: Mapping Oral History in Mosul",uuid:"aec92ee9-7c8a-49ce-8491-46667fc75505"}],contacts:[{pers_name:{text:"Gruendler, Beatrice",ref:["https://d-nb.info/gnd/111749344X"]},roles:["supervision"],websites:["https://www.geschkult.fu-berlin.de/e/semiarab/arabistik/Seminar/Mitarbeiterinnen-und-Mitarbeiter/Professuren/Gruendler/"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[]},data:{datatypes:[{label:"",stage:"raw",licensing:[],open_access:0}],repositories:[{label:"",accessibility:"public",ref:[],licensing:[],description:""}]}},stack:{database:[],backend:[],frontend:[],tools:[{label:"",self_developed:!1,ref:[],description:""}],languages:[]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","digital_publishing","encyclopedia","literary_studies"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/kitab/d4d49850-4711-4d43-97e9-c3563626d8df.json",{schema_version:"0.2.2",record_metadata:{uuid:"d4d49850-4711-4d43-97e9-c3563626d8df",record_created_on:"2021-11-01",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-04-05"},project:{title:"Knowledge, Information Technology, and the Arabic Book",abbr:"KITAB",type:"project",ref:[],date:[{from:"2018",to:"2023"}],maintained:!0,websites:["https://kitab-project.org/"],project_desc:"KITAB is a platform which enables exploration of Arabic texts in digital form. It also provides a digital toolbox and a forum for discussions about Arabic literature. The main research focus of the project lies in the question of how authors copied from previous works. The research is conducted on a corpus of texts created for the needs of the project and powered by technologies at the cutting edge of computer science. All documentation is openly accessible on GitHub.",places:[{place_name:{text:"London",ref:["https://www.geonames.org/2643743/london.html"]},coordinates:{lat:"51.50853",lng:"-0.12574"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"The Aga Khan University (International)",ref:["https://www.wikidata.org/wiki/Q4690953"]},websites:["https://www.aku.edu/Pages/united-kingdom.aspx","https://www.aku.edu/Pages/home.aspx"]}],related_entities:[{relation_type:"sibling",title:"OpenITI",uuid:"bef2e507-b663-422e-9dd3-7e49ca299f05"},{relation_type:"child",title:"Digital Sirah Project",uuid:"5209d91c-6fe3-4349-9a58-c5fde8c62ebf"}],contacts:[{pers_name:{text:"Savant, Sarah",ref:["https://d-nb.info/gnd/1044734957"]},roles:["supervision"],websites:["https://www.aku.edu/ismc/people/Pages/sarah-bowen-savant.aspx"]},{pers_name:{text:"Romanov, Maxim",ref:[]},roles:["investigation"],websites:["https://www.aai.uni-hamburg.de/en/voror/personen/romanov.html"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["annotation","arabic_studies","collaboration_platform","computational_text_analysis","corpus_resource","isnad","literary_studies","network_analysis","nlp","ocr","text_reuse","visualization","vre"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/kohd_coptica/f67c8fcd-d190-4419-a85a-e6998da4f0ba.json",{schema_version:"0.2.2",record_metadata:{uuid:"f67c8fcd-d190-4419-a85a-e6998da4f0ba",record_created_on:"2023-11-13",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"KOHD Coptica",abbr:"",type:"project",ref:[],date:[{from:"2016",to:"2022"}],maintained:null,websites:["https://coptica.kohd.adw-goe.de/content/start.xml"],project_desc:"The KOHD Coptica project, part of the Cataloging of Oriental Manuscripts in Germany initiative, catalogs and digitizes Coptic manuscripts in the Berlin Papyrus Collection. The ongoing database development facilitates efficient searches and standardized presentations of metadata, with records gradually released as cataloging and digitization progress.",places:[{place_name:{text:"Göttingen",ref:["https://www.geonames.org/2918632/goettingen.html"]},coordinates:{lat:"51.53443",lng:"9.93228"}}],lang:["eng","deu"],related_institutions:[{relation_type:"host",org_name:{text:"Akademie der Wissenschaften zu Göttingen",ref:["https://www.wikidata.org/wiki/Q414188","https://ror.org/04hsa7a08"]},websites:["https://adw-goe.de"]},{relation_type:"cooperation",org_name:{text:"Universität Leipzig",ref:["https://ror.org/03s7gtk40","https://www.wikidata.org/wiki/Q154804"]},websites:["https://www.uni-leipzig.de/"]}],related_entities:[{relation_type:"sibling",title:"Digitale Gesamtedition und Übersetzung des koptisch-sahidischen Alten Testaments",uuid:"1b19963e-ffc5-48f0-a1b3-81553d601497"},{relation_type:"sibling",title:"KOHD Digital",uuid:"01ac0c0c-b09c-40cf-a75f-42e540b67c2f"},{relation_type:"sibling",title:"Qumran Digital: Text und Lexikon",uuid:"99718590-5e1e-4a64-bf84-6e2213ad1836"},{relation_type:"sibling",title:"Scripta Qumranica Electronica: Eine Verbunddatenbank und virtuelle Forschungsumgebung für die Texte vom Toten Meer",uuid:"9513964d-3509-462e-9d64-c47fd3922459"}],contacts:[{pers_name:{text:"Behlmer, Heike",ref:["https://d-nb.info/gnd/1075292484"]},roles:["supervision"],websites:["https://www.uni-goettingen.de/de/472658.html"]}],research_data:{lang:["cop"],sustainability_plan:null,publications:{open_access:0,licensing:[]},data:{datatypes:[{label:"",stage:"raw",licensing:[],open_access:0}],repositories:[{label:"",accessibility:"public",ref:[],licensing:[],description:""}]}},stack:{database:[],backend:[],frontend:[],tools:[{label:"",self_developed:!1,ref:[],description:""}],languages:[]},policies:[{description:"",ref:[]}],keywords:["catalog","digital_preservation","egyptology","manuscript"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/kohd_digital/01ac0c0c-b09c-40cf-a75f-42e540b67c2f.json",{schema_version:"0.2.2",record_metadata:{uuid:"01ac0c0c-b09c-40cf-a75f-42e540b67c2f",record_created_on:"2022-02-14",record_created_by:"Kudela, Monkia Xenia",last_edited_on:"2022-02-18"},project:{title:"KOHD Digital",abbr:"",type:"project",ref:[],date:[{from:"2016",to:"2022"}],maintained:null,websites:["https://orient-kohd.dl.uni-leipzig.de/content/index.xml"],project_desc:"KOHD Digital is a databank of KODH (Die Katalogisierung der Orientalischen Handschriften in Deutschland) – a research project that aims at systematizing not yet cataloged manuscripts from various German libraries. Previously all texts were published in printed catalogues but since 2016 they appear mostly online in KHOD Digital databank.",places:[{place_name:{text:"Göttingen",ref:["https://www.geonames.org/2918632/goettingen.html"]},coordinates:{lat:"51.53443",lng:"9.93228"}}],lang:["deu","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Akademie der Wissenschaften zu Göttingen",ref:["https://www.wikidata.org/wiki/Q414188","https://ror.org/04hsa7a08"]},websites:["https://adw-goe.de"]}],related_entities:[{relation_type:"sibling",title:"Digitale Gesamtedition und Übersetzung des koptisch-sahidischen Alten Testaments",uuid:"1b19963e-ffc5-48f0-a1b3-81553d601497"},{relation_type:"sibling",title:"KOHD Coptica",uuid:"f67c8fcd-d190-4419-a85a-e6998da4f0ba"},{relation_type:"sibling",title:"Qumran Digital: Text und Lexikon",uuid:"99718590-5e1e-4a64-bf84-6e2213ad1836"},{relation_type:"sibling",title:"Scripta Qumranica Electronica: Eine Verbunddatenbank und virtuelle Forschungsumgebung für die Texte vom Toten Meer",uuid:"9513964d-3509-462e-9d64-c47fd3922459"}],contacts:[{pers_name:{text:"Seidensticker, Tilman",ref:["https://d-nb.info/gnd/131508415"]},roles:["supervision"],websites:["https://www.gw.uni-jena.de/seidensticker-tilman"]}],research_data:{lang:["ara","bod","fas","khm","san","tam","tur"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","catalog","digital_preservation","iranian_studies","manuscript","turkology"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/kompetenzwerk_d/6c5643df-bfb8-48e8-a7c6-473146cf497d.json",{schema_version:"0.2.2",record_metadata:{uuid:"6c5643df-bfb8-48e8-a7c6-473146cf497d",record_created_on:"2021-11-01",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-04-05"},project:{title:"KompetenzwerkD",abbr:"",type:"organization",ref:[],date:[{from:"2020",to:""}],maintained:null,websites:["https://www.saw-leipzig.de/de/akademie-digital/akademie-digital/kompetenzwerkd-saechsisches-forschungszentrum-und-kompetenznetzwerk-fuer-digitale-geisteswissenschaften-und-kulturelles-erbe","https://kompetenzwerkd.github.io/infoportal/"],project_desc:"KompetenzwerkD is a research center for the Digital Humanities for various extramural research institutes in Saxony (see the project’s website). The objectives is to enhance the cooperation and exchange between the local institutes, implementation of Open Data Policy promotion and further development of digital methods in humanistic research.",places:[{place_name:{text:"Leipzig",ref:["https://www.geonames.org/2879139/leipzig.html"]},coordinates:{lat:"51.33962",lng:"12.37129"}}],lang:["deu"],related_institutions:[{relation_type:"member",org_name:{text:"Sächsische Akademie der Wissenschaften zu Leipzig",ref:["https://www.wikidata.org/wiki/Q27891200","https://ror.org/03zxjdk07"]},websites:["https://www.saw-leipzig.de/de/aktuelles"]},{relation_type:"member",org_name:{text:"Leibniz-Institut für Geschichte und Kultur des östlichen Europa e.V.",ref:["https://www.wikidata.org/wiki/Q1499019"]},websites:["https://leibniz-gwzo.de/de"]},{relation_type:"member",org_name:{text:"Simon-Dubnow-Institut für Jüdische Geschichte und Kultur",ref:["https://d-nb.info/gnd/5236159-7","https://ror.org/03j1wg370"]},websites:["https://www.dubnow.de/"]},{relation_type:"member",org_name:{text:"Institut für Sächsische Geschichte und Volkskunde e.V",ref:["https://d-nb.info/gnd/10048270-3"]},websites:["https://www.isgv.de/"]},{relation_type:"member",org_name:{text:"Sorbisches Institut e.V. / serbski institut z.t.",ref:["https://ror.org/03hayrn10","https://www.wikidata.org/wiki/Q149887"]},websites:["https://www.serbski-institut.de/de/home/"]}],related_entities:[],contacts:[{pers_name:{text:"Wiesmeth, Hans",ref:["https://d-nb.info/gnd/109432703"]},roles:["supervision"],websites:["https://www.saw-leipzig.de/de/mitglieder/wiesmethh"]}],research_data:{lang:[],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["collaboration_platform","research_data_management","research_infrastructure"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/tunico/79462111-75a7-4fa0-8e11-9d424293a074.json",{schema_version:"0.2.2",record_metadata:{uuid:"79462111-75a7-4fa0-8e11-9d424293a074",record_created_on:"2022-05-17",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Linguistic dynamics in the Greater Tunis Area: a corpus-based approach (TUNICO)",abbr:"TUNICO",type:"project",ref:[],date:[{from:"2013-08-01",to:"2016-12-31"}],maintained:null,websites:["https://tunico.acdh.oeaw.ac.at/project.html","https://www.oeaw.ac.at/acdh/projects/completed-projects/tunico"],project_desc:"The focus of this project lies on the Arabic dialect spoken in the Tunisian capital. It investigates the linguistic dynamics caused by recent demographic changes in the metropolitan area of Tunis and its intention is to gather data through field recordings made with young speakers who were born in Tunis but descended from parents who arrived to the capital from other regions. Based on this data two digital language resources were created: a corpus of unmonitored speech that contains both conversations and narratives and a dictionary based on this corpus and on previously published resources.",places:[{place_name:{text:"Vienna",ref:["https://www.geonames.org/2761369/vienna.html"]},coordinates:{lat:"48.20849",lng:"16.37208"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Österreichische Akademie der Wissenschaften",ref:["https://www.wikidata.org/wiki/Q299015","https://ror.org/03anc3s24"]},websites:["https://www.oeaw.ac.at/en/"]}],related_entities:[{relation_type:"sibling",title:"WIBARAB: What is Bedouin-Type Arabic?",uuid:"e9cb8ab1-2d2c-4cc3-a44d-a793220a8638"},{relation_type:"sibling",title:"Genesis Rabbah Loanwords",uuid:"94044a63-eae5-4e1d-ba04-64874109fc36"},{relation_type:"sibling",title:"Vienna Corpus of Arabic Varieties",uuid:"8f343a28-a873-449c-b359-efcfab7d1201"},{relation_type:"sibling",title:"Shawi",uuid:"68422d65-ccba-4dcb-8a0e-bd4f3f9e1dc9"},{relation_type:"sibling",title:"NoMansLand: Nomads’ Manuscripts Landscape",uuid:"e050deba-6e1d-4d82-851b-cf6c1f7187a5"},{relation_type:"sibling",title:"TUNOCENT",uuid:"325a929a-6764-41e1-b452-6556209fa74f"}],contacts:[{pers_name:{text:"Mörth, Karlheinz",ref:["https://viaf.org/viaf/8110691/#M%C3%B6rth,_Karlheinz."]},roles:["supervision"],websites:["https://www.oeaw.ac.at/acdh/team/current-team/karlheinz-moerth"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["annotation","arabic_studies","audio","corpus_resource","dialectology","language_documentation","lexicon","linguistics","tei","translation"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/elephantine/43faf354-6069-4d15-9e04-bcb5813bc67a.json",{schema_version:"0.2.2",record_metadata:{uuid:"43faf354-6069-4d15-9e04-bcb5813bc67a",record_created_on:"2023-12-04",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Localizing 4000 Years of Cultural History. Texts and Scripts from Elephantine Island in Egypt",abbr:"ELEPHANTINE",type:"project",ref:[],date:[{from:"2015",to:"2022"}],maintained:null,websites:["https://elephantine.smb.museum/"],project_desc:"The Elephantine Manuscripts Project employs cutting-edge digital methodologies, integrating disciplines like digital humanities, physics, and mathematics. A central element is the development of an open-access online research database, housing 80% previously unpublished manuscripts in ten different languages and scripts. The database provides unprecedented insights into the medical, religious, legal, administrative, and literary aspects of Elephantine's history spanning 4000 years.",places:[{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Staatliche Museen zu Berlin",ref:["https://www.wikidata.org/wiki/Q700216","https://ror.org/02k3b8775"]},websites:["https://www.smb.museum/home/"]}],related_entities:[],contacts:[{pers_name:{text:"Lepper, Verena",ref:["https://d-nb.info/gnd/1027812333"]},roles:["supervision"],websites:["https://www.geschkult.fu-berlin.de/en/e/aegyptologie/institut/mitarbeiter/weitere/Lepper/index.html","https://www.bbaw.de/die-akademie/mitarbeiterinnen-mitarbeiter/lepper-verena"]}],research_data:{lang:["ara","arc","cop","egy","grc"],sustainability_plan:null,publications:{open_access:0,licensing:[]},data:{datatypes:[{label:"",stage:"raw",licensing:[],open_access:0}],repositories:[{label:"",accessibility:"public",ref:[],licensing:[],description:""}]}},stack:{database:[],backend:[],frontend:[],tools:[{label:"",self_developed:!1,ref:[],description:""}],languages:[]},policies:[{description:"",ref:[]}],keywords:["annotation","corpus_output","digital_preservation","manuscript","tei","translation"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/mtaac/47a62965-3241-4531-b01a-a25e25dac602.json",{schema_version:"0.2.2",record_metadata:{uuid:"47a62965-3241-4531-b01a-a25e25dac602",record_created_on:"2022-11.21",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Machine Translation and Automated Analysis of Cuneiform Language",abbr:"MTAAC",type:"project",ref:[],date:[{from:"2017",to:"2021"}],maintained:null,websites:["https://cdli-gh.github.io/mtaac/","https://gepris.dfg.de/gepris/projekt/329145082"],project_desc:"Combining the newest developments in machine learning with statistical and neural machine translation technologies, this project formulates, tests and evaluates methodologies to translate and analyze the contents of some 67,000 highly standardized administrative documents from southern Mesopotamia. All outcomes of the project, the methodologies, the translations and the data extracted from them, will be offered to the public in open access.",places:[{place_name:{text:"Toronto",ref:["https://www.geonames.org/6167865/toronto.html"]},coordinates:{lat:"43.70011",lng:"-79.4163"}},{place_name:{text:"Frankfurt",ref:["https://www.geonames.org/2925533/frankfurt-am-main.html"]},coordinates:{lat:"50.11552",lng:"8.68417"}},{place_name:{text:"Los Angeles",ref:["https://www.geonames.org/5368361/los-angeles.html"]},coordinates:{lat:"34.05223",lng:"-118.24368"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"University of Toronto",ref:["https://www.wikidata.org/wiki/Q180865","https://ror.org/03dbr7087"]},websites:["https://www.utoronto.ca/"]},{relation_type:"host",org_name:{text:"Goethe-Universität Frankfurt am Main",ref:["https://ror.org/04cvxnb49","https://www.wikidata.org/wiki/Q50662"]},websites:["https://www.uni-frankfurt.de/de"]},{relation_type:"host",org_name:{text:"University of California, Los Angeles",ref:["https://ror.org/025j2nd68","https://www.wikidata.org/wiki/Q174710"]},websites:["https://www.ucla.edu/"]}],related_entities:[{relation_type:"cooperation",title:"Cuneiform Digital Library Initiative",uuid:"b8097890-6eeb-43ba-890d-28e1490fde08"}],contacts:[{pers_name:{text:"Baker, Heather D.",ref:["https://d-nb.info/gnd/1042917019"]},roles:["supervision"],websites:["https://www.nmc.utoronto.ca/people/directories/all-faculty/heather-d-baker"]}],research_data:{lang:["akk","sux"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["annotation","computational_text_analysis","corpus_resource","linguistics","machine_learning","nlp","semitic_studies","translation","translation_studies"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/majlis/583ab46e-ccb8-4a49-9912-7771683cd605.json",{schema_version:"0.2.2",record_metadata:{uuid:"583ab46e-ccb8-4a49-9912-7771683cd605",record_created_on:"2021-11-01",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2021-05-05"},project:{title:"MAJLIS. The Transformation of Jewish Literature in Arabic in the Islamicate World",abbr:"MAJLIS",type:"project",ref:[],date:[{from:"2021",to:"2026"}],maintained:!0,websites:["https://www.naher-osten.uni-muenchen.de/forschung/majlis/index.html"],project_desc:"This project is dedicated to the hitherto under-researched Judaeo-Arabic literature from the period between the 9th and the 11th century. The overall aim is to explore how the adoption of Arabic language and Arabic intellectual tradition influenced the Jewish literary creativity in this period. The project will proceed by applying state-of-the-art digital tools to analyze manuscripts, trace changes in the Jewish literature, identify the dominant scholars and to compare the Judaeo-Arabic literature with non-Jewish literary traditions of the time.",places:[{place_name:{text:"Munich",ref:["https://www.geonames.org/2867714/munich.html"]},coordinates:{lat:"48.13743",lng:"11.57549"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Ludwig-Maximilians-Universität Munich",ref:["https://www.wikidata.org/wiki/Q156598","https://ror.org/05591te55"]},websites:["https://www.lmu.de/de/index.html"]}],related_entities:[],contacts:[{pers_name:{text:"Vollandt, Ronny",ref:["https://d-nb.info/gnd/1173742050"]},roles:["supervision"],websites:["https://www.naher-osten.uni-muenchen.de/personen/professoren/ronny_vollandt/index.html"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","literary_studies"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/mesmom/aec92ee9-7c8a-49ce-8491-46667fc75505.json",{schema_version:"0.2.2",record_metadata:{uuid:"aec92ee9-7c8a-49ce-8491-46667fc75505",record_created_on:"2023-11-02",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Memory Spaces: Mapping Oral History in Mosul",abbr:"MESMOM",type:"project",ref:[],date:[{from:"2023-08-01",to:"2024-02-29"}],maintained:!0,websites:["https://www.geschkult.fu-berlin.de/en/e/semiarab/arabistik/Forschung/MEMORY-SPACES/index.html"],project_desc:"The project aims to establish an online accessible digital platform where former and current residents of the Iraqi city of Mosul can contribute their personal and individual memories of their hometown. These memories can be inserted in the form of stories, images, and audio recordings, all placed on a digital and visually appealing map of Mosul and its surroundings (prior to 2014). After editorial processing and approval by a dedicated editorial team, these contributions will be accessible worldwide.",places:[{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}},{place_name:{text:"Amsterdam",ref:["https://www.geonames.org/2759794/amsterdam.html"]},coordinates:{lat:"52.37403",lng:"4.88969"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Freie Universität Berlin",ref:["https://ror.org/046ak2485","https://www.wikidata.org/wiki/Q153006"]},websites:["https://www.fu-berlin.de/"]},{relation_type:"host",org_name:{text:"University of Amsterdam",ref:["https://www.wikidata.org/wiki/Q214341","https://ror.org/04dkp9463"]},websites:["https://www.uva.nl/en"]}],related_entities:[{relation_type:"sibling",title:"Kalila and Dimna – AnonymClassic",uuid:"d1e6d69b-5e9a-4b4a-85ad-09aac56ed2d9"},{relation_type:"sibling",title:"Verse und Sprueche: Impulse und Reichweiten wissenschaftlicher und popularisierender Diskurse im arabischen Sprachraum",uuid:"a2984fec-9396-488e-ad56-d3d21dc49052"},{relation_type:"sibling",title:"Country of Words: Reading and Reception of Palestinian Literature from 1948 to the Present",uuid:"2adf7ddc-9dd5-49b3-842c-9dc48dbbf36e"},{relation_type:"sibling",title:"Arabic Literature Cosmopolitan",uuid:"46aff246-b6ef-4632-90c2-0993a9f9b1f5"},{relation_type:"sibling",title:"Keywords for the Study of the Arabic Literary and Manuscript Tradition",uuid:"7050ac6d-523c-4ba0-b381-48ec200ff6c4"}],contacts:[{pers_name:{text:"Toral, Isabel",ref:[]},roles:["supervision"],websites:["https://www.geschkult.fu-berlin.de/e/semiarab/arabistik/Seminar/Mitarbeiterinnen-und-Mitarbeiter/Professuren/toral/index.html"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[]},data:{datatypes:[{label:"",stage:"raw",licensing:[],open_access:0}],repositories:[{label:"",accessibility:"public",ref:[],licensing:[],description:""}]}},stack:{database:[],backend:[],frontend:[],tools:[{label:"",self_developed:!1,ref:[],description:""}],languages:[]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","cultural_studies","digital_preservation","image","video"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/mesopotamian_royal_inscriptions/9efa71cc-aaf8-4481-a155-caa8d9fe23c1.json",{schema_version:"0.2.2",record_metadata:{uuid:"9efa71cc-aaf8-4481-a155-caa8d9fe23c1",record_created_on:"2022-11-04",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Mesopotamian Royal Inscriptions",abbr:"",type:"project",ref:[],date:[{from:"2000",to:""}],maintained:null,websites:["https://cdli.ucla.edu/projects/royal/royal.html"],project_desc:"In this sub-project of the Cuneiform Digital Library Initiative (CDLI), the focus lies on the digitization of royal and monumental texts, which despite representing a small share of the overall CDLI catalogue (20,000 of 350 000 texts) assume a disproportionately large role in history, literature, and linguistics in the several sub-fields of cuneiform studies.",places:[{place_name:{text:"Los Angeles",ref:["https://www.geonames.org/5368361/los-angeles.html"]},coordinates:{lat:"34.05223",lng:"-118.24368"}},{place_name:{text:"Oxford",ref:["https://www.geonames.org/2640729/oxford.html"]},coordinates:{lat:"51.75222",lng:"-1.25596"}},{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}}],lang:["eng"],related_institutions:[],related_entities:[{relation_type:"parent",title:"Cuneiform Digital Library Initiative",uuid:"b8097890-6eeb-43ba-890d-28e1490fde08"},{relation_type:"sibling",title:"Nimrud NW Palace",uuid:"bef67936-aeda-45ea-86fa-d06d79620459"},{relation_type:"sibling",title:"Mesopotamian Seals",uuid:"9497c5c0-0cdc-4f43-96de-4843bd246bac"},{relation_type:"sibling",title:"Oracc: The Open Richly Annotated Cuneiform Corpus",uuid:"3e56a148-845f-4a39-a7d4-c05c75cabd31"}],contacts:[{pers_name:{text:"Foxvog, Daniel A.",ref:["https://d-nb.info/gnd/1077774133"]},roles:["supervision"],websites:["https://cdli.mpiwg-berlin.mpg.de/authors/408"]}],research_data:{lang:["akk","sux"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["corpus_output","digital_preservation","inscription","semitic_studies","vre"],comment:"The start date recorded for this project is approximate."}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/mesopotamian_seals/9497c5c0-0cdc-4f43-96de-4843bd246bac.json",{schema_version:"0.2.2",record_metadata:{uuid:"9497c5c0-0cdc-4f43-96de-4843bd246bac",record_created_on:"2022-11-04",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Mesopotamian Seals",abbr:"",type:"project",ref:[],date:[{from:"2000",to:""}],maintained:null,websites:["https://cdli.ucla.edu/projects/seals/seals.html"],project_desc:"This sub-project of the Cuneiform Digital Library Initiative (CDLI) focuses explicitly on inscriptions on the Mesopotamian stamp and cylinder seals for which, despite their substantial role in the development of writing, the online resources are still difficult to be found. This project is offered to bring attention to the admittedly limited text annotation files of the CDLI as one of several avenues of research available in this field.",places:[{place_name:{text:"Los Angeles",ref:["https://www.geonames.org/5368361/los-angeles.html"]},coordinates:{lat:"34.05223",lng:"-118.24368"}},{place_name:{text:"Oxford",ref:["https://www.geonames.org/2640729/oxford.html"]},coordinates:{lat:"51.75222",lng:"-1.25596"}},{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}}],lang:["eng"],related_institutions:[],related_entities:[{relation_type:"parent",title:"Cuneiform Digital Library Initiative",uuid:"b8097890-6eeb-43ba-890d-28e1490fde08"},{relation_type:"sibling",title:"Mesopotamian Royal Inscriptions",uuid:"9efa71cc-aaf8-4481-a155-caa8d9fe23c1"},{relation_type:"sibling",title:"Nimrud NW Palace",uuid:"bef67936-aeda-45ea-86fa-d06d79620459"},{relation_type:"sibling",title:"Oracc: The Open Richly Annotated Cuneiform Corpus",uuid:"3e56a148-845f-4a39-a7d4-c05c75cabd31"}],contacts:[{pers_name:{text:"Renn, Jürgen",ref:["https://d-nb.info/gnd/121180719"]},roles:["supervision"],websites:["https://www.mpiwg-berlin.mpg.de/users/renn"]}],research_data:{lang:["akk","sux"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["corpus_output","digital_preservation","inscription","semitic_studies","vre"],comment:"The start date recorded for this project is approximate."}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/bildverarbeitung_bestimmung_von_visuellen_manuskript_und_zeichenmerkmalen/eb8e91fe-952e-48b7-af0d-c026ebe37826.json",{schema_version:"0.2.2",record_metadata:{uuid:"eb8e91fe-952e-48b7-af0d-c026ebe37826",record_created_on:"2022-02-28",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-03-29"},project:{title:"Methoden der Bildverarbeitung zur Bestimmung von visuellen Manuskript- und Zeichenmerkmalen",abbr:"",type:"project",ref:[],date:[{from:"2015",to:"2019"}],maintained:null,websites:["https://gepris.dfg.de/gepris/projekt/203079013","https://www.inf.uni-hamburg.de/inst/ab/bv-old/research.html","https://www.manuscript-cultures.uni-hamburg.de/Poster/Z03_A4_P2.pdf","https://www.manuscript-cultures.uni-hamburg.de/Projekte_p2.html"],project_desc:"This project is intended to support the research program of the SFB (Sonderforschungsbereich for Manuscript Cultures in Asia, Africa and Europe) by piloting and further development of the Advanced Manuscript Analysis Portal (AMAP), a web-based platform offering self-usable toolbox for humanists and facilitating communication between experts, as well as by development of innovative image processing methods.",places:[{place_name:{text:"Hamburg",ref:["https://www.geonames.org/2911298/hamburg.html"]},coordinates:{lat:"53.55073",lng:"9.99302"}}],lang:["deu","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Universität Hamburg",ref:["https://ror.org/00g30e956","https://www.wikidata.org/wiki/Q156725"]},websites:["https://www.uni-hamburg.de/"]}],related_entities:[{relation_type:"sibling",title:"Methoden der Manuskriptanalyse zur Wiedergewinnung verlorener Schrift",uuid:"892b783d-1788-451f-9efd-1c58bfb4b064"},{relation_type:"sibling",title:"Datenrepositorium Manuskriptkulturen",uuid:"894dcf0c-7295-4fb8-b4ba-866a5ebe3310"},{relation_type:"sibling",title:"Audition Certificates Platform",uuid:"b333a11d-b9fc-4379-9e21-fbddfa9500b1"},{relation_type:"sibling",title:"Afrikanische Stimmen in islamischen Manuskripten aus Mali: Erschließung und Erforschung afrikanischer Sprachen in arabischer Schrift (Ajami)",uuid:"eaf36ccc-5ee4-4749-80ea-7f71f479c968"},{relation_type:"sibling",title:"Beta maṣāḥǝft Manuscripts of Ethiopia and Eritrea",uuid:"169677fd-14f9-46e7-b8f1-2202fb91397c"},{relation_type:"sibling",title:"Demarginalizing Medieval Africa: Images, Texts, and Identity in Early Solomonic Ethiopia",uuid:"46121edb-516b-4dbf-ba49-e2c5f07cec2e"},{relation_type:"sibling",title:"Documentation of Gorani, an endangered language of West Iran",uuid:"17fa004d-c9d2-4ce3-8116-b7bfff5d14ed"},{relation_type:"sibling",title:"The Evolution of Islamic Societies (c. 600–1600 CE): Algorithmic Analysis into Social History",uuid:"659c0aba-3bdd-43eb-937d-dad4ad63e3fc"},{relation_type:"sibling",title:"The intertwined world of the oral and written transmission of sacred traditions in the Middle East",uuid:"bb852d81-0c6d-4413-8c20-1bb38c4db4e7"},{relation_type:"sibling",title:"Islamic Painted Page",uuid:"31534c48-6b74-4cc5-8aff-ea8dbc60c445"},{relation_type:"sibling",title:"SfarData",uuid:"81d8ad85-5da8-457f-99a3-6ab11128ef03"},{relation_type:"sibling",title:"SIHAFA: The Ideosphere of the Late Ottoman Arabic Press: Mapping the Discursive Field of Authors and Texts through Computational Approaches",uuid:"20ee58f5-f699-4262-a473-7765e249c871"},{relation_type:"sibling",title:"Understanding Written Artefacts",uuid:"9ca46873-3089-4a04-99fa-89c0c1b01213"},{relation_type:"sibling",title:"Ethio-SPaRe: Cultural Heritage of Christian Ethiopia. Salvation, Preservation, Research",uuid:"fbf007e0-7eee-4bb1-801d-568785d43d04"},{relation_type:"sibling",title:"From Translation to Creation: Changes in Ethiopic Style and Lexicon from Late Antiquity to the Middle Ages",uuid:"77ae1011-1b54-46b5-b676-02895e3300fc"},{relation_type:"sibling",title:"Corpus dei Manoscritti Copti Letterari",uuid:"c4f41a6d-9fb9-4c31-85f0-b66acfe41289"}],contacts:[{pers_name:{text:"Stiehl, Hans Siegfried",ref:["https://www.wikidata.org/wiki/Q102416616"]},roles:["supervision"],websites:["https://www.csmc.uni-hamburg.de/about/people/stiehl.html","https://www.inf.uni-hamburg.de/en/inst/ab/bv/team/stiehl.html"]}],research_data:{lang:[],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["image","research_infrastructure"],comment:"The website of the project may not work, you can find further information on the website of the funding institution (DFG:GEPRIS)."}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/methoden_der_manuskriptanalyse_zur_wiedergewinnung_verlorener_schrift/892b783d-1788-451f-9efd-1c58bfb4b064.json",{schema_version:"0.2.2",record_metadata:{uuid:"892b783d-1788-451f-9efd-1c58bfb4b064",record_created_on:"2022-02-28",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-03-29"},project:{title:"Methoden der Manuskriptanalyse zur Wiedergewinnung verlorener Schrift",abbr:"",type:"project",ref:[],date:[{from:"2011",to:"2019"}],maintained:null,websites:["https://gepris.dfg.de/gepris/projekt/203078463","https://www.manuscript-cultures.uni-hamburg.de/Poster/Z01_A4_P2.pdf","https://www.manuscript-cultures.uni-hamburg.de/Projekte_p2.html"],project_desc:"This project supports the research program of the SFB (Sonderforschungsbereich for Manuscript Cultures in Asia, Africa and Europe) by making available and further development of modern technologies that help to recover scripts that are not longer readable for the human eye due to organic deterioration or conscious interventions.",places:[{place_name:{text:"Hamburg",ref:["https://www.geonames.org/2911298/hamburg.html"]},coordinates:{lat:"53.55073",lng:"9.99302"}}],lang:["deu","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Universität Hamburg",ref:["https://ror.org/00g30e956","https://www.wikidata.org/wiki/Q156725"]},websites:["https://www.uni-hamburg.de/"]}],related_entities:[{relation_type:"sibling",title:"Datenrepositorium Manuskriptkulturen",uuid:"894dcf0c-7295-4fb8-b4ba-866a5ebe3310"},{relation_type:"sibling",title:"Methoden der Bildverarbeitung zur Bestimmung von visuellen Manuskript- und Zeichenmerkmalen",uuid:"eb8e91fe-952e-48b7-af0d-c026ebe37826"},{relation_type:"sibling",title:"Audition Certificates Platform",uuid:"b333a11d-b9fc-4379-9e21-fbddfa9500b1"},{relation_type:"sibling",title:"Afrikanische Stimmen in islamischen Manuskripten aus Mali: Erschließung und Erforschung afrikanischer Sprachen in arabischer Schrift (Ajami)",uuid:"eaf36ccc-5ee4-4749-80ea-7f71f479c968"},{relation_type:"sibling",title:"Beta maṣāḥǝft Manuscripts of Ethiopia and Eritrea",uuid:"169677fd-14f9-46e7-b8f1-2202fb91397c"},{relation_type:"sibling",title:"Demarginalizing Medieval Africa: Images, Texts, and Identity in Early Solomonic Ethiopia",uuid:"46121edb-516b-4dbf-ba49-e2c5f07cec2e"},{relation_type:"sibling",title:"Documentation of Gorani, an endangered language of West Iran",uuid:"17fa004d-c9d2-4ce3-8116-b7bfff5d14ed"},{relation_type:"sibling",title:"The Evolution of Islamic Societies (c. 600–1600 CE): Algorithmic Analysis into Social History",uuid:"659c0aba-3bdd-43eb-937d-dad4ad63e3fc"},{relation_type:"sibling",title:"The intertwined world of the oral and written transmission of sacred traditions in the Middle East",uuid:"bb852d81-0c6d-4413-8c20-1bb38c4db4e7"},{relation_type:"sibling",title:"Islamic Painted Page",uuid:"31534c48-6b74-4cc5-8aff-ea8dbc60c445"},{relation_type:"sibling",title:"SfarData",uuid:"81d8ad85-5da8-457f-99a3-6ab11128ef03"},{relation_type:"sibling",title:"SIHAFA: The Ideosphere of the Late Ottoman Arabic Press: Mapping the Discursive Field of Authors and Texts through Computational Approaches",uuid:"20ee58f5-f699-4262-a473-7765e249c871"},{relation_type:"sibling",title:"Understanding Written Artefacts",uuid:"9ca46873-3089-4a04-99fa-89c0c1b01213"},{relation_type:"sibling",title:"Ethio-SPaRe: Cultural Heritage of Christian Ethiopia. Salvation, Preservation, Research",uuid:"fbf007e0-7eee-4bb1-801d-568785d43d04"},{relation_type:"sibling",title:"From Translation to Creation: Changes in Ethiopic Style and Lexicon from Late Antiquity to the Middle Ages",uuid:"77ae1011-1b54-46b5-b676-02895e3300fc"},{relation_type:"sibling",title:"Corpus dei Manoscritti Copti Letterari",uuid:"c4f41a6d-9fb9-4c31-85f0-b66acfe41289"}],contacts:[{pers_name:{text:"Brockmann, Christian",ref:["https://d-nb.info/gnd/137576218"]},roles:["supervision"],websites:["https://www.csmc.uni-hamburg.de/about/people/brockmann.html","https://www.slm.uni-hamburg.de/igrlatphil/personen/brockmann.html"]}],research_data:{lang:[],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["research_infrastructure"],comment:"The website of the project may not work, you can find further information on the website of the funding institution (DFG:GEPRIS)."}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/mela/377201a9-9b09-4a6b-b5e8-873190633e78.json",{schema_version:"0.2.2",record_metadata:{uuid:"377201a9-9b09-4a6b-b5e8-873190633e78",record_created_on:"2021-11-01",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-05-05"},project:{title:"Middle East Librarians Association",abbr:"MELA",type:"organization",ref:["https://www.wikidata.org/wiki/Q100320015"],date:[{from:"1972",to:""}],maintained:!0,websites:["https://www.mela.us/"],project_desc:"MELA is an association of Middle East library specialists. Its mission is to facilitate communication and encourage cooperation among its members and Middle East libraries. It aims at improving area librarianship through the development of standards for the profession and education of Middle East librarians. It also compiles and disseminates information concerning Middle East libraries through various meeting and publications.",places:[{place_name:{text:"US",ref:["https://www.geonames.org/6252001/united-states.html"]},coordinates:{lat:"39.76",lng:"-98.5"}}],lang:["eng"],related_institutions:[],related_entities:[],contacts:[{pers_name:{text:"Salamon, Anaïs",ref:[]},roles:["supervision"],websites:["https://www.mcgill.ca/library/librarians/anais-salamon"]}],research_data:{lang:[],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["collaboration_platform"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/moving_frontiers/d5dd164d-1887-473f-8282-584b8d09474d.json",{schema_version:"0.2.2",record_metadata:{uuid:"d5dd164d-1887-473f-8282-584b8d09474d",record_created_on:"2023-10-31",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Moving frontiers",abbr:"",type:"project",ref:[],date:[{from:"2010",to:"2010"}],maintained:!1,websites:["https://www.universiteitleiden.nl/en/research/research-projects/humanities/moving-frontiers"],project_desc:"This project aims to create a dynamic reconstruction of historical events that revolved around the conflict between Tang China and the Arab Caliphate around 750, ultimately establishing a balance of power between the two empires in Central Asia. The methodology employed is multidisciplinary, combining historical and archaeological data related to frontier dynamics and mobility. These data will be integrated into theoretical network analysis models and Geographic Information Systems (GIS).",places:[{place_name:{text:"Leiden",ref:["https://www.geonames.org/2751773/leiden.html"]},coordinates:{lat:"52.15833",lng:"4.49306"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Leiden University",ref:["https://www.wikidata.org/wiki/Q156598","https://ror.org/027bh9e22"]},websites:["https://www.universiteitleiden.nl/en"]}],related_entities:[{relation_type:"cooperation",title:"The formation of Islam",uuid:"33a6a747-4180-4e28-a99c-2bf6dcf53200"}],contacts:[{pers_name:{text:"Riep, Maria",ref:["https://d-nb.info/gnd/1127749447"]},roles:["supervision"],websites:["https://www.universiteitleiden.nl/en/staffmembers/maria-riep#tab-1"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[]},data:{datatypes:[{label:"",stage:"raw",licensing:[],open_access:0}],repositories:[{label:"",accessibility:"public",ref:[],licensing:[],description:""}]}},stack:{database:[],backend:[],frontend:[],tools:[{label:"",self_developed:!1,ref:[],description:""}],languages:[]},policies:[{description:"",ref:[]}],keywords:["geodata","history_studies","islamic_studies","network_analysis"],comment:"The project is concluded"}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/multi_cast/b37c6bd1-90d3-4718-ab58-fb1d60873186.json",{schema_version:"0.2.2",record_metadata:{uuid:"b37c6bd1-90d3-4718-ab58-fb1d60873186",record_created_on:"2022-06-16",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Multilingual Corpus of Annotated Spoken Texts",abbr:"Multi-CAST",type:"project",ref:[],date:[{from:"2000",to:"2021"}],maintained:null,websites:["https://multicast.aspra.uni-bamberg.de/#references","https://www.uni-bamberg.de/aspra/forschung/projekte/multi-cast-multilingual-corpus-of-annotated-spoken-texts/"],project_desc:"Multi-CAST is a collection of annotated texts from a typologically diverse selection of 15 languages including endangered ones. The corpus is freely accessible via an online platform which provides multiple levels of parallel annotations, time-aligned with audio recordings, chiefly monologic, natural narrative texts from 15 languages, encompassing roughly 25,000 clause units available in multiple file formats, including as EAF files for the linguistic annotation software ELAN, as XML and TSV files, and via the multicastR package for R.",places:[{place_name:{text:"Bamberg",ref:["https://www.geonames.org/2952984/bamberg.html"]},coordinates:{lat:"49.89873",lng:"10.90067"}}],lang:["deu","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Otto-Friedrich-Universität Bamberg",ref:["https://www.wikidata.org/wiki/Q707272","https://ror.org/01c1w6d29"]},websites:["https://www.uni-bamberg.de/"]}],related_entities:[{relation_type:"sibling",title:"Documentation of Gorani, an endangered language of West Iran",uuid:"17fa004d-c9d2-4ce3-8116-b7bfff5d14ed"},{relation_type:"sibling",title:"Bamberg Lexical Database for Contemporary Iranian Languages",uuid:"614f4c99-0d96-48a9-baa5-48a402a8deec"},{relation_type:"sibling",title:"Compilation and critical edition of pre-19th century Kurmanji Kurdish",uuid:"d0bda69f-d8c4-4521-ab18-af2c097ffcfc"},{relation_type:"sibling",title:"Post-predicate Elements in Iranian: Inheritance, Contact, and Information Structure",uuid:"c1a2957b-0c24-46e6-9a67-381997525a87"}],contacts:[{pers_name:{text:"Haig, Geoffrey",ref:["https://d-nb.info/gnd/1016008090"]},roles:["supervision"],websites:["https://www.uni-bamberg.de/aspra/team/aktuelles-team/prof-dr-geoffrey-haig/"]}],research_data:{lang:["atz","dar","eng","erk","fas","grc","kac","kgv","kur","tab","tdn","tio","tuh","vra","zho"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["audio","corpus_resource","language_documentation","linguistics","translation"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/newnlp/9a4a2962-fbf2-4a52-a1ea-53af8e3d0842.json",{schema_version:"0.2.2",record_metadata:{uuid:"9a4a2962-fbf2-4a52-a1ea-53af8e3d0842",record_created_on:"2022-11-23",record_created_by:"Bednarkiewicz, Maroussia",last_edited_on:"2022-11-25"},project:{title:"New Languages for NLP",abbr:"new nlp",type:"project",ref:[],date:[{from:"2021",to:"2022"}],maintained:null,websites:["https://newnlp.princeton.edu/","https://github.com/New-Languages-for-NLP"],project_desc:"The practical aim of this project is to add so-called under-represented or low-resource languages to the library of spaCy. Ultimately, the more general goal consists in increasing the diversity of languages and trained models to help natural language processing reflect the linguistic diversity of our world.",places:[{place_name:{text:"Princeton",ref:["https://www.geonames.org/5102922/princeton.html"]},coordinates:{lat:"40.34872",lng:"-74.65905"}}],related_institutions:[{relation_type:"host",org_name:{text:"Princeton University",ref:["https://ror.org/00hx57361","https://www.wikidata.org/wiki/Q21578"]},websites:["https://www.princeton.edu/"]}],lang:["eng"],related_entities:[],contacts:[{pers_name:{text:"Ermolaev, Natalia",ref:[]},roles:["supervision"],websites:["https://cdh.princeton.edu/people/natasha-ermolaev/"]},{pers_name:{text:"Janco, Andrew",ref:["https://d-nb.info/gnd/1064765017"]},roles:["supervision"],websites:["https://apjan.co/"]}],research_data:{lang:["ara","efi","eng","kan","que","tir","tur","yid","yor"],sustainability_plan:null,publications:{open_access:100,licensing:["MIT"]},data:{datatypes:[],repositories:[]}},stack:{database:[],backend:[],frontend:[],tools:[{label:"cadet",self_developed:!0,ref:["https://github.com/New-Languages-for-NLP/cadet"],description:"Help add new languages into the spaCy library by generating and combining all the required units for a language entry. The tool also exists in the form of a notebook available on the GitHub page of the project."}],languages:["python"]},policies:[],keywords:["literary_studies","machine_learning","nlp"],comment:"The research data include projects in Dostoevsky's Russian, Old Chinese, and Kanbun, for which there are no ISO-639-2 language codes. The Arabic language data is also in Classical Arabic, for which there is no separate ISO-639-2 code."}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/nimrud_palace/bef67936-aeda-45ea-86fa-d06d79620459.json",{schema_version:"0.2.2",record_metadata:{uuid:"bef67936-aeda-45ea-86fa-d06d79620459",record_created_on:"2022-11-04",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Nimrud NW Palace",abbr:"",type:"project",ref:[],date:[{from:"2000",to:""}],maintained:null,websites:["https://cdli.ucla.edu/projects/nimrud/index.html"],project_desc:"This project is a collaboration between Cuneiform Digital Library Initiative (CDLI) and a German researcher Klaudia Englund and is dedicated to the digital preservation of the heritage of the Nimrud palace, which suffered severe damage at the hands of ISIS. The main goal of the project lies in preparing for display the image and text files that the researcher gathered in the course of her work on the Northwest Palace and the over 600 relief slabs mounted along the walls of the building’s main rooms.",places:[{place_name:{text:"Los Angeles",ref:["https://www.geonames.org/5368361/los-angeles.html"]},coordinates:{lat:"34.05223",lng:"-118.24368"}},{place_name:{text:"Oxford",ref:["https://www.geonames.org/2640729/oxford.html"]},coordinates:{lat:"51.75222",lng:"-1.25596"}},{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}}],lang:["eng"],related_institutions:[],related_entities:[{relation_type:"parent",title:"Cuneiform Digital Library Initiative",uuid:"b8097890-6eeb-43ba-890d-28e1490fde08"},{relation_type:"sibling",title:"Mesopotamian Royal Inscriptions",uuid:"9efa71cc-aaf8-4481-a155-caa8d9fe23c1"},{relation_type:"sibling",title:"Mesopotamian Seals",uuid:"9497c5c0-0cdc-4f43-96de-4843bd246bac"},{relation_type:"sibling",title:"Oracc: The Open Richly Annotated Cuneiform Corpus",uuid:"3e56a148-845f-4a39-a7d4-c05c75cabd31"}],contacts:[{pers_name:{text:"Englund, Klaudia",ref:["https://viaf.org/viaf/30195222"]},roles:["supervision"],websites:[]}],research_data:{lang:["akk","sux"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["archaeology","corpus_output","digital_preservation","inscription","semitic_studies","vre"],comment:"The start date recorded for this project is approximate."}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/nomansland/e050deba-6e1d-4d82-851b-cf6c1f7187a5.json",{schema_version:"0.2.2",record_metadata:{uuid:"e050deba-6e1d-4d82-851b-cf6c1f7187a5",record_created_on:"2022-05-10",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"NoMansLand: Nomads’ Manuscripts Landscape",abbr:"NoMansLand",type:"project",ref:[],date:[{from:"2020-01-01",to:"2022-12-31"}],maintained:null,websites:["https://www.oeaw.ac.at/iran/nomansland/","https://www.oeaw.ac.at/acdh/projects/nomansland-nomads-manuscripts-landscape","https://www.oeaw.ac.at/en/iran/research/manuscript-cultures/nomads-manuscripts-landscape/"],project_desc:"The focus of this projects lies on Iranian and Central Asian societies in the period between the 13th and 15th century which witnessed nomadic conquest after the rise of Chinggis Khan. The process of transculturation and interaction between the sedentary Muslim conquered and nomadic conqueror is documented in largely unstudied manuscripts from that period, which will be explored and analyzed in the course of this project. The technical side of the project will be responsible for developing and implementing of an independent Analytical Database of Islamic Manuscripts which will serve both as a digital repository of manuscripts and an analytical tool that will allow users to do wider research on Islamic and Eurasian studies.",places:[{place_name:{text:"Vienna",ref:["https://www.geonames.org/2761369/vienna.html"]},coordinates:{lat:"48.20849",lng:"16.37208"}}],lang:["deu","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Österreichische Akademie der Wissenschaften",ref:["https://www.wikidata.org/wiki/Q299015","https://ror.org/03anc3s24"]},websites:["https://www.oeaw.ac.at/en/"]}],related_entities:[{relation_type:"sibling",title:"WIBARAB: What is Bedouin-Type Arabic?",uuid:"e9cb8ab1-2d2c-4cc3-a44d-a793220a8638"},{relation_type:"sibling",title:"Genesis Rabbah Loanwords",uuid:"94044a63-eae5-4e1d-ba04-64874109fc36"},{relation_type:"sibling",title:"Vienna Corpus of Arabic Varieties",uuid:"8f343a28-a873-449c-b359-efcfab7d1201"},{relation_type:"sibling",title:"Shawi",uuid:"68422d65-ccba-4dcb-8a0e-bd4f3f9e1dc9"},{relation_type:"sibling",title:"Linguistic dynamics in the Greater Tunis Area: a corpus-based approach (TUNICO)",uuid:"79462111-75a7-4fa0-8e11-9d424293a074"},{relation_type:"sibling",title:"TUNOCENT",uuid:"325a929a-6764-41e1-b452-6556209fa74f"}],contacts:[{pers_name:{text:"De Nicola, Bruno",ref:["https://d-nb.info/gnd/1081572116"]},roles:["supervision"],websites:["https://www.oeaw.ac.at/en/iran/institute/staff/research-staff/bruno-de-nicola#c50728"]}],research_data:{lang:["ara","fas"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["corpus_output","digital_preservation","islamic_studies","manuscript"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/onomasticon_arabicum/ddbb569b-1542-40fe-9fa7-3842610945c8.json",{schema_version:"0.2.2",record_metadata:{uuid:"ddbb569b-1542-40fe-9fa7-3842610945c8",record_created_on:"2021-11-01",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-05-05"},project:{title:"Onomasticon Arabicum",abbr:"OA",type:"project",ref:[],date:[{from:"1966-08",to:""}],maintained:null,websites:["https://onomasticon.irht.cnrs.fr"],project_desc:"Onomasticon Arabicum (OA) is an Arabic biographical database created in the course of a long-living project reaching back to the 1960s. It contains more than 27000 entries about scholars and celebrities from the first Muslim millenary. Its searching tools are designed to allow the user separate interrogation on any of the different elements of the Arabo-Muslim names, dates and places, reconstructing the identity of a person, trace ways of knowledge transmission and frame historical contexts.",places:[{place_name:{text:"Paris",ref:["https://www.geonames.org/2988506/paris.html"]},coordinates:{lat:"48.85339",lng:"2.34864"}}],lang:["ara","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Institut de Recherche et d’Histoire des Textes (IRHT)",ref:["https://d-nb.info/gnd/1007403-X","https://ror.org/05evznf71"]},websites:["https://www.irht.cnrs.fr/"]}],related_entities:[],contacts:[{pers_name:{text:"Müller, Christian",ref:[]},roles:["supervision"],websites:["https://www.irht.cnrs.fr/fr/annuaire/muller-christian","https://www.universiteitleiden.nl/en/news/2019/03/meet-our-spring-fellow-christian-muller"]},{pers_name:{text:"Roiland, Muriel",ref:["https://d-nb.info/gnd/1074308999"]},roles:["supervision"],websites:["https://www.irht.cnrs.fr/fr/annuaire/roiland-muriel"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","biographical_data","encyclopedia","geodata","history_studies","network_analysis","vre"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/open_arabic_pe/4ed4b218-0a06-4ae1-857a-1d87a9371e08.json",{schema_version:"0.2.2",record_metadata:{uuid:"4ed4b218-0a06-4ae1-857a-1d87a9371e08",record_created_on:"2023-07-10",record_created_by:"Till Grallert",last_edited_on:"2023-07-10"},project:{title:"Open Arabic Periodical Editions: A framework for bootstrapped digital scholarly editions outside the global north",abbr:"OpenArabicPE",type:"project",ref:[],date:[{from:"2015",to:""}],maintained:null,websites:["https://openarabicpe.github.io/"],project_desc:"Corpus of TEI/XML editions of Arabic periodicals, a static webview, and a framework of workflows for digital scholarly editions following the principles of minimal computing to address the affordances of the digital for cultural artefacts from the Global South",places:[{place_name:{text:"Beirut",ref:["https://www.geonames.org/276781/beirut.html"]},coordinates:{lat:"33.89332",lng:"35.50157"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"",ref:[]},websites:[]}],related_entities:[],contacts:[{pers_name:{text:"Grallert, Till",ref:[]},roles:["supervision"],websites:["https://openarabicpe.github.io/"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[]},data:{datatypes:[{label:"",stage:"raw",licensing:[],open_access:0}],repositories:[{label:"",accessibility:"public",ref:[],licensing:[],description:""}]}},stack:{database:[],backend:[],frontend:[],tools:[{label:"",self_developed:!1,ref:[],description:""}],languages:[]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","corpus_output","digital_preservation","islamic_studies","media_studies"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/open_encyclopedia_system/2860c96f-323e-4c33-97c6-4219bcf99f52.json",{schema_version:"0.2.2",record_metadata:{uuid:"2860c96f-323e-4c33-97c6-4219bcf99f52",record_created_on:"2021-11-01",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-05-05"},project:{title:"Open Encyclopedia System",abbr:"OES",type:"project",ref:[],date:[{from:"2016",to:"2020"}],maintained:null,websites:["https://www.open-encyclopedia-system.org","https://www.cedis.fu-berlin.de/services/projektentwicklung/abgeschlossen/oes/index.html"],project_desc:"OES is a standardized publishing platform for humanities and social sciences. Contrary to existing academic encyclopedias the OES taps into the full potential of e-publishing by adding new solutions to the already available options: it offers flexible workflows, configurable participation models, various options for customizing the peer review process and features that facilitate the engagement and management of a community.",places:[{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}},{place_name:{text:"Munich",ref:["https://www.geonames.org/2867714/munich.html"]},coordinates:{lat:"48.13743",lng:"11.57549"}}],lang:["deu","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Freie Universität Berlin",ref:["https://ror.org/046ak2485","https://www.wikidata.org/wiki/Q153006"]},websites:["https://www.fu-berlin.de/"]},{relation_type:"host",org_name:{text:"Bayerische Staatsbibliothek",ref:["https://ror.org/031h71w90","https://www.wikidata.org/wiki/Q256507"]},websites:["https://www.bsb-muenchen.de/"]}],related_entities:[{relation_type:"cooperation",title:"Keywords for the Study of the Arabic Literary and Manuscript Tradition",uuid:"7050ac6d-523c-4ba0-b381-48ec200ff6c4"}],contacts:[{pers_name:{text:"Geukes, Albert",ref:[]},roles:["supervision"],websites:["https://www.cedis.fu-berlin.de/cedis/mitarbeiter/beschaeftigte/ageukes.html"]}],research_data:{lang:[],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["digital_publishing","research_infrastructure"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/open_iti/bef2e507-b663-422e-9dd3-7e49ca299f05.json",{schema_version:"0.2.2",record_metadata:{uuid:"bef2e507-b663-422e-9dd3-7e49ca299f05",record_created_on:"2021-11-01",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-05-05"},project:{title:"Open Islamicate Texts Initiative",abbr:"OpenITI",type:"project",ref:[],date:[{from:"2019-09-01",to:"2021-12-31"}],maintained:null,websites:["https://openiti.org/","https://alraqmiyyat.github.io/OpenITI/","https://github.com/OpenITI"],project_desc:"Open ITI is a multi-institutional project which aims to construct the first machine-actionable scholarly corpus of premodern Islamicate texts in Arabic, Persian and other languages of the Islamic world. This new textual infrastructure will enhance the implementation of new forms of macro textual and digital scholarship in the inter-related fields of Islamic, Persian, and Arabic Studies",places:[{place_name:{text:"College Park",ref:["https://www.geonames.org/4351977/college-park.html"]},coordinates:{lat:"38.98067",lng:"-76.93692"}},{place_name:{text:"Leipzig",ref:["https://www.geonames.org/2879139/leipzig.html"]},coordinates:{lat:"51.33962",lng:"12.37129"}},{place_name:{text:"London",ref:["https://www.geonames.org/2643743/london.html"]},coordinates:{lat:"51.50853",lng:"-0.12574"}},{place_name:{text:"Vienna",ref:["https://www.geonames.org/2761369/vienna.html"]},coordinates:{lat:"48.20849",lng:"16.37208"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"University of Maryland, College Park",ref:["https://ror.org/010prmy50","https://www.wikidata.org/wiki/Q503415"]},websites:["https://www.umd.edu/"]},{relation_type:"host",org_name:{text:"Universität Leipzig",ref:["https://ror.org/03s7gtk40","https://www.wikidata.org/wiki/Q154804"]},websites:["https://www.uni-leipzig.de/"]},{relation_type:"host",org_name:{text:"The Aga Khan University (International)",ref:["https://www.wikidata.org/wiki/Q4690953"]},websites:["https://www.aku.edu/Pages/united-kingdom.aspx","https://www.aku.edu/Pages/home.aspx"]},{relation_type:"host",org_name:{text:"Universität Wien",ref:["https://ror.org/04d836q62","https://www.wikidata.org/wiki/Q165980"]},websites:["https://www.univie.ac.at/"]}],related_entities:[{relation_type:"sibling",title:"Kitab",uuid:"d4d49850-4711-4d43-97e9-c3563626d8df"},{relation_type:"child",title:"Automatic Collation for Diversifying Corpora",uuid:"5e7ab61a-0c33-44fc-8175-a1930e6d08bc"},{relation_type:"child",title:"CorpusBuilder",uuid:"eb1591d7-75b9-4d62-9f67-0679e627587b"},{relation_type:"child",title:"Open Islamicate Texts Initiative Arabic-script OCR Catalyst Project",uuid:"786edd87-476e-42a6-bcc0-521833ec73e5"},{relation_type:"child",title:"eScriptorium",uuid:"31ad93ff-ca97-4cf0-b30c-60685624e2c8"},{relation_type:"cooperation",title:"The Evolution of Islamic Societies (c. 600–1600 CE): Algorithmic Analysis into Social History",uuid:"659c0aba-3bdd-43eb-937d-dad4ad63e3fc"},{relation_type:"cooperation",title:"OpenITI_NgramReader",uuid:"d1d73911-81dc-4a65-bf1b-162f7fb2e84e"}],contacts:[{pers_name:{text:"Romanov, Maxim",ref:[]},roles:["investigation"],websites:["https://www.aai.uni-hamburg.de/voror/personen/romanov.html"]}],research_data:{lang:["ara","fas"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["annotation","computational_text_analysis","corpus_output","digital_preservation","islamic_studies","machine_learning","manuscript","nlp","ocr"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/open_iti_aocp/786edd87-476e-42a6-bcc0-521833ec73e5.json",{schema_version:"0.2.2",record_metadata:{uuid:"786edd87-476e-42a6-bcc0-521833ec73e5",record_created_on:"2022-09-08",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Open Islamicate Texts Initiative Arabic-script OCR Catalyst Project",abbr:"OpenITI AOCP",type:"project",ref:[],date:[{from:"2019-09",to:"2021-12"}],maintained:null,websites:["https://openiti.org/projects/OpenITI%20AOCP%20Phase%20One.html","https://mith.umd.edu/research/openiti-aocp/"],project_desc:"This project is led by an interdisciplinary team of humanities, computer science, and digital humanities co-principal investigators with the scope to challenge the technical and organizational barriers that historically have stymied the development of Arabic-script OCR and digital text production for Islamicate Studies. Its primary goal is to achieve approximately 97% character accuracy rates (CARs) for OCR on the most used Persian and Arabic print typefaces.",places:[{place_name:{text:"College Park",ref:["https://www.geonames.org/4351977/college-park.html"]},coordinates:{lat:"38.98067",lng:"-76.93692"}},{place_name:{text:"Leipzig",ref:["https://www.geonames.org/2879139/leipzig.html"]},coordinates:{lat:"51.33962",lng:"12.37129"}},{place_name:{text:"London",ref:["https://www.geonames.org/2643743/london.html"]},coordinates:{lat:"51.50853",lng:"-0.12574"}},{place_name:{text:"Vienna",ref:["https://www.geonames.org/2761369/vienna.html"]},coordinates:{lat:"48.20849",lng:"16.37208"}}],lang:["eng"],related_institutions:[],related_entities:[{relation_type:"parent",title:"Open Islamicate Texts Initiative",uuid:"bef2e507-b663-422e-9dd3-7e49ca299f05"},{relation_type:"parent",title:"SHARIAsource",uuid:"1b2ca0bf-fb29-4b5c-852b-2eedd6a85773"},{relation_type:"sibling",title:"Automatic Collation for Diversifying Corpora",uuid:"5e7ab61a-0c33-44fc-8175-a1930e6d08bc"},{relation_type:"sibling",title:"CorpusBuilder",uuid:"eb1591d7-75b9-4d62-9f67-0679e627587b"}],contacts:[{pers_name:{text:"Allen, Jonathan",ref:[]},roles:["investigation"],websites:["https://sllc.umd.edu/directory/jonathan-allen"]}],research_data:{lang:["ara","fas","tur","urd"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["corpus_resource","islamic_studies","machine_learning","nlp","ocr"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/open_iti_ngram_reader/d1d73911-81dc-4a65-bf1b-162f7fb2e84e.json",{schema_version:"0.2.2",record_metadata:{uuid:"d1d73911-81dc-4a65-bf1b-162f7fb2e84e",record_created_on:"2023-02-01",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"OpenITI_NgramReader",abbr:"",type:"project",ref:[],date:[{from:"2023",to:""}],maintained:!0,websites:["https://eis1600.aai.uni-hamburg.de/shiny/OpenITI_NgramReader/"],project_desc:"The NgramReader analyzes and visualizes the chronological occurrence of words and phrases based on the OpenITI corpus data. It enables the combination of various morphological forms and the exploration of object classes.",places:[{place_name:{text:"Hamburg",ref:["https://www.geonames.org/2911298/hamburg.html"]},coordinates:{lat:"53.55073",lng:"9.99302"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Universität Hamburg",ref:["https://ror.org/00g30e956","https://www.wikidata.org/wiki/Q156725"]},websites:["https://www.uni-hamburg.de/"]}],related_entities:[{relation_type:"cooperation",title:"The Evolution of Islamic Societies (c. 600–1600 CE): Algorithmic Analysis into Social History",uuid:"659c0aba-3bdd-43eb-937d-dad4ad63e3fc"},{relation_type:"cooperation",title:"Open Islamicate Texts Initiative",uuid:"bef2e507-b663-422e-9dd3-7e49ca299f05"}],contacts:[{pers_name:{text:"Romanov, Maxim",ref:[]},roles:["supervision"],websites:["https://www.aai.uni-hamburg.de/voror/personen/romanov.html"]}],research_data:{lang:[],sustainability_plan:null,publications:{open_access:0,licensing:[]},data:{datatypes:[{label:"",stage:"raw",licensing:[],open_access:0}],repositories:[{label:"",accessibility:"public",ref:[],licensing:[],description:""}]}},stack:{database:[],backend:[],frontend:[],tools:[{label:"",self_developed:!1,ref:[],description:""}],languages:[]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","computational_text_analysis","corpus_resource","history_studies","linguistics","visualization"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/oracc/3e56a148-845f-4a39-a7d4-c05c75cabd31.json",{schema_version:"0.2.2",record_metadata:{uuid:"3e56a148-845f-4a39-a7d4-c05c75cabd31",record_created_on:"2023-01-13",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Oracc: The Open Richly Annotated Cuneiform Corpus",abbr:"Oracc",type:"project",ref:["https://urn.fi/urn:nbn:fi:lb-2022031705"],date:[{from:"2012",to:""}],maintained:null,websites:["http://oracc.museum.upenn.edu/","http://oracc.museum.upenn.edu/cdli/pager"],project_desc:"Oracc emerged from the CDLI project. It is a is a collaborative effort to develop a complete multilingual corpus of cuneiform whose rich annotation and open licensing support the next generation of scholarly research.",places:[{place_name:{text:"Los Angeles",ref:["https://www.geonames.org/5368361/los-angeles.html"]},coordinates:{lat:"34.05223",lng:"-118.24368"}},{place_name:{text:"Oxford",ref:["https://www.geonames.org/2640729/oxford.html"]},coordinates:{lat:"51.75222",lng:"-1.25596"}},{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}}],lang:["eng"],related_institutions:[],related_entities:[{relation_type:"parent",title:"Cuneiform Digital Library Initiative",uuid:"b8097890-6eeb-43ba-890d-28e1490fde08"},{relation_type:"sibling",title:"Mesopotamian Royal Inscriptions",uuid:"9efa71cc-aaf8-4481-a155-caa8d9fe23c1"},{relation_type:"sibling",title:"Nimrud NW Palace",uuid:"bef67936-aeda-45ea-86fa-d06d79620459"},{relation_type:"sibling",title:"Mesopotamian Seals",uuid:"9497c5c0-0cdc-4f43-96de-4843bd246bac"}],contacts:[{pers_name:{text:"Tinney, Stephen J.",ref:["https://viaf.org/viaf/18932290"]},roles:["supervision"],websites:["https://www.ling.upenn.edu/people/tinney"]}],research_data:{lang:["akk","arc","elx","fas","hit","sux","syr","uga","xeb","xur"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["corpus_output","digital_preservation","history_studies","inscription","semitic_studies","vre"],comment:"The start date recorded for this project is approximate."}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/orient_digital/a4fa5143-90d2-42ba-a8a1-424b09696b1c.json",{schema_version:"0.2.2",record_metadata:{uuid:"a4fa5143-90d2-42ba-a8a1-424b09696b1c",record_created_on:"2021-11-01",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-05-05"},project:{title:"Orient-Digital",abbr:"",type:"project",ref:[],date:[{from:"2020",to:"2023"}],maintained:!0,websites:["https://staatsbibliothek-berlin.de/die-staatsbibliothek/abteilungen/orient/aufgaben-/-profil/projekte/dfg-projekt-orient-digital","https://www.qalamos.net/"],project_desc:"Orient-Digital is a union catalogue and a portal for oriental manuscripts kept in Germany. It will contain the metadata of Arabic, Persian, and Ottoman-Turkish manuscripts from more than 25 cooperating institutions and will provide links to the digitized manuscripts that are available online.",places:[{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}},{place_name:{text:"Gotha",ref:["https://www.geonames.org/2918752/gotha.html"]},coordinates:{lat:"50.94823",lng:"10.70193"}},{place_name:{text:"Leipzig",ref:["https://www.geonames.org/2879139/leipzig.html"]},coordinates:{lat:"51.33962",lng:"12.37129"}},{place_name:{text:"Munich",ref:["https://www.geonames.org/2867714/munich.html"]},coordinates:{lat:"48.13743",lng:"11.57549"}}],lang:["deu"],related_institutions:[{relation_type:"host",org_name:{text:"Staatsbibliothek zu Berlin",ref:["https://ror.org/02ysgg478","https://www.wikidata.org/wiki/Q170109"]},websites:["https://staatsbibliothek-berlin.de/"]},{relation_type:"host",org_name:{text:"Universität Erfurt",ref:["https://ror.org/03606hw36","https://www.wikidata.org/wiki/Q702524"]},websites:["https://www.uni-erfurt.de/"]},{relation_type:"host",org_name:{text:"Universität Leipzig",ref:["https://ror.org/03s7gtk40","https://www.wikidata.org/wiki/Q154804"]},websites:["https://www.uni-leipzig.de/"]},{relation_type:"host",org_name:{text:"Bayerische Staatsbibliothek",ref:["https://ror.org/031h71w90","https://www.wikidata.org/wiki/Q256507"]},websites:["https://www.bsb-muenchen.de/"]}],related_entities:[{relation_type:"child",title:"Qalamos",uuid:"3c5b84d0-791c-43bc-ab68-7372478bc568"}],contacts:[{pers_name:{text:"Rauch, Christoph",ref:["https://d-nb.info/gnd/1102171662"]},roles:["supervision"],websites:["https://staatsbibliothek-berlin.de/die-staatsbibliothek/abteilungen/orient/kontakt"]}],research_data:{lang:["ara","fas","tur"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["catalog","digital_preservation","manuscript"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/ocimco/97408d45-9570-4cad-a623-6007573bf070.json",{schema_version:"0.2.2",record_metadata:{uuid:"97408d45-9570-4cad-a623-6007573bf070",record_created_on:"2023-11-07",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Oxford Cambridge Islamic Manuscript Catalogue Online",abbr:"OCIMCO",type:"project",ref:[],date:[{from:"2009",to:"2011"}],maintained:null,websites:["https://www.fihrist.org.uk/"],project_desc:"This project aims to improve electronic access to the UK's significant Islamic manuscript collections at Oxford and Cambridge universities. It plans to create 10,000 summary records using a TEI P5 schema for future detailed descriptions, making these resources accessible through Oxford University Library Services and potentially contributing to the European Manuscriptorum. Collaboration with the Islamic Manuscript Association and other initiatives is a key focus.",places:[{place_name:{text:"Oxford",ref:["https://www.geonames.org/2640729/oxford.html"]},coordinates:{lat:"51.75222",lng:"-1.25596"}},{place_name:{text:"Cambridge",ref:["https://www.geonames.org/2653941/cambridge.html"]},coordinates:{lat:"52.2",lng:"0.11667"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"University of Cambridge",ref:["https://www.wikidata.org/wiki/Q35794","https://ror.org/013meh722"]},websites:["https://www.cam.ac.uk/"]},{relation_type:"host",org_name:{text:"University of Oxford",ref:["https://www.wikidata.org/wiki/Q34433","https://ror.org/052gg0110"]},websites:["https://www.ox.ac.uk/"]}],related_entities:[{relation_type:"child",title:"Union Catalogue of Manuscripts from the Islamicate World",uuid:"9734b5c3-fa35-4e45-878e-1deb62db97d5"}],contacts:[{pers_name:{text:"Evison, Gillian",ref:[]},roles:["supervision"],websites:[]}],research_data:{lang:["amh","ara","ave","ben","bod","chg","cop","dan","deu","eng","fas","fra","guj","hau","heb","hin","hye","ita","jav","jpr","jrb","kan","kas","kur","lat","mal","mar","mon","pal","por","san","snd","spa","syr","tam","tel","tur","und","urd","zho"],sustainability_plan:null,publications:{open_access:0,licensing:[]},data:{datatypes:[{label:"",stage:"raw",licensing:[],open_access:0}],repositories:[{label:"",accessibility:"public",ref:[],licensing:[],description:""}]}},stack:{database:[],backend:[],frontend:[],tools:[{label:"",self_developed:!1,ref:[],description:""}],languages:[]},policies:[{description:"",ref:[]}],keywords:["african_studies","arabic_studies","catalog","digital_preservation","iranian_studies","islamic_studies","jewish_studies","manuscript","semitic_studies","tei","turkology"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/paleocoran/d5448b02-b57f-429d-9553-637cc2add035.json",{schema_version:"0.2.2",record_metadata:{uuid:"d5448b02-b57f-429d-9553-637cc2add035",record_created_on:"2021-11-01",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-05-05"},project:{title:"Paleocoran",abbr:"",type:"project",ref:[],date:[{from:"2015",to:"2018"}],maintained:null,websites:["https://paleocoran.de/index","https://www.bbaw.de/forschung/paleocoran"],project_desc:"PALEOCORAN examines Qur’anic manuscripts that once belonged to the ‘Amr ibn al-‘Āṣ Mosque in al-Fusṭāṭ (Old Cairo) – one of the most significant Qur’anic Libraries – and are now scattered across the globe. The main objective of the project is to reconstruct the library and to make the manuscripts available digitally.",places:[{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}},{place_name:{text:"Paris",ref:["https://www.geonames.org/2988506/paris.html"]},coordinates:{lat:"48.85339",lng:"2.34864"}}],lang:["deu","eng","fra"],related_institutions:[{relation_type:"host",org_name:{text:"Berlin-Brandenburgische Akademie der Wissenschaften",ref:["https://ror.org/05jgq9443","https://www.wikidata.org/wiki/Q219989"]},websites:["https://www.bbaw.de/"]},{relation_type:"host",org_name:{text:"Collège de France",ref:["https://www.wikidata.org/wiki/Q202660","https://ror.org/04ex24z53"]},websites:["https://www.college-de-france.fr/fr"]}],related_entities:[{relation_type:"sibling",title:"Corpus Coranicum",uuid:"0fd7b9cd-fdae-441b-a6fd-a791d4583ce0"},{relation_type:"cooperation",title:"Coranica",uuid:"5f57a071-60c1-4fd2-b191-8fa8d15d70bb"}],contacts:[{pers_name:{text:"Marx, Michael",ref:[]},roles:["supervision"],websites:["https://www.bbaw.de/die-akademie/mitarbeiterinnen-mitarbeiter/marx-michael"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["digital_edition","digital_preservation","islamic_studies","manuscript","religious_text","translation","vre"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/patterns_of_knowledge_circulation/c2c309a5-923c-4759-ae83-f870b10dceff.json",{schema_version:"0.2.2",record_metadata:{uuid:"c2c309a5-923c-4759-ae83-f870b10dceff",record_created_on:"2022-07-27",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Patterns of Knowledge Circulation: The Transmission and Reception of Jewish Esoteric Knowledge in Manuscript and Print in Early Modern East-Central Europe (1500-1750)",abbr:"",type:"project",ref:[],date:[{from:"2019-01-04",to:"2024-03-31"}],maintained:!0,websites:["https://www.geschkult.fu-berlin.de/en/e/knowledge_patterns/index.html","https://gepris.dfg.de/gepris/projekt/401023278"],project_desc:"This project aims to explore how Jewish esoteric knowledge circulated throughout history in multiple moves of transmission and reception that took place in various social, cultural, and material contexts in early modern East-Central Europe. To this end it will provide a systematic digital catalogue and quantitative analysis of esoteric Jewish texts produced and in circulation in East-Central Europe from 1500 to 1750. The catalogue will provide grounds for further analysis of transmission, reception, and movement of these texts and is designed to facilitate further qualitative studies of patterns of knowledge transmission based on quantitative analysis of relevant sources.",places:[{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}}],lang:["deu","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Freie Universität Berlin",ref:["https://ror.org/046ak2485","https://www.wikidata.org/wiki/Q153006"]},websites:["https://www.fu-berlin.de/"]}],related_entities:[{relation_type:"sibling",title:"A Digital Synopsis of the Mishnah and Tosefta",uuid:"71ff37e4-7e16-4c1f-b0a9-9bf47778d41f"}],contacts:[{pers_name:{text:"Paluch, Agata",ref:["https://d-nb.info/gnd/1229106316"]},roles:["supervision"],websites:["https://www.geschkult.fu-berlin.de/e/judaistik/mitarbeiter/002Mitarbeiter_innen/paluch.html"]}],research_data:{lang:["heb"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python","jewish_studies"]},policies:[{description:"",ref:[]}],keywords:["catalog","digital_preservation","jewish_studies","manuscript","religion_studies","religious_text","vre"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/digitalisierung_der_handschriften_ubl_1/0a75cf74-9cbe-4ce2-9799-ee16dcc1e88e.json",{schema_version:"0.2.2",record_metadata:{uuid:"0a75cf74-9cbe-4ce2-9799-ee16dcc1e88e",record_created_on:"2022-03-29",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-03-31"},project:{title:"Pilotprojekt zur datenbankgestützten Erschließung und digitalen Bereitstellung der neu erworbenen arabischen, persischen und türkischen Handschriften der Universitätsbibliothek Leipzig",abbr:"",type:"project",ref:[],date:[{from:"2006-08-01",to:"2008-01-31"}],maintained:null,websites:["https://www.ub.uni-leipzig.de/forschungsbibliothek/projekte/projekte-chronologisch-alle/arabische-persische-und-tuerkische-handschriften-pilotprojekt/","https://www.ub.uni-leipzig.de/forschungsbibliothek/projekte/projekte-chronologisch-alle/arabische-persische-und-tuerkische-handschriften-digitalisierung/"],project_desc:"In this project 55 Arabic, Persian and Ottoman-Turkish manuscripts, that has been purchased by Leipzig University Library in 1995 and 1996, will be catalogued and digitalized. It is a pioneer project, as it will for the first time integrate Arabic script into a database that also features German and American transliteration systems. The manuscripts contain texts that cover an amazingly broad spectrum, which comprises almost all traditional Islamic fields of knowledge and the main scope of this project to provide scholars of Oriental Studies with access to this hitherto unknown pool of information.",places:[{place_name:{text:"Leipzig",ref:["https://www.geonames.org/2879139/leipzig.html"]},coordinates:{lat:"51.33962",lng:"12.37129"}}],lang:["ara","deu","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Universität Leipzig",ref:["https://ror.org/03s7gtk40","https://www.wikidata.org/wiki/Q154804"]},websites:["https://www.uni-leipzig.de/en/"]}],related_entities:[{relation_type:"sibling",title:"Project for the digitisation and online presentation of Arabic, Persian, and Turkish manuscripts at Leipzig University Library",uuid:"cad00fa7-09a1-4df1-a08b-4ab5b2a48703"},{relation_type:"sibling",title:"Datenbankgestützte Erfassung, Erforschung und digitale Präsentation der Familienbibliothek Refaiya",uuid:"38e6dfb4-730a-4a80-8090-4b7ea551b3c7"},{relation_type:"cooperation",title:"Qalamos",uuid:"3c5b84d0-791c-43bc-ab68-7372478bc568"}],contacts:[{pers_name:{text:"Verena Klemm",ref:["https://www.wikidata.org/wiki/Q5675690"]},roles:["supervision"],websites:["https://www.gkr.uni-leipzig.de/orientalisches-institut/ueber-uns/team/prof-dr-verena-klemm"]}],research_data:{lang:["ara","fas","tur"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["catalog","digital_preservation","islamic_studies","manuscript","vre"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/post_predicate_elements_in_iranian/c1a2957b-0c24-46e6-9a67-381997525a87.json",{schema_version:"0.2.2",record_metadata:{uuid:"c1a2957b-0c24-46e6-9a67-381997525a87",record_created_on:"2022-06-16",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Post-predicate Elements in Iranian: Inheritance, Contact, and Information Structure",abbr:"",type:"project",ref:[],date:[{from:"2019-07-01",to:"2022-06-30"}],maintained:null,websites:["https://www.uni-bamberg.de/aspra/forschung/projekte/post-predicate-elements-in-iranian/","https://multicast.aspra.uni-bamberg.de/resources/hambam/","https://multicast.aspra.uni-bamberg.de/resources/wowa/#top"],project_desc:"This project is dedicated to the study of the syntax of Iranian languages. It will investigate selected Middle Iranian corpora, and unrelated contact languages, in order to reconstruct the genesis and historical development of Iranian syntax with focus on largely ignored OVX (object-verb-oblique) word order type. The project’s results will be made available on two platforms: The Word Order in Western Asia Corpus and The HamBam Corpus (see project websites).",places:[{place_name:{text:"Bamberg",ref:["https://www.geonames.org/2952984/bamberg.html"]},coordinates:{lat:"49.89873",lng:"10.90067"}},{place_name:{text:"Hamadan",ref:["https://www.geonames.org/132144/hamadan.html"]},coordinates:{lat:"34.79922",lng:"48.51456"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Otto-Friedrich-Universität Bamberg",ref:["https://www.wikidata.org/wiki/Q707272","https://ror.org/01c1w6d29"]},websites:["https://www.uni-bamberg.de/"]},{relation_type:"host",org_name:{text:"Bu-Ali Sina University",ref:["https://www.wikidata.org/wiki/Q4982044","https://ror.org/04ka8rx28"]},websites:["https://www.basu.ac.ir/"]}],related_entities:[{relation_type:"sibling",title:"Multilingual Corpus of Annotated Spoken Texts",uuid:"b37c6bd1-90d3-4718-ab58-fb1d60873186"},{relation_type:"sibling",title:"Bamberg Lexical Database for Contemporary Iranian Languages",uuid:"614f4c99-0d96-48a9-baa5-48a402a8deec"},{relation_type:"sibling",title:"Documentation of Gorani, an endangered language of West Iran",uuid:"17fa004d-c9d2-4ce3-8116-b7bfff5d14ed"},{relation_type:"sibling",title:"Compilation and critical edition of pre-19th century Kurmanji Kurdish",uuid:"d0bda69f-d8c4-4521-ab18-af2c097ffcfc"}],contacts:[{pers_name:{text:"Haig, Geoffrey",ref:["https://d-nb.info/gnd/1016008090"]},roles:["supervision"],websites:["https://www.uni-bamberg.de/aspra/team/aktuelles-team/prof-dr-geoffrey-haig/"]},{pers_name:{text:"Rasekh Mahand, Mohammad",ref:["https://www.wikidata.org/wiki/Q5962522#sitelinks-wikipedia"]},roles:["supervision"],websites:["https://basu.ac.ir/en/~rasekh"]}],research_data:{lang:["fas"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["annotation","corpus_resource","iranian_studies","language_documentation","linguistics","translation"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/digitalisierung_der_handschriften_ubl_2/cad00fa7-09a1-4df1-a08b-4ab5b2a48703.json",{schema_version:"0.2.2",record_metadata:{uuid:"cad00fa7-09a1-4df1-a08b-4ab5b2a48703",record_created_on:"2022-03-29",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-03-31"},project:{title:"Project for the digitisation and online presentation of Arabic, Persian, and Turkish manuscripts at Leipzig University Library",abbr:"",type:"project",ref:[],date:[{from:"2012-10",to:"2015-01"}],maintained:null,websites:["https://www.ub.uni-leipzig.de/forschungsbibliothek/projekte/projekte-chronologisch-alle/arabische-persische-und-tuerkische-handschriften-digitalisierung/"],project_desc:"In this project all the remaining Arabic, Persian and Turkish manuscripts at Leipzig University Library that have not been yet catalogued and digitized in previous projects (Refaiya and Pilotprojekt zur datenbankgestützten Erschließung und digitalen Bereitstellung der neu erworbenen arabischen, persischen und türkischen Handschriften der Universitätsbibliothek Leipzig) will be made accessible online until 2015.",places:[{place_name:{text:"Leipzig",ref:["https://www.geonames.org/2879139/leipzig.html"]},coordinates:{lat:"51.33962",lng:"12.37129"}}],lang:["ara","deu","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Universität Leipzig",ref:["https://ror.org/03s7gtk40","https://www.wikidata.org/wiki/Q154804"]},websites:["https://www.uni-leipzig.de/en/"]}],related_entities:[{relation_type:"sibling",title:"Pilotprojekt zur datenbankgestützten Erschließung und digitalen Bereitstellung der neu erworbenen arabischen, persischen und türkischen Handschriften der Universitätsbibliothek Leipzig",uuid:"0a75cf74-9cbe-4ce2-9799-ee16dcc1e88e"},{relation_type:"sibling",title:"Datenbankgestützte Erfassung, Erforschung und digitale Präsentation der Familienbibliothek Refaiya",uuid:"38e6dfb4-730a-4a80-8090-4b7ea551b3c7"},{relation_type:"cooperation",title:"Qalamos",uuid:"3c5b84d0-791c-43bc-ab68-7372478bc568"}],contacts:[{pers_name:{text:"Verena Klemm",ref:["https://www.wikidata.org/wiki/Q5675690"]},roles:["supervision"],websites:["https://www.gkr.uni-leipzig.de/orientalisches-institut/ueber-uns/team/prof-dr-verena-klemm"]}],research_data:{lang:["ara","fas","tur"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["catalog","digital_preservation","islamic_studies","manuscript","vre"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/pua/397a09d7-5307-43ba-a3ce-3faff1ea0e6c.json",{schema_version:"0.2.2",record_metadata:{uuid:"397a09d7-5307-43ba-a3ce-3faff1ea0e6c",record_created_on:"2024-02-14",record_created_by:"Ávila, María Luisa",last_edited_on:"2024-02-14"},project:{title:"Prosopografía de los ulemas de al-Andalus",abbr:"PUA",type:"project",ref:[],date:[{from:"2006",to:"2008"},{from:"2010",to:"2014"}],maintained:!1,websites:["https://www.eea.csic.es/pua/"],project_desc:"The aim of Prosopography is the historical study of a group of people through an analysis of their biographical data. In our case, that group is the ʿulamāʾ (scholars) who lived in al-Andalus during the 2nd–9th centuries AH / 8th–14th centuries CE. We define ʿulamāʾ as specialists in Islamic religious knowledge, whose biographies can be found in biographical dictionaries, a characteristic genre of Arabic literature that underwent substantial development during the Middle Ages in al-Andalus. It should be highlighted that in this case we have included all those persons with their own entry in the biographical dictionaries, although they cannot be truly be labelled as ʿulamāʾ, since, e.g., poets and men of letters are also included.",places:[{place_name:{text:"Granada",ref:["https://www.geonames.org/2517117/granada.html"]},coordinates:{lat:"37.18817",lng:"-3.60667"}}],lang:["eng","spa"],related_institutions:[{relation_type:"host",org_name:{text:"",ref:[]},websites:[]}],related_entities:[],contacts:[{pers_name:{text:"Penelas, Mayte",ref:["https://d-nb.info/gnd/1067890963"]},roles:["supervision"],websites:["https://www.eea.csic.es/personal-de-la-eea/penelas-melendez-ma-teresa/"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[]},data:{datatypes:[{label:"",stage:"raw",licensing:[],open_access:0}],repositories:[{label:"",accessibility:"public",ref:[],licensing:[],description:""}]}},stack:{database:[],backend:[],frontend:[],tools:[{label:"",self_developed:!1,ref:[],description:""}],languages:[]},policies:[{description:"",ref:[]}],keywords:["arabic_studies"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/ptolemaeus_arabus_et_latinus/a9ca5d9f-47ab-4704-ad27-9a09e492ca2a.json",{schema_version:"0.2.2",record_metadata:{uuid:"a9ca5d9f-47ab-4704-ad27-9a09e492ca2a",record_created_on:"2021-11-01",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-05-05"},project:{title:"Ptolemaeus Arabus et Latinus",abbr:"PAL",type:"project",ref:[],date:[{from:"2013",to:"2037"}],maintained:!0,websites:["https://ptolemaeus.badw.de/start","https://badw.de/forschungseinrichtung/forschungsvorhaben.html?tx_badwdb_projects%5Baction%5D=show&tx_badwdb_projects%5Bcontroller%5D=Projects&tx_badwdb_projects%5Bproject_id%5D=100&cHash=ffb2790d003b9abde6b3b1c6da4a55b3"],project_desc:"Ptolemaeus Arabus et Latinus (PAL) is a long-term project dedicated to the edition and study of the Arabic and Latin versions of Ptolemy’s astronomical and astrological texts and related material. The manuscripts are being made available in an online database containing catalogues of Arabic and Latin works, their images, searchable transcriptions and a Greek-Arabic-Latin-English glossary of astronomical and astrological terms.",places:[{place_name:{text:"Munich",ref:["https://www.geonames.org/2867714/munich.html"]},coordinates:{lat:"48.13743",lng:"11.57549"}},{place_name:{text:"Würzburg",ref:["https://www.geonames.org/6556942/wuerzburg.html"]},coordinates:{lat:"49.79708",lng:"9.93365"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Bayerische Akademie der Wissenschaften",ref:["https://www.wikidata.org/wiki/Q8898015","https://ror.org/001rdaz60"]},websites:["https://badw.de/die-akademie.html"]},{relation_type:"host",org_name:{text:"Julius Maximilian University of Würzburg",ref:["https://ror.org/00fbnyb24","https://www.wikidata.org/wiki/Q161976"]},websites:["https://www.uni-wuerzburg.de/startseite/"]}],related_entities:[],contacts:[{pers_name:{text:"Hasse, Dag Nikolaus",ref:["https://viaf.org/viaf/5717273/"]},roles:["supervision"],websites:["https://www.philosophie.uni-wuerzburg.de/institut/allelehrsthlefrphilosophie/profdrdagnikolaushasse/","https://ptolemaeus.badw.de/team/3"]}],research_data:{lang:["ara","lat"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","digital_edition","digital_preservation","lexicon","manuscript","philosophy","science_history"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/qalamos/3c5b84d0-791c-43bc-ab68-7372478bc568.json",{schema_version:"0.2.2",record_metadata:{uuid:"3c5b84d0-791c-43bc-ab68-7372478bc568",record_created_on:"2022-07-12",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-11-17"},project:{title:"Qalamos",abbr:"",type:"project",ref:[],date:[{from:"2023",to:"2026"}],maintained:!0,websites:["https://staatsbibliothek-berlin.de/die-staatsbibliothek/abteilungen/orient/aufgaben-/-profil/projekte/dfg-projekt-orient-digital","https://qalamos.net/"],project_desc:"Qalamos is the portal for manuscripts and block prints from Asian and African script traditions. It provides access to metadata and digitized copies of all of all collections kept in German memory institutions. In addition, it will create a research infrastructure that provides the international community with direct access to all relevant Oriental manuscript collections in Germany.",places:[{place_name:{text:"Leipzig",ref:["https://www.geonames.org/2879139/leipzig.html"]},coordinates:{lat:"51.33962",lng:"12.37129"}},{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}},{place_name:{text:"München",ref:["https://www.geonames.org/2867714/munich.html"]},coordinates:{lat:"48.13743",lng:"11.57549"}}],related_institutions:[{relation_type:"host",org_name:{text:"Staatsbibliothek zu Berlin",ref:["https://ror.org/02ysgg478","https://www.wikidata.org/wiki/Q170109"]},websites:["https://staatsbibliothek-berlin.de/"]},{relation_type:"cooperation",org_name:{text:"Universität Leipzig",ref:["https://ror.org/03s7gtk40","https://www.wikidata.org/wiki/Q154804"]},websites:["https://www.uni-leipzig.de/"]},{relation_type:"cooperation",org_name:{text:"Bayerische Staatsbibliothek",ref:["https://ror.org/031h71w90","https://www.wikidata.org/wiki/Q256507"]},websites:["https://www.bsb-muenchen.de/"]}],lang:["deu","eng"],related_entities:[{relation_type:"parent",title:"Orient-Digital",uuid:"a4fa5143-90d2-42ba-a8a1-424b09696b1c"},{relation_type:"cooperation",title:"Pilotprojekt zur datenbankgestützten Erschließung und digitalen Bereitstellung der neu erworbenen arabischen, persischen und türkischen Handschriften der Universitätsbibliothek Leipzig",uuid:"0a75cf74-9cbe-4ce2-9799-ee16dcc1e88e"},{relation_type:"cooperation",title:"Project for the digitisation and online presentation of Arabic, Persian, and Turkish manuscripts at Leipzig University Library",uuid:"cad00fa7-09a1-4df1-a08b-4ab5b2a48703"},{relation_type:"cooperation",title:"Datenbankgestützte Erfassung, Erforschung und digitale Präsentation der Familienbibliothek Refaiya",uuid:"38e6dfb4-730a-4a80-8090-4b7ea551b3c7"}],contacts:[{pers_name:{text:"Rauch, Christoph",ref:["https://d-nb.info/gnd/1102171662"]},roles:["supervision"],websites:["https://staatsbibliothek-berlin.de/die-staatsbibliothek/abteilungen/orient/kontakt"]}],research_data:{lang:["ara","fas","tur"],sustainability_plan:!0,publications:{open_access:0,licensing:[]},data:{datatypes:[{label:"XML",stage:"final",licensing:["CC0"],open_access:100}],repositories:[{label:"GitHub",accessibility:"public",ref:["https://git.sc.uni-leipzig.de/mycore_applications"],licensing:[],description:""}]}},stack:{database:["XML"],backend:["Solr","MyCoRe","Neo4J"],frontend:["MyCoRe, HTML","JS"],tools:[{label:"MyCoRe",self_developed:!1,ref:["https://www.mycore.de/"],description:"Used as a repository framework"},{label:"Solr",self_developed:!1,ref:["https://solr.apache.org/"],description:"Used for indexation and data querying"},{label:"Transliteration tool",self_developed:!0,ref:[],description:"Automatic transliteration of Arabic script"}],languages:["JS","Java"]},policies:[{description:"",ref:[]}],keywords:["catalog","digital_preservation","manuscript"],comment:"The data is openly accessible through an OAI API: https://www.qalamos.net/oai2?verb=Identify"}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/qhod/6298a9cd-d41a-40d8-91d0-c532692e95c9.json",{schema_version:"0.2.2",record_metadata:{uuid:"6298a9cd-d41a-40d8-91d0-c532692e95c9",record_created_on:"2022-09-26",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"QhoD – Digitale Edition von Quellen zur habsburgisch-osmanischen Diplomatie 1500–1918",abbr:"QhoD",type:"project",ref:[],date:[{from:"2020",to:""}],maintained:null,websites:["https://qhod.net/","https://gams.uni-graz.at/context:qhod","https://www.oeaw.ac.at/ihb/forschungsbereiche/digitale-historiographie-und-editionen/forschung/habsburg-osmanische-diplomatie"],project_desc:"This project aims to provide a digital infrastructure to edit sources on Habsburg-Ottoman diplomacy from the beginning of diplomatic relations between the two empires at the turn of the 15th and 16th centuries to their demise at the end of World War I. The sources will be digitally processed on a historical-critical basis and made available in open access (CC-BY license). All forms of diplomatic relations and a large variety of source types are included.",places:[{place_name:{text:"Vienna",ref:["https://www.geonames.org/2761369/vienna.html"]},coordinates:{lat:"48.20849",lng:"16.37208"}},{place_name:{text:"Salzburg",ref:["https://www.geonames.org/2766823/salzburg.html"]},coordinates:{lat:"47.41667",lng:"13.25"}},{place_name:{text:"Graz",ref:["https://www.geonames.org/2778067/graz.html"]},coordinates:{lat:"47.06667",lng:"15.45"}}],lang:["deu","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Österreichische Akademie der Wissenschaften",ref:["https://www.wikidata.org/wiki/Q299015","https://ror.org/03anc3s24"]},websites:["https://www.oeaw.ac.at/oesterreichische-akademie-der-wissenschaften"]},{relation_type:"host",org_name:{text:"Universität Graz",ref:["https://www.wikidata.org/wiki/Q622683","https://ror.org/02n0bts35"]},websites:["https://www.uni-graz.at/de/"]},{relation_type:"host",org_name:{text:"Universität Salzburg",ref:["https://ror.org/00tfmqe91","https://www.wikidata.org/wiki/Q27265"]},websites:["https://www.plus.ac.at/"]}],related_entities:[{relation_type:"child",title:"Die Großbotschaften Damian Hugo von Virmonts und Ibrahim Paschas (1719/20)",uuid:"ff1ec94f-2233-46e9-b550-45c792ae581e"},{relation_type:"child",title:"Die Schreiben Selims II. an Maximilian II. und Mustafa Paşa (1566–1574)",uuid:"e9b15bcd-05ec-4de1-95f5-07d5bb44e482"}],contacts:[{pers_name:{text:"Strohmeyer, Arno",ref:["https://d-nb.info/gnd/115840060"]},roles:["supervision"],websites:["https://www.oeaw.ac.at/ihb/personen/strohmeyer-arno"]}],research_data:{lang:["deu","tur"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["annotation","digital_edition","digital_preservation","manuscript","translation","turkology","vre"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/qumran_digital_text_und_lexikon/99718590-5e1e-4a64-bf84-6e2213ad1836.json",{schema_version:"0.2.2",record_metadata:{uuid:"99718590-5e1e-4a64-bf84-6e2213ad1836",record_created_on:"2022-03-28",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Qumran Digital: Text und Lexikon",abbr:"Qurman",type:"project",ref:[],date:[{from:"2021",to:"2033"}],maintained:!0,websites:["https://www.qumran-digital.org/","https://gepris.dfg.de/gepris/projekt/465277421"],project_desc:"The main objective of this project it to elaborate a philological dictionary of a complete vocabulary the Dead Sea Scrolls, famous manuscripts contacting over 1000 biblical and non-biblical text in Hebrew and Aramaic languages dating back to period between 3 c. BC and 2 AD. The materials will be edited morphologically, etymologically and semantically and made openly accessible for public.",places:[{place_name:{text:"Göttingen",ref:["https://www.geonames.org/2918632/goettingen.html"]},coordinates:{lat:"51.53443",lng:"9.93228"}}],lang:["deu"],related_institutions:[{relation_type:"host",org_name:{text:"Akademie der Wissenschaften zu Göttingen",ref:["https://www.wikidata.org/wiki/Q414188","https://ror.org/04hsa7a08"]},websites:["https://adw-goe.de"]}],related_entities:[{relation_type:"sibling",title:"Scripta Qumranica Electronica",uuid:"9513964d-3509-462e-9d64-c47fd3922459"},{relation_type:"sibling",title:"Digitale Gesamtedition und Übersetzung des koptisch-sahidischen Alten Testaments",uuid:"1b19963e-ffc5-48f0-a1b3-81553d601497"},{relation_type:"sibling",title:"KOHD Coptica",uuid:"f67c8fcd-d190-4419-a85a-e6998da4f0ba"},{relation_type:"sibling",title:"KOHD Digital",uuid:"01ac0c0c-b09c-40cf-a75f-42e540b67c2f"},{relation_type:"sibling",title:"Scripta Qumranica Electronica: Eine Verbunddatenbank und virtuelle Forschungsumgebung für die Texte vom Toten Meer",uuid:"9513964d-3509-462e-9d64-c47fd3922459"}],contacts:[{pers_name:{text:"Kratz, Reinhard G.",ref:["https://d-nb.info/gnd/115412700"]},roles:["supervision"],websites:["https://www.uni-goettingen.de/de/56085.html"]}],research_data:{lang:["arc","heb"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["annotation","corpus_resource","jewish_studies","lexicography","lexicon","semitic_studies"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/ria/b0da2d75-183c-4fa4-8b12-47366c02ed7c.json",{schema_version:"0.2.2",record_metadata:{uuid:"b0da2d75-183c-4fa4-8b12-47366c02ed7c",record_created_on:"2023-01-16",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Reallexikon der Assyriologie und Vorderasiatischen Archäologie",abbr:"RIA",type:"project",ref:["https://www.wikidata.org/wiki/Q1246462"],date:[{from:"1928",to:"2018"}],maintained:null,websites:["https://rla.badw.de/das-projekt.html","https://publikationen.badw.de/de/rla"],project_desc:"This project represents the most extensive publication in Ancient Near Eastern Studies, with its first fascicle published in 1928 and the last one in 2018. It is an encyclopedia whose entries cover names of locations, deities and kings, history, religion, literature, sciences, flora and fauna, material culture as well as art and architecture of the Ancient Near East. It is available as printed and digital edition, accessible either as PDF files or via an online List of Lemmata.",places:[{place_name:{text:"München",ref:["https://www.geonames.org/2867714/munich.html"]},coordinates:{lat:"48.13743",lng:"11.57549"}}],lang:["deu","eng","fra"],related_institutions:[{relation_type:"host",org_name:{text:"Bayerische Akademie der Wissenschaften",ref:["https://www.wikidata.org/wiki/Q684415","https://ror.org/001rdaz60"]},websites:["https://badw.de/en/the-academy.html"]}],related_entities:[{relation_type:"cooperation",title:"Cuneiform Digital Library Initiative",uuid:"b8097890-6eeb-43ba-890d-28e1490fde08"}],contacts:[{pers_name:{text:"Streck, Michael P.",ref:["https://d-nb.info/gnd/130425893"]},roles:["supervision"],websites:["https://www.uni-leipzig.de/personenprofil/mitarbeiter/prof-dr-michael-peter-streck"]}],research_data:{lang:["akk","syr"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["encyclopedia","history_studies","semitic_studies"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/romantic_period_poetry_archive/32bc596c-eafd-4bd2-8df3-f1ab5cff4ad6.json",{schema_version:"0.2.2",record_metadata:{uuid:"32bc596c-eafd-4bd2-8df3-f1ab5cff4ad6",record_created_on:"2022-07-19",record_created_by:"Huber, Alexander",last_edited_on:"2022-07-21"},project:{title:"Romantic Period Poetry Archive",abbr:"RPPA",type:"project",ref:[],date:[{from:"2020",to:"2025"}],maintained:!0,websites:["https://www.romanticperiodpoetry.org/"],project_desc:"The Romantic Period Poetry Archive, or RPPA for short, is an open access digital platform of global Romantic-period poetry. It comprises a full-text poetry database and an open scholarship platform. Over 600 poets from 70 countries will be included in the database by the end of the alpha phase of the project (2020-2025).",places:[{place_name:{text:"Oxford",ref:["https://www.geonames.org/2640729/oxford.html"]},coordinates:{lat:"51.75222",lng:"-1.25596"}}],related_institutions:[],lang:["eng"],related_entities:[],contacts:[{pers_name:{text:"Huber, Alexander",ref:[]},roles:["supervision"],websites:["https://c18ah.hcommons.org/"]}],research_data:{lang:[],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["corpus_output","digital_preservation","literary_studies","translation"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/pudel/3c5fd869-4651-414c-a0f1-b1254712b689.json",{schema_version:"0.2.2",record_metadata:{uuid:"3c5fd869-4651-414c-a0f1-b1254712b689",record_created_on:"2022-04-05",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"SaxFDM-Fokusprojekt: Publikationsdienst für wissenschaftliche Datenmodelle und Vokabulare",abbr:"PUDEL",type:"project",ref:[],date:[{from:"2022-01-01",to:"2023-03-31"}],maintained:!0,websites:["https://www.saw-leipzig.de/de/projekte/publikationsdienst-fuer-wissenschaftliche-datenmodelle-und-vokabulare-sax-fdm-fokusprojekt"],project_desc:"The purpose of this project is to standardize and optimize Research Data Management (RDM) in Humanities. The expected output is a new RDM service, which will allow to publish and document different data models in a uniform way. The is a part of SaxFDM initiative dedicated to RDM optimization on a level of Saxony state.",places:[{place_name:{text:"Leipzig",ref:["https://www.geonames.org/2879139/leipzig.html"]},coordinates:{lat:"51.33962",lng:"12.37129"}}],lang:["deu"],related_institutions:[{relation_type:"host",org_name:{text:"Sächsische Akademie der Wissenschaften zu Leipzig",ref:["https://www.wikidata.org/wiki/Q27891200","https://ror.org/03zxjdk07"]},websites:["https://www.saw-leipzig.de/de"]}],related_entities:[],contacts:[{pers_name:{text:"Wiesmeth, Hans",ref:["https://d-nb.info/gnd/109432703"]},roles:["supervision"],websites:["https://www.saw-leipzig.de/de/mitglieder/wiesmethh"]}],research_data:{lang:[],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["research_data_management","research_infrastructure"],comment:"The project is still ongoing (as of 05.04.2022)"}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/scripta_qumranica_electronica/9513964d-3509-462e-9d64-c47fd3922459.json",{schema_version:"0.2.2",record_metadata:{uuid:"9513964d-3509-462e-9d64-c47fd3922459",record_created_on:"2022-03-28",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Scripta Qumranica Electronica: Eine Verbunddatenbank und virtuelle Forschungsumgebung für die Texte vom Toten Meer",abbr:"SQE",type:"project",ref:[],date:[{from:"2016",to:"2021"}],maintained:null,websites:["https://web.archive.org/https://sqe.deadseascrolls.org.il/","https://www.qumranica.org/blog/","https://gepris.dfg.de/gepris/projekt/282601852"],project_desc:"This project is dedicated to enhancing and standardizing the research on the Dead Sea Scrolls, famous manuscripts contacting over 1000 biblical and non-biblical text in Hebrew and Aramaic languages dating back to period between 3 c. BC and 2 AD. Next to the preparation of the pioneer Digital Scholarly Edition of Qumran Texts the main focus of the project lies on the creation of a standardized environment for collaborative production of Scrolls editions, advanced research tools and a robust dynamic interlinked database of texts, images and annotations.",places:[{place_name:{text:"Göttingen",ref:["https://www.geonames.org/2918632/goettingen.html"]},coordinates:{lat:"51.53443",lng:"9.93228"}},{place_name:{text:"Tel Aviv",ref:["https://www.geonames.org/293397/tel-aviv.html"]},coordinates:{lat:"32.08088",lng:"34.78057"}},{place_name:{text:"Jerusalem",ref:["https://www.geonames.org/281184/jerusalem.html"]},coordinates:{lat:"31.76904",lng:"35.21633"}},{place_name:{text:"Haifa",ref:["https://www.geonames.org/294801/haifa.html"]},coordinates:{lat:"32.81841",lng:"34.9885"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Akademie der Wissenschaften zu Göttingen",ref:["https://www.wikidata.org/wiki/Q414188","https://ror.org/04hsa7a08"]},websites:["https://adw-goe.de"]},{relation_type:"host",org_name:{text:"Tel Aviv University",ref:["https://www.wikidata.org/wiki/Q319239","https://ror.org/04mhzgx49"]},websites:["https://english.tau.ac.il/"]},{relation_type:"host",org_name:{text:"Israel Antiquities Authority",ref:["https://ror.org/037fbyh64","https://www.wikidata.org/wiki/Q2744135"]},websites:["https://www.antiquities.org.il/default_en.aspx"]}],related_entities:[{relation_type:"sibling",title:"Qumran Digital: Text und Lexikon",uuid:"99718590-5e1e-4a64-bf84-6e2213ad1836"},{relation_type:"sibling",title:"Digitale Gesamtedition und Übersetzung des koptisch-sahidischen Alten Testaments",uuid:"1b19963e-ffc5-48f0-a1b3-81553d601497"},{relation_type:"sibling",title:"KOHD Coptica",uuid:"f67c8fcd-d190-4419-a85a-e6998da4f0ba"},{relation_type:"sibling",title:"KOHD Digital",uuid:"01ac0c0c-b09c-40cf-a75f-42e540b67c2f"}],contacts:[{pers_name:{text:"Kratz, Reinhard G.",ref:["https://d-nb.info/gnd/115412700"]},roles:["supervision"],websites:["https://www.uni-goettingen.de/de/56085.html"]},{pers_name:{text:"Ben-Dov, Jonathan",ref:["https://www.wikidata.org/wiki/Q66087728"]},roles:["supervision"],websites:["https://english.tau.ac.il/profile/028799815"]}],research_data:{lang:["arc","heb"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["annotation","catalog","digital_preservation","jewish_studies","manuscript","semitic_studies","vre"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/scripta_psl/0cf58379-39c3-4e95-b7b1-cc9f7f11c7ba.json",{schema_version:"0.2.2",record_metadata:{uuid:"0cf58379-39c3-4e95-b7b1-cc9f7f11c7ba",record_created_on:"2022-09-08",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Scripta-PSL",abbr:"",type:"project",ref:[],date:[{from:"2016",to:"2019"}],maintained:null,websites:["https://scripta.psl.eu/","https://escripta.hypotheses.org/"],project_desc:"Scripta-PSL aims to integrate the fundamental sciences of the written word (paleography, codicology, epigraphy, history of the book, etc.) and other social and human sciences (linguistics, history, anthropology, etc.) into the digital and computational humanities. It will develop machine vision tools (for handwriting recognition and document analysis, for example) and tools for (semi)-automatic classification of symbols and texts, with a focus on pre-typographical and/or non-alphabetic cultures. It will also provide additional inquiry into written traditions of rare languages and writings, which are currently underrepresented at the University.",places:[{place_name:{text:"Paris",ref:["https://www.geonames.org/2988506/paris.html"]},coordinates:{lat:"48.85339",lng:"2.34864"}}],lang:[],related_institutions:[{relation_type:"host",org_name:{text:"PSL Research University Paris",ref:["https://ror.org/03k9z2963","https://www.wikidata.org/wiki/Q1163431"]},websites:["https://psl.eu/en"]}],related_entities:[{relation_type:"child",title:"eScriptorium",uuid:"31ad93ff-ca97-4cf0-b30c-60685624e2c8"}],contacts:[{pers_name:{text:"Stauder, Andreas",ref:["https://d-nb.info/gnd/13153503X"]},roles:["supervision"],websites:["https://www.ephe.psl.eu/andreas-stauder"]}],research_data:{lang:["akk","ara","cop","fas","grc","heb","hye","jpn","lat","san","syr","tur","zho"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["annotation","computational_text_analysis","corpus_resource","htr","machine_learning","ocr","vre"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/sefaria_org/177501b1-c847-4547-a757-76f56c5af15f.json",{schema_version:"0.2.2",record_metadata:{uuid:"177501b1-c847-4547-a757-76f56c5af15f",record_created_on:"2021-11-01",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-05-05"},project:{title:"Sefaria",abbr:"",type:"organization",ref:["https://www.wikidata.org/wiki/Q33424604"],date:[{from:"2011",to:""}],maintained:!0,websites:["https://www.sefaria.org/texts"],project_desc:"Sefaria in a non-profit organization which assembles a free-living library of Jewish texts and their interconnections, in Hebrew and in translation. The texts are available in a digital form with interactive interfaces allowing more people to engage with textual treasures and tradition.",places:[{place_name:{text:"New York",ref:["https://www.geonames.org/5128638/new-york.html"]},coordinates:{lat:"43.00035",lng:"-75.4999"}}],lang:["eng","heb"],related_institutions:[],related_entities:[],contacts:[{pers_name:{text:"Septimus, Daniel",ref:[]},roles:["supervision"],websites:[]}],research_data:{lang:["heb"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["corpus_output","digital_preservation","jewish_studies","religious_text","vre"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/sfardata/81d8ad85-5da8-457f-99a3-6ab11128ef03.json",{schema_version:"0.2.2",record_metadata:{uuid:"81d8ad85-5da8-457f-99a3-6ab11128ef03",record_created_on:"2022-08-12",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"SfarData",abbr:"",type:"project",ref:[],date:[{from:"1965",to:""}],maintained:null,websites:["https://sfardata.nli.org.il/#/startSearch_En","https://www.csmc.uni-hamburg.de/news/2020-12-14-sfardata.html"],project_desc:"SfarData is a bilingual (Hebrew/English) codicological database of the dated medieval manuscripts written in Hebrew script documented in 250 libraries. It has a 50 years long history of digital preservation of bibliographical, textual, numerical, and paleographical data and was recently incorporated to the National Library of Israel.",places:[{place_name:{text:"Jerusalem",ref:["https://www.geonames.org/281184/jerusalem.html"]},coordinates:{lat:"31.76904",lng:"35.21633"}},{place_name:{text:"Hamburg",ref:["https://www.geonames.org/2911298/hamburg.html"]},coordinates:{lat:"53.55073",lng:"9.99302"}}],lang:["eng","heb"],related_institutions:[{relation_type:"host",org_name:{text:"Israel Academy of Sciences and Humanities",ref:["https://ror.org/03c6c9520","https://www.wikidata.org/wiki/Q209184"]},websites:["https://www.academy.ac.il/english.aspx"]},{relation_type:"host",org_name:{text:"National Library of Israel",ref:["https://ror.org/03be63z97","https://www.wikidata.org/wiki/Q188915"]},websites:["https://www.nli.org.il/en"]},{relation_type:"host",org_name:{text:"Universität Hamburg",ref:["https://ror.org/00g30e956","https://www.wikidata.org/wiki/Q156725"]},websites:["https://www.uni-hamburg.de/"]}],related_entities:[{relation_type:"sibling",title:"Audition Certificates Platform",uuid:"b333a11d-b9fc-4379-9e21-fbddfa9500b1"},{relation_type:"sibling",title:"Afrikanische Stimmen in islamischen Manuskripten aus Mali: Erschließung und Erforschung afrikanischer Sprachen in arabischer Schrift (Ajami)",uuid:"eaf36ccc-5ee4-4749-80ea-7f71f479c968"},{relation_type:"sibling",title:"Beta maṣāḥǝft Manuscripts of Ethiopia and Eritrea",uuid:"169677fd-14f9-46e7-b8f1-2202fb91397c"},{relation_type:"sibling",title:"Methoden der Bildverarbeitung zur Bestimmung von visuellen Manuskript- und Zeichenmerkmalen",uuid:"eb8e91fe-952e-48b7-af0d-c026ebe37826"},{relation_type:"sibling",title:"Datenrepositorium Manuskriptkulturen",uuid:"894dcf0c-7295-4fb8-b4ba-866a5ebe3310"},{relation_type:"sibling",title:"Demarginalizing Medieval Africa: Images, Texts, and Identity in Early Solomonic Ethiopia",uuid:"46121edb-516b-4dbf-ba49-e2c5f07cec2e"},{relation_type:"sibling",title:"Documentation of Gorani, an endangered language of West Iran",uuid:"17fa004d-c9d2-4ce3-8116-b7bfff5d14ed"},{relation_type:"sibling",title:"The Evolution of Islamic Societies (c. 600–1600 CE): Algorithmic Analysis into Social History",uuid:"659c0aba-3bdd-43eb-937d-dad4ad63e3fc"},{relation_type:"sibling",title:"The intertwined world of the oral and written transmission of sacred traditions in the Middle East",uuid:"bb852d81-0c6d-4413-8c20-1bb38c4db4e7"},{relation_type:"sibling",title:"Islamic Painted Page",uuid:"31534c48-6b74-4cc5-8aff-ea8dbc60c445"},{relation_type:"sibling",title:"Methoden der Manuskriptanalyse zur Wiedergewinnung verlorener Schrift",uuid:"892b783d-1788-451f-9efd-1c58bfb4b064"},{relation_type:"sibling",title:"SIHAFA: The Ideosphere of the Late Ottoman Arabic Press: Mapping the Discursive Field of Authors and Texts through Computational Approaches",uuid:"20ee58f5-f699-4262-a473-7765e249c871"},{relation_type:"sibling",title:"Understanding Written Artefacts",uuid:"9ca46873-3089-4a04-99fa-89c0c1b01213"},{relation_type:"sibling",title:"Ethio-SPaRe: Cultural Heritage of Christian Ethiopia. Salvation, Preservation, Research",uuid:"fbf007e0-7eee-4bb1-801d-568785d43d04"},{relation_type:"sibling",title:"From Translation to Creation: Changes in Ethiopic Style and Lexicon from Late Antiquity to the Middle Ages",uuid:"77ae1011-1b54-46b5-b676-02895e3300fc"},{relation_type:"sibling",title:"Corpus dei Manoscritti Copti Letterari",uuid:"c4f41a6d-9fb9-4c31-85f0-b66acfe41289"}],contacts:[{pers_name:{text:"Bet-Aryeh, Mal’akhi",ref:["https://d-nb.info/gnd/104345179"]},roles:["supervision"],websites:["https://www.csmc.uni-hamburg.de/about/people/beitarie.html"]}],research_data:{lang:["heb"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["catalog","digital_preservation","jewish_studies","manuscript"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/sharia_source/1b2ca0bf-fb29-4b5c-852b-2eedd6a85773.json",{schema_version:"0.2.2",record_metadata:{uuid:"1b2ca0bf-fb29-4b5c-852b-2eedd6a85773",record_created_on:"2022-09-07",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"SHARIAsource",abbr:"",type:"project",ref:[],date:[{from:"2015",to:""}],maintained:null,websites:["https://pil.law.harvard.edu/shariasource-portal/","https://beta.shariasource.com/"],project_desc:"SHARIAsource is a project dedicated to digitalization of Islamic legal studies. To this end, the platform offers a growing library of primary sources for Islamic law, which were collected from all around the globe through digitization, partnerships, and individual contributions. It also uses data science and AI to curate and build digital humanities tools that make the Portal’s Islamic law sources more accessible and useful, and to facilitate new research and analysis.",places:[{place_name:{text:"Cambridge",ref:["https://www.geonames.org/4931972/cambridge.html"]},coordinates:{lat:"42.3751",lng:"-71.10561"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Harvard University",ref:["https://ror.org/03vek6s52","https://www.wikidata.org/wiki/Q13371"]},websites:["https://www.harvard.edu/"]}],related_entities:[{relation_type:"child",title:"CorpusBuilder",uuid:"eb1591d7-75b9-4d62-9f67-0679e627587b"},{relation_type:"child",title:"Open Islamicate Texts Initiative Arabic-script OCR Catalyst Project",uuid:"786edd87-476e-42a6-bcc0-521833ec73e5"}],contacts:[{pers_name:{text:"Celik, Yusuf",ref:[]},roles:["supervision"],websites:["https://pil.law.harvard.edu/fellow/yusuf-celik/"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["corpus_output","digital_preservation","history_studies","islamic_studies"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/shawi/68422d65-ccba-4dcb-8a0e-bd4f3f9e1dc9.json",{schema_version:"0.2.2",record_metadata:{uuid:"68422d65-ccba-4dcb-8a0e-bd4f3f9e1dc9",record_created_on:"2022-05-10",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Shawi",abbr:"",type:"project",ref:[],date:[{from:"2021-02-01",to:"2025-02-28"}],maintained:!0,websites:["https://www.oeaw.ac.at/acdh/projects/shawi"],project_desc:"This project focuses on the Arabic dialects of the so-called Shawi-type spoken by small cattle breeding Bedouin tribes in various regions of the Fertile Crescent. The main objective is to create a text corpus of this dialects based on audio recordings, to provide a comprehensive grammar and a digital dictionary. The basis of these contributions is new linguistic data gathered from the field from speakers living in the Harran-Urfa region of Southeastern Turkey, Syria and Iran.",places:[{place_name:{text:"Vienna",ref:["https://www.geonames.org/2761369/vienna.html"]},coordinates:{lat:"48.20849",lng:"16.37208"}}],lang:["deu","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Österreichische Akademie der Wissenschaften",ref:["https://www.wikidata.org/wiki/Q299015","https://ror.org/03anc3s24"]},websites:["https://www.oeaw.ac.at/en/"]},{relation_type:"host",org_name:{text:"Universität Wien",ref:["https://ror.org/04d836q62","https://www.wikidata.org/wiki/Q165980"]},websites:["https://www.univie.ac.at/en/"]}],related_entities:[{relation_type:"sibling",title:"WIBARAB: What is Bedouin-Type Arabic?",uuid:"e9cb8ab1-2d2c-4cc3-a44d-a793220a8638"},{relation_type:"sibling",title:"Genesis Rabbah Loanwords",uuid:"94044a63-eae5-4e1d-ba04-64874109fc36"},{relation_type:"sibling",title:"Vienna Corpus of Arabic Varieties",uuid:"8f343a28-a873-449c-b359-efcfab7d1201"},{relation_type:"sibling",title:"NoMansLand: Nomads’ Manuscripts Landscape",uuid:"e050deba-6e1d-4d82-851b-cf6c1f7187a5"},{relation_type:"sibling",title:"Linguistic dynamics in the Greater Tunis Area: a corpus-based approach (TUNICO)",uuid:"79462111-75a7-4fa0-8e11-9d424293a074"},{relation_type:"sibling",title:"TUNOCENT",uuid:"325a929a-6764-41e1-b452-6556209fa74f"}],contacts:[{pers_name:{text:"Procházka, Stephan",ref:["https://d-nb.info/gnd/136441688"]},roles:["supervision"],websites:["https://orientalistik.univie.ac.at/ueber-uns/personal/detailansicht-personal/user/prochas8/inum/1073/backpid/86555/"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","audio","corpus_resource","dialectology","language_documentation","lexicon","linguistics"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/sihafa/20ee58f5-f699-4262-a473-7765e249c871.json",{schema_version:"0.2.2",record_metadata:{uuid:"20ee58f5-f699-4262-a473-7765e249c871",record_created_on:"2023-11-09",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"SIHAFA: The Ideosphere of the Late Ottoman Arabic Press: Mapping the Discursive Field of Authors and Texts through Computational Approaches",abbr:"SIHAFA",type:"project",ref:[],date:[{from:"2023-09-01",to:"2025-08-31"}],maintained:!0,websites:["https://cordis.europa.eu/project/id/101061500","https://explore.openaire.eu/search/project?projectId=corda_____he::96549b48568ab3ca3ca1311397eed157"],project_desc:"SIHAFA explores the late Ottoman Arabic ideosphere of, employing a systematic and computational approach to study the periodical press as a discursive field. The project's methodology involves analyzing a digital corpus of seven Arabic journals through stylometric authorship attribution, social network analysis, and close reading. The aim is to fill a research gap, challenge established narratives of the Arabic Renaissance, and contribute to Arab Periodical Studies, emphasizing FAIR data principles and open access. Project outputs will include groundbreaking research published in English and Arabic, improved digital scholarly editions, authority files, an OCR model for Arabic periodicals, and a plain text corpus of authorship candidates.",places:[{place_name:{text:"Hamburg",ref:["https://www.geonames.org/2911298/hamburg.html"]},coordinates:{lat:"53.55073",lng:"9.99302"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Universität Hamburg",ref:["https://ror.org/00g30e956","https://www.wikidata.org/wiki/Q156725"]},websites:["https://www.uni-hamburg.de/"]}],related_entities:[{relation_type:"sibling",title:"Audition Certificates Platform",uuid:"b333a11d-b9fc-4379-9e21-fbddfa9500b1"},{relation_type:"sibling",title:"Afrikanische Stimmen in islamischen Manuskripten aus Mali: Erschließung und Erforschung afrikanischer Sprachen in arabischer Schrift (Ajami)",uuid:"eaf36ccc-5ee4-4749-80ea-7f71f479c968"},{relation_type:"sibling",title:"Beta maṣāḥǝft Manuscripts of Ethiopia and Eritrea",uuid:"169677fd-14f9-46e7-b8f1-2202fb91397c"},{relation_type:"sibling",title:"Methoden der Bildverarbeitung zur Bestimmung von visuellen Manuskript- und Zeichenmerkmalen",uuid:"eb8e91fe-952e-48b7-af0d-c026ebe37826"},{relation_type:"sibling",title:"Datenrepositorium Manuskriptkulturen",uuid:"894dcf0c-7295-4fb8-b4ba-866a5ebe3310"},{relation_type:"sibling",title:"Demarginalizing Medieval Africa: Images, Texts, and Identity in Early Solomonic Ethiopia",uuid:"46121edb-516b-4dbf-ba49-e2c5f07cec2e"},{relation_type:"sibling",title:"Documentation of Gorani, an endangered language of West Iran",uuid:"17fa004d-c9d2-4ce3-8116-b7bfff5d14ed"},{relation_type:"sibling",title:"The Evolution of Islamic Societies (c. 600–1600 CE): Algorithmic Analysis into Social History",uuid:"659c0aba-3bdd-43eb-937d-dad4ad63e3fc"},{relation_type:"sibling",title:"The intertwined world of the oral and written transmission of sacred traditions in the Middle East",uuid:"bb852d81-0c6d-4413-8c20-1bb38c4db4e7"},{relation_type:"sibling",title:"Islamic Painted Page",uuid:"31534c48-6b74-4cc5-8aff-ea8dbc60c445"},{relation_type:"sibling",title:"Methoden der Manuskriptanalyse zur Wiedergewinnung verlorener Schrift",uuid:"892b783d-1788-451f-9efd-1c58bfb4b064"},{relation_type:"sibling",title:"SfarData",uuid:"81d8ad85-5da8-457f-99a3-6ab11128ef03"},{relation_type:"sibling",title:"Understanding Written Artefacts",uuid:"9ca46873-3089-4a04-99fa-89c0c1b01213"},{relation_type:"sibling",title:"Ethio-SPaRe: Cultural Heritage of Christian Ethiopia. Salvation, Preservation, Research",uuid:"fbf007e0-7eee-4bb1-801d-568785d43d04"},{relation_type:"sibling",title:"From Translation to Creation: Changes in Ethiopic Style and Lexicon from Late Antiquity to the Middle Ages",uuid:"77ae1011-1b54-46b5-b676-02895e3300fc"},{relation_type:"sibling",title:"Corpus dei Manoscritti Copti Letterari",uuid:"c4f41a6d-9fb9-4c31-85f0-b66acfe41289"}],contacts:[{pers_name:{text:"Grallert, Till",ref:[]},roles:["supervision"],websites:["https://openarabicpe.github.io/"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[]},data:{datatypes:[{label:"",stage:"raw",licensing:[],open_access:0}],repositories:[{label:"",accessibility:"public",ref:[],licensing:[],description:""}]}},stack:{database:[],backend:[],frontend:[],tools:[{label:"",self_developed:!1,ref:[],description:""}],languages:[]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","computational_text_analysis","corpus_resource","history_studies","media_studies","network_analysis","ocr","stylometry"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/streamlining_galen/880f1d65-b815-4474-9fb4-b17f13bd3765.json",{schema_version:"0.2.2",record_metadata:{uuid:"880f1d65-b815-4474-9fb4-b17f13bd3765",record_created_on:"2021-11-01",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-05-06"},project:{title:"Streamlining Galen",abbr:"",type:"project",ref:[],date:[{from:"2019",to:"2024"}],maintained:!1,websites:["https://warwick.ac.uk/fac/arts/classics/research/dept_projects/streamlininggalen/"],project_desc:"This project is dedicated to study of influence that Galen’s works had on Islamic medicine after their translation into Arabic between 8th and 10th century. The focus of the research lies on the Arabic summaries of Galen which served as primary learning tools for medical students and doctors. The main output of the project will be a comprehensive survey of Arabic Galenic summaries and a digital corpus of selected texts. Project members will analyze and compare them with each other and with the Galen treatises in Arabic translation that formed the basis of the summaries.",places:[{place_name:{text:"Coventry",ref:["https://www.geonames.org/2652221/coventry.html"]},coordinates:{lat:"52.40656",lng:"-1.51217"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Warwick University",ref:["https://ror.org/01a77tt86","https://www.wikidata.org/wiki/Q865528"]},websites:["https://www2.warwick.ac.uk/"]}],related_entities:[],contacts:[{pers_name:{text:"Swain, Simon",ref:["https://www.wikidata.org/wiki/Q55386758"]},roles:["supervision"],websites:["https://warwick.ac.uk/fac/arts/classics/intranets/staff/simonswain/"]},{pers_name:{text:"Vagelpohl, Uwe",ref:["https://d-nb.info/gnd/1066384339"]},roles:["investigation"],websites:["https://warwick.ac.uk/fac/arts/classics/intranets/staff/vagelpohl"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","digital_edition","digital_preservation","history_studies","manuscript","medicine_history","science_history"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/strukturen_und_transformationen/85d053c3-4ce6-4130-bc6a-63f96acfb067.json",{schema_version:"0.2.2",record_metadata:{uuid:"85d053c3-4ce6-4130-bc6a-63f96acfb067",record_created_on:"2022-02-09",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Strukturen und Transformationen des Wortschatzes der ägyptischen Sprache: Text- und Wissenskultur im Alten Ägypten",abbr:"",type:"project",ref:[],date:[{from:"2013",to:"2035"}],maintained:!0,websites:["https://aaew.bbaw.de/de","https://www.bbaw.de/forschung/wortschatz-der-aegyptischen-sprache","https://www.saw-leipzig.de/de/projekte/strukturen-und-transformationen-des-wortschatzes-der-aegyptischen-sprache"],project_desc:"The aim of the project is preparation of a diachronic corpus of Egyptian texts which, linked to a digital dictionary, enables online research of Coptic vocabulary throughout all epochs and stages of Egyptian language history. The results are accessible on Thesaurus Linguae Aegyptiae (TLA), a research and publishing platform developed by a previous BBAW project, “Altägyptisches Wörterbuch,” which expired 2012.",places:[{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}},{place_name:{text:"Leipzig",ref:["https://www.geonames.org/2879139/leipzig.html"]},coordinates:{lat:"51.33962",lng:"12.37129"}}],lang:["deu"],related_institutions:[{relation_type:"host",org_name:{text:"Zentrum Grundlagenforschung Alte Welt",ref:[]},websites:["https://www.bbaw.de/forschung/zentren/zentrum-alte-welt"]},{relation_type:"host",org_name:{text:"Sächsische Akademie der Wissenschaften zu Leipzig",ref:["https://www.wikidata.org/wiki/Q27891200","https://ror.org/03zxjdk07"]},websites:["https://www.saw-leipzig.de/"]}],related_entities:[{relation_type:"sibling",title:"Altägyptisches Wörterbuch",uuid:"a4d189e4-f03f-4db0-8742-b777e22da760"},{relation_type:"sibling",title:"Corpus Coranicum",uuid:"0fd7b9cd-fdae-441b-a6fd-a791d4583ce0"}],contacts:[{pers_name:{text:"Richter, Tonio Sebastian",ref:["https://d-nb.info/gnd/142266140"]},roles:["supervision"],websites:["https://www.geschkult.fu-berlin.de/e/aegyptologie/personen/Professorinnen-und-Professoren/Richter/","https://www.bbaw.de/die-akademie/bbaw-mitglieder/mitglied-tonio-sebastian-richter"]}],research_data:{lang:["cop"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["annotation","corpus_resource","egyptology","lexicography","lexicon","translation","vre"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/averroes_commentary_on_the_physics_in_hebrew_and_latin_transmission/3992a23d-8426-4b73-8b30-844e471e76e2.json",{schema_version:"0.2.2",record_metadata:{uuid:"3992a23d-8426-4b73-8b30-844e471e76e2",record_created_on:"2022-02-21",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-02-22"},project:{title:"Study of Averroes’s Long Commentary on the Physics in Hebrew and Latin Transmission",abbr:"",type:"project",ref:[],date:[{from:"2016",to:""}],maintained:null,websites:["https://averroes.uni-koeln.de/edition/current-editions/"],project_desc:"This project is a preparation for the critical edition of Hebrew and Latin translations of Averroes’s Long Commentary on Aristotle’s Physics. While the Arabic original is lost, the aim of collation of its extant Latin and Hebrew translations is to reconstruct it.",places:[{place_name:{text:"Köln",ref:["https://www.geonames.org/2886242/koeln.html"]},coordinates:{lat:"50.93333",lng:"6.95"}}],lang:["eng"],related_institutions:[],related_entities:[{relation_type:"parent",title:"Averroes Edition",uuid:"a6e1fb68-e7a5-4125-8cfc-ec3aa16da73b"},{relation_type:"sibling",title:"Critical Edition of Ibn Bāğğa’s Commentary on Aristotle’s De generatione et corruptione",uuid:"c3e206ec-9989-4500-ac20-4126e35871f2"},{relation_type:"sibling",title:"Critical Edition of the Fragmentary Latin Translation of Averroes’s Commentary on De Partibus Animalium and De Generatione Animalium",uuid:"7c7438e6-4172-4059-ad60-54a6d0d61f7c"},{relation_type:"sibling",title:"Critical Edition of Ibn Bāǧǧa’s Commentary on Aristotle’s Physics",uuid:"f24e806a-0777-4690-b148-1b35ab3745e2"}],contacts:[{pers_name:{text:"Horezky, Oded",ref:[]},roles:["investigation"],websites:["https://uni-koeln.academia.edu/OdedHorezky"]},{pers_name:{text:"Clesse, Grégory",ref:["https://viaf.org/viaf/48155707096822411871/"]},roles:["investigation"],websites:["https://uclouvain.academia.edu/Gr%C3%A9goryClesse/CurriculumVitae"]}],research_data:{lang:["ara","heb","lat"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","digital_edition","digital_preservation","jewish_studies","manuscript","philosophy","science_history"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/saop/87d036b9-5145-47d0-8d0e-83bb6821f3fe.json",{schema_version:"0.2.2",record_metadata:{uuid:"87d036b9-5145-47d0-8d0e-83bb6821f3fe",record_created_on:"2022-09-30",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Surayt-Aramaic Online Project",abbr:"SAOP",type:"project",ref:[],date:[{from:"2014",to:"2017"},{from:"2017",to:"2020"}],maintained:null,websites:["http://www.surayt.com/","https://www.geschkult.fu-berlin.de/e/semiarab/semitistik/forschung/abgeschlossene-forschungsprojekte/saop/index.html","https://www.geschkult.fu-berlin.de/e/semiarab/semitistik/forschung/abgeschlossene-forschungsprojekte/aramaic-online-project/index.html"],project_desc:"This project is a second phase of Aramaic Online Project, whose team developed online courses for Surayt language in levels A1, A2 and B1. The aim of this phase is to develop courses for intermediary and advanced levels (B1-2, C1 and C2) and producing additional linguistic material for the teaching of Surayt, such as a “Reader” (digital text corpus) which will address the needs of more advanced learners.",places:[{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}},{place_name:{text:"Stockholm",ref:["https://www.geonames.org/2673730/stockholm.html"]},coordinates:{lat:"59.32938",lng:"18.06871"}},{place_name:{text:"Glane",ref:["https://www.geonames.org/2755497/glane.html"]},coordinates:{lat:"52.2325",lng:"7.00278"}},{place_name:{text:"Piscataway",ref:["https://www.geonames.org/5102713/piscataway.html"]},coordinates:{lat:"40.49927",lng:"-74.39904"}},{place_name:{text:"Gölcük",ref:["https://www.geonames.org/746666/geulzuk.html"]},coordinates:{lat:"40.71501",lng:"29.81824"}}],lang:["ara","deu","eng","fra","nld","swe","tur"],related_institutions:[{relation_type:"host",org_name:{text:"Freie Universität Berlin",ref:["https://ror.org/046ak2485","https://www.wikidata.org/wiki/Q153006"]},websites:["https://www.fu-berlin.de/"]},{relation_type:"host",org_name:{text:"Stockholm University",ref:["https://ror.org/05f0yaq80","https://www.wikidata.org/wiki/Q221645"]},websites:["https://www.su.se/cmlink/stockholm-university"]},{relation_type:"host",org_name:{text:"St Ephrem Syriac Orthodox Monastery",ref:[]},websites:["https://morephrem.com/klooster/"]},{relation_type:"host",org_name:{text:"Beth Mardutho Syriac Institute",ref:["https://www.wikidata.org/wiki/Q59535226#sitelinks-wikipedia","https://ror.org/01agawy76"]},websites:["https://bethmardutho.org/surayt/"]},{relation_type:"host",org_name:{text:"Midyat Süryani Kültür Dernegi",ref:[]},websites:["https://web.archive.org/http://midyatsuryanikulturdernegi.com/"]}],related_entities:[],contacts:[{pers_name:{text:"Talay; Shabo",ref:["https://d-nb.info/gnd/120744414"]},roles:["supervision"],websites:["https://www.geschkult.fu-berlin.de/e/semiarab/semitistik/Seminar/mitarbeiterInnen/Professor_innen/talay/index.html"]}],research_data:{lang:["arc","tru"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["corpus_resource","e_learning","semitic_studies","tei"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/synoptische_edition_des_kabbalistischen_traktats_keter_shem_tov/827f5ce7-a331-44fe-b40a-5cd93f348a0a.json",{schema_version:"0.2.2",record_metadata:{uuid:"827f5ce7-a331-44fe-b40a-5cd93f348a0a",record_created_on:"2022-03-25",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Synoptische Edition des kabbalistischen Traktats Keter Shem Ṭov",abbr:"Keter Shem Ṭov",type:"project",ref:[],date:[{from:"2019",to:"2022"}],maintained:null,websites:["https://kabbalaheditions.org"],project_desc:"The research object of this project is the approximately 700 years old Hebrew treatise Keter Shem Tov, which constitutes one of the most important introductory texts into the Kabbalah. The purpose of the project to prepare a critical printed edition of the text as well as its online, interactive and openly accessible version along with an English translation. To reach this objective the project contributes to the further development of an interactive, digital tool LERA.",places:[{place_name:{text:"Halle (Saale)",ref:["https://www.geonames.org/2911522/halle-saale.html"]},coordinates:{lat:"51.48158",lng:"11.97947"}}],lang:["deu","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Martin-Luther-Universität Halle-Wittenberg",ref:["https://ror.org/05gqaka33","https://www.wikidata.org/wiki/Q32120"]},websites:["https://www.uni-halle.de/?lang=en"]}],related_entities:[],contacts:[{pers_name:{text:"Pöckelmann, Marcus",ref:[]},roles:["supervision"],websites:["https://www.informatik.uni-halle.de/ti/mitarbeiter/poeckelmann/"]}],research_data:{lang:["heb"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["digital_edition","digital_preservation","jewish_studies","manuscript","religious_text","translation","vre"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/syriaca_org/fdda3e43-e15b-4c64-a99d-924f37152cc9.json",{schema_version:"0.2.2",record_metadata:{uuid:"fdda3e43-e15b-4c64-a99d-924f37152cc9",record_created_on:"2021-11-01",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-05-06"},project:{title:"Syriaca.org: The Syriac Reference Portal",abbr:"",type:"project",ref:[],date:[{from:"2012",to:""}],maintained:null,websites:["https://syriaca.org/index.html"],project_desc:"Syriaca.org is a portal intended to document and preserve Syriac cultural heritage. It serves as an online hub (cyber-infrastructure) to assist research in the field of Syriac studies and to compile and organize core data related to the study of Syriac sources. The publications of Syriaca.org combine emerging methods of the Digital Humanities with traditional scholarship in history and philology, new digital tools are created for widely disseminating this data and facilitating further research.",places:[{place_name:{text:"Nashville",ref:["https://www.geonames.org/4644585/nashville.html"]},coordinates:{lat:"36.16589",lng:"-86.78444"}}],lang:[],related_institutions:[{relation_type:"host",org_name:{text:"Texas A&M University",ref:["https://www.wikidata.org/wiki/Q49212","https://ror.org/0034eay46"]},websites:["https://codhr.dh.tamu.edu/","https://www.tamu.edu/"]},{relation_type:"host",org_name:{text:"Vanderbilt University",ref:["https://ror.org/02vm5rt34","https://www.wikidata.org/wiki/Q29052"]},websites:["https://www.vanderbilt.edu/"]},{relation_type:"host",org_name:{text:"Princeton University",ref:["https://ror.org/00hx57361","https://www.wikidata.org/wiki/Q21578"]},websites:["https://www.princeton.edu/"]},{relation_type:"host",org_name:{text:"Marquette University",ref:["https://ror.org/04gr4te78","https://www.wikidata.org/wiki/Q188370"]},websites:["https://www.marquette.edu"]},{relation_type:"host",org_name:{text:"New York University",ref:["https://ror.org/03v8adn41","https://www.wikidata.org/wiki/Q49210"]},websites:["https://www.nyu.edu/"]},{relation_type:"host",org_name:{text:"Beth Mardutho Research Library",ref:["https://d-nb.info/gnd/1086900480"]},websites:["https://bethmardutho.org/library/"]}],related_entities:[],contacts:[{pers_name:{text:"Gibson, Nathan",ref:[]},roles:["investigation"],websites:["https://biblia-arabica.com/team/nathan-gibson/"]}],research_data:{lang:["syr"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["biographical_data","corpus_resource","geodata","semitic_studies","translation","visualization"],comment:"The start date recorded for this project is approximate."}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/text_plus/2689651d-1e28-4f26-ac43-cfdca097d837.json",{schema_version:"0.2.2",record_metadata:{uuid:"2689651d-1e28-4f26-ac43-cfdca097d837",record_created_on:"2021-11-01",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-05-06"},project:{title:"Text+",abbr:"",type:"organization",ref:[],date:[{from:"2021",to:"2026"}],maintained:!0,websites:["https://www.text-plus.org/"],project_desc:"Text+ is a consortium with the objective to establish a national research data infrastructure. It will preserve text- and language-based research data in the long term and enable their broad use in science.",places:[{place_name:{text:"Mannheim",ref:["https://www.geonames.org/2873891/mannheim.html"]},coordinates:{lat:"49.4891",lng:"8.46694"}},{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}},{place_name:{text:"Frankfurt am Main",ref:["https://www.geonames.org/2925533/frankfurt-am-main.html"]},coordinates:{lat:"50.11552",lng:"8.68417"}},{place_name:{text:"Leipzig",ref:["https://www.geonames.org/2879139/leipzig.html"]},coordinates:{lat:"51.33962",lng:"12.37129"}},{place_name:{text:"Göttingen",ref:["https://www.geonames.org/2918632/goettingen.html"]},coordinates:{lat:"51.53443",lng:"9.93228"}},{place_name:{text:"Düsseldorf",ref:["https://www.wikidata.org/wiki/Q320642"]},coordinates:{lat:"36.61393",lng:"29.23698"}}],lang:["deu","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Die Nationale Forschungsdateninfrastruktur (NFDI)",ref:["https://www.wikidata.org/wiki/Q105757481","https://ror.org/05qj6w324"]},websites:["https://www.nfdi.de/verein/"]},{relation_type:"host",org_name:{text:"Leibniz-Institut für Deutsche Sprache",ref:["https://www.wikidata.org/wiki/Q1664834","https://ror.org/00hvwkt50"]},websites:["https://www.ids-mannheim.de/"]},{relation_type:"host",org_name:{text:"Berlin-Brandenburgische Akademie der Wissenschaften",ref:["https://ror.org/05jgq9443","https://www.wikidata.org/wiki/Q219989"]},websites:["https://www.bbaw.de/"]},{relation_type:"host",org_name:{text:"Deutsche Nationalbibliothek",ref:["https://www.wikidata.org/wiki/Q27302","https://ror.org/01n7gem85"]},websites:["https://www.dnb.de/DE/Home/home_node.html"]},{relation_type:"host",org_name:{text:"Niedersächsische Staats- und Universitätsbibliothek Göttingen",ref:["https://www.wikidata.org/wiki/Q564783"]},websites:["https://www.sub.uni-goettingen.de/sub-aktuell/"]},{relation_type:"host",org_name:{text:"Nordrhein-Westfälische Akademie der Wissenschaften und der Künste",ref:["https://www.wikidata.org/wiki/Q320642"]},websites:["https://www.awk.nrw/"]}],related_entities:[],contacts:[{pers_name:{text:"Klemm, Verena",ref:["https://d-nb.info/gnd/172189101"]},roles:["investigation"],websites:["https://www.gkr.uni-leipzig.de/orientalisches-institut/ueber-uns/team/prof-dr-verena-klemm"]}],research_data:{lang:[],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["research_data_management","research_infrastructure"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/classicmayan/2253d7f2-c150-44e2-9a8a-c7c5ba0ab661.json",{schema_version:"0.2.2",record_metadata:{uuid:"2253d7f2-c150-44e2-9a8a-c7c5ba0ab661",record_created_on:"2023-12-14",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Textdatenbank und Wörterbuch des Klassischen Maya",abbr:"Classicmayan",type:"project",ref:[],date:[{from:"2014",to:""}],maintained:!0,websites:["https://classicmayan.org/portal/","https://digitale-sammlungen.ulb.uni-bonn.de/maya"],project_desc:"This project is centered on the analysis of all known hieroglyphic Mayan texts which will serve as the basis for the compilation and editing of a Classic Mayan language dictionary. It will employ machine-readable versions of the source materials in order to integrate all occurrences of the Maya hieroglyphs into a corpus-based database, together with information concerning the original hieroglyphic spelling, transcription, and translation, as well as supplementary information. It thus lays the foundation for a systematic understanding of the structure of the writing system and of Classic Maya, the standard language underlying the hieroglyphic script.",places:[{place_name:{text:"Bonn",ref:["https://www.geonames.org/2946447/bonn.html"]},coordinates:{lat:"50.73438",lng:"7.09549"}},{place_name:{text:"Düsseldorf",ref:["https://www.geonames.org/2934246/duesseldorf.html"]},coordinates:{lat:"51.22172",lng:"6.77616"}},{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}}],lang:["eng","deu","spa"],related_institutions:[{relation_type:"host",org_name:{text:"Universität Bonn",ref:["https://www.wikidata.org/wiki/Q152171","https://ror.org/041nas322"]},websites:["https://www.uni-bonn.de/de"]},{relation_type:"cooperation",org_name:{text:"Nordrhein-Westfälische Akademie der Wissenschaften und Künste",ref:["https://www.wikidata.org/wiki/Q320642","https://ror.org/03aym6q96"]},websites:["https://www.awk.nrw/"]},{relation_type:"cooperation",org_name:{text:"Union der deutschen Akademien der Wissenschaften",ref:["https://www.wikidata.org/wiki/Q1662834","https://ror.org/04bvdz568"]},websites:["https://www.akademienunion.de/"]}],related_entities:[{relation_type:"cooperation",title:"TextGrid",uuid:"28b08ba5-2a3f-4f35-a909-7a745c26ba55"}],contacts:[{pers_name:{text:"Grube, Nikolai",ref:["https://d-nb.info/gnd/110726553"]},roles:["supervision"],websites:["https://www.uni-bonn.de/de/forschung-lehre/forschungsprofil/transdisziplinaere-forschungsbereiche/tra5/mitgliederverzeichnis/nikolai-grube"]}],research_data:{lang:["emy"],sustainability_plan:null,publications:{open_access:0,licensing:[]},data:{datatypes:[{label:"",stage:"raw",licensing:[],open_access:0}],repositories:[{label:"",accessibility:"public",ref:[],licensing:[],description:""}]}},stack:{database:[],backend:[],frontend:[],tools:[{label:"",self_developed:!1,ref:[],description:""}],languages:[]},policies:[{description:"",ref:[]}],keywords:["archaeology","digital_preservation","inscription","lexicon","translation"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/text_grid/28b08ba5-2a3f-4f35-a909-7a745c26ba55.json",{schema_version:"0.2.2",record_metadata:{uuid:"28b08ba5-2a3f-4f35-a909-7a745c26ba55",record_created_on:"2023-12-15",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"TextGrid",abbr:"",type:"project",ref:[],date:[{from:"2006",to:"2009"},{from:"2009",to:"2012"},{from:"2012",to:"2015"}],maintained:!0,websites:["https://www.textgrid.de/web/guest/projekt"],project_desc:"Answering an increasing demand for digital and collective research features in the humanities, TextGrid has established the infrastructure for a respective virtual research environment. In continuous exchange with the scientific community, TextGrid has developed a variety of tools and services available for free download in a stable version. Together with the TextGrid Repository, the virtual research environment TextGrid offers scholars in the humanities sustainable editing, storing and publishing of their data in a thoroughly tested and safe environment.",places:[{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}},{place_name:{text:"Tübingen",ref:["https://www.geonames.org/2820860/tuebingen.html"]},coordinates:{lat:"48.52266",lng:"9.05222"}},{place_name:{text:"Worms",ref:["https://www.geonames.org/2806142/worms.html"]},coordinates:{lat:"49.63278",lng:"8.35916"}},{place_name:{text:"Göttingen",ref:["https://www.geonames.org/2918632/goettingen.html"]},coordinates:{lat:"51.53443",lng:"9.93228"}},{place_name:{text:"Mannheim",ref:["https://www.geonames.org/2873891/mannheim.html"]},coordinates:{lat:"49.4891",lng:"8.46694"}},{place_name:{text:"Darmstadt",ref:["https://www.geonames.org/2938913/darmstadt.html"]},coordinates:{lat:"49.87167",lng:"8.65027"}},{place_name:{text:"Würzburg",ref:["https://www.geonames.org/2805615/wuerzburg.html"]},coordinates:{lat:"49.79391",lng:"9.95121"}}],lang:["eng","deu"],related_institutions:[{relation_type:"host",org_name:{text:"Berlin-Brandenburgische Akademie der Wissenschaften",ref:["https://ror.org/05jgq9443","https://www.wikidata.org/wiki/Q219989"]},websites:["https://www.bbaw.de/"]},{relation_type:"host",org_name:{text:"DAASI International GmbH",ref:["https://www.wikidata.org/wiki/Q110492372","https://ror.org/048yzb176"]},websites:["https://daasi.de/de/"]},{relation_type:"host",org_name:{text:"Hochschule Worms",ref:["https://www.wikidata.org/wiki/Q1391239","https://ror.org/031ph8d53"]},websites:["https://www.hs-worms.de/"]},{relation_type:"host",org_name:{text:"Gesellschaft für wissenschaftliche Datenverarbeitung mbH Göttingen",ref:["https://www.wikidata.org/wiki/Q1490164","https://ror.org/00cd95c65"]},websites:["https://gwdg.de/"]},{relation_type:"host",org_name:{text:"Leibniz-Institut für Deutsche Sprache",ref:["https://www.wikidata.org/wiki/Q1664834","https://ror.org/00hvwkt50"]},websites:["https://www.ids-mannheim.de/"]},{relation_type:"host",org_name:{text:"Max-Planck-Institut für Wissenschaftsgeschichte",ref:["https://ror.org/0492sjc74","https://www.wikidata.org/wiki/Q318118"]},websites:["https://www.mpiwg-berlin.mpg.de/"]},{relation_type:"host",org_name:{text:"Niedersächsische Staats- und Universitätsbibliothek Göttingen",ref:["https://www.wikidata.org/wiki/Q564783"]},websites:["https://www.sub.uni-goettingen.de/sub-aktuell/"]},{relation_type:"host",org_name:{text:"Technische Universität Berlin",ref:["https://www.wikidata.org/wiki/Q51985","https://ror.org/03v4gjf40"]},websites:["https://www.tu.berlin/"]},{relation_type:"host",org_name:{text:"Technische Universität Darmstadt",ref:["https://www.wikidata.org/wiki/Q310695","https://ror.org/05n911h24"]},websites:["https://www.tu-darmstadt.de/"]},{relation_type:"host",org_name:{text:"Julius-Maximilians-Universität Würzburg",ref:["https://www.wikidata.org/wiki/Q161976","https://ror.org/00fbnyb24"]},websites:["https://www.uni-wuerzburg.de/"]}],related_entities:[{relation_type:"cooperation",title:"Textdatenbank und Wörterbuch des Klassischen Maya",uuid:"2253d7f2-c150-44e2-9a8a-c7c5ba0ab661"}],contacts:[{pers_name:{text:"Horstmann, Wolfram",ref:["https://d-nb.info/gnd/129236187"]},roles:["supervision"],websites:["https://www.fiz-karlsruhe.de/de/ueber-uns/curriculum-vitae-prof-dr-wolfram-horstmann"]}],research_data:{lang:[],sustainability_plan:null,publications:{open_access:0,licensing:[]},data:{datatypes:[{label:"",stage:"raw",licensing:[],open_access:0}],repositories:[{label:"",accessibility:"public",ref:[],licensing:[],description:""}]}},stack:{database:[],backend:[],frontend:[],tools:[{label:"",self_developed:!1,ref:[],description:""}],languages:[]},policies:[{description:"",ref:[]}],keywords:["research_data_management","research_infrastructure"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/evolution_of_islamic_societies/659c0aba-3bdd-43eb-937d-dad4ad63e3fc.json",{schema_version:"0.2.2",record_metadata:{uuid:"659c0aba-3bdd-43eb-937d-dad4ad63e3fc",record_created_on:"2022-08-10",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"The Evolution of Islamic Societies (c. 600–1600 CE): Algorithmic Analysis into Social History",abbr:"",type:"project",ref:[],date:[{from:"2021",to:"2027"}],maintained:!0,websites:["https://www.csmc.uni-hamburg.de/research/current-projects/evolution-of-islamic-societies.html","https://eis1600.github.io/"],project_desc:"This project examines the social history of the Islamic society from its birth until the 16th century using highly advanced computational methods of text analysis and data modeling. The core of the study is a corpus of Islamic text from that period containing approximately 300 titles, 100 million words, and c. 400,000 biographical records, which—for the first time—will be treated holistically as a unified corpus of historical information. One of the project’s outputs (next to two PhD theses, multiple articles and a monograph) will be an open and expandable online research ecosystem, MasterChronicle, which will allow scholars in the field to engage in various modes of close and distant reading of the Arabic historical corpus.",places:[{place_name:{text:"Hamburg",ref:["https://www.geonames.org/2911298/hamburg.html"]},coordinates:{lat:"53.55073",lng:"9.99302"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Universität Hamburg",ref:["https://ror.org/00g30e956","https://www.wikidata.org/wiki/Q156725"]},websites:["https://www.uni-hamburg.de/"]}],related_entities:[{relation_type:"sibling",title:"Afrikanische Stimmen in islamischen Manuskripten aus Mali: Erschließung und Erforschung afrikanischer Sprachen in arabischer Schrift (Ajami)",uuid:"eaf36ccc-5ee4-4749-80ea-7f71f479c968"},{relation_type:"sibling",title:"Beta maṣāḥǝft Manuscripts of Ethiopia and Eritrea",uuid:"169677fd-14f9-46e7-b8f1-2202fb91397c"},{relation_type:"sibling",title:"Demarginalizing Medieval Africa: Images, Texts, and Identity in Early Solomonic Ethiopia",uuid:"46121edb-516b-4dbf-ba49-e2c5f07cec2e"},{relation_type:"sibling",title:"The intertwined world of the oral and written transmission of sacred traditions in the Middle East",uuid:"bb852d81-0c6d-4413-8c20-1bb38c4db4e7"},{relation_type:"sibling",title:"Understanding Written Artefacts",uuid:"9ca46873-3089-4a04-99fa-89c0c1b01213"},{relation_type:"sibling",title:"Audition Certificates Platform",uuid:"b333a11d-b9fc-4379-9e21-fbddfa9500b1"},{relation_type:"sibling",title:"Methoden der Bildverarbeitung zur Bestimmung von visuellen Manuskript- und Zeichenmerkmalen",uuid:"eb8e91fe-952e-48b7-af0d-c026ebe37826"},{relation_type:"sibling",title:"Datenrepositorium Manuskriptkulturen",uuid:"894dcf0c-7295-4fb8-b4ba-866a5ebe3310"},{relation_type:"sibling",title:"Documentation of Gorani, an endangered language of West Iran",uuid:"17fa004d-c9d2-4ce3-8116-b7bfff5d14ed"},{relation_type:"sibling",title:"Islamic Painted Page",uuid:"31534c48-6b74-4cc5-8aff-ea8dbc60c445"},{relation_type:"sibling",title:"Methoden der Manuskriptanalyse zur Wiedergewinnung verlorener Schrift",uuid:"892b783d-1788-451f-9efd-1c58bfb4b064"},{relation_type:"sibling",title:"SfarData",uuid:"81d8ad85-5da8-457f-99a3-6ab11128ef03"},{relation_type:"sibling",title:"SIHAFA: The Ideosphere of the Late Ottoman Arabic Press: Mapping the Discursive Field of Authors and Texts through Computational Approaches",uuid:"20ee58f5-f699-4262-a473-7765e249c871"},{relation_type:"sibling",title:"Ethio-SPaRe: Cultural Heritage of Christian Ethiopia. Salvation, Preservation, Research",uuid:"fbf007e0-7eee-4bb1-801d-568785d43d04"},{relation_type:"sibling",title:"From Translation to Creation: Changes in Ethiopic Style and Lexicon from Late Antiquity to the Middle Ages",uuid:"77ae1011-1b54-46b5-b676-02895e3300fc"},{relation_type:"sibling",title:"Corpus dei Manoscritti Copti Letterari",uuid:"c4f41a6d-9fb9-4c31-85f0-b66acfe41289"},{relation_type:"cooperation",title:"Open Islamicate Texts Initiative",uuid:"bef2e507-b663-422e-9dd3-7e49ca299f05"},{relation_type:"cooperation",title:"OpenITI_NgramReader",uuid:"d1d73911-81dc-4a65-bf1b-162f7fb2e84e"}],contacts:[{pers_name:{text:"Romanov, Maxim",ref:[]},roles:["supervision"],websites:["https://www.aai.uni-hamburg.de/voror/personen/romanov.html"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[]},data:{datatypes:[{label:"HTML",stage:"refined",licensing:[],open_access:0},{label:"Markdown",stage:"refined",licensing:[],open_access:0}],repositories:[{label:"GitHub",accessibility:"private",ref:[],licensing:[],description:""}]}},stack:{database:[],backend:["Python"],frontend:[],tools:[{label:"AraBERT",self_developed:!1,ref:["https://github.com/CAMeL-Lab/camel_tools"],description:""},{label:"CAMeL Tools",self_developed:!1,ref:["https://github.com/CAMeL-Lab/camel_tools"],description:""}],languages:["Python"]},policies:[{description:"",ref:[]}],keywords:["annotation","computational_text_analysis","corpus_resource","geodata","islamic_studies","religion_studies","visualization","vre"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/the_formation_of_islam/33a6a747-4180-4e28-a99c-2bf6dcf53200.json",{schema_version:"0.2.2",record_metadata:{uuid:"33a6a747-4180-4e28-a99c-2bf6dcf53200",record_created_on:"2021-11-01",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-05-06"},project:{title:"The formation of Islam",abbr:"",type:"project",ref:[],date:[{from:"2009",to:"2015"}],maintained:!1,websites:["https://www.universiteitleiden.nl/en/research/research-projects/humanities/the-formation-of-islam-the-view-from-below#tab-1"],project_desc:"The purpose of this project is the examination of vastly important but largely neglected papyri from Egypt which preserve a minutely detailed transcription of daily life, as well as the only contemporary records of Islam’s rise and first wave of conquests. Based on this testimony the project aims to write the history of the formation of Islam through the striking newness of Islamic society and its debt to the diverse cultures it superseded. Beside stocktaking of the unedited papyri, the project’s team will crate a corpus of most significant texts and present the historical analysis through scholarly publications and a dedicated website.",places:[{place_name:{text:"Leiden",ref:["https://www.geonames.org/2751773/leiden.html"]},coordinates:{lat:"52.15833",lng:"4.49306"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Leiden University",ref:["https://www.wikidata.org/wiki/Q156598","https://ror.org/027bh9e22"]},websites:["https://www.universiteitleiden.nl/en"]}],related_entities:[{relation_type:"cooperation",title:"Moving frontiers",uuid:"d5dd164d-1887-473f-8282-584b8d09474d"}],contacts:[{pers_name:{text:"Sijpesteijn, Petra",ref:["https://www.wikidata.org/wiki/Q14084136"]},roles:["supervision"],websites:["https://www.universiteitleiden.nl/en/staffmembers/petra-sijpesteijn#tab-1"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","corpus_output","digital_preservation","islamic_studies","manuscript","religion_studies"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/intersame/bb852d81-0c6d-4413-8c20-1bb38c4db4e7.json",{schema_version:"0.2.2",record_metadata:{uuid:"bb852d81-0c6d-4413-8c20-1bb38c4db4e7",record_created_on:"2022-08-10",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"The intertwined world of the oral and written transmission of sacred traditions in the Middle East",abbr:"InterSaME",type:"project",ref:[],date:[{from:"2020",to:"2023"}],maintained:!0,websites:["https://www.csmc.uni-hamburg.de/research/current-projects/intersame.html","https://www.intersame.uni-hamburg.de/"],project_desc:"The scope of this project is to study the convergence of the three major religions of the Middle East – Islam, Christianity, and Judaism – at their formative periods of development during the early Islamic centuries. Two examples of this convergence are the development of notation systems in Arabic and Syriac representing oral reading traditions, and the assimilation of the mode of transmission of the Hebrew Bible in the 10th and 11th centuries to that of the Qur’an. The project will conduct digital analysis of manuscripts of the Qur’an and the Syriac and Hebrew Bible, in order to contribute to our understanding of the individual sacred traditions and to identify parallels among them.",places:[{place_name:{text:"Hamburg",ref:["https://www.geonames.org/2911298/hamburg.html"]},coordinates:{lat:"53.55073",lng:"9.99302"}},{place_name:{text:"Cambridge",ref:["https://www.geonames.org/2653941/cambridge.html"]},coordinates:{lat:"52.2",lng:"0.11667"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"University of Cambridge",ref:["https://www.wikidata.org/wiki/Q35794","https://ror.org/013meh722"]},websites:["https://www.cam.ac.uk/"]},{relation_type:"host",org_name:{text:"Universität Hamburg",ref:["https://ror.org/00g30e956","https://www.wikidata.org/wiki/Q156725"]},websites:["https://www.uni-hamburg.de/"]}],related_entities:[{relation_type:"sibling",title:"Afrikanische Stimmen in islamischen Manuskripten aus Mali: Erschließung und Erforschung afrikanischer Sprachen in arabischer Schrift (Ajami)",uuid:"eaf36ccc-5ee4-4749-80ea-7f71f479c968"},{relation_type:"sibling",title:"Beta maṣāḥǝft Manuscripts of Ethiopia and Eritrea",uuid:"169677fd-14f9-46e7-b8f1-2202fb91397c"},{relation_type:"sibling",title:"Demarginalizing Medieval Africa: Images, Texts, and Identity in Early Solomonic Ethiopia",uuid:"46121edb-516b-4dbf-ba49-e2c5f07cec2e"},{relation_type:"sibling",title:"The Evolution of Islamic Societies (c. 600–1600 CE): Algorithmic Analysis into Social History",uuid:"659c0aba-3bdd-43eb-937d-dad4ad63e3fc"},{relation_type:"sibling",title:"Understanding Written Artefacts",uuid:"9ca46873-3089-4a04-99fa-89c0c1b01213"},{relation_type:"sibling",title:"Audition Certificates Platform",uuid:"b333a11d-b9fc-4379-9e21-fbddfa9500b1"},{relation_type:"sibling",title:"Methoden der Bildverarbeitung zur Bestimmung von visuellen Manuskript- und Zeichenmerkmalen",uuid:"eb8e91fe-952e-48b7-af0d-c026ebe37826"},{relation_type:"sibling",title:"Datenrepositorium Manuskriptkulturen",uuid:"894dcf0c-7295-4fb8-b4ba-866a5ebe3310"},{relation_type:"sibling",title:"Documentation of Gorani, an endangered language of West Iran",uuid:"17fa004d-c9d2-4ce3-8116-b7bfff5d14ed"},{relation_type:"sibling",title:"Islamic Painted Page",uuid:"31534c48-6b74-4cc5-8aff-ea8dbc60c445"},{relation_type:"sibling",title:"Methoden der Manuskriptanalyse zur Wiedergewinnung verlorener Schrift",uuid:"892b783d-1788-451f-9efd-1c58bfb4b064"},{relation_type:"sibling",title:"SfarData",uuid:"81d8ad85-5da8-457f-99a3-6ab11128ef03"},{relation_type:"sibling",title:"SIHAFA: The Ideosphere of the Late Ottoman Arabic Press: Mapping the Discursive Field of Authors and Texts through Computational Approaches",uuid:"20ee58f5-f699-4262-a473-7765e249c871"},{relation_type:"sibling",title:"Ethio-SPaRe: Cultural Heritage of Christian Ethiopia. Salvation, Preservation, Research",uuid:"fbf007e0-7eee-4bb1-801d-568785d43d04"},{relation_type:"sibling",title:"From Translation to Creation: Changes in Ethiopic Style and Lexicon from Late Antiquity to the Middle Ages",uuid:"77ae1011-1b54-46b5-b676-02895e3300fc"},{relation_type:"sibling",title:"Corpus dei Manoscritti Copti Letterari",uuid:"c4f41a6d-9fb9-4c31-85f0-b66acfe41289"}],contacts:[{pers_name:{text:"Fedeli, Alba",ref:["https://viaf.org/viaf/13159335176612960925"]},roles:["supervision"],websites:["https://www.aai.uni-hamburg.de/voror/personen/fedeli.html"]},{pers_name:{text:"Khan, Geoffrey",ref:["https://d-nb.info/gnd/136726224"]},roles:["supervision"],websites:["https://www.ames.cam.ac.uk/people/professor-geoffrey-khan"]}],research_data:{lang:["ara","heb","syr"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["annotation","arabic_studies","corpus_output","digital_preservation","jewish_studies","manuscript","religion_studies","religious_text","semitic_studies","vre"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/the_islamic_manuscript_association/862e636c-6757-4dc6-a382-b77768b69cbc.json",{schema_version:"0.2.2",record_metadata:{uuid:"862e636c-6757-4dc6-a382-b77768b69cbc",record_created_on:"2022-09-06",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"The Islamic Manuscript Association",abbr:"",type:"organization",ref:["https://d-nb.info/gnd/10368977-1"],date:[{from:"2008",to:""}],maintained:!0,websites:["https://www.islamicmanuscript.org/home.aspx"],project_desc:"The Islamic Manuscript Association is an international non-profit organization dedicated to protecting Islamic manuscript collections and supporting those who work with them. Its main goal is to enhance the preservation and accessibility of many Islamic manuscript collections around the world. To this end, it articulates standards and guidelines for best practice in cataloguing, conservation, digitization, offers courses for professionals and awards grants to advance scholarship on Islamic manuscripts.",places:[{place_name:{text:"Cambridge",ref:["https://www.geonames.org/2653941/cambridge.html"]},coordinates:{lat:"52.2",lng:"0.11667"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"University of Cambridge",ref:["https://www.wikidata.org/wiki/Q35794","https://ror.org/013meh722"]},websites:["https://www.cam.ac.uk/"]}],related_entities:[],contacts:[{pers_name:{text:"Al-Nashar, Dalia",ref:[]},roles:["investigation"],websites:["https://www.islamicmanuscript.org/DirectoryOfMembers/Person.aspx?mid=706"]}],research_data:{lang:["ara","fas","tur"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["collaboration_platform","islamic_studies"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/muya/cb428a09-41a6-4b68-b81e-8e72e23e6aba.json",{schema_version:"0.2.2",record_metadata:{uuid:"cb428a09-41a6-4b68-b81e-8e72e23e6aba",record_created_on:"2023-02-13",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"The Multimedia Yasna",abbr:"MUYA",type:"project",ref:[],date:[{from:"2016",to:"2022"}],maintained:null,websites:["https://muya.soas.ac.uk/","https://tcdh.uni-trier.de/de/projekt/multimedia-yasna-project-muya#:~:text=Das%20Projekt%20Multimedia%20Yasna%20will,in%20den%20Blick%20zu%20"],project_desc:"The project MUYA employs a range of methodologies from digital humanities to delve into the oral and written traditions of the Yasna, a core ritual in Zoroastrian religion. To enhance research on oral traditions, the project has created a subtitled and interactive film of the Yasna ritual. For written traditions, the project has developed an online platform featuring transcribed manuscripts, editorial tools, digital transcriptions, and digital editions complete with a text-critical apparatus. These digital materials are supplemented by print editions, translations, and commentaries on the Yasna.",places:[{place_name:{text:"London",ref:["https://www.geonames.org/2643743/london.html"]},coordinates:{lat:"51.50853",lng:"-0.12574"}},{place_name:{text:"Birmingham",ref:["https://www.geonames.org/2655603/birmingham.html"]},coordinates:{lat:"52.48142",lng:"-1.89983"}},{place_name:{text:"Münster",ref:["https://www.geonames.org/2867543/muenster.html"]},coordinates:{lat:"51.96236",lng:"7.62571"}},{place_name:{text:"Trier",ref:["https://www.geonames.org/2821164/trier.html"]},coordinates:{lat:"49.75565",lng:"6.63935"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"School of Oriental and African Studies, University of London",ref:["https://www.wikidata.org/wiki/Q220144","https://ror.org/04vrxay34"]},websites:["https://www.soas.ac.uk/"]},{relation_type:"host",org_name:{text:"University of Birmingham",ref:["https://www.wikidata.org/wiki/Q223429"]},websites:["https://www.birmingham.ac.uk/index.aspx"]},{relation_type:"host",org_name:{text:"Westfälische Wilhelms-Universität Münster",ref:["https://ror.org/00pd74e08","https://www.wikidata.org/wiki/Q168426"]},websites:["https://www.uni-muenster.de/de/"]},{relation_type:"host",org_name:{text:"Universität Trier",ref:["https://ror.org/02778hg05","https://www.wikidata.org/wiki/Q572286"]},websites:["https://www.uni-trier.de/"]}],related_entities:[],contacts:[{pers_name:{text:"Hintze, Almut",ref:["https://d-nb.info/gnd/1138120693"]},roles:["supervision"],websites:["https://www.soas.ac.uk/about/almut-hintze"]}],research_data:{lang:["ave"],sustainability_plan:null,publications:{open_access:0,licensing:[]},data:{datatypes:[],repositories:[]}},stack:{database:[],backend:[],frontend:[],tools:[],languages:[]},policies:[{description:"",ref:[]}],keywords:["digital_edition","digital_preservation","iranian_studies","religion_studies","religious_text","tei","video","vre"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/ymdi/e17c5b2a-7619-40bd-bddd-51063f687cb0.json",{schema_version:"0.2.2",record_metadata:{uuid:"e17c5b2a-7619-40bd-bddd-51063f687cb0",record_created_on:"2022-07-26",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"The Yemeni Manuscript Digitization Initiative",abbr:"YMDI",type:"project",ref:[],date:[{from:"2010",to:"2013"}],maintained:null,websites:["https://ymdi.uoregon.edu/projects/","https://dpul.princeton.edu/islamicmss/feature/yemeni-manuscripts-digitization-initiative","https://gepris.dfg.de/gepris/projekt/173778285"],project_desc:"The Yemen Manuscript Digitization Initiative (YMDI) is a collaborative project between Princeton University Library and the Freie Universität, Berlin. YMDI’s mission is the preservation and dissemination of the Arabic manuscripts in the private libraries of Yemen. The scope of the project is threefold: 1. preservation of three private libraries in Sana‘a, a total of 236 manuscripts. 2. digitization of 12 additional manuscripts in the rare book collections of the State Library Berlin and the Princeton University Library. 3 creation of a freely accessible repository of Islamic manuscripts based on the digital-library infrastructure developed at Princeton.",places:[{place_name:{text:"Princeton",ref:["https://www.geonames.org/5102922/princeton.html"]},coordinates:{lat:"40.34872",lng:"-74.65905"}},{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}},{place_name:{text:"Sanaa",ref:["https://www.geonames.org/71137/sanaa.html"]},coordinates:{lat:"15.35472",lng:"44.20667"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Freie Universität Berlin",ref:["https://ror.org/046ak2485","https://www.wikidata.org/wiki/Q153006"]},websites:["https://www.fu-berlin.de/"]},{relation_type:"host",org_name:{text:"Princeton University",ref:["https://ror.org/00hx57361","https://www.wikidata.org/wiki/Q21578"]},websites:["https://www.princeton.edu/"]}],related_entities:[{relation_type:"sibling",title:"Weaving the Humanities into the Web and the Web into the Humanities. Preserving the Cultural Heritage of Yemen by Creating an Universally Virtual Library of Manuscripts (HumanWeb)",uuid:"1a587e85-1385-40b0-b6eb-25ca8fa5042c"}],contacts:[{pers_name:{text:"Schmidtke, Sabine",ref:["https://d-nb.info/gnd/143773771"]},roles:["supervision"],websites:["https://www.ias.edu/scholars/schmidtke"]},{pers_name:{text:"Magier, David",ref:["https://d-nb.info/gnd/1050435206"]},roles:["supervision"],websites:["https://library.princeton.edu/staff/dmagier"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","catalog","digital_preservation","manuscript"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/titus/fbd22cab-b0b1-4ed4-aa1a-9f675c19c1af.json",{schema_version:"0.2.2",record_metadata:{uuid:"fbd22cab-b0b1-4ed4-aa1a-9f675c19c1af",record_created_on:"2023-11-09",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Thesaurus Indogermanischer Text- und Sprachmaterialien",abbr:"TITUS",type:"project",ref:[],date:[{from:"1986",to:""}],maintained:null,websites:["https://titus.uni-frankfurt.de/indexd.htm"],project_desc:"The project seeks to organize the collaboration of numerous scholars in developing an electronic text collection. This collection will serve as a foundation for computer-aided investigations into diverse Indo-European languages. Additionally, the project aims to expand the initiative by generating a growing repository of files containing supplementary materials, including dictionaries, word lists, linguistic analysis tools, and similar resources.",places:[{place_name:{text:"Frankfurt",ref:["https://www.geonames.org/2925533/frankfurt-am-main.html"]},coordinates:{lat:"50.11552",lng:"8.68417"}}],lang:[],related_institutions:[{relation_type:"host",org_name:{text:"Goethe-Universität Frankfurt am Main",ref:["https://ror.org/04cvxnb49","https://www.wikidata.org/wiki/Q50662"]},websites:["https://www.uni-frankfurt.de/de"]}],related_entities:[],contacts:[{pers_name:{text:"Gippert, Jost",ref:[]},roles:["supervision"],websites:["https://d-nb.info/gnd/109337409"]}],research_data:{lang:["ara","ave","elx","gml","got","heb","hin","hit","hun","imy","lat","lav","lit","lzz","nrp","ofs","oge","orv","osc","oss","osx","pli","raj","sog","sqi","sux","sva","syr","tam","udi","wlm","xbc","xbm","xcr","xlc","xld","xlp","xpg","xpr","xum","zho"],sustainability_plan:null,publications:{open_access:0,licensing:[]},data:{datatypes:[{label:"",stage:"raw",licensing:[],open_access:0}],repositories:[{label:"",accessibility:"public",ref:[],licensing:[],description:""}]}},stack:{database:[],backend:[],frontend:[],tools:[{label:"",self_developed:!1,ref:[],description:""}],languages:[]},policies:[{description:"",ref:[]}],keywords:["annotation","corpus_output","digital_preservation","history_studies","inscription","lexicon","manuscript","vre"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/tierrecht_und_strafen/57622367-8250-4932-ab3e-0356615d578a.json",{schema_version:"0.2.2",record_metadata:{uuid:"57622367-8250-4932-ab3e-0356615d578a",record_created_on:"2023-02-10",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Tierrecht und Strafen im 'Gesetz zur Abwehr der Dämonen' (Vidçvdâd, Kapitel 13–15)",abbr:"",type:"project",ref:[],date:[{from:"2010",to:"2013"}],maintained:null,websites:["https://www.geschkult.fu-berlin.de/e/iranistik/archiv/projekt-archiv/vorislamisches-recht/videvdad13-15/index.html","https://gepris.dfg.de/gepris/projekt/169903502"],project_desc:"The main objective of this research project is to conclude a critical edition of the Avesta and Pahlavi versions of the Vīdēvdād chapters 13–15 which was started in the pre-project Vidēvdād chapters 5–8. The edition should be enriched by a complete translation of Avesta and Pahlavi texts, the completion of two glossaries as well as preparation of a commentary on linguistic and textual peculiarities and difficulties. The translated and edited chapters will be made available to the broader audience in a digital form.",places:[{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Freie Universität Berlin",ref:["https://ror.org/046ak2485","https://www.wikidata.org/wiki/Q153006"]},websites:["https://www.fu-berlin.de/"]}],related_entities:[{relation_type:"cooperation",title:"Corpus Avesticum Berolinense",uuid:"4c68f56a-2c44-41c0-acb9-ece91afaf70c"},{relation_type:"cooperation",title:"Avestan Digital Archive",uuid:"0a2ff403-834b-484f-b961-0822220bab58"},{relation_type:"sibling",title:"Avestan Digital Archive",uuid:"0a2ff403-834b-484f-b961-0822220bab58"},{relation_type:"sibling",title:"Zoroastrian Middle Persian Corpus and Dictionary",uuid:"7d8eb5d0-6284-4939-a48b-7ff7a2407989"},{relation_type:"sibling",title:"Corpus Avesticum Berolinense",uuid:"4c68f56a-2c44-41c0-acb9-ece91afaf70c"}],contacts:[{pers_name:{text:"Cantera Glera, Alberto",ref:["https://d-nb.info/gnd/1198415282"]},roles:["supervision"],websites:["https://www.geschkult.fu-berlin.de/e/iranistik/mitarbeiter/professoren/cantera/index.html"]},{pers_name:{text:"Macuch, Maria",ref:["https://d-nb.info/gnd/108931838"]},roles:["supervision"],websites:["https://www.geschkult.fu-berlin.de/e/iranistik/mitarbeiter/ehemalige/macuch/index.html"]}],research_data:{lang:["ave"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["digital_edition","digital_preservation","history_studies","iranian_studies","manuscript","religious_text","translation"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/tikkoun_sofrim/ce4fc765-1578-4cfb-8efa-b82387c99590.json",{schema_version:"0.2.2",record_metadata:{uuid:"ce4fc765-1578-4cfb-8efa-b82387c99590",record_created_on:"2022-10-07",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Tikkoun Sofrim",abbr:"",type:"project",ref:[""],date:[{from:"2018",to:""}],maintained:null,websites:["https://tikkoun-sofrim.firebaseapp.com/en","https://tikkunsofrim.hypotheses.org/about-2","https://elijahlab.haifa.ac.il/tikkoun-sofrim/?lang=en"],project_desc:"The purpose of this project is to make Medieval Hebrew manuscripts openly and freely available as texts. To this end it combines automatic Handwritten Text-Recognition (HTR) and Crowdsourcing. The HTR is performed with a tool called Kraken with an error rate of less than 10%. In the next step, the resulting texts are made publicly available for correction. The amendments are than used both to improve Kraken’s capabilities and to place digital editions and scripts in libraries that will allow a literal search of the manuscripts.",places:[{place_name:{text:"Paris",ref:["https://www.geonames.org/2988506/paris.html"]},coordinates:{lat:"48.85339",lng:"2.34864"}},{place_name:{text:"Haifa",ref:["https://www.geonames.org/294801/haifa.html"]},coordinates:{lat:"32.81841",lng:"34.9885"}},{place_name:{text:"Jerusalem",ref:["https://www.geonames.org/281184/jerusalem.html"]},coordinates:{lat:"31.76904",lng:"35.21633"}}],related_institutions:[{relation_type:"host",org_name:{text:"PSL Research University Paris",ref:["https://ror.org/03k9z2963"]},websites:["https://psl.eu/en"]},{relation_type:"host",org_name:{text:"University of Haifa",ref:["https://ror.org/02f009v59"]},websites:["https://www.haifa.ac.il/"]},{relation_type:"host",org_name:{text:"National Library of Israel",ref:["https://ror.org/03be63z97"]},websites:["https://www.nli.org.il/en"]}],lang:["eng","fra","heb"],related_entities:[{relation_type:"sibling",title:"Scripta-PSL",uuid:"0cf58379-39c3-4e95-b7b1-cc9f7f11c7ba"}],contacts:[{pers_name:{text:"Wecker, Alan J.",ref:["https://viaf.org/viaf/19154921221763590939/#%D7%95%D7%95%D7%A7%D7%A8,_%D7%90%D7%94%D7%A8%D7%95%D7%9F"]},roles:["supervision"],websites:["http://haifahci.net/people/alan-wecker/"]}],research_data:{lang:["heb"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:[],backend:[],frontend:[],tools:[],languages:[]},policies:[],keywords:["htr","jewish_studies","machine_learning","nlp","ocr"],comment:"The start date recorded for this project is approximate."}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/time_space_relations_in_hadith_literature/2b2d72f0-c4d6-462b-b47f-7c3550acdad3.json",{schema_version:"0.2.2",record_metadata:{uuid:"2b2d72f0-c4d6-462b-b47f-7c3550acdad3",record_created_on:"2022-11-20",record_created_by:"Bednarkiewicz, Maroussia",last_edited_on:"2022-11-25"},project:{title:"Time, Space and Relations in Hadith Literature: A Machine Learning Approach",abbr:"",type:"project",ref:[],date:[{from:"2020",to:"2025"}],maintained:!0,websites:["https://github.com/dhakarat"],project_desc:"The aim of this project is to achieve a broader perspective on the dynamics of narrative adaptation in ḥadīth literature by applying advanced data analysis. We now have digitized databases as well as sophisticated and efficient algorithms, which were the missing factors for large-scale studies of ḥadīth literature. Using comprehensive datasets and recent algorithmic advances in text processing and machine learning models, we will map the use, reuse, and adaptations of ḥadīth narratives to better apprehend regional and general patterns within the whole ḥadīth literature.",places:[{place_name:{text:"Tübingen",ref:["https://www.geonames.org/2820860/tuebingen.html"]},coordinates:{lat:"48.52266",lng:"9.05222"}}],related_institutions:[{relation_type:"host",org_name:{text:"Eberhard Karls Universität Tübingen",ref:["https://www.wikidata.org/wiki/Q153978","https://ror.org/03a1kwz48"]},websites:["https://uni-tuebingen.de/en/university.html"]}],lang:["eng"],related_entities:[{relation_type:"child",title:"Isnalyser",uuid:"da852d13-2483-443b-a2f3-77c0d19d08bd"}],contacts:[{pers_name:{text:"Bednarkiewicz, Maroussia",ref:["https://viaf.org/viaf/9154380928130290538/"]},roles:["supervision"],websites:["https://uni-tuebingen.de/en/faculties/faculty-of-humanities/departments/asian-and-oriental-studies/oriental-and-islamic-studies/department/staff/maroussia-bednarkiewicz/"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:100,licensing:["GPL 3.0"]},data:{datatypes:[],repositories:[]}},stack:{database:[],backend:[],frontend:[],tools:[{label:"isnalyser",self_developed:!0,ref:["https://github.com/dhakarat/isnalyser"],description:"isnalyser is a simple program for the automation of drawing isnād trees and for their customizable display in handy formats."},{label:"isnalyserjs",self_developed:!0,ref:["https://github.com/dhakarat/isnalyserjs"],description:"isnalyserjs is an interactive isnalyser, i.e. isnād tree drawing application, which can be used over the network."}],languages:["Python"]},policies:[],keywords:["computational_text_analysis","hadith","islamic_studies","machine_learning","nlp","religion_studies","text_reuse"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/topoi/b583a2f6-22bb-4ddb-8639-c9a9aa7b511b.json",{schema_version:"0.2.2",record_metadata:{uuid:"b583a2f6-22bb-4ddb-8639-c9a9aa7b511b",record_created_on:"2021-11-01",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-05-06"},project:{title:"Topoi. The Formation and Transformation of Space and Knowledge in Ancient Civilizations",abbr:"TOPOI",type:"project",ref:[],date:[{from:"2007",to:"2012"},{from:"2012",to:"2019"}],maintained:null,websites:["https://web.archive.org/http://topoi.org/"],project_desc:"The excellence cluster TOPOI is a research network with a focus on study of the ancient world. It enhances the interdisciplinary cooperation not only in different fields of humanities, but also between humanities and natural sciences. Its various research projects cover a wide range of topics, periods and cultures from Central and Eastern Europe to the Mediterranean and the Middle East.",places:[{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}}],lang:[],related_institutions:[{relation_type:"host",org_name:{text:"Humboldt-Universität zu Berlin",ref:["https://www.wikidata.org/wiki/Q152087","https://ror.org/01j818n92"]},websites:["https://www.hu-berlin.de"]},{relation_type:"host",org_name:{text:"Freie Universität Berlin",ref:["https://ror.org/046ak2485","https://www.wikidata.org/wiki/Q153006"]},websites:["https://www.fu-berlin.de/"]}],related_entities:[],contacts:[{pers_name:{text:"Meyer, Michael",ref:["https://www.wikidata.org/wiki/Q1928613"]},roles:["supervision"],websites:["https://www.geschkult.fu-berlin.de/e/praehist/institut/Mitarbeiterinnen-und-Mitarbeiter/Professoren/Meyer.html"]}],research_data:{lang:[],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["cultural_studies","history_studies"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/tunocent/325a929a-6764-41e1-b452-6556209fa74f.json",{schema_version:"0.2.2",record_metadata:{uuid:"325a929a-6764-41e1-b452-6556209fa74f",record_created_on:"2022-05-12",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"TUNOCENT",abbr:"",type:"project",ref:[],date:[{from:"2019-04-01",to:"2023-03-31"}],maintained:!0,websites:["https://tunocent.acdh.oeaw.ac.at/","https://www.oeaw.ac.at/acdh/projects/tunocent"],project_desc:"This project studies the hitherto almost unknown Arabic varieties spoken in parts of Tunisia. Firstly, the team members will record and collect the linguistic data through fieldwork. In the second phase of the project selected dialects will be sketched and two varieties representing the main dialectal areas described in detail. Finlay a digital and fully searchable corpus of transcribed and translated narrative and ethnographic texts and conversations will be developed. The project will build on an existing research infrastructure for Arabic variations, which has been established at the Austrian Academy of Sciences over the recent years such as VICAV, TUNICO and ARCHE.",places:[{place_name:{text:"Vienna",ref:["https://www.geonames.org/2761369/vienna.html"]},coordinates:{lat:"48.20849",lng:"16.37208"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Österreichische Akademie der Wissenschaften",ref:["https://www.wikidata.org/wiki/Q299015","https://ror.org/03anc3s24"]},websites:["https://www.oeaw.ac.at/en/"]},{relation_type:"host",org_name:{text:"Universität Wien",ref:["https://ror.org/04d836q62","https://www.wikidata.org/wiki/Q165980"]},websites:["https://www.univie.ac.at/en/"]}],related_entities:[{relation_type:"sibling",title:"WIBARAB: What is Bedouin-Type Arabic?",uuid:"e9cb8ab1-2d2c-4cc3-a44d-a793220a8638"},{relation_type:"sibling",title:"Genesis Rabbah Loanwords",uuid:"94044a63-eae5-4e1d-ba04-64874109fc36"},{relation_type:"sibling",title:"Vienna Corpus of Arabic Varieties",uuid:"8f343a28-a873-449c-b359-efcfab7d1201"},{relation_type:"sibling",title:"Shawi",uuid:"68422d65-ccba-4dcb-8a0e-bd4f3f9e1dc9"},{relation_type:"sibling",title:"Linguistic dynamics in the Greater Tunis Area: a corpus-based approach (TUNICO)",uuid:"79462111-75a7-4fa0-8e11-9d424293a074"},{relation_type:"sibling",title:"NoMansLand: Nomads’ Manuscripts Landscape",uuid:"e050deba-6e1d-4d82-851b-cf6c1f7187a5"}],contacts:[{pers_name:{text:"Mörth, Karlheinz",ref:["https://viaf.org/viaf/8110691/#M%C3%B6rth,_Karlheinz."]},roles:["supervision"],websites:["https://www.oeaw.ac.at/acdh/team/current-team/karlheinz-moerth"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","audio","corpus_resource","dialectology","geodata","language_documentation","linguistics","tei"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/understanding_written_artefacts/9ca46873-3089-4a04-99fa-89c0c1b01213.json",{schema_version:"0.2.2",record_metadata:{uuid:"9ca46873-3089-4a04-99fa-89c0c1b01213",record_created_on:"2021-11-01",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-05-06"},project:{title:"Understanding Written Artefacts",abbr:"",type:"project",ref:[],date:[{from:"2019",to:"2025"}],maintained:!0,websites:["https://www.csmc.uni-hamburg.de/written-artefacts/"],project_desc:"Understanding Written Artefacts is a Cluster of Excellence comprising over 50 research projects from 40 academic disciplines with an overall aim to develop a global framework for the study of all written artefacts from the beginning of writing to the present day and from all regions that have produced such artefacts. It combines approaches from the humanities and the natural sciences and its research focuses on different dimensions of written artefacts, such as their materiality, spatiality, content, and format.",places:[{place_name:{text:"Hamburg",ref:["https://www.geonames.org/2911298/hamburg.html"]},coordinates:{lat:"53.55073",lng:"9.99302"}},{place_name:{text:"Lübeck",ref:["https://www.geonames.org/2875601/luebeck.html"]},coordinates:{lat:"53.86893",lng:"10.68729"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Helmut-Schmidt-Universität",ref:["https://www.wikidata.org/wiki/Q530991","https://ror.org/04e8jbs38"]},websites:["https://www.hsu-hh.de/"]},{relation_type:"host",org_name:{text:"Technische Universität Hamburg",ref:["https://ror.org/04bs1pb34","https://www.wikidata.org/wiki/Q1060"]},websites:["https://www.tuhh.de/"]},{relation_type:"host",org_name:{text:"Universität zu Lübeck",ref:["https://www.wikidata.org/wiki/Q317087","https://ror.org/00t3r8h32"]},websites:["https://www.uni-luebeck.de"]},{relation_type:"host",org_name:{text:"Universität Hamburg",ref:["https://ror.org/00g30e956","https://www.wikidata.org/wiki/Q156725"]},websites:["https://www.uni-hamburg.de/"]}],related_entities:[{relation_type:"child",title:"Grasping the World in Ottoman Istanbul: Visual Negotiation and Reading in Practices in Geographic Literature from the Sixteenth Century",uuid:"d1f743f2-7e94-4e00-a8bf-f46e56c7508e"},{relation_type:"child",title:"Colophons in Sumerian and Akkadian Literary Manuscripts from 3rd and 2nd Millennium BCE Mesopotamia",uuid:"95a2024b-9fea-4ced-8136-1130b0fb8f51"},{relation_type:"sibling",title:"Beta maṣāḥǝft Manuscripts of Ethiopia and Eritrea",uuid:"169677fd-14f9-46e7-b8f1-2202fb91397c"},{relation_type:"sibling",title:"Demarginalizing Medieval Africa: Images, Texts, and Identity in Early Solomonic Ethiopia",uuid:"46121edb-516b-4dbf-ba49-e2c5f07cec2e"},{relation_type:"sibling",title:"Afrikanische Stimmen in islamischen Manuskripten aus Mali: Erschließung und Erforschung afrikanischer Sprachen in arabischer Schrift (Ajami)",uuid:"eaf36ccc-5ee4-4749-80ea-7f71f479c968"},{relation_type:"sibling",title:"The Evolution of Islamic Societies (c. 600–1600 CE): Algorithmic Analysis into Social History",uuid:"659c0aba-3bdd-43eb-937d-dad4ad63e3fc"},{relation_type:"sibling",title:"The intertwined world of the oral and written transmission of sacred traditions in the Middle East",uuid:"bb852d81-0c6d-4413-8c20-1bb38c4db4e7"},{relation_type:"child",title:"Audition Certificates Platform",uuid:"b333a11d-b9fc-4379-9e21-fbddfa9500b1"},{relation_type:"sibling",title:"Methoden der Bildverarbeitung zur Bestimmung von visuellen Manuskript- und Zeichenmerkmalen",uuid:"eb8e91fe-952e-48b7-af0d-c026ebe37826"},{relation_type:"sibling",title:"Datenrepositorium Manuskriptkulturen",uuid:"894dcf0c-7295-4fb8-b4ba-866a5ebe3310"},{relation_type:"sibling",title:"Documentation of Gorani, an endangered language of West Iran",uuid:"17fa004d-c9d2-4ce3-8116-b7bfff5d14ed"},{relation_type:"sibling",title:"Islamic Painted Page",uuid:"31534c48-6b74-4cc5-8aff-ea8dbc60c445"},{relation_type:"sibling",title:"Methoden der Manuskriptanalyse zur Wiedergewinnung verlorener Schrift",uuid:"892b783d-1788-451f-9efd-1c58bfb4b064"},{relation_type:"sibling",title:"SfarData",uuid:"81d8ad85-5da8-457f-99a3-6ab11128ef03"},{relation_type:"sibling",title:"SIHAFA: The Ideosphere of the Late Ottoman Arabic Press: Mapping the Discursive Field of Authors and Texts through Computational Approaches",uuid:"20ee58f5-f699-4262-a473-7765e249c871"},{relation_type:"sibling",title:"Ethio-SPaRe: Cultural Heritage of Christian Ethiopia. Salvation, Preservation, Research",uuid:"fbf007e0-7eee-4bb1-801d-568785d43d04"},{relation_type:"sibling",title:"From Translation to Creation: Changes in Ethiopic Style and Lexicon from Late Antiquity to the Middle Ages",uuid:"77ae1011-1b54-46b5-b676-02895e3300fc"},{relation_type:"sibling",title:"Corpus dei Manoscritti Copti Letterari",uuid:"c4f41a6d-9fb9-4c31-85f0-b66acfe41289"}],contacts:[{pers_name:{text:"Bausi, Alessandro",ref:["https://www.wikidata.org/wiki/Q62559559"]},roles:["supervision"],websites:["https://www.aai.uni-hamburg.de/afrika/personen/bausi.html"]}],research_data:{lang:["ara","fas","san"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["history_studies"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/fihrist/9734b5c3-fa35-4e45-878e-1deb62db97d5.json",{schema_version:"0.2.2",record_metadata:{uuid:"9734b5c3-fa35-4e45-878e-1deb62db97d5",record_created_on:"2023-11-07",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Union Catalogue of Manuscripts from the Islamicate World",abbr:"FIHRIST",type:"project",ref:[],date:[{from:"2011",to:""}],maintained:null,websites:["https://www.fihrist.org.uk/","https://github.com/fihristorg/fihrist-mss"],project_desc:"FIHRIST is an online catalog featuring diverse manuscripts from the Islamicate world held by UK libraries. It offers detailed descriptions of manuscripts spanning from the 7th to the 19th century CE, providing valuable resources for scholars and enthusiasts while also facilitating contributions from institutions and private collectors to enrich its content.",places:[{place_name:{text:"Oxford",ref:["https://www.geonames.org/2640729/oxford.html"]},coordinates:{lat:"51.75222",lng:"-1.25596"}},{place_name:{text:"Cambridge",ref:["https://www.geonames.org/2653941/cambridge.html"]},coordinates:{lat:"52.2",lng:"0.11667"}},{place_name:{text:"Manchester",ref:["https://www.geonames.org/2643123/manchester.html"]},coordinates:{lat:"53.48095",lng:"-2.23743"}},{place_name:{text:"Birmingham",ref:["https://www.geonames.org/2655603/birmingham.html"]},coordinates:{lat:"52.48142",lng:"-1.89983"}},{place_name:{text:"London",ref:["https://www.geonames.org/2643743/london.html"]},coordinates:{lat:"51.50853",lng:"-0.12574"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"University of Cambridge",ref:["https://www.wikidata.org/wiki/Q35794","https://ror.org/013meh722"]},websites:["https://www.cam.ac.uk/"]},{relation_type:"host",org_name:{text:"University of Oxford",ref:["https://www.wikidata.org/wiki/Q34433","https://ror.org/052gg0110"]},websites:["https://www.ox.ac.uk/"]},{relation_type:"cooperation",org_name:{text:"University of Manchester",ref:["https://www.wikidata.org/wiki/Q230899","https://ror.org/027m9bs27"]},websites:["https://www.manchester.ac.uk/"]},{relation_type:"cooperation",org_name:{text:"University of Birmingham",ref:["https://www.wikidata.org/wiki/Q223429","https://ror.org/03angcq70"]},websites:["https://www.birmingham.ac.uk/"]},{relation_type:"cooperation",org_name:{text:"School of Oriental and African Studies, University of London",ref:["https://www.wikidata.org/wiki/Q220144","https://ror.org/04vrxay34"]},websites:["https://www.soas.ac.uk/"]},{relation_type:"cooperation",org_name:{text:"British Library",ref:["https://www.wikidata.org/wiki/Q23308","https://ror.org/05dhe8b71"]},websites:["https://www.bl.uk/"]},{relation_type:"cooperation",org_name:{text:"Royal Asiatic Society",ref:["https://www.wikidata.org/wiki/Q1417172"]},websites:["https://royalasiaticsociety.org/"]},{relation_type:"cooperation",org_name:{text:"Wellcome Library",ref:["https://www.wikidata.org/wiki/Q7981192"]},websites:["https://wellcomelibrary.org/"]}],related_entities:[{relation_type:"parent",title:"Oxford Cambridge Islamic Manuscript Catalogue Online",uuid:"97408d45-9570-4cad-a623-6007573bf070"}],contacts:[{pers_name:{text:"Faghihi, Yasmin",ref:[]},roles:["writing – review & editing"],websites:["https://www.cdh.cam.ac.uk/about/people/yasmin-faghihi/"]}],research_data:{lang:["amh","ara","ave","ben","bod","chg","cop","dan","deu","eng","fas","fra","guj","hau","heb","hin","hye","ita","jav","jpr","jrb","kan","kas","kur","lat","mal","mar","mon","pal","por","san","snd","spa","syr","tam","tel","tur","und","urd","zho"],sustainability_plan:null,publications:{open_access:0,licensing:[]},data:{datatypes:[{label:"",stage:"raw",licensing:[],open_access:0}],repositories:[{label:"",accessibility:"public",ref:[],licensing:[],description:""}]}},stack:{database:[],backend:[],frontend:[],tools:[{label:"",self_developed:!1,ref:[],description:""}],languages:[]},policies:[{description:"",ref:[]}],keywords:["african_studies","arabic_studies","catalog","digital_preservation","iranian_studies","islamic_studies","jewish_studies","manuscript","semitic_studies","tei","turkology"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/verse_und_sprueche/a2984fec-9396-488e-ad56-d3d21dc49052.json",{schema_version:"0.2.2",record_metadata:{uuid:"a2984fec-9396-488e-ad56-d3d21dc49052",record_created_on:"2021-11-01",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-05-06"},project:{title:"Verse und Sprueche: Impulse und Reichweiten wissenschaftlicher und popularisierender Diskurse im arabischen Sprachraum",abbr:"",type:"project",ref:[],date:[{from:"2020",to:"2024"}],maintained:!0,websites:["https://www.sfb-episteme.de/teilprojekte/handeln/C10/index.html"],project_desc:"This projects studies micro-texts in poetry and gnomic texts in Arabic and related traditions. Single verses and maxims and the changes they underwent in their literary and scientific contexts bear important information about the intercultural transfer of knowledge. The project team will build a database of these minuscule texts and analyze them in order to trace the interaction of the multiple factors and impulses of epistemic change and embed it in a broader context.",places:[{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}}],lang:["deu","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Freie Universität Berlin",ref:["https://ror.org/046ak2485","https://www.wikidata.org/wiki/Q153006"]},websites:["https://www.fu-berlin.de/"]}],related_entities:[{relation_type:"child",title:"Glossarion",uuid:"ee6404e6-57f0-4e11-bb4a-1bbd13b08cb7"},{relation_type:"sibling",title:"Country of Words: Reading and Reception of Palestinian Literature from 1948 to the Present",uuid:"2adf7ddc-9dd5-49b3-842c-9dc48dbbf36e"},{relation_type:"sibling",title:"Kalila and Dimna – AnonymClassic",uuid:"d1e6d69b-5e9a-4b4a-85ad-09aac56ed2d9"},{relation_type:"sibling",title:"Keywords for the Study of the Arabic Literary and Manuscript Tradition",uuid:"7050ac6d-523c-4ba0-b381-48ec200ff6c4"},{relation_type:"sibling",title:"Arabic Literature Cosmopolitan",uuid:"46aff246-b6ef-4632-90c2-0993a9f9b1f5"},{relation_type:"sibling",title:"Memory Spaces: Mapping Oral History in Mosul",uuid:"aec92ee9-7c8a-49ce-8491-46667fc75505"}],contacts:[{pers_name:{text:"Gruendler, Beatrice",ref:["https://d-nb.info/gnd/111749344X"]},roles:["supervision"],websites:["https://www.geschkult.fu-berlin.de/e/semiarab/arabistik/Seminar/Mitarbeiterinnen-und-Mitarbeiter/Professuren/Gruendler/"]}],research_data:{lang:["ara","grc","syr"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","corpus_output","digital_preservation"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/vicav/8f343a28-a873-449c-b359-efcfab7d1201.json",{schema_version:"0.2.2",record_metadata:{uuid:"8f343a28-a873-449c-b359-efcfab7d1201",record_created_on:"2022-05-12",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Vienna Corpus of Arabic Varieties",abbr:"VICAV",type:"project",ref:[],date:[{from:"2013-01-01",to:"2028-12-31"}],maintained:!0,websites:["https://vicav.acdh.oeaw.ac.at/#map=[biblMarkers,.*,geo]&1=[textQuery,vicavMission,MISSION,open]&2=[textQuery,vicavNews,NEWS,open]","https://www.oeaw.ac.at/acdh/projects/vicav"],project_desc:"This project has two main purposes: firstly, it serves as a virtual research platform for Arabic dialectology, secondly, as a test bed for newly developed text technological methodologies and tools. In doing so, it gathers varying digital language resources for a number of different localities and offers information on the research history, available literature, salient grammatical features etc. of the particular variety. VICAV also makes accessible bibliographies, dictionaries, glossaries, and different types of transcribed texts. The project aims at providing a platform of exchange for a scientific community which is increasingly producing digital data but still lacks the infrastructure to make it widely available.",places:[{place_name:{text:"Vienna",ref:["https://www.geonames.org/2761369/vienna.html"]},coordinates:{lat:"48.20849",lng:"16.37208"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Österreichische Akademie der Wissenschaften",ref:["https://www.wikidata.org/wiki/Q299015","https://ror.org/03anc3s24"]},websites:["https://www.oeaw.ac.at/en/"]},{relation_type:"host",org_name:{text:"Universität Wien",ref:["https://ror.org/04d836q62","https://www.wikidata.org/wiki/Q165980"]},websites:["https://www.univie.ac.at/en/"]}],related_entities:[{relation_type:"sibling",title:"WIBARAB: What is Bedouin-Type Arabic?",uuid:"e9cb8ab1-2d2c-4cc3-a44d-a793220a8638"},{relation_type:"sibling",title:"Genesis Rabbah Loanwords",uuid:"94044a63-eae5-4e1d-ba04-64874109fc36"},{relation_type:"sibling",title:"Shawi",uuid:"68422d65-ccba-4dcb-8a0e-bd4f3f9e1dc9"},{relation_type:"sibling",title:"NoMansLand: Nomads’ Manuscripts Landscape",uuid:"e050deba-6e1d-4d82-851b-cf6c1f7187a5"},{relation_type:"sibling",title:"Linguistic dynamics in the Greater Tunis Area: a corpus-based approach (TUNICO)",uuid:"79462111-75a7-4fa0-8e11-9d424293a074"},{relation_type:"sibling",title:"TUNOCENT",uuid:"325a929a-6764-41e1-b452-6556209fa74f"}],contacts:[{pers_name:{text:"Mörth, Karlheinz",ref:["https://viaf.org/viaf/8110691/#M%C3%B6rth,_Karlheinz."]},roles:["supervision"],websites:["https://www.oeaw.ac.at/acdh/team/current-team/karlheinz-moerth"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["annotation","arabic_studies","dialectology","geodata","language_documentation","lexicon","linguistics","translation"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/virtuelle_archive_fuer_die_geisteswissenschaftliche_forschung/fcbda96b-0c65-4ac9-9047-bde2323a0cb4.json",{schema_version:"0.2.2",record_metadata:{uuid:"fcbda96b-0c65-4ac9-9047-bde2323a0cb4",record_created_on:"2022-04-05",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-04-08"},project:{title:"Virtuelle Archive für die geisteswissenschaftliche Forschung",abbr:"",type:"project",ref:[],date:[{from:"2017-05",to:"2020-01"}],maintained:null,websites:["https://www.saw-leipzig.de/de/projekte/virtuelle-archive"],project_desc:"In this project is a cooperation of seven research institutions in Saxony (see project’s website) coordinated by Sächsische Akademie der Wisschenschaften (SAW). The institutions will exchange their expertise in the Digital Humanities in order to optimize research data management in human sciences. The focus of this projects lies on technical, legal and formal standardization of research data, long term archiving and accessibility.",places:[{place_name:{text:"Leipzig",ref:["https://www.geonames.org/2879139/leipzig.html"]},coordinates:{lat:"51.33962",lng:"12.37129"}}],lang:["deu"],related_institutions:[{relation_type:"host",org_name:{text:"Sächsische Akademie der Wissenschaften zu Leipzig",ref:["https://www.wikidata.org/wiki/Q27891200","https://ror.org/03zxjdk07"]},websites:["https://www.saw-leipzig.de/de"]}],related_entities:[],contacts:[{pers_name:{text:"Wiesmeth, Hans",ref:["https://d-nb.info/gnd/109432703"]},roles:["supervision"],websites:["https://www.saw-leipzig.de/de/mitglieder/wiesmethh"]}],research_data:{lang:[],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["research_data_management","research_infrastructure"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/humanweb/1a587e85-1385-40b0-b6eb-25ca8fa5042c.json",{schema_version:"0.2.2",record_metadata:{uuid:"1a587e85-1385-40b0-b6eb-25ca8fa5042c",record_created_on:"2022-07-21",record_created_by:"Kudela, Xenia Monika",last_edited_on:"2022-07-26"},project:{title:"Weaving the Humanities into the Web and the Web into the Humanities. Preserving the Cultural Heritage of Yemen by Creating an Universally Virtual Library of Manuscripts (HumanWeb)",abbr:"HumanWeb",type:"project",ref:[],date:[{from:"2013",to:"2014"}],maintained:!1,websites:["https://cordis.europa.eu/project/id/324591"],project_desc:"This POC project will demonstrate that humanistic sciences can be productively coupled with sound business strategies to advance societal benefits and cultural sustainability. The grant will be used to get into contact and contract with potential joint venture partners for a cooperation which will result in a ground-braking universal online digital library for Yemeni manuscripts.",places:[{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}}],lang:["eng"],related_institutions:[{relation_type:"host",org_name:{text:"Freie Universität Berlin",ref:["https://ror.org/046ak2485","https://www.wikidata.org/wiki/Q153006"]},websites:["https://www.fu-berlin.de/"]}],related_entities:[{relation_type:"sibling",title:"The Yemeni Manuscript Digitization Initiative",uuid:"e17c5b2a-7619-40bd-bddd-51063f687cb0"}],contacts:[{pers_name:{text:"Schmidtke, Sabine",ref:["https://d-nb.info/gnd/143773771"]},roles:["supervision"],websites:["https://www.ias.edu/scholars/schmidtke"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","digital_preservation","manuscript"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/wibarab/e9cb8ab1-2d2c-4cc3-a44d-a793220a8638.json",{schema_version:"0.2.2",record_metadata:{uuid:"e9cb8ab1-2d2c-4cc3-a44d-a793220a8638",record_created_on:"2022-05-09",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"WIBARAB: What is Bedouin-Type Arabic?",abbr:"WIBARAB",type:"project",ref:[],date:[{from:"2021-10-01",to:"2026-09-30"}],maintained:!0,websites:["https://wibarab.acdh.oeaw.ac.at/","https://www.oeaw.ac.at/acdh/projects/wibarab-what-is-bedouin-type-arabic"],project_desc:"This project is dedicated to the study of Bedouin- Arabic dialects from cross the whole Arabic-speaking region. The project will collect new data through fieldwork in Saudi Arabia, Jordan, Sudan and Morocco, among other countries and publish the outputs in a database that will allow for efficient cross-dialectal comparisons, particularly with regard to phonological, morphological, syntactical, phraseological and lexical features.",places:[{place_name:{text:"Vienna",ref:["https://www.geonames.org/2761369/vienna.html"]},coordinates:{lat:"48.20849",lng:"16.37208"}}],lang:["deu","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Österreichische Akademie der Wissenschaften",ref:["https://www.wikidata.org/wiki/Q299015","https://ror.org/03anc3s24"]},websites:["https://www.oeaw.ac.at/en/"]},{relation_type:"host",org_name:{text:"Universität Wien",ref:["https://ror.org/04d836q62","https://www.wikidata.org/wiki/Q165980"]},websites:["https://www.univie.ac.at/en/"]}],related_entities:[{relation_type:"sibling",title:"Genesis Rabbah Loanwords",uuid:"94044a63-eae5-4e1d-ba04-64874109fc36"},{relation_type:"sibling",title:"Vienna Corpus of Arabic Varieties",uuid:"8f343a28-a873-449c-b359-efcfab7d1201"},{relation_type:"sibling",title:"Shawi",uuid:"68422d65-ccba-4dcb-8a0e-bd4f3f9e1dc9"},{relation_type:"sibling",title:"NoMansLand: Nomads’ Manuscripts Landscape",uuid:"e050deba-6e1d-4d82-851b-cf6c1f7187a5"},{relation_type:"sibling",title:"Linguistic dynamics in the Greater Tunis Area: a corpus-based approach (TUNICO)",uuid:"79462111-75a7-4fa0-8e11-9d424293a074"},{relation_type:"sibling",title:"TUNOCENT",uuid:"325a929a-6764-41e1-b452-6556209fa74f"}],contacts:[{pers_name:{text:"Procházka, Stephan",ref:["https://d-nb.info/gnd/136441688"]},roles:["supervision"],websites:["https://orientalistik.univie.ac.at/ueber-uns/personal/detailansicht-personal/user/prochas8/inum/1073/backpid/86555/"]}],research_data:{lang:["ara"],sustainability_plan:null,publications:{open_access:0,licensing:[""]},data:{datatypes:[],repositories:[]}},stack:{database:["sql","xml","json","nosql"],backend:["laravel"],frontend:["vue"],tools:[],languages:["php","javascript","python"]},policies:[{description:"",ref:[]}],keywords:["arabic_studies","corpus_resource","dialectology","language_documentation","linguistics"],comment:""}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/zodiac/fb7e7faa-8797-4db7-9061-3498dd7e1c6d.json",{schema_version:"0.2.2",record_metadata:{uuid:"fb7e7faa-8797-4db7-9061-3498dd7e1c6d",record_created_on:"2023-09-15",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Zodiac - Ancient Astral Science in Transformation",abbr:"Zodiac",type:"project",ref:[],date:[{from:"2021",to:"2026"}],maintained:!0,websites:["https://www.geschkult.fu-berlin.de/e/zodiac/index.html","https://zodiac.fly.dev/"],project_desc:"ZODIAC's main objective is to develop a convincing account of how zodiacal astral science emerged, was cross-culturally transmitted and able to take root in different ancient cultures. It also offers an online cross-cultural glossary of ancient astral science.",places:[{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}}],lang:["deu","eng"],related_institutions:[{relation_type:"host",org_name:{text:"Freie Universität Berlin",ref:["https://ror.org/046ak2485","https://www.wikidata.org/wiki/Q153006"]},websites:["https://www.fu-berlin.de/"]}],related_entities:[],contacts:[{pers_name:{text:"Ossendrijver, Mathieu A.J.H.",ref:["https://d-nb.info/gnd/1051590221"]},roles:["supervision"],websites:["https://www.geschkult.fu-berlin.de/en/e/zodiac/team/ossendrijver/index.html"]}],research_data:{lang:["akk","arc","egy","grc","heb","lat","san"],sustainability_plan:null,publications:{open_access:0,licensing:[]},data:{datatypes:[{label:"",stage:"raw",licensing:[],open_access:0}],repositories:[{label:"",accessibility:"public",ref:[],licensing:[],description:""}]}},stack:{database:[],backend:[],frontend:[],tools:[{label:"",self_developed:!1,ref:[],description:""}],languages:[]},policies:[{description:"",ref:[]}],keywords:["egyptology","history_studies","lexicon","other","science_history","semitic_studies"],comment:"The focus of the project is not the lexicon, but rather reconstruction of zodiacal astral science. At the time of the creation of this record, the lexicon is the only aspect of the project that can be described as DH."}}],["https://raw.githubusercontent.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/master/PROJECTS/mpcd/7d8eb5d0-6284-4939-a48b-7ff7a2407989.json",{schema_version:"0.2.2",record_metadata:{uuid:"7d8eb5d0-6284-4939-a48b-7ff7a2407989",record_created_on:"2023-12-15",record_created_by:"Kudela, Xenia Monika",last_edited_on:""},project:{title:"Zoroastrian Middle Persian Corpus and Dictionary",abbr:"MPCD",type:"project",ref:[],date:[{from:"2021",to:"2030"}],maintained:!0,websites:["https://www.mpcorpus.org/"],project_desc:"This project aims at the creation of a digital corpus of Zoroastrian Middle Persian texts in Pahlavi script as well as at the development of a comprehensive dictionary covering that corpus. The corpus consists of roughly 50 texts which will be supplied with several layers of orthographical, grammatical, semantic and intertextual annotation.",places:[{place_name:{text:"Berlin",ref:["https://www.geonames.org/2950159/berlin.html"]},coordinates:{lat:"52.52437",lng:"13.41053"}},{place_name:{text:"Bochum",ref:["https://www.geonames.org/2947416/bochum.html"]},coordinates:{lat:"51.48165",lng:"7.21648"}},{place_name:{text:"Köln",ref:["https://www.geonames.org/2886242/koeln.html"]},coordinates:{lat:"50.93333",lng:"6.95"}}],lang:["eng","deu"],related_institutions:[{relation_type:"host",org_name:{text:"Freie Universität Berlin",ref:["https://ror.org/046ak2485","https://www.wikidata.org/wiki/Q153006"]},websites:["https://www.fu-berlin.de/"]},{relation_type:"host",org_name:{text:"Ruhr-Universität Bochum",ref:["https://ror.org/04tsk2644","https://www.wikidata.org/wiki/Q309948"]},websites:["https://www.ruhr-uni-bochum.de/de"]},{relation_type:"host",org_name:{text:"Universität zu Köln",ref:["https://ror.org/00rcxh774","https://www.wikidata.org/wiki/Q54096"]},websites:["https://www.uni-koeln.de/"]}],related_entities:[{relation_type:"sibling",title:"Avestan Digital Archive",uuid:"0a2ff403-834b-484f-b961-0822220bab58"},{relation_type:"sibling",title:"Tierrecht und Strafen im 'Gesetz zur Abwehr der Dämonen' (Vidçvdâd, Kapitel 13–15)",uuid:"57622367-8250-4932-ab3e-0356615d578a"},{relation_type:"sibling",title:"Corpus Avesticum Berolinense",uuid:"4c68f56a-2c44-41c0-acb9-ece91afaf70c"},{relation_type:"cooperation",title:"Avestan Digital Archive",uuid:"0a2ff403-834b-484f-b961-0822220bab58"},{relation_type:"cooperation",title:"Corpus Avesticum Berolinense",uuid:"4c68f56a-2c44-41c0-acb9-ece91afaf70c"}],contacts:[{pers_name:{text:"Cantera Glera, Alberto",ref:["https://d-nb.info/gnd/1198415282"]},roles:["supervision"],websites:["https://www.geschkult.fu-berlin.de/e/iranistik/mitarbeiter/professoren/cantera/index.html"]}],research_data:{lang:["pal","xmn"],sustainability_plan:null,publications:{open_access:0,licensing:[]},data:{datatypes:[{label:"",stage:"raw",licensing:[],open_access:0}],repositories:[{label:"",accessibility:"public",ref:[],licensing:[],description:""}]}},stack:{database:[],backend:[],frontend:[],tools:[{label:"",self_developed:!1,ref:[],description:""}],languages:[]},policies:[{description:"",ref:[]}],keywords:["annotation","corpus_output","digital_preservation","iranian_studies","lexicography","lexicon","linguistics","manuscript","vre"],comment:""}}]];export{e}; diff --git a/_app/immutable/chunks/entry.CIRDAXcJ.js b/_app/immutable/chunks/entry.CIRDAXcJ.js deleted file mode 100644 index b534e0a9e..000000000 --- a/_app/immutable/chunks/entry.CIRDAXcJ.js +++ /dev/null @@ -1,3 +0,0 @@ -import{t as re,o as oe}from"./scheduler.kPUuJgHu.js";import{w as dt}from"./index.Dpzj3rtZ.js";new URL("sveltekit-internal://");function ie(t,e){return t==="/"||e==="ignore"?t:e==="never"?t.endsWith("/")?t.slice(0,-1):t:e==="always"&&!t.endsWith("/")?t+"/":t}function se(t){return t.split("%25").map(decodeURI).join("%25")}function ce(t){for(const e in t)t[e]=decodeURIComponent(t[e]);return t}function it({href:t}){return t.split("#")[0]}const le=["href","pathname","search","toString","toJSON"];function fe(t,e,n){const r=new URL(t);Object.defineProperty(r,"searchParams",{value:new Proxy(r.searchParams,{get(a,o){if(o==="get"||o==="getAll"||o==="has")return i=>(n(i),a[o](i));e();const s=Reflect.get(a,o);return typeof s=="function"?s.bind(a):s}}),enumerable:!0,configurable:!0});for(const a of le)Object.defineProperty(r,a,{get(){return e(),t[a]},enumerable:!0,configurable:!0});return r}const ue="/__data.json",de=".html__data.json";function he(t){return t.endsWith(".html")?t.replace(/\.html$/,de):t.replace(/\/$/,"")+ue}function pe(...t){let e=5381;for(const n of t)if(typeof n=="string"){let r=n.length;for(;r;)e=e*33^n.charCodeAt(--r)}else if(ArrayBuffer.isView(n)){const r=new Uint8Array(n.buffer,n.byteOffset,n.byteLength);let a=r.length;for(;a;)e=e*33^r[--a]}else throw new TypeError("value must be a string or TypedArray");return(e>>>0).toString(36)}function ge(t){const e=atob(t),n=new Uint8Array(e.length);for(let r=0;r((t instanceof Request?t.method:(e==null?void 0:e.method)||"GET")!=="GET"&&V.delete(ht(t)),Ot(t,e));const V=new Map;function me(t,e){const n=ht(t,e),r=document.querySelector(n);if(r!=null&&r.textContent){let{body:a,...o}=JSON.parse(r.textContent);const s=r.getAttribute("data-ttl");return s&&V.set(n,{body:a,init:o,ttl:1e3*Number(s)}),r.getAttribute("data-b64")!==null&&(a=ge(a)),Promise.resolve(new Response(a,o))}return window.fetch(t,e)}function _e(t,e,n){if(V.size>0){const r=ht(t,n),a=V.get(r);if(a){if(performance.now(){const a=/^\[\.\.\.(\w+)(?:=(\w+))?\]$/.exec(r);if(a)return e.push({name:a[1],matcher:a[2],optional:!1,rest:!0,chained:!0}),"(?:/(.*))?";const o=/^\[\[(\w+)(?:=(\w+))?\]\]$/.exec(r);if(o)return e.push({name:o[1],matcher:o[2],optional:!0,rest:!1,chained:!0}),"(?:/([^/]+))?";if(!r)return;const s=r.split(/\[(.+?)\](?!\])/);return"/"+s.map((c,f)=>{if(f%2){if(c.startsWith("x+"))return st(String.fromCharCode(parseInt(c.slice(2),16)));if(c.startsWith("u+"))return st(String.fromCharCode(...c.slice(2).split("-").map(l=>parseInt(l,16))));const u=ye.exec(c),[,h,g,d,m]=u;return e.push({name:d,matcher:m,optional:!!h,rest:!!g,chained:g?f===1&&s[0]==="":!1}),g?"(.*?)":h?"([^/]*)?":"([^/]+?)"}return st(c)}).join("")}).join("")}/?$`),params:e}}function ve(t){return!/^\([^)]+\)$/.test(t)}function be(t){return t.slice(1).split("/").filter(ve)}function Ee(t,e,n){const r={},a=t.slice(1),o=a.filter(i=>i!==void 0);let s=0;for(let i=0;iu).join("/"),s=0),f===void 0){c.rest&&(r[c.name]="");continue}if(!c.matcher||n[c.matcher](f)){r[c.name]=f;const u=e[i+1],h=a[i+1];u&&!u.rest&&u.optional&&h&&c.chained&&(s=0),!u&&!h&&Object.keys(r).length===o.length&&(s=0);continue}if(c.optional&&c.chained){s++;continue}return}if(!s)return r}function st(t){return t.normalize().replace(/[[\]]/g,"\\$&").replace(/%/g,"%25").replace(/\//g,"%2[Ff]").replace(/\?/g,"%3[Ff]").replace(/#/g,"%23").replace(/[.*+?^${}()|\\]/g,"\\$&")}function ke({nodes:t,server_loads:e,dictionary:n,matchers:r}){const a=new Set(e);return Object.entries(n).map(([i,[c,f,u]])=>{const{pattern:h,params:g}=we(i),d={id:i,exec:m=>{const l=h.exec(m);if(l)return Ee(l,g,r)},errors:[1,...u||[]].map(m=>t[m]),layouts:[0,...f||[]].map(s),leaf:o(c)};return d.errors.length=d.layouts.length=Math.max(d.errors.length,d.layouts.length),d});function o(i){const c=i<0;return c&&(i=~i),[c,t[i]]}function s(i){return i===void 0?i:[a.has(i),t[i]]}}function jt(t,e=JSON.parse){try{return e(sessionStorage[t])}catch{}}function At(t,e,n=JSON.stringify){const r=n(e);try{sessionStorage[t]=r}catch{}}var Ut;const I=((Ut=globalThis.__sveltekit_1u1kkrf)==null?void 0:Ut.base)??"/Closing-The-Gap-In-Non-Latin-Script-Data";var Nt;const Se=((Nt=globalThis.__sveltekit_1u1kkrf)==null?void 0:Nt.assets)??I,Ae="1709332116764",Dt="sveltekit:snapshot",$t="sveltekit:scroll",Ct="sveltekit:states",Re="sveltekit:pageurl",j="sveltekit:history",F="sveltekit:navigation",K={tap:1,hover:2,viewport:3,eager:4,off:-1,false:-1},H=location.origin;function Vt(t){if(t instanceof URL)return t;let e=document.baseURI;if(!e){const n=document.getElementsByTagName("base");e=n.length?n[0].href:document.URL}return new URL(t,e)}function pt(){return{x:pageXOffset,y:pageYOffset}}function O(t,e){return t.getAttribute(`data-sveltekit-${e}`)}const Rt={...K,"":K.hover};function Ft(t){let e=t.assignedSlot??t.parentNode;return(e==null?void 0:e.nodeType)===11&&(e=e.host),e}function Gt(t,e){for(;t&&t!==e;){if(t.nodeName.toUpperCase()==="A"&&t.hasAttribute("href"))return t;t=Ft(t)}}function lt(t,e){let n;try{n=new URL(t instanceof SVGAElement?t.href.baseVal:t.href,document.baseURI)}catch{}const r=t instanceof SVGAElement?t.target.baseVal:t.target,a=!n||!!r||tt(n,e)||(t.getAttribute("rel")||"").split(/\s+/).includes("external"),o=(n==null?void 0:n.origin)===H&&t.hasAttribute("download");return{url:n,external:a,target:r,download:o}}function Y(t){let e=null,n=null,r=null,a=null,o=null,s=null,i=t;for(;i&&i!==document.documentElement;)r===null&&(r=O(i,"preload-code")),a===null&&(a=O(i,"preload-data")),e===null&&(e=O(i,"keepfocus")),n===null&&(n=O(i,"noscroll")),o===null&&(o=O(i,"reload")),s===null&&(s=O(i,"replacestate")),i=Ft(i);function c(f){switch(f){case"":case"true":return!0;case"off":case"false":return!1;default:return}}return{preload_code:Rt[r??"off"],preload_data:Rt[a??"off"],keepfocus:c(e),noscroll:c(n),reload:c(o),replace_state:c(s)}}function It(t){const e=dt(t);let n=!0;function r(){n=!0,e.update(s=>s)}function a(s){n=!1,e.set(s)}function o(s){let i;return e.subscribe(c=>{(i===void 0||n&&c!==i)&&s(i=c)})}return{notify:r,set:a,subscribe:o}}function Ie(){const{set:t,subscribe:e}=dt(!1);let n;async function r(){clearTimeout(n);try{const a=await fetch(`${Se}/_app/version.json`,{headers:{pragma:"no-cache","cache-control":"no-cache"}});if(!a.ok)return!1;const s=(await a.json()).version!==Ae;return s&&(t(!0),clearTimeout(n)),s}catch{return!1}}return{subscribe:e,check:r}}function tt(t,e){return t.origin!==H||!t.pathname.startsWith(e)}const Le=-1,Pe=-2,Te=-3,xe=-4,Ue=-5,Ne=-6;function Oe(t,e){if(typeof t=="number")return a(t,!0);if(!Array.isArray(t)||t.length===0)throw new Error("Invalid input");const n=t,r=Array(n.length);function a(o,s=!1){if(o===Le)return;if(o===Te)return NaN;if(o===xe)return 1/0;if(o===Ue)return-1/0;if(o===Ne)return-0;if(s)throw new Error("Invalid input");if(o in r)return r[o];const i=n[o];if(!i||typeof i!="object")r[o]=i;else if(Array.isArray(i))if(typeof i[0]=="string"){const c=i[0],f=e==null?void 0:e[c];if(f)return r[o]=f(a(i[1]));switch(c){case"Date":r[o]=new Date(i[1]);break;case"Set":const u=new Set;r[o]=u;for(let d=1;de!=null)}class et{constructor(e,n){this.status=e,typeof n=="string"?this.body={message:n}:n?this.body=n:this.body={message:`Error: ${e}`}}toString(){return JSON.stringify(this.body)}}class qt{constructor(e,n){this.status=e,this.location=n}}class gt extends Error{constructor(e,n,r){super(r),this.status=e,this.text=n}}const $e="x-sveltekit-invalidated",Ce="x-sveltekit-trailing-slash";function J(t){return t instanceof et||t instanceof gt?t.status:500}function Ve(t){return t instanceof gt?t.text:"Internal Error"}const N=jt($t)??{},G=jt(Dt)??{},T={url:It({}),page:It({}),navigating:dt(null),updated:Ie()};function mt(t){N[t]=pt()}function Fe(t,e){let n=t+1;for(;N[n];)delete N[n],n+=1;for(n=e+1;G[n];)delete G[n],n+=1}function D(t){return location.href=t.href,new Promise(()=>{})}function Lt(){}let nt,ft,W,L,ut,$;const Ht=[],z=[];let P=null;const Bt=[],Ge=[];let U=[],w={branch:[],error:null,url:null},_t=!1,X=!1,Pt=!0,M=!1,C=!1,Kt=!1,yt=!1,wt,k,A,R,Z;async function tn(t,e,n){var a,o;document.URL!==location.href&&(location.href=location.href),$=t,nt=ke(t),L=document.documentElement,ut=e,ft=t.nodes[0],W=t.nodes[1],ft(),W(),k=(a=history.state)==null?void 0:a[j],A=(o=history.state)==null?void 0:o[F],k||(k=A=Date.now(),history.replaceState({...history.state,[j]:k,[F]:A},""));const r=N[k];r&&(history.scrollRestoration="manual",scrollTo(r.x,r.y)),n?await ze(ut,n):Je(location.href,{replaceState:!0}),We()}function Me(){Ht.length=0,yt=!1}function Yt(t){z.some(e=>e==null?void 0:e.snapshot)&&(G[t]=z.map(e=>{var n;return(n=e==null?void 0:e.snapshot)==null?void 0:n.capture()}))}function Jt(t){var e;(e=G[t])==null||e.forEach((n,r)=>{var a,o;(o=(a=z[r])==null?void 0:a.snapshot)==null||o.restore(n)})}function Tt(){mt(k),At($t,N),Yt(A),At(Dt,G)}async function Wt(t,e,n,r){return B({type:"goto",url:Vt(t),keepfocus:e.keepFocus,noscroll:e.noScroll,replace_state:e.replaceState,state:e.state,redirect_count:n,nav_token:r,accept:()=>{e.invalidateAll&&(yt=!0)}})}async function qe(t){return P={id:t.id,promise:Xt(t).then(e=>(e.type==="loaded"&&e.state.error&&(P=null),e))},P.promise}async function ct(t){const e=nt.find(n=>n.exec(Zt(t)));e&&await Promise.all([...e.layouts,e.leaf].map(n=>n==null?void 0:n[1]()))}function zt(t,e){var a;w=t.state;const n=document.querySelector("style[data-sveltekit]");n&&n.remove(),R=t.props.page,wt=new $.root({target:e,props:{...t.props,stores:T,components:z},hydrate:!0}),Jt(A);const r={from:null,to:{params:w.params,route:{id:((a=w.route)==null?void 0:a.id)??null},url:new URL(location.href)},willUnload:!1,type:"enter",complete:Promise.resolve()};U.forEach(o=>o(r)),X=!0}async function Q({url:t,params:e,branch:n,status:r,error:a,route:o,form:s}){let i="never";if(I&&(t.pathname===I||t.pathname===I+"/"))i="always";else for(const d of n)(d==null?void 0:d.slash)!==void 0&&(i=d.slash);t.pathname=ie(t.pathname,i),t.search=t.search;const c={type:"loaded",state:{url:t,params:e,branch:n,error:a,route:o},props:{constructors:De(n).map(d=>d.node.component),page:R}};s!==void 0&&(c.props.form=s);let f={},u=!R,h=0;for(let d=0;d(i&&(c.route=!0),l[_])}),params:new Proxy(r,{get:(l,_)=>(i&&c.params.add(_),l[_])}),data:(o==null?void 0:o.data)??null,url:fe(n,()=>{i&&(c.url=!0)},l=>{i&&c.search_params.add(l)}),async fetch(l,_){let v;l instanceof Request?(v=l.url,_={body:l.method==="GET"||l.method==="HEAD"?void 0:await l.blob(),cache:l.cache,credentials:l.credentials,headers:l.headers,integrity:l.integrity,keepalive:l.keepalive,method:l.method,mode:l.mode,redirect:l.redirect,referrer:l.referrer,referrerPolicy:l.referrerPolicy,signal:l.signal,..._}):v=l;const S=new URL(v,n);return i&&d(S.href),S.origin===n.origin&&(v=S.href.slice(n.origin.length)),X?_e(v,S.href,_):me(v,_)},setHeaders:()=>{},depends:d,parent(){return i&&(c.parent=!0),e()},untrack(l){i=!1;try{return l()}finally{i=!0}}};s=await f.universal.load.call(null,m)??null}return{node:f,loader:t,server:o,universal:(h=f.universal)!=null&&h.load?{type:"data",data:s,uses:c}:null,data:s??(o==null?void 0:o.data)??null,slash:((g=f.universal)==null?void 0:g.trailingSlash)??(o==null?void 0:o.slash)}}function xt(t,e,n,r,a,o){if(yt)return!0;if(!a)return!1;if(a.parent&&t||a.route&&e||a.url&&n)return!0;for(const s of a.search_params)if(r.has(s))return!0;for(const s of a.params)if(o[s]!==w.params[s])return!0;for(const s of a.dependencies)if(Ht.some(i=>i(new URL(s))))return!0;return!1}function bt(t,e){return(t==null?void 0:t.type)==="data"?t:(t==null?void 0:t.type)==="skip"?e??null:null}function He(t,e){if(!t)return new Set(e.searchParams.keys());const n=new Set([...t.searchParams.keys(),...e.searchParams.keys()]);for(const r of n){const a=t.searchParams.getAll(r),o=e.searchParams.getAll(r);a.every(s=>o.includes(s))&&o.every(s=>a.includes(s))&&n.delete(r)}return n}async function Xt({id:t,invalidating:e,url:n,params:r,route:a}){if((P==null?void 0:P.id)===t)return P.promise;const{errors:o,layouts:s,leaf:i}=a,c=[...s,i];o.forEach(p=>p==null?void 0:p().catch(()=>{})),c.forEach(p=>p==null?void 0:p[1]().catch(()=>{}));let f=null;const u=w.url?t!==w.url.pathname+w.url.search:!1,h=w.route?a.id!==w.route.id:!1,g=He(w.url,n);let d=!1;const m=c.map((p,y)=>{var x;const b=w.branch[y],E=!!(p!=null&&p[0])&&((b==null?void 0:b.loader)!==p[1]||xt(d,h,u,g,(x=b.server)==null?void 0:x.uses,r));return E&&(d=!0),E});if(m.some(Boolean)){try{f=await ee(n,m)}catch(p){return at({status:J(p),error:await q(p,{url:n,params:r,route:{id:a.id}}),url:n,route:a})}if(f.type==="redirect")return f}const l=f==null?void 0:f.nodes;let _=!1;const v=c.map(async(p,y)=>{var rt;if(!p)return;const b=w.branch[y],E=l==null?void 0:l[y];if((!E||E.type==="skip")&&p[1]===(b==null?void 0:b.loader)&&!xt(_,h,u,g,(rt=b.universal)==null?void 0:rt.uses,r))return b;if(_=!0,(E==null?void 0:E.type)==="error")throw E;return vt({loader:p[1],url:n,params:r,route:a,parent:async()=>{var St;const kt={};for(let ot=0;ot{});const S=[];for(let p=0;pPromise.resolve({}),server_data_node:bt(o)}),c={node:await W(),loader:W,universal:null,server:null,data:null};return await Q({url:n,params:a,branch:[i,c],status:t,error:e,route:null})}function Et(t,e){if(!t||tt(t,I))return;let n;try{n=$.hooks.reroute({url:new URL(t)})??t.pathname}catch{return}const r=Zt(n);for(const a of nt){const o=a.exec(r);if(o)return{id:t.pathname+t.search,invalidating:e,route:a,params:ce(o),url:t}}}function Zt(t){return se(t.slice(I.length)||"/")}function Qt({url:t,type:e,intent:n,delta:r}){let a=!1;const o=ae(w,n,t,e);r!==void 0&&(o.navigation.delta=r);const s={...o.navigation,cancel:()=>{a=!0,o.reject(new Error("navigation cancelled"))}};return M||Bt.forEach(i=>i(s)),a?null:o}async function B({type:t,url:e,popped:n,keepfocus:r,noscroll:a,replace_state:o,state:s={},redirect_count:i=0,nav_token:c={},accept:f=Lt,block:u=Lt}){const h=Et(e,!1),g=Qt({url:e,type:t,delta:n==null?void 0:n.delta,intent:h});if(!g){u();return}const d=k,m=A;f(),M=!0,X&&T.navigating.set(g.navigation),Z=c;let l=h&&await Xt(h);if(!l){if(tt(e,I))return await D(e);l=await te(e,{id:null},await q(new gt(404,"Not Found",`Not found: ${e.pathname}`),{url:e,params:{},route:{id:null}}),404)}if(e=(h==null?void 0:h.url)||e,Z!==c)return g.reject(new Error("navigation aborted")),!1;if(l.type==="redirect")if(i>=20)l=await at({status:500,error:await q(new Error("Redirect loop"),{url:e,params:{},route:{id:null}}),url:e,route:{id:null}});else return Wt(new URL(l.location,e).href,{},i+1,c),!1;else l.props.page.status>=400&&await T.updated.check()&&await D(e);if(Me(),mt(d),Yt(m),l.props.page.url.pathname!==e.pathname&&(e.pathname=l.props.page.url.pathname),s=n?n.state:s,!n){const p=o?0:1,y={[j]:k+=p,[F]:A+=p,[Ct]:s};(o?history.replaceState:history.pushState).call(history,y,"",e),o||Fe(k,A)}if(P=null,l.props.page.state=s,X){w=l.state,l.props.page&&(l.props.page.url=e);const p=(await Promise.all(Ge.map(y=>y(g.navigation)))).filter(y=>typeof y=="function");if(p.length>0){let y=function(){U=U.filter(b=>!p.includes(b))};p.push(y),U.push(...p)}wt.$set(l.props),Kt=!0}else zt(l,ut);const{activeElement:_}=document;await re();const v=n?n.scroll:a?pt():null;if(Pt){const p=e.hash&&document.getElementById(decodeURIComponent(e.hash.slice(1)));v?scrollTo(v.x,v.y):p?p.scrollIntoView():scrollTo(0,0)}const S=document.activeElement!==_&&document.activeElement!==document.body;!r&&!S&&Xe(),Pt=!0,l.props.page&&(R=l.props.page),M=!1,t==="popstate"&&Jt(A),g.fulfil(void 0),U.forEach(p=>p(g.navigation)),T.navigating.set(null)}async function te(t,e,n,r){return t.origin===H&&t.pathname===location.pathname&&!_t?await at({status:r,error:n,url:t,route:e}):await D(t)}function Ke(){let t;L.addEventListener("mousemove",o=>{const s=o.target;clearTimeout(t),t=setTimeout(()=>{r(s,2)},20)});function e(o){r(o.composedPath()[0],1)}L.addEventListener("mousedown",e),L.addEventListener("touchstart",e,{passive:!0});const n=new IntersectionObserver(o=>{for(const s of o)s.isIntersecting&&(ct(s.target.href),n.unobserve(s.target))},{threshold:0});function r(o,s){const i=Gt(o,L);if(!i)return;const{url:c,external:f,download:u}=lt(i,I);if(f||u)return;const h=Y(i);if(!h.reload)if(s<=h.preload_data){const g=Et(c,!1);g&&qe(g)}else s<=h.preload_code&&ct(c.pathname)}function a(){n.disconnect();for(const o of L.querySelectorAll("a")){const{url:s,external:i,download:c}=lt(o,I);if(i||c)continue;const f=Y(o);f.reload||(f.preload_code===K.viewport&&n.observe(o),f.preload_code===K.eager&&ct(s.pathname))}}U.push(a),a()}function q(t,e){if(t instanceof et)return t.body;const n=J(t),r=Ve(t);return $.hooks.handleError({error:t,event:e,status:n,message:r})??{message:r}}function Ye(t,e){oe(()=>(t.push(e),()=>{const n=t.indexOf(e);t.splice(n,1)}))}function en(t){Ye(U,t)}function Je(t,e={}){return t=Vt(t),t.origin!==H?Promise.reject(new Error("goto: invalid URL")):Wt(t,e,0)}function We(){var e;history.scrollRestoration="manual",addEventListener("beforeunload",n=>{let r=!1;if(Tt(),!M){const a=ae(w,void 0,null,"leave"),o={...a.navigation,cancel:()=>{r=!0,a.reject(new Error("navigation cancelled"))}};Bt.forEach(s=>s(o))}r?(n.preventDefault(),n.returnValue=""):history.scrollRestoration="auto"}),addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&Tt()}),(e=navigator.connection)!=null&&e.saveData||Ke(),L.addEventListener("click",n=>{var g;if(n.button||n.which!==1||n.metaKey||n.ctrlKey||n.shiftKey||n.altKey||n.defaultPrevented)return;const r=Gt(n.composedPath()[0],L);if(!r)return;const{url:a,external:o,target:s,download:i}=lt(r,I);if(!a)return;if(s==="_parent"||s==="_top"){if(window.parent!==window)return}else if(s&&s!=="_self")return;const c=Y(r);if(!(r instanceof SVGAElement)&&a.protocol!==location.protocol&&!(a.protocol==="https:"||a.protocol==="http:")||i)return;if(o||c.reload){Qt({url:a,type:"link"})?M=!0:n.preventDefault();return}const[u,h]=a.href.split("#");if(h!==void 0&&u===it(location)){const[,d]=w.url.href.split("#");if(d===h){n.preventDefault(),h===""||h==="top"&&r.ownerDocument.getElementById("top")===null?window.scrollTo({top:0}):(g=r.ownerDocument.getElementById(h))==null||g.scrollIntoView();return}if(C=!0,mt(k),t(a),!c.replace_state)return;C=!1}n.preventDefault(),B({type:"link",url:a,keepfocus:c.keepfocus,noscroll:c.noscroll,replace_state:c.replace_state??a.href===location.href})}),L.addEventListener("submit",n=>{if(n.defaultPrevented)return;const r=HTMLFormElement.prototype.cloneNode.call(n.target),a=n.submitter;if(((a==null?void 0:a.formMethod)||r.method)!=="get")return;const s=new URL((a==null?void 0:a.hasAttribute("formaction"))&&(a==null?void 0:a.formAction)||r.action);if(tt(s,I))return;const i=n.target,c=Y(i);if(c.reload)return;n.preventDefault(),n.stopPropagation();const f=new FormData(i),u=a==null?void 0:a.getAttribute("name");u&&f.append(u,(a==null?void 0:a.getAttribute("value"))??""),s.search=new URLSearchParams(f).toString(),B({type:"form",url:s,keepfocus:c.keepfocus,noscroll:c.noscroll,replace_state:c.replace_state??s.href===location.href})}),addEventListener("popstate",async n=>{var r;if((r=n.state)!=null&&r[j]){const a=n.state[j];if(Z={},a===k)return;const o=N[a],s=n.state[Ct]??{},i=new URL(n.state[Re]??location.href),c=n.state[F],f=it(location)===it(w.url);if(c===A&&(Kt||f)){t(i),N[k]=pt(),o&&scrollTo(o.x,o.y),s!==R.state&&(R={...R,state:s},wt.$set({page:R})),k=a;return}const h=a-k;await B({type:"popstate",url:i,popped:{state:s,scroll:o,delta:h},accept:()=>{k=a,A=c},block:()=>{history.go(-h)},nav_token:Z})}else if(!C){const a=new URL(location.href);t(a)}}),addEventListener("hashchange",()=>{C&&(C=!1,history.replaceState({...history.state,[j]:++k,[F]:A},"",location.href))});for(const n of document.querySelectorAll("link"))n.rel==="icon"&&(n.href=n.href);addEventListener("pageshow",n=>{n.persisted&&T.navigating.set(null)});function t(n){w.url=n,T.page.set({...R,url:n}),T.page.notify()}}async function ze(t,{status:e=200,error:n,node_ids:r,params:a,route:o,data:s,form:i}){_t=!0;const c=new URL(location.href);({params:a={},route:o={id:null}}=Et(c,!1)||{});let f;try{const u=r.map(async(d,m)=>{const l=s[m];return l!=null&&l.uses&&(l.uses=ne(l.uses)),vt({loader:$.nodes[d],url:c,params:a,route:o,parent:async()=>{const _={};for(let v=0;vd===o.id);if(g){const d=g.layouts;for(let m=0;mo?"1":"0").join(""));const r=await Ot(n.href);if(!r.ok){let o;throw(a=r.headers.get("content-type"))!=null&&a.includes("application/json")?o=await r.json():r.status===404?o="Not Found":r.status===500&&(o="Internal Error"),new et(r.status,o)}return new Promise(async o=>{var h;const s=new Map,i=r.body.getReader(),c=new TextDecoder;function f(g){return Oe(g,{Promise:d=>new Promise((m,l)=>{s.set(d,{fulfil:m,reject:l})})})}let u="";for(;;){const{done:g,value:d}=await i.read();if(g&&!u)break;for(u+=!d&&u?` -`:c.decode(d,{stream:!0});;){const m=u.indexOf(` -`);if(m===-1)break;const l=JSON.parse(u.slice(0,m));if(u=u.slice(m+1),l.type==="redirect")return o(l);if(l.type==="data")(h=l.nodes)==null||h.forEach(_=>{(_==null?void 0:_.type)==="data"&&(_.uses=ne(_.uses),_.data=f(_.data))}),o(l);else if(l.type==="chunk"){const{id:_,data:v,error:S}=l,p=s.get(_);s.delete(_),S?p.reject(f(S)):p.fulfil(f(v))}}}})}function ne(t){return{dependencies:new Set((t==null?void 0:t.dependencies)??[]),params:new Set((t==null?void 0:t.params)??[]),parent:!!(t!=null&&t.parent),route:!!(t!=null&&t.route),url:!!(t!=null&&t.url),search_params:new Set((t==null?void 0:t.search_params)??[])}}function Xe(){const t=document.querySelector("[autofocus]");if(t)t.focus();else{const e=document.body,n=e.getAttribute("tabindex");e.tabIndex=-1,e.focus({preventScroll:!0,focusVisible:!1}),n!==null?e.setAttribute("tabindex",n):e.removeAttribute("tabindex");const r=getSelection();if(r&&r.type!=="None"){const a=[];for(let o=0;o{if(r.rangeCount===a.length){for(let o=0;o{a=u,o=h});return s.catch(()=>{}),{navigation:{from:{params:t.params,route:{id:((c=t.route)==null?void 0:c.id)??null},url:t.url},to:n&&{params:(e==null?void 0:e.params)??null,route:{id:((f=e==null?void 0:e.route)==null?void 0:f.id)??null},url:n},willUnload:!e,type:r,complete:s},fulfil:a,reject:o}}export{en as a,I as b,tn as c,T as s}; diff --git a/_app/immutable/chunks/entry.Cnm33kj4.js b/_app/immutable/chunks/entry.Cnm33kj4.js new file mode 100644 index 000000000..6f77ed60e --- /dev/null +++ b/_app/immutable/chunks/entry.Cnm33kj4.js @@ -0,0 +1,3 @@ +import{t as re,o as oe}from"./scheduler.kPUuJgHu.js";import{w as dt}from"./index.Dpzj3rtZ.js";new URL("sveltekit-internal://");function ie(t,e){return t==="/"||e==="ignore"?t:e==="never"?t.endsWith("/")?t.slice(0,-1):t:e==="always"&&!t.endsWith("/")?t+"/":t}function se(t){return t.split("%25").map(decodeURI).join("%25")}function ce(t){for(const e in t)t[e]=decodeURIComponent(t[e]);return t}function it({href:t}){return t.split("#")[0]}const le=["href","pathname","search","toString","toJSON"];function fe(t,e,n){const r=new URL(t);Object.defineProperty(r,"searchParams",{value:new Proxy(r.searchParams,{get(a,o){if(o==="get"||o==="getAll"||o==="has")return i=>(n(i),a[o](i));e();const s=Reflect.get(a,o);return typeof s=="function"?s.bind(a):s}}),enumerable:!0,configurable:!0});for(const a of le)Object.defineProperty(r,a,{get(){return e(),t[a]},enumerable:!0,configurable:!0});return r}const ue="/__data.json",de=".html__data.json";function he(t){return t.endsWith(".html")?t.replace(/\.html$/,de):t.replace(/\/$/,"")+ue}function pe(...t){let e=5381;for(const n of t)if(typeof n=="string"){let r=n.length;for(;r;)e=e*33^n.charCodeAt(--r)}else if(ArrayBuffer.isView(n)){const r=new Uint8Array(n.buffer,n.byteOffset,n.byteLength);let a=r.length;for(;a;)e=e*33^r[--a]}else throw new TypeError("value must be a string or TypedArray");return(e>>>0).toString(36)}function ge(t){const e=atob(t),n=new Uint8Array(e.length);for(let r=0;r((t instanceof Request?t.method:(e==null?void 0:e.method)||"GET")!=="GET"&&V.delete(ht(t)),Ot(t,e));const V=new Map;function me(t,e){const n=ht(t,e),r=document.querySelector(n);if(r!=null&&r.textContent){let{body:a,...o}=JSON.parse(r.textContent);const s=r.getAttribute("data-ttl");return s&&V.set(n,{body:a,init:o,ttl:1e3*Number(s)}),r.getAttribute("data-b64")!==null&&(a=ge(a)),Promise.resolve(new Response(a,o))}return window.fetch(t,e)}function _e(t,e,n){if(V.size>0){const r=ht(t,n),a=V.get(r);if(a){if(performance.now(){const a=/^\[\.\.\.(\w+)(?:=(\w+))?\]$/.exec(r);if(a)return e.push({name:a[1],matcher:a[2],optional:!1,rest:!0,chained:!0}),"(?:/(.*))?";const o=/^\[\[(\w+)(?:=(\w+))?\]\]$/.exec(r);if(o)return e.push({name:o[1],matcher:o[2],optional:!0,rest:!1,chained:!0}),"(?:/([^/]+))?";if(!r)return;const s=r.split(/\[(.+?)\](?!\])/);return"/"+s.map((c,f)=>{if(f%2){if(c.startsWith("x+"))return st(String.fromCharCode(parseInt(c.slice(2),16)));if(c.startsWith("u+"))return st(String.fromCharCode(...c.slice(2).split("-").map(l=>parseInt(l,16))));const u=ye.exec(c),[,h,g,d,m]=u;return e.push({name:d,matcher:m,optional:!!h,rest:!!g,chained:g?f===1&&s[0]==="":!1}),g?"(.*?)":h?"([^/]*)?":"([^/]+?)"}return st(c)}).join("")}).join("")}/?$`),params:e}}function ve(t){return!/^\([^)]+\)$/.test(t)}function be(t){return t.slice(1).split("/").filter(ve)}function Ee(t,e,n){const r={},a=t.slice(1),o=a.filter(i=>i!==void 0);let s=0;for(let i=0;iu).join("/"),s=0),f===void 0){c.rest&&(r[c.name]="");continue}if(!c.matcher||n[c.matcher](f)){r[c.name]=f;const u=e[i+1],h=a[i+1];u&&!u.rest&&u.optional&&h&&c.chained&&(s=0),!u&&!h&&Object.keys(r).length===o.length&&(s=0);continue}if(c.optional&&c.chained){s++;continue}return}if(!s)return r}function st(t){return t.normalize().replace(/[[\]]/g,"\\$&").replace(/%/g,"%25").replace(/\//g,"%2[Ff]").replace(/\?/g,"%3[Ff]").replace(/#/g,"%23").replace(/[.*+?^${}()|\\]/g,"\\$&")}function ke({nodes:t,server_loads:e,dictionary:n,matchers:r}){const a=new Set(e);return Object.entries(n).map(([i,[c,f,u]])=>{const{pattern:h,params:g}=we(i),d={id:i,exec:m=>{const l=h.exec(m);if(l)return Ee(l,g,r)},errors:[1,...u||[]].map(m=>t[m]),layouts:[0,...f||[]].map(s),leaf:o(c)};return d.errors.length=d.layouts.length=Math.max(d.errors.length,d.layouts.length),d});function o(i){const c=i<0;return c&&(i=~i),[c,t[i]]}function s(i){return i===void 0?i:[a.has(i),t[i]]}}function jt(t,e=JSON.parse){try{return e(sessionStorage[t])}catch{}}function At(t,e,n=JSON.stringify){const r=n(e);try{sessionStorage[t]=r}catch{}}var Ut;const I=((Ut=globalThis.__sveltekit_h37g8r)==null?void 0:Ut.base)??"/Closing-The-Gap-In-Non-Latin-Script-Data";var Nt;const Se=((Nt=globalThis.__sveltekit_h37g8r)==null?void 0:Nt.assets)??I,Ae="1710192561331",Dt="sveltekit:snapshot",$t="sveltekit:scroll",Ct="sveltekit:states",Re="sveltekit:pageurl",j="sveltekit:history",F="sveltekit:navigation",K={tap:1,hover:2,viewport:3,eager:4,off:-1,false:-1},H=location.origin;function Vt(t){if(t instanceof URL)return t;let e=document.baseURI;if(!e){const n=document.getElementsByTagName("base");e=n.length?n[0].href:document.URL}return new URL(t,e)}function pt(){return{x:pageXOffset,y:pageYOffset}}function O(t,e){return t.getAttribute(`data-sveltekit-${e}`)}const Rt={...K,"":K.hover};function Ft(t){let e=t.assignedSlot??t.parentNode;return(e==null?void 0:e.nodeType)===11&&(e=e.host),e}function Gt(t,e){for(;t&&t!==e;){if(t.nodeName.toUpperCase()==="A"&&t.hasAttribute("href"))return t;t=Ft(t)}}function lt(t,e){let n;try{n=new URL(t instanceof SVGAElement?t.href.baseVal:t.href,document.baseURI)}catch{}const r=t instanceof SVGAElement?t.target.baseVal:t.target,a=!n||!!r||tt(n,e)||(t.getAttribute("rel")||"").split(/\s+/).includes("external"),o=(n==null?void 0:n.origin)===H&&t.hasAttribute("download");return{url:n,external:a,target:r,download:o}}function Y(t){let e=null,n=null,r=null,a=null,o=null,s=null,i=t;for(;i&&i!==document.documentElement;)r===null&&(r=O(i,"preload-code")),a===null&&(a=O(i,"preload-data")),e===null&&(e=O(i,"keepfocus")),n===null&&(n=O(i,"noscroll")),o===null&&(o=O(i,"reload")),s===null&&(s=O(i,"replacestate")),i=Ft(i);function c(f){switch(f){case"":case"true":return!0;case"off":case"false":return!1;default:return}}return{preload_code:Rt[r??"off"],preload_data:Rt[a??"off"],keepfocus:c(e),noscroll:c(n),reload:c(o),replace_state:c(s)}}function It(t){const e=dt(t);let n=!0;function r(){n=!0,e.update(s=>s)}function a(s){n=!1,e.set(s)}function o(s){let i;return e.subscribe(c=>{(i===void 0||n&&c!==i)&&s(i=c)})}return{notify:r,set:a,subscribe:o}}function Ie(){const{set:t,subscribe:e}=dt(!1);let n;async function r(){clearTimeout(n);try{const a=await fetch(`${Se}/_app/version.json`,{headers:{pragma:"no-cache","cache-control":"no-cache"}});if(!a.ok)return!1;const s=(await a.json()).version!==Ae;return s&&(t(!0),clearTimeout(n)),s}catch{return!1}}return{subscribe:e,check:r}}function tt(t,e){return t.origin!==H||!t.pathname.startsWith(e)}const Le=-1,Pe=-2,Te=-3,xe=-4,Ue=-5,Ne=-6;function Oe(t,e){if(typeof t=="number")return a(t,!0);if(!Array.isArray(t)||t.length===0)throw new Error("Invalid input");const n=t,r=Array(n.length);function a(o,s=!1){if(o===Le)return;if(o===Te)return NaN;if(o===xe)return 1/0;if(o===Ue)return-1/0;if(o===Ne)return-0;if(s)throw new Error("Invalid input");if(o in r)return r[o];const i=n[o];if(!i||typeof i!="object")r[o]=i;else if(Array.isArray(i))if(typeof i[0]=="string"){const c=i[0],f=e==null?void 0:e[c];if(f)return r[o]=f(a(i[1]));switch(c){case"Date":r[o]=new Date(i[1]);break;case"Set":const u=new Set;r[o]=u;for(let d=1;de!=null)}class et{constructor(e,n){this.status=e,typeof n=="string"?this.body={message:n}:n?this.body=n:this.body={message:`Error: ${e}`}}toString(){return JSON.stringify(this.body)}}class qt{constructor(e,n){this.status=e,this.location=n}}class gt extends Error{constructor(e,n,r){super(r),this.status=e,this.text=n}}const $e="x-sveltekit-invalidated",Ce="x-sveltekit-trailing-slash";function J(t){return t instanceof et||t instanceof gt?t.status:500}function Ve(t){return t instanceof gt?t.text:"Internal Error"}const N=jt($t)??{},G=jt(Dt)??{},T={url:It({}),page:It({}),navigating:dt(null),updated:Ie()};function mt(t){N[t]=pt()}function Fe(t,e){let n=t+1;for(;N[n];)delete N[n],n+=1;for(n=e+1;G[n];)delete G[n],n+=1}function D(t){return location.href=t.href,new Promise(()=>{})}function Lt(){}let nt,ft,W,L,ut,$;const Ht=[],z=[];let P=null;const Bt=[],Ge=[];let U=[],w={branch:[],error:null,url:null},_t=!1,X=!1,Pt=!0,M=!1,C=!1,Kt=!1,yt=!1,wt,k,A,R,Z;async function tn(t,e,n){var a,o;document.URL!==location.href&&(location.href=location.href),$=t,nt=ke(t),L=document.documentElement,ut=e,ft=t.nodes[0],W=t.nodes[1],ft(),W(),k=(a=history.state)==null?void 0:a[j],A=(o=history.state)==null?void 0:o[F],k||(k=A=Date.now(),history.replaceState({...history.state,[j]:k,[F]:A},""));const r=N[k];r&&(history.scrollRestoration="manual",scrollTo(r.x,r.y)),n?await ze(ut,n):Je(location.href,{replaceState:!0}),We()}function Me(){Ht.length=0,yt=!1}function Yt(t){z.some(e=>e==null?void 0:e.snapshot)&&(G[t]=z.map(e=>{var n;return(n=e==null?void 0:e.snapshot)==null?void 0:n.capture()}))}function Jt(t){var e;(e=G[t])==null||e.forEach((n,r)=>{var a,o;(o=(a=z[r])==null?void 0:a.snapshot)==null||o.restore(n)})}function Tt(){mt(k),At($t,N),Yt(A),At(Dt,G)}async function Wt(t,e,n,r){return B({type:"goto",url:Vt(t),keepfocus:e.keepFocus,noscroll:e.noScroll,replace_state:e.replaceState,state:e.state,redirect_count:n,nav_token:r,accept:()=>{e.invalidateAll&&(yt=!0)}})}async function qe(t){return P={id:t.id,promise:Xt(t).then(e=>(e.type==="loaded"&&e.state.error&&(P=null),e))},P.promise}async function ct(t){const e=nt.find(n=>n.exec(Zt(t)));e&&await Promise.all([...e.layouts,e.leaf].map(n=>n==null?void 0:n[1]()))}function zt(t,e){var a;w=t.state;const n=document.querySelector("style[data-sveltekit]");n&&n.remove(),R=t.props.page,wt=new $.root({target:e,props:{...t.props,stores:T,components:z},hydrate:!0}),Jt(A);const r={from:null,to:{params:w.params,route:{id:((a=w.route)==null?void 0:a.id)??null},url:new URL(location.href)},willUnload:!1,type:"enter",complete:Promise.resolve()};U.forEach(o=>o(r)),X=!0}async function Q({url:t,params:e,branch:n,status:r,error:a,route:o,form:s}){let i="never";if(I&&(t.pathname===I||t.pathname===I+"/"))i="always";else for(const d of n)(d==null?void 0:d.slash)!==void 0&&(i=d.slash);t.pathname=ie(t.pathname,i),t.search=t.search;const c={type:"loaded",state:{url:t,params:e,branch:n,error:a,route:o},props:{constructors:De(n).map(d=>d.node.component),page:R}};s!==void 0&&(c.props.form=s);let f={},u=!R,h=0;for(let d=0;d(i&&(c.route=!0),l[_])}),params:new Proxy(r,{get:(l,_)=>(i&&c.params.add(_),l[_])}),data:(o==null?void 0:o.data)??null,url:fe(n,()=>{i&&(c.url=!0)},l=>{i&&c.search_params.add(l)}),async fetch(l,_){let v;l instanceof Request?(v=l.url,_={body:l.method==="GET"||l.method==="HEAD"?void 0:await l.blob(),cache:l.cache,credentials:l.credentials,headers:l.headers,integrity:l.integrity,keepalive:l.keepalive,method:l.method,mode:l.mode,redirect:l.redirect,referrer:l.referrer,referrerPolicy:l.referrerPolicy,signal:l.signal,..._}):v=l;const S=new URL(v,n);return i&&d(S.href),S.origin===n.origin&&(v=S.href.slice(n.origin.length)),X?_e(v,S.href,_):me(v,_)},setHeaders:()=>{},depends:d,parent(){return i&&(c.parent=!0),e()},untrack(l){i=!1;try{return l()}finally{i=!0}}};s=await f.universal.load.call(null,m)??null}return{node:f,loader:t,server:o,universal:(h=f.universal)!=null&&h.load?{type:"data",data:s,uses:c}:null,data:s??(o==null?void 0:o.data)??null,slash:((g=f.universal)==null?void 0:g.trailingSlash)??(o==null?void 0:o.slash)}}function xt(t,e,n,r,a,o){if(yt)return!0;if(!a)return!1;if(a.parent&&t||a.route&&e||a.url&&n)return!0;for(const s of a.search_params)if(r.has(s))return!0;for(const s of a.params)if(o[s]!==w.params[s])return!0;for(const s of a.dependencies)if(Ht.some(i=>i(new URL(s))))return!0;return!1}function bt(t,e){return(t==null?void 0:t.type)==="data"?t:(t==null?void 0:t.type)==="skip"?e??null:null}function He(t,e){if(!t)return new Set(e.searchParams.keys());const n=new Set([...t.searchParams.keys(),...e.searchParams.keys()]);for(const r of n){const a=t.searchParams.getAll(r),o=e.searchParams.getAll(r);a.every(s=>o.includes(s))&&o.every(s=>a.includes(s))&&n.delete(r)}return n}async function Xt({id:t,invalidating:e,url:n,params:r,route:a}){if((P==null?void 0:P.id)===t)return P.promise;const{errors:o,layouts:s,leaf:i}=a,c=[...s,i];o.forEach(p=>p==null?void 0:p().catch(()=>{})),c.forEach(p=>p==null?void 0:p[1]().catch(()=>{}));let f=null;const u=w.url?t!==w.url.pathname+w.url.search:!1,h=w.route?a.id!==w.route.id:!1,g=He(w.url,n);let d=!1;const m=c.map((p,y)=>{var x;const b=w.branch[y],E=!!(p!=null&&p[0])&&((b==null?void 0:b.loader)!==p[1]||xt(d,h,u,g,(x=b.server)==null?void 0:x.uses,r));return E&&(d=!0),E});if(m.some(Boolean)){try{f=await ee(n,m)}catch(p){return at({status:J(p),error:await q(p,{url:n,params:r,route:{id:a.id}}),url:n,route:a})}if(f.type==="redirect")return f}const l=f==null?void 0:f.nodes;let _=!1;const v=c.map(async(p,y)=>{var rt;if(!p)return;const b=w.branch[y],E=l==null?void 0:l[y];if((!E||E.type==="skip")&&p[1]===(b==null?void 0:b.loader)&&!xt(_,h,u,g,(rt=b.universal)==null?void 0:rt.uses,r))return b;if(_=!0,(E==null?void 0:E.type)==="error")throw E;return vt({loader:p[1],url:n,params:r,route:a,parent:async()=>{var St;const kt={};for(let ot=0;ot{});const S=[];for(let p=0;pPromise.resolve({}),server_data_node:bt(o)}),c={node:await W(),loader:W,universal:null,server:null,data:null};return await Q({url:n,params:a,branch:[i,c],status:t,error:e,route:null})}function Et(t,e){if(!t||tt(t,I))return;let n;try{n=$.hooks.reroute({url:new URL(t)})??t.pathname}catch{return}const r=Zt(n);for(const a of nt){const o=a.exec(r);if(o)return{id:t.pathname+t.search,invalidating:e,route:a,params:ce(o),url:t}}}function Zt(t){return se(t.slice(I.length)||"/")}function Qt({url:t,type:e,intent:n,delta:r}){let a=!1;const o=ae(w,n,t,e);r!==void 0&&(o.navigation.delta=r);const s={...o.navigation,cancel:()=>{a=!0,o.reject(new Error("navigation cancelled"))}};return M||Bt.forEach(i=>i(s)),a?null:o}async function B({type:t,url:e,popped:n,keepfocus:r,noscroll:a,replace_state:o,state:s={},redirect_count:i=0,nav_token:c={},accept:f=Lt,block:u=Lt}){const h=Et(e,!1),g=Qt({url:e,type:t,delta:n==null?void 0:n.delta,intent:h});if(!g){u();return}const d=k,m=A;f(),M=!0,X&&T.navigating.set(g.navigation),Z=c;let l=h&&await Xt(h);if(!l){if(tt(e,I))return await D(e);l=await te(e,{id:null},await q(new gt(404,"Not Found",`Not found: ${e.pathname}`),{url:e,params:{},route:{id:null}}),404)}if(e=(h==null?void 0:h.url)||e,Z!==c)return g.reject(new Error("navigation aborted")),!1;if(l.type==="redirect")if(i>=20)l=await at({status:500,error:await q(new Error("Redirect loop"),{url:e,params:{},route:{id:null}}),url:e,route:{id:null}});else return Wt(new URL(l.location,e).href,{},i+1,c),!1;else l.props.page.status>=400&&await T.updated.check()&&await D(e);if(Me(),mt(d),Yt(m),l.props.page.url.pathname!==e.pathname&&(e.pathname=l.props.page.url.pathname),s=n?n.state:s,!n){const p=o?0:1,y={[j]:k+=p,[F]:A+=p,[Ct]:s};(o?history.replaceState:history.pushState).call(history,y,"",e),o||Fe(k,A)}if(P=null,l.props.page.state=s,X){w=l.state,l.props.page&&(l.props.page.url=e);const p=(await Promise.all(Ge.map(y=>y(g.navigation)))).filter(y=>typeof y=="function");if(p.length>0){let y=function(){U=U.filter(b=>!p.includes(b))};p.push(y),U.push(...p)}wt.$set(l.props),Kt=!0}else zt(l,ut);const{activeElement:_}=document;await re();const v=n?n.scroll:a?pt():null;if(Pt){const p=e.hash&&document.getElementById(decodeURIComponent(e.hash.slice(1)));v?scrollTo(v.x,v.y):p?p.scrollIntoView():scrollTo(0,0)}const S=document.activeElement!==_&&document.activeElement!==document.body;!r&&!S&&Xe(),Pt=!0,l.props.page&&(R=l.props.page),M=!1,t==="popstate"&&Jt(A),g.fulfil(void 0),U.forEach(p=>p(g.navigation)),T.navigating.set(null)}async function te(t,e,n,r){return t.origin===H&&t.pathname===location.pathname&&!_t?await at({status:r,error:n,url:t,route:e}):await D(t)}function Ke(){let t;L.addEventListener("mousemove",o=>{const s=o.target;clearTimeout(t),t=setTimeout(()=>{r(s,2)},20)});function e(o){r(o.composedPath()[0],1)}L.addEventListener("mousedown",e),L.addEventListener("touchstart",e,{passive:!0});const n=new IntersectionObserver(o=>{for(const s of o)s.isIntersecting&&(ct(s.target.href),n.unobserve(s.target))},{threshold:0});function r(o,s){const i=Gt(o,L);if(!i)return;const{url:c,external:f,download:u}=lt(i,I);if(f||u)return;const h=Y(i);if(!h.reload)if(s<=h.preload_data){const g=Et(c,!1);g&&qe(g)}else s<=h.preload_code&&ct(c.pathname)}function a(){n.disconnect();for(const o of L.querySelectorAll("a")){const{url:s,external:i,download:c}=lt(o,I);if(i||c)continue;const f=Y(o);f.reload||(f.preload_code===K.viewport&&n.observe(o),f.preload_code===K.eager&&ct(s.pathname))}}U.push(a),a()}function q(t,e){if(t instanceof et)return t.body;const n=J(t),r=Ve(t);return $.hooks.handleError({error:t,event:e,status:n,message:r})??{message:r}}function Ye(t,e){oe(()=>(t.push(e),()=>{const n=t.indexOf(e);t.splice(n,1)}))}function en(t){Ye(U,t)}function Je(t,e={}){return t=Vt(t),t.origin!==H?Promise.reject(new Error("goto: invalid URL")):Wt(t,e,0)}function We(){var e;history.scrollRestoration="manual",addEventListener("beforeunload",n=>{let r=!1;if(Tt(),!M){const a=ae(w,void 0,null,"leave"),o={...a.navigation,cancel:()=>{r=!0,a.reject(new Error("navigation cancelled"))}};Bt.forEach(s=>s(o))}r?(n.preventDefault(),n.returnValue=""):history.scrollRestoration="auto"}),addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&Tt()}),(e=navigator.connection)!=null&&e.saveData||Ke(),L.addEventListener("click",n=>{var g;if(n.button||n.which!==1||n.metaKey||n.ctrlKey||n.shiftKey||n.altKey||n.defaultPrevented)return;const r=Gt(n.composedPath()[0],L);if(!r)return;const{url:a,external:o,target:s,download:i}=lt(r,I);if(!a)return;if(s==="_parent"||s==="_top"){if(window.parent!==window)return}else if(s&&s!=="_self")return;const c=Y(r);if(!(r instanceof SVGAElement)&&a.protocol!==location.protocol&&!(a.protocol==="https:"||a.protocol==="http:")||i)return;if(o||c.reload){Qt({url:a,type:"link"})?M=!0:n.preventDefault();return}const[u,h]=a.href.split("#");if(h!==void 0&&u===it(location)){const[,d]=w.url.href.split("#");if(d===h){n.preventDefault(),h===""||h==="top"&&r.ownerDocument.getElementById("top")===null?window.scrollTo({top:0}):(g=r.ownerDocument.getElementById(h))==null||g.scrollIntoView();return}if(C=!0,mt(k),t(a),!c.replace_state)return;C=!1}n.preventDefault(),B({type:"link",url:a,keepfocus:c.keepfocus,noscroll:c.noscroll,replace_state:c.replace_state??a.href===location.href})}),L.addEventListener("submit",n=>{if(n.defaultPrevented)return;const r=HTMLFormElement.prototype.cloneNode.call(n.target),a=n.submitter;if(((a==null?void 0:a.formMethod)||r.method)!=="get")return;const s=new URL((a==null?void 0:a.hasAttribute("formaction"))&&(a==null?void 0:a.formAction)||r.action);if(tt(s,I))return;const i=n.target,c=Y(i);if(c.reload)return;n.preventDefault(),n.stopPropagation();const f=new FormData(i),u=a==null?void 0:a.getAttribute("name");u&&f.append(u,(a==null?void 0:a.getAttribute("value"))??""),s.search=new URLSearchParams(f).toString(),B({type:"form",url:s,keepfocus:c.keepfocus,noscroll:c.noscroll,replace_state:c.replace_state??s.href===location.href})}),addEventListener("popstate",async n=>{var r;if((r=n.state)!=null&&r[j]){const a=n.state[j];if(Z={},a===k)return;const o=N[a],s=n.state[Ct]??{},i=new URL(n.state[Re]??location.href),c=n.state[F],f=it(location)===it(w.url);if(c===A&&(Kt||f)){t(i),N[k]=pt(),o&&scrollTo(o.x,o.y),s!==R.state&&(R={...R,state:s},wt.$set({page:R})),k=a;return}const h=a-k;await B({type:"popstate",url:i,popped:{state:s,scroll:o,delta:h},accept:()=>{k=a,A=c},block:()=>{history.go(-h)},nav_token:Z})}else if(!C){const a=new URL(location.href);t(a)}}),addEventListener("hashchange",()=>{C&&(C=!1,history.replaceState({...history.state,[j]:++k,[F]:A},"",location.href))});for(const n of document.querySelectorAll("link"))n.rel==="icon"&&(n.href=n.href);addEventListener("pageshow",n=>{n.persisted&&T.navigating.set(null)});function t(n){w.url=n,T.page.set({...R,url:n}),T.page.notify()}}async function ze(t,{status:e=200,error:n,node_ids:r,params:a,route:o,data:s,form:i}){_t=!0;const c=new URL(location.href);({params:a={},route:o={id:null}}=Et(c,!1)||{});let f;try{const u=r.map(async(d,m)=>{const l=s[m];return l!=null&&l.uses&&(l.uses=ne(l.uses)),vt({loader:$.nodes[d],url:c,params:a,route:o,parent:async()=>{const _={};for(let v=0;vd===o.id);if(g){const d=g.layouts;for(let m=0;mo?"1":"0").join(""));const r=await Ot(n.href);if(!r.ok){let o;throw(a=r.headers.get("content-type"))!=null&&a.includes("application/json")?o=await r.json():r.status===404?o="Not Found":r.status===500&&(o="Internal Error"),new et(r.status,o)}return new Promise(async o=>{var h;const s=new Map,i=r.body.getReader(),c=new TextDecoder;function f(g){return Oe(g,{Promise:d=>new Promise((m,l)=>{s.set(d,{fulfil:m,reject:l})})})}let u="";for(;;){const{done:g,value:d}=await i.read();if(g&&!u)break;for(u+=!d&&u?` +`:c.decode(d,{stream:!0});;){const m=u.indexOf(` +`);if(m===-1)break;const l=JSON.parse(u.slice(0,m));if(u=u.slice(m+1),l.type==="redirect")return o(l);if(l.type==="data")(h=l.nodes)==null||h.forEach(_=>{(_==null?void 0:_.type)==="data"&&(_.uses=ne(_.uses),_.data=f(_.data))}),o(l);else if(l.type==="chunk"){const{id:_,data:v,error:S}=l,p=s.get(_);s.delete(_),S?p.reject(f(S)):p.fulfil(f(v))}}}})}function ne(t){return{dependencies:new Set((t==null?void 0:t.dependencies)??[]),params:new Set((t==null?void 0:t.params)??[]),parent:!!(t!=null&&t.parent),route:!!(t!=null&&t.route),url:!!(t!=null&&t.url),search_params:new Set((t==null?void 0:t.search_params)??[])}}function Xe(){const t=document.querySelector("[autofocus]");if(t)t.focus();else{const e=document.body,n=e.getAttribute("tabindex");e.tabIndex=-1,e.focus({preventScroll:!0,focusVisible:!1}),n!==null?e.setAttribute("tabindex",n):e.removeAttribute("tabindex");const r=getSelection();if(r&&r.type!=="None"){const a=[];for(let o=0;o{if(r.rangeCount===a.length){for(let o=0;o{a=u,o=h});return s.catch(()=>{}),{navigation:{from:{params:t.params,route:{id:((c=t.route)==null?void 0:c.id)??null},url:t.url},to:n&&{params:(e==null?void 0:e.params)??null,route:{id:((f=e==null?void 0:e.route)==null?void 0:f.id)??null},url:n},willUnload:!e,type:r,complete:s},fulfil:a,reject:o}}export{en as a,I as b,tn as c,T as s}; diff --git a/_app/immutable/chunks/stores.DUT6qJ-9.js b/_app/immutable/chunks/stores.B3dUkItk.js similarity index 72% rename from _app/immutable/chunks/stores.DUT6qJ-9.js rename to _app/immutable/chunks/stores.B3dUkItk.js index 3fa1f3689..8684ba9af 100644 --- a/_app/immutable/chunks/stores.DUT6qJ-9.js +++ b/_app/immutable/chunks/stores.B3dUkItk.js @@ -1 +1 @@ -import{s as e}from"./entry.CIRDAXcJ.js";const r=()=>{const s=e;return{page:{subscribe:s.page.subscribe},navigating:{subscribe:s.navigating.subscribe},updated:s.updated}},b={subscribe(s){return r().page.subscribe(s)}};export{b as p}; +import{s as e}from"./entry.Cnm33kj4.js";const r=()=>{const s=e;return{page:{subscribe:s.page.subscribe},navigating:{subscribe:s.navigating.subscribe},updated:s.updated}},b={subscribe(s){return r().page.subscribe(s)}};export{b as p}; diff --git a/_app/immutable/entry/app.2kowUB4t.js b/_app/immutable/entry/app.DOsh1JLo.js similarity index 83% rename from _app/immutable/entry/app.2kowUB4t.js rename to _app/immutable/entry/app.DOsh1JLo.js index e94c8085a..f1854c7c6 100644 --- a/_app/immutable/entry/app.2kowUB4t.js +++ b/_app/immutable/entry/app.DOsh1JLo.js @@ -1,7 +1,7 @@ -import{_ as m}from"../chunks/preload-helper.BQ24v_F8.js";import{s as S,d as j,o as z,b as R,t as B}from"../chunks/scheduler.kPUuJgHu.js";import{S as C,i as M,s as U,o as d,f as F,g as b,q as h,r as I,u as g,d as w,e as G,c as H,a as J,m as V,v as p,t as K,b as Q,j as W,w as P,x as k,y as v,z as L,A,B as D}from"../chunks/index.CYrHsBOq.js";const nt={};function X(o){let t,i,n;var r=o[1][0];function c(e,s){return{props:{data:e[3],form:e[2]}}}return r&&(t=k(r,c(o)),o[12](t)),{c(){t&&v(t.$$.fragment),i=d()},l(e){t&&L(t.$$.fragment,e),i=d()},m(e,s){t&&A(t,e,s),b(e,i,s),n=!0},p(e,s){if(s&2&&r!==(r=e[1][0])){if(t){P();const a=t;h(a.$$.fragment,1,0,()=>{D(a,1)}),I()}r?(t=k(r,c(e)),e[12](t),v(t.$$.fragment),g(t.$$.fragment,1),A(t,i.parentNode,i)):t=null}else if(r){const a={};s&8&&(a.data=e[3]),s&4&&(a.form=e[2]),t.$set(a)}},i(e){n||(t&&g(t.$$.fragment,e),n=!0)},o(e){t&&h(t.$$.fragment,e),n=!1},d(e){e&&w(i),o[12](null),t&&D(t,e)}}}function Y(o){let t,i,n;var r=o[1][0];function c(e,s){return{props:{data:e[3],$$slots:{default:[Z]},$$scope:{ctx:e}}}}return r&&(t=k(r,c(o)),o[11](t)),{c(){t&&v(t.$$.fragment),i=d()},l(e){t&&L(t.$$.fragment,e),i=d()},m(e,s){t&&A(t,e,s),b(e,i,s),n=!0},p(e,s){if(s&2&&r!==(r=e[1][0])){if(t){P();const a=t;h(a.$$.fragment,1,0,()=>{D(a,1)}),I()}r?(t=k(r,c(e)),e[11](t),v(t.$$.fragment),g(t.$$.fragment,1),A(t,i.parentNode,i)):t=null}else if(r){const a={};s&8&&(a.data=e[3]),s&8215&&(a.$$scope={dirty:s,ctx:e}),t.$set(a)}},i(e){n||(t&&g(t.$$.fragment,e),n=!0)},o(e){t&&h(t.$$.fragment,e),n=!1},d(e){e&&w(i),o[11](null),t&&D(t,e)}}}function Z(o){let t,i,n;var r=o[1][1];function c(e,s){return{props:{data:e[4],form:e[2]}}}return r&&(t=k(r,c(o)),o[10](t)),{c(){t&&v(t.$$.fragment),i=d()},l(e){t&&L(t.$$.fragment,e),i=d()},m(e,s){t&&A(t,e,s),b(e,i,s),n=!0},p(e,s){if(s&2&&r!==(r=e[1][1])){if(t){P();const a=t;h(a.$$.fragment,1,0,()=>{D(a,1)}),I()}r?(t=k(r,c(e)),e[10](t),v(t.$$.fragment),g(t.$$.fragment,1),A(t,i.parentNode,i)):t=null}else if(r){const a={};s&16&&(a.data=e[4]),s&4&&(a.form=e[2]),t.$set(a)}},i(e){n||(t&&g(t.$$.fragment,e),n=!0)},o(e){t&&h(t.$$.fragment,e),n=!1},d(e){e&&w(i),o[10](null),t&&D(t,e)}}}function O(o){let t,i=o[6]&&T(o);return{c(){t=G("div"),i&&i.c(),this.h()},l(n){t=H(n,"DIV",{id:!0,"aria-live":!0,"aria-atomic":!0,style:!0});var r=J(t);i&&i.l(r),r.forEach(w),this.h()},h(){V(t,"id","svelte-announcer"),V(t,"aria-live","assertive"),V(t,"aria-atomic","true"),p(t,"position","absolute"),p(t,"left","0"),p(t,"top","0"),p(t,"clip","rect(0 0 0 0)"),p(t,"clip-path","inset(50%)"),p(t,"overflow","hidden"),p(t,"white-space","nowrap"),p(t,"width","1px"),p(t,"height","1px")},m(n,r){b(n,t,r),i&&i.m(t,null)},p(n,r){n[6]?i?i.p(n,r):(i=T(n),i.c(),i.m(t,null)):i&&(i.d(1),i=null)},d(n){n&&w(t),i&&i.d()}}}function T(o){let t;return{c(){t=K(o[7])},l(i){t=Q(i,o[7])},m(i,n){b(i,t,n)},p(i,n){n&128&&W(t,i[7])},d(i){i&&w(t)}}}function $(o){let t,i,n,r,c;const e=[Y,X],s=[];function a(_,u){return _[1][1]?0:1}t=a(o),i=s[t]=e[t](o);let l=o[5]&&O(o);return{c(){i.c(),n=U(),l&&l.c(),r=d()},l(_){i.l(_),n=F(_),l&&l.l(_),r=d()},m(_,u){s[t].m(_,u),b(_,n,u),l&&l.m(_,u),b(_,r,u),c=!0},p(_,[u]){let E=t;t=a(_),t===E?s[t].p(_,u):(P(),h(s[E],1,1,()=>{s[E]=null}),I(),i=s[t],i?i.p(_,u):(i=s[t]=e[t](_),i.c()),g(i,1),i.m(n.parentNode,n)),_[5]?l?l.p(_,u):(l=O(_),l.c(),l.m(r.parentNode,r)):l&&(l.d(1),l=null)},i(_){c||(g(i),c=!0)},o(_){h(i),c=!1},d(_){_&&(w(n),w(r)),s[t].d(_),l&&l.d(_)}}}function x(o,t,i){let{stores:n}=t,{page:r}=t,{constructors:c}=t,{components:e=[]}=t,{form:s}=t,{data_0:a=null}=t,{data_1:l=null}=t;j(n.page.notify);let _=!1,u=!1,E=null;z(()=>{const f=n.page.subscribe(()=>{_&&(i(6,u=!0),B().then(()=>{i(7,E=document.title||"untitled page")}))});return i(5,_=!0),f});function y(f){R[f?"unshift":"push"](()=>{e[1]=f,i(0,e)})}function N(f){R[f?"unshift":"push"](()=>{e[0]=f,i(0,e)})}function q(f){R[f?"unshift":"push"](()=>{e[0]=f,i(0,e)})}return o.$$set=f=>{"stores"in f&&i(8,n=f.stores),"page"in f&&i(9,r=f.page),"constructors"in f&&i(1,c=f.constructors),"components"in f&&i(0,e=f.components),"form"in f&&i(2,s=f.form),"data_0"in f&&i(3,a=f.data_0),"data_1"in f&&i(4,l=f.data_1)},o.$$.update=()=>{o.$$.dirty&768&&n.page.set(r)},[e,c,s,a,l,_,u,E,n,r,y,N,q]}class rt extends C{constructor(t){super(),M(this,t,x,$,S,{stores:8,page:9,constructors:1,components:0,form:2,data_0:3,data_1:4})}}const st=[()=>m(()=>import("../nodes/0.tYS1zPvx.js"),__vite__mapDeps([0,1,2,3,4,5,6]),import.meta.url),()=>m(()=>import("../nodes/1.go2KgLB-.js"),__vite__mapDeps([7,1,2,5,3,4]),import.meta.url),()=>m(()=>import("../nodes/2.BxZTDYhj.js"),__vite__mapDeps([8,1,2,9,3,4,10,11]),import.meta.url),()=>m(()=>import("../nodes/3.D3Py6qqR.js"),__vite__mapDeps([12,1,2]),import.meta.url),()=>m(()=>import("../nodes/4.DckzDN0F.js"),__vite__mapDeps([13,1,2,14]),import.meta.url),()=>m(()=>import("../nodes/5.D6My8LMJ.js"),__vite__mapDeps([15,1,2,14,9,11]),import.meta.url),()=>m(()=>import("../nodes/6.BTcaBkny.js"),__vite__mapDeps([16,17,1,2,10,4,11,18]),import.meta.url),()=>m(()=>import("../nodes/7.CVrWY7Kg.js"),__vite__mapDeps([19,1,2,9,11]),import.meta.url),()=>m(()=>import("../nodes/8.CXYtvyRl.js"),__vite__mapDeps([20,1,2,21]),import.meta.url)],ot=[],at={"/":[2],"/about":[3],"/contribute":[4],"/entry":[5],"/map":[6],"/timeline":[7],"/vis":[8]},_t={handleError:({error:o})=>{console.error(o)},reroute:()=>{}};export{at as dictionary,_t as hooks,nt as matchers,st as nodes,rt as root,ot as server_loads}; function __vite__mapDeps(indexes) { if (!__vite__mapDeps.viteFileDeps) { - __vite__mapDeps.viteFileDeps = ["../nodes/0.tYS1zPvx.js","../chunks/scheduler.kPUuJgHu.js","../chunks/index.CYrHsBOq.js","../chunks/entry.CIRDAXcJ.js","../chunks/index.Dpzj3rtZ.js","../chunks/stores.DUT6qJ-9.js","../assets/0.BaH7aKf_.css","../nodes/1.go2KgLB-.js","../nodes/2.BxZTDYhj.js","../chunks/each.D6YF6ztN.js","../chunks/utils.kS56dN66.js","../chunks/ENTRIES.DrMUelaC.js","../nodes/3.D3Py6qqR.js","../nodes/4.DckzDN0F.js","../chunks/globals.D0QH3NT1.js","../nodes/5.D6My8LMJ.js","../nodes/6.BTcaBkny.js","../chunks/preload-helper.BQ24v_F8.js","../assets/6.jCI8mrZJ.css","../nodes/7.CVrWY7Kg.js","../nodes/8.CXYtvyRl.js","../chunks/_commonjsHelpers.Cpj98o6Y.js"] + __vite__mapDeps.viteFileDeps = ["../nodes/0.MH34aTo-.js","../chunks/scheduler.kPUuJgHu.js","../chunks/index.CYrHsBOq.js","../chunks/entry.Cnm33kj4.js","../chunks/index.Dpzj3rtZ.js","../chunks/stores.B3dUkItk.js","../assets/0.BaH7aKf_.css","../nodes/1.C1_-bDqQ.js","../nodes/2.CWb2TeJB.js","../chunks/each.D6YF6ztN.js","../chunks/utils.kS56dN66.js","../chunks/ENTRIES.B7c5x1cf.js","../nodes/3.D3Py6qqR.js","../nodes/4.DckzDN0F.js","../chunks/globals.D0QH3NT1.js","../nodes/5.lKEo7j0f.js","../nodes/6.DkAcEZfH.js","../chunks/preload-helper.BQ24v_F8.js","../assets/6.jCI8mrZJ.css","../nodes/7.CYkEQhly.js","../nodes/8.C-8QNMUP.js","../chunks/_commonjsHelpers.Cpj98o6Y.js"] } return indexes.map((i) => __vite__mapDeps.viteFileDeps[i]) } +import{_ as m}from"../chunks/preload-helper.BQ24v_F8.js";import{s as S,d as j,o as z,b as R,t as B}from"../chunks/scheduler.kPUuJgHu.js";import{S as C,i as M,s as U,o as d,f as F,g as b,q as h,r as I,u as g,d as w,e as G,c as H,a as J,m as V,v as p,t as K,b as Q,j as W,w as P,x as k,y as v,z as L,A,B as D}from"../chunks/index.CYrHsBOq.js";const nt={};function X(o){let t,i,n;var r=o[1][0];function c(e,s){return{props:{data:e[3],form:e[2]}}}return r&&(t=k(r,c(o)),o[12](t)),{c(){t&&v(t.$$.fragment),i=d()},l(e){t&&L(t.$$.fragment,e),i=d()},m(e,s){t&&A(t,e,s),b(e,i,s),n=!0},p(e,s){if(s&2&&r!==(r=e[1][0])){if(t){P();const a=t;h(a.$$.fragment,1,0,()=>{D(a,1)}),I()}r?(t=k(r,c(e)),e[12](t),v(t.$$.fragment),g(t.$$.fragment,1),A(t,i.parentNode,i)):t=null}else if(r){const a={};s&8&&(a.data=e[3]),s&4&&(a.form=e[2]),t.$set(a)}},i(e){n||(t&&g(t.$$.fragment,e),n=!0)},o(e){t&&h(t.$$.fragment,e),n=!1},d(e){e&&w(i),o[12](null),t&&D(t,e)}}}function Y(o){let t,i,n;var r=o[1][0];function c(e,s){return{props:{data:e[3],$$slots:{default:[Z]},$$scope:{ctx:e}}}}return r&&(t=k(r,c(o)),o[11](t)),{c(){t&&v(t.$$.fragment),i=d()},l(e){t&&L(t.$$.fragment,e),i=d()},m(e,s){t&&A(t,e,s),b(e,i,s),n=!0},p(e,s){if(s&2&&r!==(r=e[1][0])){if(t){P();const a=t;h(a.$$.fragment,1,0,()=>{D(a,1)}),I()}r?(t=k(r,c(e)),e[11](t),v(t.$$.fragment),g(t.$$.fragment,1),A(t,i.parentNode,i)):t=null}else if(r){const a={};s&8&&(a.data=e[3]),s&8215&&(a.$$scope={dirty:s,ctx:e}),t.$set(a)}},i(e){n||(t&&g(t.$$.fragment,e),n=!0)},o(e){t&&h(t.$$.fragment,e),n=!1},d(e){e&&w(i),o[11](null),t&&D(t,e)}}}function Z(o){let t,i,n;var r=o[1][1];function c(e,s){return{props:{data:e[4],form:e[2]}}}return r&&(t=k(r,c(o)),o[10](t)),{c(){t&&v(t.$$.fragment),i=d()},l(e){t&&L(t.$$.fragment,e),i=d()},m(e,s){t&&A(t,e,s),b(e,i,s),n=!0},p(e,s){if(s&2&&r!==(r=e[1][1])){if(t){P();const a=t;h(a.$$.fragment,1,0,()=>{D(a,1)}),I()}r?(t=k(r,c(e)),e[10](t),v(t.$$.fragment),g(t.$$.fragment,1),A(t,i.parentNode,i)):t=null}else if(r){const a={};s&16&&(a.data=e[4]),s&4&&(a.form=e[2]),t.$set(a)}},i(e){n||(t&&g(t.$$.fragment,e),n=!0)},o(e){t&&h(t.$$.fragment,e),n=!1},d(e){e&&w(i),o[10](null),t&&D(t,e)}}}function O(o){let t,i=o[6]&&T(o);return{c(){t=G("div"),i&&i.c(),this.h()},l(n){t=H(n,"DIV",{id:!0,"aria-live":!0,"aria-atomic":!0,style:!0});var r=J(t);i&&i.l(r),r.forEach(w),this.h()},h(){V(t,"id","svelte-announcer"),V(t,"aria-live","assertive"),V(t,"aria-atomic","true"),p(t,"position","absolute"),p(t,"left","0"),p(t,"top","0"),p(t,"clip","rect(0 0 0 0)"),p(t,"clip-path","inset(50%)"),p(t,"overflow","hidden"),p(t,"white-space","nowrap"),p(t,"width","1px"),p(t,"height","1px")},m(n,r){b(n,t,r),i&&i.m(t,null)},p(n,r){n[6]?i?i.p(n,r):(i=T(n),i.c(),i.m(t,null)):i&&(i.d(1),i=null)},d(n){n&&w(t),i&&i.d()}}}function T(o){let t;return{c(){t=K(o[7])},l(i){t=Q(i,o[7])},m(i,n){b(i,t,n)},p(i,n){n&128&&W(t,i[7])},d(i){i&&w(t)}}}function $(o){let t,i,n,r,c;const e=[Y,X],s=[];function a(_,u){return _[1][1]?0:1}t=a(o),i=s[t]=e[t](o);let l=o[5]&&O(o);return{c(){i.c(),n=U(),l&&l.c(),r=d()},l(_){i.l(_),n=F(_),l&&l.l(_),r=d()},m(_,u){s[t].m(_,u),b(_,n,u),l&&l.m(_,u),b(_,r,u),c=!0},p(_,[u]){let E=t;t=a(_),t===E?s[t].p(_,u):(P(),h(s[E],1,1,()=>{s[E]=null}),I(),i=s[t],i?i.p(_,u):(i=s[t]=e[t](_),i.c()),g(i,1),i.m(n.parentNode,n)),_[5]?l?l.p(_,u):(l=O(_),l.c(),l.m(r.parentNode,r)):l&&(l.d(1),l=null)},i(_){c||(g(i),c=!0)},o(_){h(i),c=!1},d(_){_&&(w(n),w(r)),s[t].d(_),l&&l.d(_)}}}function x(o,t,i){let{stores:n}=t,{page:r}=t,{constructors:c}=t,{components:e=[]}=t,{form:s}=t,{data_0:a=null}=t,{data_1:l=null}=t;j(n.page.notify);let _=!1,u=!1,E=null;z(()=>{const f=n.page.subscribe(()=>{_&&(i(6,u=!0),B().then(()=>{i(7,E=document.title||"untitled page")}))});return i(5,_=!0),f});function y(f){R[f?"unshift":"push"](()=>{e[1]=f,i(0,e)})}function N(f){R[f?"unshift":"push"](()=>{e[0]=f,i(0,e)})}function q(f){R[f?"unshift":"push"](()=>{e[0]=f,i(0,e)})}return o.$$set=f=>{"stores"in f&&i(8,n=f.stores),"page"in f&&i(9,r=f.page),"constructors"in f&&i(1,c=f.constructors),"components"in f&&i(0,e=f.components),"form"in f&&i(2,s=f.form),"data_0"in f&&i(3,a=f.data_0),"data_1"in f&&i(4,l=f.data_1)},o.$$.update=()=>{o.$$.dirty&768&&n.page.set(r)},[e,c,s,a,l,_,u,E,n,r,y,N,q]}class rt extends C{constructor(t){super(),M(this,t,x,$,S,{stores:8,page:9,constructors:1,components:0,form:2,data_0:3,data_1:4})}}const st=[()=>m(()=>import("../nodes/0.MH34aTo-.js"),__vite__mapDeps([0,1,2,3,4,5,6]),import.meta.url),()=>m(()=>import("../nodes/1.C1_-bDqQ.js"),__vite__mapDeps([7,1,2,5,3,4]),import.meta.url),()=>m(()=>import("../nodes/2.CWb2TeJB.js"),__vite__mapDeps([8,1,2,9,3,4,10,11]),import.meta.url),()=>m(()=>import("../nodes/3.D3Py6qqR.js"),__vite__mapDeps([12,1,2]),import.meta.url),()=>m(()=>import("../nodes/4.DckzDN0F.js"),__vite__mapDeps([13,1,2,14]),import.meta.url),()=>m(()=>import("../nodes/5.lKEo7j0f.js"),__vite__mapDeps([15,1,2,14,9,11]),import.meta.url),()=>m(()=>import("../nodes/6.DkAcEZfH.js"),__vite__mapDeps([16,17,1,2,10,4,11,18]),import.meta.url),()=>m(()=>import("../nodes/7.CYkEQhly.js"),__vite__mapDeps([19,1,2,9,11]),import.meta.url),()=>m(()=>import("../nodes/8.C-8QNMUP.js"),__vite__mapDeps([20,1,2,21]),import.meta.url)],ot=[],at={"/":[2],"/about":[3],"/contribute":[4],"/entry":[5],"/map":[6],"/timeline":[7],"/vis":[8]},_t={handleError:({error:o})=>{console.error(o)},reroute:()=>{}};export{at as dictionary,_t as hooks,nt as matchers,st as nodes,rt as root,ot as server_loads}; diff --git a/_app/immutable/entry/start.D3LilFFa.js b/_app/immutable/entry/start.D3LilFFa.js new file mode 100644 index 000000000..07762f323 --- /dev/null +++ b/_app/immutable/entry/start.D3LilFFa.js @@ -0,0 +1 @@ +import{c as a}from"../chunks/entry.Cnm33kj4.js";export{a as start}; diff --git a/_app/immutable/entry/start.bFiNSXCE.js b/_app/immutable/entry/start.bFiNSXCE.js deleted file mode 100644 index c4f063cf5..000000000 --- a/_app/immutable/entry/start.bFiNSXCE.js +++ /dev/null @@ -1 +0,0 @@ -import{c as a}from"../chunks/entry.CIRDAXcJ.js";export{a as start}; diff --git a/_app/immutable/nodes/0.MH34aTo-.js b/_app/immutable/nodes/0.MH34aTo-.js new file mode 100644 index 000000000..4ff401711 --- /dev/null +++ b/_app/immutable/nodes/0.MH34aTo-.js @@ -0,0 +1 @@ +import{s as P,n as E,c as R,e as F,u as J,g as K,f as Q}from"../chunks/scheduler.kPUuJgHu.js";import{S as k,i as B,e as x,s as $,c as b,l as g,f as y,a as G,d as S,m as o,C as f,g as w,h as d,y as U,z as W,A as X,u as N,q as O,B as Y}from"../chunks/index.CYrHsBOq.js";import{b as A}from"../chunks/entry.Cnm33kj4.js";import{p as Z}from"../chunks/stores.B3dUkItk.js";const ee=!0,te="always",de=Object.freeze(Object.defineProperty({__proto__:null,prerender:ee,trailingSlash:te},Symbol.toStringTag,{value:"Module"}));function ne(s){let n,c='

Closing the Gap

in Non-Latin-Script Data

',a,r,e,t,C="Projects",D,m,M="Map",L,p,q="Timeline",T,h,z="Relations",j,_,H="Contribute",I,v,V="About";return{c(){n=x("div"),n.innerHTML=c,a=$(),r=x("div"),e=x("div"),t=x("a"),t.textContent=C,D=$(),m=x("a"),m.textContent=M,L=$(),p=x("a"),p.textContent=q,T=$(),h=x("a"),h.textContent=z,j=$(),_=x("a"),_.textContent=H,I=$(),v=x("a"),v.textContent=V,this.h()},l(l){n=b(l,"DIV",{class:!0,"data-svelte-h":!0}),g(n)!=="svelte-r4zqeb"&&(n.innerHTML=c),a=y(l),r=b(l,"DIV",{class:!0});var i=G(r);e=b(i,"DIV",{class:!0});var u=G(e);t=b(u,"A",{href:!0,class:!0,"data-svelte-h":!0}),g(t)!=="svelte-1j9bhpr"&&(t.textContent=C),D=y(u),m=b(u,"A",{href:!0,class:!0,"data-svelte-h":!0}),g(m)!=="svelte-twdkt4"&&(m.textContent=M),L=y(u),p=b(u,"A",{href:!0,class:!0,"data-svelte-h":!0}),g(p)!=="svelte-ytth9t"&&(p.textContent=q),T=y(u),h=b(u,"A",{href:!0,class:!0,"data-svelte-h":!0}),g(h)!=="svelte-10uet9l"&&(h.textContent=z),j=y(u),_=b(u,"A",{href:!0,class:!0,"data-svelte-h":!0}),g(_)!=="svelte-guusch"&&(_.textContent=H),I=y(u),v=b(u,"A",{href:!0,class:!0,"data-svelte-h":!0}),g(v)!=="svelte-198ch93"&&(v.textContent=V),u.forEach(S),i.forEach(S),this.h()},h(){o(n,"class","mx-auto mb-4 max-w-[76rem] px-4 text-gray-50"),o(t,"href",A+"/"),o(t,"class","underline-offset-2 hover:underline"),f(t,"underline",s[0].route.id==="/"),o(m,"href",A+"/map/"),o(m,"class","underline-offset-2 hover:underline"),f(m,"underline",s[0].route.id==="/map"),o(p,"href",A+"/timeline/"),o(p,"class","underline-offset-2 hover:underline"),f(p,"underline",s[0].route.id==="/timeline"),o(h,"href",A+"/vis/"),o(h,"class","underline-offset-2 hover:underline"),f(h,"underline",s[0].route.id==="/vis"),o(_,"href",A+"/contribute/"),o(_,"class","underline-offset-2 hover:underline"),f(_,"underline",s[0].route.id==="/contribute"),o(v,"href",A+"/about/"),o(v,"class","underline-offset-2 hover:underline"),f(v,"underline",s[0].route.id==="/about"),o(e,"class","mx-auto flex max-w-[76rem] flex-wrap gap-x-4 gap-y-2 px-4 text-xl font-normal"),o(r,"class","mb-4 bg-ctgorange py-3")},m(l,i){w(l,n,i),w(l,a,i),w(l,r,i),d(r,e),d(e,t),d(e,D),d(e,m),d(e,L),d(e,p),d(e,T),d(e,h),d(e,j),d(e,_),d(e,I),d(e,v)},p(l,[i]){i&1&&f(t,"underline",l[0].route.id==="/"),i&1&&f(m,"underline",l[0].route.id==="/map"),i&1&&f(p,"underline",l[0].route.id==="/timeline"),i&1&&f(h,"underline",l[0].route.id==="/vis"),i&1&&f(_,"underline",l[0].route.id==="/contribute"),i&1&&f(v,"underline",l[0].route.id==="/about")},i:E,o:E,d(l){l&&(S(n),S(a),S(r))}}}function se(s,n,c){let a;return R(s,Z,r=>c(0,a=r)),[a]}class ae extends k{constructor(n){super(),B(this,n,se,ne,P,{})}}function re(s){let n,c,a;n=new ae({});const r=s[1].default,e=F(r,s,s[0],null);return{c(){U(n.$$.fragment),c=$(),e&&e.c()},l(t){W(n.$$.fragment,t),c=y(t),e&&e.l(t)},m(t,C){X(n,t,C),w(t,c,C),e&&e.m(t,C),a=!0},p(t,[C]){e&&e.p&&(!a||C&1)&&J(e,r,t,t[0],a?Q(r,t[0],C,null):K(t[0]),null)},i(t){a||(N(n.$$.fragment,t),N(e,t),a=!0)},o(t){O(n.$$.fragment,t),O(e,t),a=!1},d(t){t&&S(c),Y(n,t),e&&e.d(t)}}}function le(s,n,c){let{$$slots:a={},$$scope:r}=n;return s.$$set=e=>{"$$scope"in e&&c(0,r=e.$$scope)},[r,a]}class ce extends k{constructor(n){super(),B(this,n,le,re,P,{})}}export{ce as component,de as universal}; diff --git a/_app/immutable/nodes/0.tYS1zPvx.js b/_app/immutable/nodes/0.tYS1zPvx.js deleted file mode 100644 index 762d429bb..000000000 --- a/_app/immutable/nodes/0.tYS1zPvx.js +++ /dev/null @@ -1 +0,0 @@ -import{s as G,n as z,c as P,e as k,u as B,g as F,f as J}from"../chunks/scheduler.kPUuJgHu.js";import{S as N,i as O,e as b,s as C,c as g,l as x,f as $,a as H,d as y,m as o,C as h,g as S,h as _,y as K,z as Q,A as R,u as V,q as E,B as U}from"../chunks/index.CYrHsBOq.js";import{b as A}from"../chunks/entry.CIRDAXcJ.js";import{p as W}from"../chunks/stores.DUT6qJ-9.js";const X=!0,Y="always",ie=Object.freeze(Object.defineProperty({__proto__:null,prerender:X,trailingSlash:Y},Symbol.toStringTag,{value:"Module"}));function Z(r){let n,u='

Closing the Gap

in Non-Latin-Script Data

',a,s,t,e,v="Projects",w,f,j="Map",D,d,I="Timeline",L,c,M="Contribute",T,m,q="About";return{c(){n=b("div"),n.innerHTML=u,a=C(),s=b("div"),t=b("div"),e=b("a"),e.textContent=v,w=C(),f=b("a"),f.textContent=j,D=C(),d=b("a"),d.textContent=I,L=C(),c=b("a"),c.textContent=M,T=C(),m=b("a"),m.textContent=q,this.h()},l(l){n=g(l,"DIV",{class:!0,"data-svelte-h":!0}),x(n)!=="svelte-r4zqeb"&&(n.innerHTML=u),a=$(l),s=g(l,"DIV",{class:!0});var i=H(s);t=g(i,"DIV",{class:!0});var p=H(t);e=g(p,"A",{href:!0,class:!0,"data-svelte-h":!0}),x(e)!=="svelte-1j9bhpr"&&(e.textContent=v),w=$(p),f=g(p,"A",{href:!0,class:!0,"data-svelte-h":!0}),x(f)!=="svelte-twdkt4"&&(f.textContent=j),D=$(p),d=g(p,"A",{href:!0,class:!0,"data-svelte-h":!0}),x(d)!=="svelte-ytth9t"&&(d.textContent=I),L=$(p),c=g(p,"A",{href:!0,class:!0,"data-svelte-h":!0}),x(c)!=="svelte-guusch"&&(c.textContent=M),T=$(p),m=g(p,"A",{href:!0,class:!0,"data-svelte-h":!0}),x(m)!=="svelte-198ch93"&&(m.textContent=q),p.forEach(y),i.forEach(y),this.h()},h(){o(n,"class","mx-auto mb-4 max-w-[76rem] px-4 text-gray-50"),o(e,"href",A+"/"),o(e,"class","underline-offset-2 hover:underline"),h(e,"underline",r[0].route.id==="/"),o(f,"href",A+"/map/"),o(f,"class","underline-offset-2 hover:underline"),h(f,"underline",r[0].route.id==="/map"),o(d,"href",A+"/timeline/"),o(d,"class","underline-offset-2 hover:underline"),h(d,"underline",r[0].route.id==="/timeline"),o(c,"href",A+"/contribute/"),o(c,"class","underline-offset-2 hover:underline"),h(c,"underline",r[0].route.id==="/contribute"),o(m,"href",A+"/about/"),o(m,"class","underline-offset-2 hover:underline"),h(m,"underline",r[0].route.id==="/about"),o(t,"class","mx-auto flex max-w-[76rem] flex-wrap gap-x-4 gap-y-2 px-4 text-xl font-normal"),o(s,"class","mb-4 bg-ctgorange py-3")},m(l,i){S(l,n,i),S(l,a,i),S(l,s,i),_(s,t),_(t,e),_(t,w),_(t,f),_(t,D),_(t,d),_(t,L),_(t,c),_(t,T),_(t,m)},p(l,[i]){i&1&&h(e,"underline",l[0].route.id==="/"),i&1&&h(f,"underline",l[0].route.id==="/map"),i&1&&h(d,"underline",l[0].route.id==="/timeline"),i&1&&h(c,"underline",l[0].route.id==="/contribute"),i&1&&h(m,"underline",l[0].route.id==="/about")},i:z,o:z,d(l){l&&(y(n),y(a),y(s))}}}function ee(r,n,u){let a;return P(r,W,s=>u(0,a=s)),[a]}class te extends N{constructor(n){super(),O(this,n,ee,Z,G,{})}}function ne(r){let n,u,a;n=new te({});const s=r[1].default,t=k(s,r,r[0],null);return{c(){K(n.$$.fragment),u=C(),t&&t.c()},l(e){Q(n.$$.fragment,e),u=$(e),t&&t.l(e)},m(e,v){R(n,e,v),S(e,u,v),t&&t.m(e,v),a=!0},p(e,[v]){t&&t.p&&(!a||v&1)&&B(t,s,e,e[0],a?J(s,e[0],v,null):F(e[0]),null)},i(e){a||(V(n.$$.fragment,e),V(t,e),a=!0)},o(e){E(n.$$.fragment,e),E(t,e),a=!1},d(e){e&&y(u),U(n,e),t&&t.d(e)}}}function ae(r,n,u){let{$$slots:a={},$$scope:s}=n;return r.$$set=t=>{"$$scope"in t&&u(0,s=t.$$scope)},[s,a]}class ue extends N{constructor(n){super(),O(this,n,ae,ne,G,{})}}export{ue as component,ie as universal}; diff --git a/_app/immutable/nodes/1.go2KgLB-.js b/_app/immutable/nodes/1.C1_-bDqQ.js similarity index 92% rename from _app/immutable/nodes/1.go2KgLB-.js rename to _app/immutable/nodes/1.C1_-bDqQ.js index 8cecd8990..21e3074d4 100644 --- a/_app/immutable/nodes/1.go2KgLB-.js +++ b/_app/immutable/nodes/1.C1_-bDqQ.js @@ -1 +1 @@ -import{s as x,n as u,c as S}from"../chunks/scheduler.kPUuJgHu.js";import{S as j,i as q,e as h,t as d,s as y,c as v,a as g,b,d as c,f as C,g as _,h as E,j as $}from"../chunks/index.CYrHsBOq.js";import{p as H}from"../chunks/stores.DUT6qJ-9.js";function P(p){var f;let a,s=p[0].status+"",r,o,n,i=((f=p[0].error)==null?void 0:f.message)+"",m;return{c(){a=h("h1"),r=d(s),o=y(),n=h("p"),m=d(i)},l(e){a=v(e,"H1",{});var t=g(a);r=b(t,s),t.forEach(c),o=C(e),n=v(e,"P",{});var l=g(n);m=b(l,i),l.forEach(c)},m(e,t){_(e,a,t),E(a,r),_(e,o,t),_(e,n,t),E(n,m)},p(e,[t]){var l;t&1&&s!==(s=e[0].status+"")&&$(r,s),t&1&&i!==(i=((l=e[0].error)==null?void 0:l.message)+"")&&$(m,i)},i:u,o:u,d(e){e&&(c(a),c(o),c(n))}}}function k(p,a,s){let r;return S(p,H,o=>s(0,r=o)),[r]}class B extends j{constructor(a){super(),q(this,a,k,P,x,{})}}export{B as component}; +import{s as x,n as u,c as S}from"../chunks/scheduler.kPUuJgHu.js";import{S as j,i as q,e as h,t as d,s as y,c as v,a as g,b,d as c,f as C,g as _,h as E,j as $}from"../chunks/index.CYrHsBOq.js";import{p as H}from"../chunks/stores.B3dUkItk.js";function P(p){var f;let a,s=p[0].status+"",r,o,n,i=((f=p[0].error)==null?void 0:f.message)+"",m;return{c(){a=h("h1"),r=d(s),o=y(),n=h("p"),m=d(i)},l(e){a=v(e,"H1",{});var t=g(a);r=b(t,s),t.forEach(c),o=C(e),n=v(e,"P",{});var l=g(n);m=b(l,i),l.forEach(c)},m(e,t){_(e,a,t),E(a,r),_(e,o,t),_(e,n,t),E(n,m)},p(e,[t]){var l;t&1&&s!==(s=e[0].status+"")&&$(r,s),t&1&&i!==(i=((l=e[0].error)==null?void 0:l.message)+"")&&$(m,i)},i:u,o:u,d(e){e&&(c(a),c(o),c(n))}}}function k(p,a,s){let r;return S(p,H,o=>s(0,r=o)),[r]}class B extends j{constructor(a){super(),q(this,a,k,P,x,{})}}export{B as component}; diff --git a/_app/immutable/nodes/2.BxZTDYhj.js b/_app/immutable/nodes/2.CWb2TeJB.js similarity index 99% rename from _app/immutable/nodes/2.BxZTDYhj.js rename to _app/immutable/nodes/2.CWb2TeJB.js index feb9d558d..f4706da6b 100644 --- a/_app/immutable/nodes/2.BxZTDYhj.js +++ b/_app/immutable/nodes/2.CWb2TeJB.js @@ -1 +1 @@ -import{s as se,n as G,r as ft}from"../chunks/scheduler.kPUuJgHu.js";import{S as ie,i as oe,G as W,H as X,a as p,d as h,m as f,g as z,h as g,e as k,s as S,t as Y,y as ce,c as w,f as A,b as Z,z as ue,A as fe,u as U,w as be,q as R,r as pe,j as x,n as ne,B as he,l as ve,C as M,p as le,D as Ae,o as ye,k as vt}from"../chunks/index.CYrHsBOq.js";import{e as q}from"../chunks/each.D6YF6ztN.js";import{a as bt}from"../chunks/entry.CIRDAXcJ.js";import{s as Ce,a as ke,b as je,r as Ve,c as pt,d as ht,u as Te,g as kt,e as wt,h as Et,f as He,i as dt}from"../chunks/utils.kS56dN66.js";import{e as gt}from"../chunks/ENTRIES.DrMUelaC.js";function Ct(r){let e,t;return{c(){e=W("svg"),t=W("path"),this.h()},l(l){e=X(l,"svg",{xmlns:!0,viewBox:!0,fill:!0});var a=p(e);t=X(a,"path",{"fill-rule":!0,d:!0,"clip-rule":!0}),p(t).forEach(h),a.forEach(h),this.h()},h(){f(t,"fill-rule","evenodd"),f(t,"d","M12.293 5.293a1 1 0 0 1 1.414 0l4 4a1 1 0 0 1 0 1.414l-4 4a1 1 0 0 1-1.414-1.414L14.586 11H3a1 1 0 1 1 0-2h11.586l-2.293-2.293a1 1 0 0 1 0-1.414z"),f(t,"clip-rule","evenodd"),f(e,"xmlns","http://www.w3.org/2000/svg"),f(e,"viewBox","0 0 20 20"),f(e,"fill","currentColor")},m(l,a){z(l,e,a),g(e,t)},p:G,i:G,o:G,d(l){l&&h(e)}}}class Vt extends ie{constructor(e){super(),oe(this,e,null,Ct,se,{})}}function yt(r){let e,t;return{c(){e=W("svg"),t=W("path"),this.h()},l(l){e=X(l,"svg",{viewBox:!0,xmlns:!0,fill:!0});var a=p(e);t=X(a,"path",{d:!0}),p(t).forEach(h),a.forEach(h),this.h()},h(){f(t,"d","M6 6a2 2 0 0 1 2-2 1 1 0 0 0 0-2 4 4 0 0 0-4 4v3a2 2 0 0 1-2 2 1 1 0 0 0 0 2 2 2 0 0 1 2 2v3a4 4 0 0 0 4 4 1 1 0 0 0 0-2 2 2 0 0 1-2-2v-3a4 4 0 0 0-1.38-3A4 4 0 0 0 6 9Zm16 5a2 2 0 0 1-2-2V6a4 4 0 0 0-4-4 1 1 0 0 0 0 2 2 2 0 0 1 2 2v3a4 4 0 0 0 1.38 3A4 4 0 0 0 18 15v3a2 2 0 0 1-2 2 1 1 0 0 0 0 2 4 4 0 0 0 4-4v-3a2 2 0 0 1 2-2 1 1 0 0 0 0-2Z"),f(e,"viewBox","0 0 24 24"),f(e,"xmlns","http://www.w3.org/2000/svg"),f(e,"fill","currentColor")},m(l,a){z(l,e,a),g(e,t)},p:G,i:G,o:G,d(l){l&&h(e)}}}class Dt extends ie{constructor(e){super(),oe(this,e,null,yt,se,{})}}function jt(r){let e,t;return{c(){e=W("svg"),t=W("path"),this.h()},l(l){e=X(l,"svg",{xmlns:!0,fill:!0,viewBox:!0,stroke:!0});var a=p(e);t=X(a,"path",{"stroke-linecap":!0,"stroke-linejoin":!0,d:!0}),p(t).forEach(h),a.forEach(h),this.h()},h(){f(t,"stroke-linecap","round"),f(t,"stroke-linejoin","round"),f(t,"d","M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2z"),f(e,"xmlns","http://www.w3.org/2000/svg"),f(e,"fill","none"),f(e,"viewBox","0 0 24 24"),f(e,"stroke","currentColor")},m(l,a){z(l,e,a),g(e,t)},p:G,i:G,o:G,d(l){l&&h(e)}}}class Tt extends ie{constructor(e){super(),oe(this,e,null,jt,se,{})}}function It(r){let e,t;return{c(){e=W("svg"),t=W("path"),this.h()},l(l){e=X(l,"svg",{xmlns:!0,fill:!0,viewBox:!0,stroke:!0});var a=p(e);t=X(a,"path",{"stroke-linecap":!0,"stroke-linejoin":!0,d:!0}),p(t).forEach(h),a.forEach(h),this.h()},h(){f(t,"stroke-linecap","round"),f(t,"stroke-linejoin","round"),f(t,"d","M3 5h12M9 3v2m1.048 9.5A18.022 18.022 0 0 1 6.412 9m6.088 9h7M11 21l5-10 5 10M12.751 5C11.783 10.77 8.07 15.61 3 18.129"),f(e,"xmlns","http://www.w3.org/2000/svg"),f(e,"fill","none"),f(e,"viewBox","0 0 24 24"),f(e,"stroke","currentColor")},m(l,a){z(l,e,a),g(e,t)},p:G,i:G,o:G,d(l){l&&h(e)}}}class Lt extends ie{constructor(e){super(),oe(this,e,null,It,se,{})}}function Bt(r){let e,t,l;return{c(){e=W("svg"),t=W("path"),l=W("path"),this.h()},l(a){e=X(a,"svg",{xmlns:!0,viewBox:!0,fill:!0});var i=p(e);t=X(i,"path",{d:!0}),p(t).forEach(h),l=X(i,"path",{d:!0}),p(l).forEach(h),i.forEach(h),this.h()},h(){f(t,"d","M11 3a1 1 0 1 0 0 2h2.586l-6.293 6.293a1 1 0 1 0 1.414 1.414L15 6.414V9a1 1 0 1 0 2 0V4a1 1 0 0 0-1-1h-5z"),f(l,"d","M5 5a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2v-3a1 1 0 1 0-2 0v3H5V7h3a1 1 0 0 0 0-2H5z"),f(e,"xmlns","http://www.w3.org/2000/svg"),f(e,"viewBox","0 0 20 20"),f(e,"fill","currentColor")},m(a,i){z(a,e,i),g(e,t),g(e,l)},p:G,i:G,o:G,d(a){a&&h(e)}}}class Mt extends ie{constructor(e){super(),oe(this,e,null,Bt,se,{})}}function zt(r){let e,t;return{c(){e=W("svg"),t=W("path"),this.h()},l(l){e=X(l,"svg",{xmlns:!0,viewBox:!0,fill:!0});var a=p(e);t=X(a,"path",{"fill-rule":!0,d:!0,"clip-rule":!0}),p(t).forEach(h),a.forEach(h),this.h()},h(){f(t,"fill-rule","evenodd"),f(t,"d","M5.05 4.05a7 7 0 1 1 9.9 9.9L10 18.9l-4.95-4.95a7 7 0 0 1 0-9.9zM10 11a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"),f(t,"clip-rule","evenodd"),f(e,"xmlns","http://www.w3.org/2000/svg"),f(e,"viewBox","0 0 20 20"),f(e,"fill","currentColor")},m(l,a){z(l,e,a),g(e,t)},p:G,i:G,o:G,d(l){l&&h(e)}}}class Ot extends ie{constructor(e){super(),oe(this,e,null,zt,se,{})}}function Ne(r,e,t){const l=r.slice();return l[13]=e[t],l}function Ue(r,e,t){const l=r.slice();return l[16]=e[t],l}function Ge(r,e,t){const l=r.slice();return l[19]=e[t],l[21]=t,l}function Ke(r,e,t){const l=r.slice();return l[22]=e[t],l}function Je(r,e,t){const l=r.slice();return l[25]=e[t],l[21]=t,l}function Re(r){let e,t,l,a,i,s;l=new Ot({});let n=q(r[2]),c=[];for(let o=0;o0&&Re(r),ge=q(r[9]),H=[];for(let v=0;vR(H[v],1,1,()=>{H[v]=null});let J=r[3].length>0&&Ze(r),me=q(r[6]),F=[];for(let v=0;vR(N[v],1,1,()=>{N[v]=null});return L=new Dt({}),{c(){e=k("div"),t=k("div"),K&&K.c(),l=S(),a=k("h3"),i=k("a"),s=Y(r[0]),c=S(),o=k("div"),u=k("div");for(let v=0;v0?K?(K.p(v,B),B&4&&U(K,1)):(K=Re(v),K.c(),U(K,1),K.m(t,l)):K&&(be(),R(K,1,1,()=>{K=null}),pe()),(!ae||B&1)&&x(s,v[0]),(!ae||B&128&&n!==(n="entry/#"+v[7]))&&f(i,"href",n),B&512){ge=q(v[9]);let m;for(m=0;m0?J?(J.p(v,B),B&8&&U(J,1)):(J=Ze(v),J.c(),U(J,1),J.m(o,null)):J&&(be(),R(J,1,1,()=>{J=null}),pe()),(!ae||B&2)&&x(E,v[1]),B&64){me=q(v[6]);let m;for(m=0;m{"title"in _&&t(0,s=_.title),"description"in _&&t(1,n=_.description),"periods"in _&&t(10,c=_.periods),"places"in _&&t(2,o=_.places),"languages"in _&&t(3,u=_.languages),"websiteLinks"in _&&t(4,b=_.websiteLinks),"url"in _&&t(11,I=_.url),"lastEdited"in _&&t(5,y=_.lastEdited),"keywords"in _&&t(6,E=_.keywords),"uuid"in _&&t(7,V=_.uuid)},r.$$.update=()=>{r.$$.dirty&1024&&t(9,l=c.filter(_=>_.from)),r.$$.dirty&2048&&t(12,a=I.split("/PROJECTS/")[1]),r.$$.dirty&4096&&t(8,i=St+a)},[s,n,o,u,b,y,E,V,i,l,c,I,a]}class Ht extends ie{constructor(e){super(),oe(this,e,At,Pt,se,{title:0,description:1,periods:10,places:2,languages:3,websiteLinks:4,url:11,lastEdited:5,keywords:6,uuid:7})}}const $e={akk:"Akkadian",amh:"Amharic",ara:"Arabic",arc:"Official Aramaic (700-300 BCE)",atz:"Arta",ave:"Avestan",bam:"Bambara",ben:"Bengali",bod:"Tibetan",bqi:"Bakhtiari",chg:"Chagatai",cop:"Coptic",dan:"Danish",dar:"Dargwa",deu:"German",efi:"Efik",egy:"Egyptian (Ancient)",elx:"Elamite",eng:"English",erk:"South Efate",fas:"Persian",fra:"French",ful:"Fulah",gez:"Geez",gml:"Middle Low German",got:"Gothic",grc:"Ancient Greek (to 1453)",guj:"Gujarati",hac:"Gurani",hau:"Hausa",heb:"Hebrew",hin:"Hindi",hit:"Hittite",hun:"Hungarian",hye:"Armenian",imy:"Milyan",ind:"Indonesian",ita:"Italian",jav:"Javanese",jpn:"Japanese",jpr:"Judeo-Persian",jrb:"Judeo-Arabic",kac:"Kachin",kan:"Kannada",kas:"Kashmiri",kbl:"Kanembu",kgv:"Karas",khm:"Khmer",kur:"Kurdish",lat:"Latin",lav:"Latvian",lit:"Lithuanian",lzz:"Laz",mal:"Malayalam",mar:"Marathi",mku:"Konyanka Maninka",mlt:"Maltese",mon:"Mongolian",mzn:"Mazanderani",nep:"Nepali (macrolanguage)",nld:"Flemish",nrp:"North Picene",ofs:"Old Frisian",oge:"Old Georgian",orv:"Old Russian",osc:"Oscan",oss:"Ossetic",osx:"Old Saxon",pal:"Pahlavi",pli:"Pali",por:"Portuguese",que:"Quechua",raj:"Rajasthani",rus:"Russian",san:"Sanskrit",snd:"Sindhi",snk:"Soninke",sog:"Sogdian",spa:"Spanish",sqi:"Albanian",sux:"Sumerian",sva:"Svan",swe:"Swedish",syr:"Syriac",tab:"Tabassaran",tam:"Tamil",tdn:"Tondano",tel:"Telugu",tio:"Teop",tir:"Tigrinya",tks:"Takestani",tru:"Turoyo",tuh:"Taulil",tur:"Turkish",udi:"Udi",uga:"Ugaritic",und:"Undetermined",urd:"Urdu",vra:"Vera'a",wlm:"Middle Welsh",xbc:"Bactrian",xbm:"Middle Breton",xcr:"Carian",xeb:"Eblan",xlc:"Lycian",xld:"Lydian",xlp:"Lepontic",xpg:"Phrygian",xpr:"Parthian",xsa:"Sabaean",xum:"Umbrian",xur:"Urartian",yid:"Yiddish",yor:"Yoruba",zho:"Chinese",zum:"Kumzari"};function et(r,e,t){const l=r.slice();return l[21]=e[t],l[23]=t,l}function tt(r,e,t){const l=r.slice();return l[24]=e[t],l}function lt(r,e,t){const l=r.slice();return l[18]=e[t],l}function rt(r){let e,t,l="Clear selection",a,i;return{c(){e=k("p"),t=k("button"),t.textContent=l,this.h()},l(s){e=w(s,"P",{class:!0});var n=p(e);t=w(n,"BUTTON",{class:!0,"data-svelte-h":!0}),ve(t)!=="svelte-1llc9mw"&&(t.textContent=l),n.forEach(h),this.h()},h(){f(t,"class","cursor-pointer font-normal text-red-900 underline"),f(e,"class","-mt-1 mb-3.5")},m(s,n){z(s,e,n),g(e,t),a||(i=le(t,"click",Ve),a=!0)},d(s){s&&h(e),a=!1,i()}}}function Nt(r){let e,t,l,a,i,s=r[4]&&at(r);return{c(){e=k("div"),t=k("input"),l=S(),s&&s.c(),this.h()},l(n){e=w(n,"DIV",{class:!0});var c=p(e);t=w(c,"INPUT",{type:!0,autocorrect:!0,autocapitalize:!0,class:!0}),l=A(c),s&&s.l(c),c.forEach(h),this.h()},h(){f(t,"type","text"),f(t,"autocorrect","off"),f(t,"autocapitalize","none"),f(t,"class","w-56 rounded border border-ctgblue bg-gray-100 px-2 py-1"),f(e,"class","flex gap-2 font-normal")},m(n,c){z(n,e,c),g(e,t),Ae(t,r[4]),g(e,l),s&&s.m(e,null),a||(i=[le(t,"input",r[12]),le(t,"keydown",r[13])],a=!0)},p(n,c){c&16&&t.value!==n[4]&&Ae(t,n[4]),n[4]?s||(s=at(n),s.c(),s.m(e,null)):s&&(s.d(1),s=null)},d(n){n&&h(e),s&&s.d(),a=!1,ft(i)}}}function Ut(r){let e,t=q(Object.keys(r[0])),l=[];for(let a=0;a{t(4,n=d)}),ke.subscribe(d=>{t(2,c=d)}),je.subscribe(d=>{t(3,o=d)});let u;function b(){clearTimeout(u),u=setTimeout(()=>{Ce.set(n);const d=pt(s,n);ht.set(d)},500)}function I(d,L,O,P){if(P==="search")return!1;const Q=Object.values(d).flat(),re=P==="keywords"?Q:L;if(re.length===0)return!1;for(const $ of O)re.includes($)||je.update(de=>(de.delete($),de));return O.size!==0}const y=()=>{ke.set("search"),Ve()},E=()=>{ke.set("keywords"),Ve()},V=()=>{ke.set("languages"),Ve()},_=d=>{Te("languages",d)},D=d=>{Te("keywords",d)};function j(){n=this.value,t(4,n)}const C=()=>{b()},T=()=>{Ce.set("")};return r.$$set=d=>{"keywordsCategorized"in d&&t(0,a=d.keywordsCategorized),"languages"in d&&t(1,i=d.languages)},r.$$.update=()=>{r.$$.dirty&15&&t(5,l=I(a,i,o,c))},[a,i,c,o,n,l,b,y,E,V,_,D,j,C,T]}class Ft extends ie{constructor(e){super(),oe(this,e,qt,Rt,se,{keywordsCategorized:0,languages:1})}}function ct(r,e,t){const l=r.slice();return l[11]=e[t][0],l[12]=e[t][1],l}function ut(r){let e,t;return e=new Ht({props:{title:r[12].project.title,description:r[12].project.project_desc,periods:r[12].project.date,places:He(r[12].project.places),languages:r[12].project.lang,websiteLinks:r[12].project.websites,url:r[11],lastEdited:r[12].record_metadata.last_edited_on||r[12].record_metadata.record_created_on,keywords:r[12].project.keywords,uuid:r[12].record_metadata.uuid}}),{c(){ce(e.$$.fragment)},l(l){ue(e.$$.fragment,l)},m(l,a){fe(e,l,a),t=!0},p(l,a){const i={};a&1&&(i.title=l[12].project.title),a&1&&(i.description=l[12].project.project_desc),a&1&&(i.periods=l[12].project.date),a&1&&(i.places=He(l[12].project.places)),a&1&&(i.languages=l[12].project.lang),a&1&&(i.websiteLinks=l[12].project.websites),a&1&&(i.url=l[11]),a&1&&(i.lastEdited=l[12].record_metadata.last_edited_on||l[12].record_metadata.record_created_on),a&1&&(i.keywords=l[12].project.keywords),a&1&&(i.uuid=l[12].record_metadata.uuid),e.$set(i)},i(l){t||(U(e.$$.fragment,l),t=!0)},o(l){R(e.$$.fragment,l),t=!1},d(l){he(e,l)}}}function Yt(r){let e,t,l,a,i,s,n,c=r[0].length+"",o,u,b=r[0].length===1?"item":"items",I,y,E,V,_,D;a=new Ft({props:{keywordsCategorized:r[2],languages:r[1]}});let j=q(r[0]),C=[];for(let d=0;dR(C[d],1,1,()=>{C[d]=null});return{c(){e=k("meta"),t=S(),l=k("div"),ce(a.$$.fragment),i=S(),s=k("p"),n=k("code"),o=Y(c),u=S(),I=Y(b),y=S(),E=k("div");for(let d=0;d{t(3,o=E)});let u;ht.subscribe(E=>{u=E});let b;ke.subscribe(E=>{t(4,b=E)});let I;je.subscribe(E=>{t(5,I=E)});function y(E,V,_,D){if(_==="search")return V?u:E;if(D.size===0)return E;const j=_==="keywords"?s:c;let C=[],T=!0;for(const d of D){if(!j[d])return Te(_,d),E;const L=j[d];if(T){C=L,T=!1;continue}C=C.filter(O=>L.includes(O))}return E.filter(([d])=>C.includes(d))}return bt(dt),r.$$.update=()=>{r.$$.dirty&56&&t(0,a=y(i,o,b,I))},t(1,l=Object.keys(c).sort()),[a,l,n,o,b,I]}class tl extends ie{constructor(e){super(),oe(this,e,Zt,Yt,se,{})}}export{tl as component}; +import{s as se,n as G,r as ft}from"../chunks/scheduler.kPUuJgHu.js";import{S as ie,i as oe,G as W,H as X,a as p,d as h,m as f,g as z,h as g,e as k,s as S,t as Y,y as ce,c as w,f as A,b as Z,z as ue,A as fe,u as U,w as be,q as R,r as pe,j as x,n as ne,B as he,l as ve,C as M,p as le,D as Ae,o as ye,k as vt}from"../chunks/index.CYrHsBOq.js";import{e as q}from"../chunks/each.D6YF6ztN.js";import{a as bt}from"../chunks/entry.Cnm33kj4.js";import{s as Ce,a as ke,b as je,r as Ve,c as pt,d as ht,u as Te,g as kt,e as wt,h as Et,f as He,i as dt}from"../chunks/utils.kS56dN66.js";import{e as gt}from"../chunks/ENTRIES.B7c5x1cf.js";function Ct(r){let e,t;return{c(){e=W("svg"),t=W("path"),this.h()},l(l){e=X(l,"svg",{xmlns:!0,viewBox:!0,fill:!0});var a=p(e);t=X(a,"path",{"fill-rule":!0,d:!0,"clip-rule":!0}),p(t).forEach(h),a.forEach(h),this.h()},h(){f(t,"fill-rule","evenodd"),f(t,"d","M12.293 5.293a1 1 0 0 1 1.414 0l4 4a1 1 0 0 1 0 1.414l-4 4a1 1 0 0 1-1.414-1.414L14.586 11H3a1 1 0 1 1 0-2h11.586l-2.293-2.293a1 1 0 0 1 0-1.414z"),f(t,"clip-rule","evenodd"),f(e,"xmlns","http://www.w3.org/2000/svg"),f(e,"viewBox","0 0 20 20"),f(e,"fill","currentColor")},m(l,a){z(l,e,a),g(e,t)},p:G,i:G,o:G,d(l){l&&h(e)}}}class Vt extends ie{constructor(e){super(),oe(this,e,null,Ct,se,{})}}function yt(r){let e,t;return{c(){e=W("svg"),t=W("path"),this.h()},l(l){e=X(l,"svg",{viewBox:!0,xmlns:!0,fill:!0});var a=p(e);t=X(a,"path",{d:!0}),p(t).forEach(h),a.forEach(h),this.h()},h(){f(t,"d","M6 6a2 2 0 0 1 2-2 1 1 0 0 0 0-2 4 4 0 0 0-4 4v3a2 2 0 0 1-2 2 1 1 0 0 0 0 2 2 2 0 0 1 2 2v3a4 4 0 0 0 4 4 1 1 0 0 0 0-2 2 2 0 0 1-2-2v-3a4 4 0 0 0-1.38-3A4 4 0 0 0 6 9Zm16 5a2 2 0 0 1-2-2V6a4 4 0 0 0-4-4 1 1 0 0 0 0 2 2 2 0 0 1 2 2v3a4 4 0 0 0 1.38 3A4 4 0 0 0 18 15v3a2 2 0 0 1-2 2 1 1 0 0 0 0 2 4 4 0 0 0 4-4v-3a2 2 0 0 1 2-2 1 1 0 0 0 0-2Z"),f(e,"viewBox","0 0 24 24"),f(e,"xmlns","http://www.w3.org/2000/svg"),f(e,"fill","currentColor")},m(l,a){z(l,e,a),g(e,t)},p:G,i:G,o:G,d(l){l&&h(e)}}}class Dt extends ie{constructor(e){super(),oe(this,e,null,yt,se,{})}}function jt(r){let e,t;return{c(){e=W("svg"),t=W("path"),this.h()},l(l){e=X(l,"svg",{xmlns:!0,fill:!0,viewBox:!0,stroke:!0});var a=p(e);t=X(a,"path",{"stroke-linecap":!0,"stroke-linejoin":!0,d:!0}),p(t).forEach(h),a.forEach(h),this.h()},h(){f(t,"stroke-linecap","round"),f(t,"stroke-linejoin","round"),f(t,"d","M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2z"),f(e,"xmlns","http://www.w3.org/2000/svg"),f(e,"fill","none"),f(e,"viewBox","0 0 24 24"),f(e,"stroke","currentColor")},m(l,a){z(l,e,a),g(e,t)},p:G,i:G,o:G,d(l){l&&h(e)}}}class Tt extends ie{constructor(e){super(),oe(this,e,null,jt,se,{})}}function It(r){let e,t;return{c(){e=W("svg"),t=W("path"),this.h()},l(l){e=X(l,"svg",{xmlns:!0,fill:!0,viewBox:!0,stroke:!0});var a=p(e);t=X(a,"path",{"stroke-linecap":!0,"stroke-linejoin":!0,d:!0}),p(t).forEach(h),a.forEach(h),this.h()},h(){f(t,"stroke-linecap","round"),f(t,"stroke-linejoin","round"),f(t,"d","M3 5h12M9 3v2m1.048 9.5A18.022 18.022 0 0 1 6.412 9m6.088 9h7M11 21l5-10 5 10M12.751 5C11.783 10.77 8.07 15.61 3 18.129"),f(e,"xmlns","http://www.w3.org/2000/svg"),f(e,"fill","none"),f(e,"viewBox","0 0 24 24"),f(e,"stroke","currentColor")},m(l,a){z(l,e,a),g(e,t)},p:G,i:G,o:G,d(l){l&&h(e)}}}class Lt extends ie{constructor(e){super(),oe(this,e,null,It,se,{})}}function Bt(r){let e,t,l;return{c(){e=W("svg"),t=W("path"),l=W("path"),this.h()},l(a){e=X(a,"svg",{xmlns:!0,viewBox:!0,fill:!0});var i=p(e);t=X(i,"path",{d:!0}),p(t).forEach(h),l=X(i,"path",{d:!0}),p(l).forEach(h),i.forEach(h),this.h()},h(){f(t,"d","M11 3a1 1 0 1 0 0 2h2.586l-6.293 6.293a1 1 0 1 0 1.414 1.414L15 6.414V9a1 1 0 1 0 2 0V4a1 1 0 0 0-1-1h-5z"),f(l,"d","M5 5a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2v-3a1 1 0 1 0-2 0v3H5V7h3a1 1 0 0 0 0-2H5z"),f(e,"xmlns","http://www.w3.org/2000/svg"),f(e,"viewBox","0 0 20 20"),f(e,"fill","currentColor")},m(a,i){z(a,e,i),g(e,t),g(e,l)},p:G,i:G,o:G,d(a){a&&h(e)}}}class Mt extends ie{constructor(e){super(),oe(this,e,null,Bt,se,{})}}function zt(r){let e,t;return{c(){e=W("svg"),t=W("path"),this.h()},l(l){e=X(l,"svg",{xmlns:!0,viewBox:!0,fill:!0});var a=p(e);t=X(a,"path",{"fill-rule":!0,d:!0,"clip-rule":!0}),p(t).forEach(h),a.forEach(h),this.h()},h(){f(t,"fill-rule","evenodd"),f(t,"d","M5.05 4.05a7 7 0 1 1 9.9 9.9L10 18.9l-4.95-4.95a7 7 0 0 1 0-9.9zM10 11a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"),f(t,"clip-rule","evenodd"),f(e,"xmlns","http://www.w3.org/2000/svg"),f(e,"viewBox","0 0 20 20"),f(e,"fill","currentColor")},m(l,a){z(l,e,a),g(e,t)},p:G,i:G,o:G,d(l){l&&h(e)}}}class Ot extends ie{constructor(e){super(),oe(this,e,null,zt,se,{})}}function Ne(r,e,t){const l=r.slice();return l[13]=e[t],l}function Ue(r,e,t){const l=r.slice();return l[16]=e[t],l}function Ge(r,e,t){const l=r.slice();return l[19]=e[t],l[21]=t,l}function Ke(r,e,t){const l=r.slice();return l[22]=e[t],l}function Je(r,e,t){const l=r.slice();return l[25]=e[t],l[21]=t,l}function Re(r){let e,t,l,a,i,s;l=new Ot({});let n=q(r[2]),c=[];for(let o=0;o0&&Re(r),ge=q(r[9]),H=[];for(let v=0;vR(H[v],1,1,()=>{H[v]=null});let J=r[3].length>0&&Ze(r),me=q(r[6]),F=[];for(let v=0;vR(N[v],1,1,()=>{N[v]=null});return L=new Dt({}),{c(){e=k("div"),t=k("div"),K&&K.c(),l=S(),a=k("h3"),i=k("a"),s=Y(r[0]),c=S(),o=k("div"),u=k("div");for(let v=0;v0?K?(K.p(v,B),B&4&&U(K,1)):(K=Re(v),K.c(),U(K,1),K.m(t,l)):K&&(be(),R(K,1,1,()=>{K=null}),pe()),(!ae||B&1)&&x(s,v[0]),(!ae||B&128&&n!==(n="entry/#"+v[7]))&&f(i,"href",n),B&512){ge=q(v[9]);let m;for(m=0;m0?J?(J.p(v,B),B&8&&U(J,1)):(J=Ze(v),J.c(),U(J,1),J.m(o,null)):J&&(be(),R(J,1,1,()=>{J=null}),pe()),(!ae||B&2)&&x(E,v[1]),B&64){me=q(v[6]);let m;for(m=0;m{"title"in _&&t(0,s=_.title),"description"in _&&t(1,n=_.description),"periods"in _&&t(10,c=_.periods),"places"in _&&t(2,o=_.places),"languages"in _&&t(3,u=_.languages),"websiteLinks"in _&&t(4,b=_.websiteLinks),"url"in _&&t(11,I=_.url),"lastEdited"in _&&t(5,y=_.lastEdited),"keywords"in _&&t(6,E=_.keywords),"uuid"in _&&t(7,V=_.uuid)},r.$$.update=()=>{r.$$.dirty&1024&&t(9,l=c.filter(_=>_.from)),r.$$.dirty&2048&&t(12,a=I.split("/PROJECTS/")[1]),r.$$.dirty&4096&&t(8,i=St+a)},[s,n,o,u,b,y,E,V,i,l,c,I,a]}class Ht extends ie{constructor(e){super(),oe(this,e,At,Pt,se,{title:0,description:1,periods:10,places:2,languages:3,websiteLinks:4,url:11,lastEdited:5,keywords:6,uuid:7})}}const $e={akk:"Akkadian",amh:"Amharic",ara:"Arabic",arc:"Official Aramaic (700-300 BCE)",atz:"Arta",ave:"Avestan",bam:"Bambara",ben:"Bengali",bod:"Tibetan",bqi:"Bakhtiari",chg:"Chagatai",cop:"Coptic",dan:"Danish",dar:"Dargwa",deu:"German",efi:"Efik",egy:"Egyptian (Ancient)",elx:"Elamite",eng:"English",erk:"South Efate",fas:"Persian",fra:"French",ful:"Fulah",gez:"Geez",gml:"Middle Low German",got:"Gothic",grc:"Ancient Greek (to 1453)",guj:"Gujarati",hac:"Gurani",hau:"Hausa",heb:"Hebrew",hin:"Hindi",hit:"Hittite",hun:"Hungarian",hye:"Armenian",imy:"Milyan",ind:"Indonesian",ita:"Italian",jav:"Javanese",jpn:"Japanese",jpr:"Judeo-Persian",jrb:"Judeo-Arabic",kac:"Kachin",kan:"Kannada",kas:"Kashmiri",kbl:"Kanembu",kgv:"Karas",khm:"Khmer",kur:"Kurdish",lat:"Latin",lav:"Latvian",lit:"Lithuanian",lzz:"Laz",mal:"Malayalam",mar:"Marathi",mku:"Konyanka Maninka",mlt:"Maltese",mon:"Mongolian",mzn:"Mazanderani",nep:"Nepali (macrolanguage)",nld:"Flemish",nrp:"North Picene",ofs:"Old Frisian",oge:"Old Georgian",orv:"Old Russian",osc:"Oscan",oss:"Ossetic",osx:"Old Saxon",pal:"Pahlavi",pli:"Pali",por:"Portuguese",que:"Quechua",raj:"Rajasthani",rus:"Russian",san:"Sanskrit",snd:"Sindhi",snk:"Soninke",sog:"Sogdian",spa:"Spanish",sqi:"Albanian",sux:"Sumerian",sva:"Svan",swe:"Swedish",syr:"Syriac",tab:"Tabassaran",tam:"Tamil",tdn:"Tondano",tel:"Telugu",tio:"Teop",tir:"Tigrinya",tks:"Takestani",tru:"Turoyo",tuh:"Taulil",tur:"Turkish",udi:"Udi",uga:"Ugaritic",und:"Undetermined",urd:"Urdu",vra:"Vera'a",wlm:"Middle Welsh",xbc:"Bactrian",xbm:"Middle Breton",xcr:"Carian",xeb:"Eblan",xlc:"Lycian",xld:"Lydian",xlp:"Lepontic",xpg:"Phrygian",xpr:"Parthian",xsa:"Sabaean",xum:"Umbrian",xur:"Urartian",yid:"Yiddish",yor:"Yoruba",zho:"Chinese",zum:"Kumzari"};function et(r,e,t){const l=r.slice();return l[21]=e[t],l[23]=t,l}function tt(r,e,t){const l=r.slice();return l[24]=e[t],l}function lt(r,e,t){const l=r.slice();return l[18]=e[t],l}function rt(r){let e,t,l="Clear selection",a,i;return{c(){e=k("p"),t=k("button"),t.textContent=l,this.h()},l(s){e=w(s,"P",{class:!0});var n=p(e);t=w(n,"BUTTON",{class:!0,"data-svelte-h":!0}),ve(t)!=="svelte-1llc9mw"&&(t.textContent=l),n.forEach(h),this.h()},h(){f(t,"class","cursor-pointer font-normal text-red-900 underline"),f(e,"class","-mt-1 mb-3.5")},m(s,n){z(s,e,n),g(e,t),a||(i=le(t,"click",Ve),a=!0)},d(s){s&&h(e),a=!1,i()}}}function Nt(r){let e,t,l,a,i,s=r[4]&&at(r);return{c(){e=k("div"),t=k("input"),l=S(),s&&s.c(),this.h()},l(n){e=w(n,"DIV",{class:!0});var c=p(e);t=w(c,"INPUT",{type:!0,autocorrect:!0,autocapitalize:!0,class:!0}),l=A(c),s&&s.l(c),c.forEach(h),this.h()},h(){f(t,"type","text"),f(t,"autocorrect","off"),f(t,"autocapitalize","none"),f(t,"class","w-56 rounded border border-ctgblue bg-gray-100 px-2 py-1"),f(e,"class","flex gap-2 font-normal")},m(n,c){z(n,e,c),g(e,t),Ae(t,r[4]),g(e,l),s&&s.m(e,null),a||(i=[le(t,"input",r[12]),le(t,"keydown",r[13])],a=!0)},p(n,c){c&16&&t.value!==n[4]&&Ae(t,n[4]),n[4]?s||(s=at(n),s.c(),s.m(e,null)):s&&(s.d(1),s=null)},d(n){n&&h(e),s&&s.d(),a=!1,ft(i)}}}function Ut(r){let e,t=q(Object.keys(r[0])),l=[];for(let a=0;a{t(4,n=d)}),ke.subscribe(d=>{t(2,c=d)}),je.subscribe(d=>{t(3,o=d)});let u;function b(){clearTimeout(u),u=setTimeout(()=>{Ce.set(n);const d=pt(s,n);ht.set(d)},500)}function I(d,L,O,P){if(P==="search")return!1;const Q=Object.values(d).flat(),re=P==="keywords"?Q:L;if(re.length===0)return!1;for(const $ of O)re.includes($)||je.update(de=>(de.delete($),de));return O.size!==0}const y=()=>{ke.set("search"),Ve()},E=()=>{ke.set("keywords"),Ve()},V=()=>{ke.set("languages"),Ve()},_=d=>{Te("languages",d)},D=d=>{Te("keywords",d)};function j(){n=this.value,t(4,n)}const C=()=>{b()},T=()=>{Ce.set("")};return r.$$set=d=>{"keywordsCategorized"in d&&t(0,a=d.keywordsCategorized),"languages"in d&&t(1,i=d.languages)},r.$$.update=()=>{r.$$.dirty&15&&t(5,l=I(a,i,o,c))},[a,i,c,o,n,l,b,y,E,V,_,D,j,C,T]}class Ft extends ie{constructor(e){super(),oe(this,e,qt,Rt,se,{keywordsCategorized:0,languages:1})}}function ct(r,e,t){const l=r.slice();return l[11]=e[t][0],l[12]=e[t][1],l}function ut(r){let e,t;return e=new Ht({props:{title:r[12].project.title,description:r[12].project.project_desc,periods:r[12].project.date,places:He(r[12].project.places),languages:r[12].project.lang,websiteLinks:r[12].project.websites,url:r[11],lastEdited:r[12].record_metadata.last_edited_on||r[12].record_metadata.record_created_on,keywords:r[12].project.keywords,uuid:r[12].record_metadata.uuid}}),{c(){ce(e.$$.fragment)},l(l){ue(e.$$.fragment,l)},m(l,a){fe(e,l,a),t=!0},p(l,a){const i={};a&1&&(i.title=l[12].project.title),a&1&&(i.description=l[12].project.project_desc),a&1&&(i.periods=l[12].project.date),a&1&&(i.places=He(l[12].project.places)),a&1&&(i.languages=l[12].project.lang),a&1&&(i.websiteLinks=l[12].project.websites),a&1&&(i.url=l[11]),a&1&&(i.lastEdited=l[12].record_metadata.last_edited_on||l[12].record_metadata.record_created_on),a&1&&(i.keywords=l[12].project.keywords),a&1&&(i.uuid=l[12].record_metadata.uuid),e.$set(i)},i(l){t||(U(e.$$.fragment,l),t=!0)},o(l){R(e.$$.fragment,l),t=!1},d(l){he(e,l)}}}function Yt(r){let e,t,l,a,i,s,n,c=r[0].length+"",o,u,b=r[0].length===1?"item":"items",I,y,E,V,_,D;a=new Ft({props:{keywordsCategorized:r[2],languages:r[1]}});let j=q(r[0]),C=[];for(let d=0;dR(C[d],1,1,()=>{C[d]=null});return{c(){e=k("meta"),t=S(),l=k("div"),ce(a.$$.fragment),i=S(),s=k("p"),n=k("code"),o=Y(c),u=S(),I=Y(b),y=S(),E=k("div");for(let d=0;d{t(3,o=E)});let u;ht.subscribe(E=>{u=E});let b;ke.subscribe(E=>{t(4,b=E)});let I;je.subscribe(E=>{t(5,I=E)});function y(E,V,_,D){if(_==="search")return V?u:E;if(D.size===0)return E;const j=_==="keywords"?s:c;let C=[],T=!0;for(const d of D){if(!j[d])return Te(_,d),E;const L=j[d];if(T){C=L,T=!1;continue}C=C.filter(O=>L.includes(O))}return E.filter(([d])=>C.includes(d))}return bt(dt),r.$$.update=()=>{r.$$.dirty&56&&t(0,a=y(i,o,b,I))},t(1,l=Object.keys(c).sort()),[a,l,n,o,b,I]}class tl extends ie{constructor(e){super(),oe(this,e,Zt,Yt,se,{})}}export{tl as component}; diff --git a/_app/immutable/nodes/5.D6My8LMJ.js b/_app/immutable/nodes/5.lKEo7j0f.js similarity index 64% rename from _app/immutable/nodes/5.D6My8LMJ.js rename to _app/immutable/nodes/5.lKEo7j0f.js index 2effbb672..5c1f9156c 100644 --- a/_app/immutable/nodes/5.D6My8LMJ.js +++ b/_app/immutable/nodes/5.lKEo7j0f.js @@ -1,4 +1,4 @@ -import{s as ta,n as ot,o as aa}from"../chunks/scheduler.kPUuJgHu.js";import{S as ia,i as la,s as g,e as p,k as na,d as n,f as S,c as _,a as E,m as h,g as d,h as u,p as ra,t as R,b as O,l as q,j as A,n as X,o as Ht}from"../chunks/index.CYrHsBOq.js";import{g as ca}from"../chunks/globals.D0QH3NT1.js";import{e as L}from"../chunks/each.D6YF6ztN.js";import{e as sa}from"../chunks/ENTRIES.DrMUelaC.js";const oa={"5e7ab61a-0c33-44fc-8175-a1930e6d08bc":{title:"Automatic Collation for Diversifying Corpora",path:"/PROJECTS/acdc/"},"b333a11d-b9fc-4379-9e21-fbddfa9500b1":{title:"Audition Certificates Platform",path:"/PROJECTS/acp/"},"173631fa-ddc3-4762-bfd9-5bf40ccef41a":{title:"Ada Lovelace Center for Digital Humanities",path:"/PROJECTS/ada_center/"},"eaf36ccc-5ee4-4749-80ea-7f71f479c968":{title:"Afrikanische Stimmen in islamischen Manuskripten aus Mali: Erschließung und Erforschung afrikanischer Sprachen in arabischer Schrift (Ajami)",path:"/PROJECTS/afrikanische_stimmen_in_islamischen_manuskripten/"},"46aff246-b6ef-4632-90c2-0993a9f9b1f5":{title:"Arabic Literature Cosmopolitan",path:"/PROJECTS/alc/"},"5416d598-83e8-4b34-b4d8-6beea3faf6f2":{title:"Atlas of the Languages of Iran",path:"/PROJECTS/ali/"},"a4d189e4-f03f-4db0-8742-b777e22da760":{title:"Altägyptisches Wörterbuch",path:"/PROJECTS/altaegyptisches_woerterbuch/"},"8682a8f5-b601-4a6c-808c-aa4b7ce8a7c4":{title:"al-Ṯurayyā Project",path:"/PROJECTS/al_turayya_project/"},"d1e6d69b-5e9a-4b4a-85ad-09aac56ed2d9":{title:"Kalila and Dimna – AnonymClassic",path:"/PROJECTS/anonym_classic/"},"e3fec817-a269-4359-b028-a542387b1cce":{title:"APSearch",path:"/PROJECTS/apsearch/"},"e52825b6-9bd6-4206-b99c-964521b5e773":{title:"Arabic and Latin Corpus",path:"/PROJECTS/arabic_latin_corpus/"},"6a7e308d-0588-40b5-9a22-09354d313806":{title:"Arabic and Latin Glossary",path:"/PROJECTS/arabic_latin_glossary/"},"e9bf3427-1c16-4bec-9d2d-22836ae7a4b9":{title:"Arabic Papyrology Database",path:"/PROJECTS/arabic_papyrology_database/"},"4a8c71d9-bdf0-4df1-9980-b13fb5b1af3b":{title:"Arbeitsstelle Kleine Fächer",path:"/PROJECTS/arbeitsstelle_kleine_faecher/"},"a0e93701-b975-4760-b3cc-0204f54be3d1":{title:"ARCHE",path:"/PROJECTS/arche/"},"ce6e74fb-c872-4ab4-a6f2-908232d0099a":{title:"ARCHES",path:"/PROJECTS/arches/"},"3992a23d-8426-4b73-8b30-844e471e76e2":{title:"Study of Averroes’s Long Commentary on the Physics in Hebrew and Latin Transmission",path:"/PROJECTS/averroes_commentary_on_the_physics_in_hebrew_and_latin_transmission/"},"7c7438e6-4172-4059-ad60-54a6d0d61f7c":{title:"Critical Edition of the Fragmentary Latin Translation of Averroes’s Commentary on De Partibus Animalium and De Generatione Animalium",path:"/PROJECTS/averroes_de_partibus_animalium_and_de_generatione_animalium/"},"a6e1fb68-e7a5-4125-8cfc-ec3aa16da73b":{title:"Averroes Edition",path:"/PROJECTS/averroes_edition/"},"c3e206ec-9989-4500-ac20-4126e35871f2":{title:"Critical Edition of Ibn Bāğğa’s Commentary on Aristotle’s De generatione et corruptione",path:"/PROJECTS/averroes_ibn_baggas_de_generatione_et_corruptione/"},"f24e806a-0777-4690-b148-1b35ab3745e2":{title:"Critical Edition of Ibn Bāǧǧa’s Commentary on Aristotle’s Physics",path:"/PROJECTS/averroes_ibn_baggas_physics/"},"0a2ff403-834b-484f-b961-0822220bab58":{title:"Avestan Digital Archive",path:"/PROJECTS/avestan_digital_archive/"},"71ff37e4-7e16-4c1f-b0a9-9bf47778d41f":{title:"A Digital Synopsis of the Mishnah and Tosefta",path:"/PROJECTS/a_digital_synopsis_of_the_mishnah_and_tosefta/"},"72bf1192-8af5-4df0-bd88-cf4d62d13d66":{title:"A Digital Typology of Arabic Documents",path:"/PROJECTS/a_digital_typology_of_arabic_documents/"},"942e9692-8e2a-4060-84d8-c8db17eae689":{title:"BABMED - Babylonische Medizin",path:"/PROJECTS/babmed/"},"2ec36f1f-9f08-4284-964b-2f40a1d3e0db":{title:"Barlaam and Josaphat in Arabic Literature and Culture",path:"/PROJECTS/barlaam_and_josaphat/"},"169677fd-14f9-46e7-b8f1-2202fb91397c":{title:"Beta maṣāḥǝft Manuscripts of Ethiopia and Eritrea",path:"/PROJECTS/beta_masaheft_manuscripts_of_ethiopia_and_eritrea/"},"c523675a-0e54-4d1e-8d08-2395d58323e3":{title:"Biblia Arabica: The Bible in Arabic among Jews, Christians and Muslims",path:"/PROJECTS/biblia_arabica/"},"ab7e5659-177f-40ed-befb-5d0eecea737f":{title:"Bibliotheca Arabica",path:"/PROJECTS/bibliotheca_arabica/"},"eb8e91fe-952e-48b7-af0d-c026ebe37826":{title:"Methoden der Bildverarbeitung zur Bestimmung von visuellen Manuskript- und Zeichenmerkmalen",path:"/PROJECTS/bildverarbeitung_bestimmung_von_visuellen_manuskript_und_zeichenmerkmalen/"},"614f4c99-0d96-48a9-baa5-48a402a8deec":{title:"Bamberg Lexical Database for Contemporary Iranian Languages",path:"/PROJECTS/bldcil/"},"b485ffeb-bcbc-42a0-b141-4450ddc914e6":{title:"Borno and Old Kanembu Islamic Manuscripts",path:"/PROJECTS/borno_and_old_kanembu_islamic_manuscripts/"},"4c68f56a-2c44-41c0-acb9-ece91afaf70c":{title:"Corpus Avesticum Berolinense",path:"/PROJECTS/cab/"},"5d194da4-2d99-4793-9757-59a197059b9b":{title:"Corpus der arabischen und syrischen Gnomologien",path:"/PROJECTS/casg/"},"b8097890-6eeb-43ba-890d-28e1490fde08":{title:"Cuneiform Digital Library Initiative",path:"/PROJECTS/cdli/"},"f87c6596-0ce3-4f2e-8ec5-ea5d17253bba":{title:"Change Projekt - Wandel@FU-Bib",path:"/PROJECTS/change_projekt/"},"842dc7b3-020c-47ea-a37e-d5e5aae0bde0":{title:"CLARIAH-DE",path:"/PROJECTS/clariah_de/"},"7e14a810-7d07-4e60-96eb-01fccf9323e8":{title:"CLARIN - European Research Infrastructure for Language Resources and Technology",path:"/PROJECTS/clarin/"},"b5604b8b-e9fa-43d3-af0d-ef287cc2fee7":{title:"CLARIN-D - European Research Infrastructure for Language Resources and Technology",path:"/PROJECTS/clarin_d/"},"2253d7f2-c150-44e2-9a8a-c7c5ba0ab661":{title:"Textdatenbank und Wörterbuch des Klassischen Maya",path:"/PROJECTS/classicmayan/"},"894f2c88-1713-480d-99cd-32d30f3c0ac2":{title:"Computational Literary Studies Infrastructure (CLS INFRA)",path:"/PROJECTS/cls_infra/"},"c4f41a6d-9fb9-4c31-85f0-b66acfe41289":{title:"Corpus dei Manoscritti Copti Letterari",path:"/PROJECTS/cmcl/"},"95a2024b-9fea-4ced-8136-1130b0fb8f51":{title:"Colophons in Sumerian and Akkadian Literary Manuscripts from 3rd and 2nd Millennium BCE Mesopotamia",path:"/PROJECTS/colophons_in_sumerian_and_akkadian/"},"9fbb8b57-bd55-4b84-ab51-2c8a0d7ec5bc":{title:"Copitc OCR",path:"/PROJECTS/coptic_ocr/"},"5f57a071-60c1-4fd2-b191-8fa8d15d70bb":{title:"Coranica",path:"/PROJECTS/coranica/"},"eb1591d7-75b9-4d62-9f67-0679e627587b":{title:"CorpusBuilder",path:"/PROJECTS/corpus_builder/"},"0fd7b9cd-fdae-441b-a6fd-a791d4583ce0":{title:"Corpus Coranicum",path:"/PROJECTS/corpus_coranicum/"},"1c38b421-95a2-4b2b-becf-119f36721a07":{title:"Corpus Masoreticum",path:"/PROJECTS/corpus_masoreticum/"},"5838a872-ff79-4e68-afff-edd784b0952e":{title:"Corpus Musicae Ottomanicae",path:"/PROJECTS/corpus_musicae_ottomanicae/"},"1ae31b2f-5c67-49a7-9fba-c162b314bbcb":{title:"Digital Research Infrastructure for the Arts and Humanities (DARIAH)",path:"/PROJECTS/dariah/"},"ea8a1aa5-a2a1-4d4a-9254-f647158c66fa":{title:"Digital Research Infrastructure for the Arts and Humanities (DARIAH-DE)",path:"/PROJECTS/dariah_de/"},"894dcf0c-7295-4fb8-b4ba-866a5ebe3310":{title:"Datenrepositorium Manuskriptkulturen",path:"/PROJECTS/datenrepositorium_manuskriptkulturen/"},"46121edb-516b-4dbf-ba49-e2c5f07cec2e":{title:"Demarginalizing Medieval Africa: Images, Texts, and Identity in Early Solomonic Ethiopia",path:"/PROJECTS/demarginalizing_medieval_africa/"},"9ed78f16-e6fa-4156-a03d-f6581b7b7367":{title:"Der Bibeltext der Handschriften mit babylonisch-jemenitischer Punktation: Erfassung der Textvarianten",path:"/PROJECTS/der_bibeltext_der_handschriften/"},"5c1c0e5b-cb6c-4d8e-9d1e-55e622a3ca40":{title:"Dhimmis and Muslims - Analysing Multi-Religious Spaces in the Medieval Muslim World",path:"/PROJECTS/dhimmis_and_muslims/"},"0a75cf74-9cbe-4ce2-9799-ee16dcc1e88e":{title:"Pilotprojekt zur datenbankgestützten Erschließung und digitalen Bereitstellung der neu erworbenen arabischen, persischen und türkischen Handschriften der Universitätsbibliothek Leipzig",path:"/PROJECTS/digitalisierung_der_handschriften_ubl_1/"},"cad00fa7-09a1-4df1-a08b-4ab5b2a48703":{title:"Project for the digitisation and online presentation of Arabic, Persian, and Turkish manuscripts at Leipzig University Library",path:"/PROJECTS/digitalisierung_der_handschriften_ubl_2/"},"df700e7b-1fad-4e54-b534-f63cf5805925":{title:"Digital Corpus for Greco-Arabic Studies",path:"/PROJECTS/digital_corpus_for_greco_arabic_studies/"},"1b19963e-ffc5-48f0-a1b3-81553d601497":{title:"Digitale Gesamtedition und Übersetzung des koptisch-sahidischen Alten Testaments",path:"/PROJECTS/digital_edition_of_the_coptic_old_testament/"},"5209d91c-6fe3-4349-9a58-c5fde8c62ebf":{title:"Digital Sirah Project",path:"/PROJECTS/digital_sirah_project/"},"a8ee7d05-56b3-4312-8e1a-a07a46fdc809":{title:"Documentation of Endangered Languages / Dokumentation Bedrohter Sprachen",path:"/PROJECTS/dobes/"},"17fa004d-c9d2-4ce3-8116-b7bfff5d14ed":{title:"Documentation of Gorani, an endangered language of West Iran",path:"/PROJECTS/documentation_of_gorani/"},"6f32aa08-b11d-48f4-8a9d-8f76738dc62e":{title:"Doha Historical Dictionary (معجم الدوحة التأريخي للغة العربية)",path:"/PROJECTS/doha_historical_dictionary/"},"43faf354-6069-4d15-9e04-bcb5813bc67a":{title:"Localizing 4000 Years of Cultural History. Texts and Scripts from Elephantine Island in Egypt",path:"/PROJECTS/elephantine/"},"43f49ea7-ec28-4e08-9ff4-57de8c755acd":{title:"European Lexicographic Infrastructure",path:"/PROJECTS/elexis/"},"fbf007e0-7eee-4bb1-801d-568785d43d04":{title:"Ethio-SPaRe: Cultural Heritage of Christian Ethiopia. Salvation, Preservation, Research",path:"/PROJECTS/ethio_spare/"},"659c0aba-3bdd-43eb-937d-dad4ad63e3fc":{title:"The Evolution of Islamic Societies (c. 600–1600 CE): Algorithmic Analysis into Social History",path:"/PROJECTS/evolution_of_islamic_societies/"},"31ad93ff-ca97-4cf0-b30c-60685624e2c8":{title:"eScriptorium",path:"/PROJECTS/e_scriptorium/"},"2fd5c31a-17a5-41ea-ae62-b6c2d3921cf5":{title:"FDNext",path:"/PROJECTS/fdnext/"},"9734b5c3-fa35-4e45-878e-1deb62db97d5":{title:"Union Catalogue of Manuscripts from the Islamicate World",path:"/PROJECTS/fihrist/"},"94044a63-eae5-4e1d-ba04-64874109fc36":{title:"Genesis Rabbah Loanwords",path:"/PROJECTS/genesis_rabbah_loanwords/"},"ee6404e6-57f0-4e11-bb4a-1bbd13b08cb7":{title:"Glossarion",path:"/PROJECTS/glossarion/"},"7a287a76-c663-413d-9e3e-3191b1d6093e":{title:"Glossarium Graeco-Arabicum",path:"/PROJECTS/glossarium_graeco_arabicum/"},"d1f743f2-7e94-4e00-a8bf-f46e56c7508e":{title:"Grasping the World in Ottoman Istanbul: Visual Negotiation and Reading in Practices in Geographic Literature from the Sixteenth Century",path:"/PROJECTS/grasping_the_world_in_ottoman_istanbul/"},"d0a1971a-e11b-442f-ab1a-6d8d421422c5":{title:"Handschriftenportal",path:"/PROJECTS/handschriftenportal/"},"5f9179dc-cfdf-442b-b4a4-73ebf2f6256d":{title:"Hannah Arendt Digital",path:"/PROJECTS/hannah_arendt_digital/"},"85590bb4-4b9a-49c9-8e41-d548a7d234e1":{title:"Historical Middle East Data Alliance",path:"/PROJECTS/hist-me/"},"52ce273e-7935-42fd-82e8-806f6aaa3049":{title:"Hill Museum & Manuscript Library",path:"/PROJECTS/hmml/"},"da4755a8-5d05-4bda-8d2e-afab81c7ce27":{title:"Hethitologie Portal Mainz",path:"/PROJECTS/hpm/"},"1a587e85-1385-40b0-b6eb-25ca8fa5042c":{title:"Weaving the Humanities into the Web and the Web into the Humanities. Preserving the Cultural Heritage of Yemen by Creating an Universally Virtual Library of Manuscripts (HumanWeb)",path:"/PROJECTS/humanweb/"},"70944a30-3932-46bb-8c3f-410a48d9e0b9":{title:"HUNAYNNET",path:"/PROJECTS/hunaynnet/"},"04ea57c8-69c7-4c83-8249-753850e9cc53":{title:"DFG-Langfristvorhaben Gesamtedition des Werkes von Ibn Nubata Al-Misri",path:"/PROJECTS/ibn_nubata_gesamtedition/"},"bb852d81-0c6d-4413-8c20-1bb38c4db4e7":{title:"The intertwined world of the oral and written transmission of sacred traditions in the Middle East",path:"/PROJECTS/intersame/"},"8e4ab5b4-7298-4d55-b490-eb2943527981":{title:"Irankoran",path:"/PROJECTS/irankoran/"},"31534c48-6b74-4cc5-8aff-ea8dbc60c445":{title:"Islamic Painted Page",path:"/PROJECTS/islamic_painted_page/"},"da852d13-2483-443b-a2f3-77c0d19d08bd":{title:"Isnalyser",path:"/PROJECTS/isnalyser/"},"7050ac6d-523c-4ba0-b381-48ec200ff6c4":{title:"Keywords for the Study of the Arabic Literary and Manuscript Tradition",path:"/PROJECTS/kalimat/"},"5755bad5-4162-48ce-84b4-997819fa61b7":{title:"Kallimachos",path:"/PROJECTS/kallimachos/"},"d4d49850-4711-4d43-97e9-c3563626d8df":{title:"Knowledge, Information Technology, and the Arabic Book",path:"/PROJECTS/kitab/"},"f67c8fcd-d190-4419-a85a-e6998da4f0ba":{title:"KOHD Coptica",path:"/PROJECTS/kohd_coptica/"},"01ac0c0c-b09c-40cf-a75f-42e540b67c2f":{title:"KOHD Digital",path:"/PROJECTS/kohd_digital/"},"6c5643df-bfb8-48e8-a7c6-473146cf497d":{title:"KompetenzwerkD",path:"/PROJECTS/kompetenzwerk_d/"},"583ab46e-ccb8-4a49-9912-7771683cd605":{title:"MAJLIS. The Transformation of Jewish Literature in Arabic in the Islamicate World",path:"/PROJECTS/majlis/"},"377201a9-9b09-4a6b-b5e8-873190633e78":{title:"Middle East Librarians Association",path:"/PROJECTS/mela/"},"aec92ee9-7c8a-49ce-8491-46667fc75505":{title:"Memory Spaces: Mapping Oral History in Mosul",path:"/PROJECTS/mesmom/"},"9efa71cc-aaf8-4481-a155-caa8d9fe23c1":{title:"Mesopotamian Royal Inscriptions",path:"/PROJECTS/mesopotamian_royal_inscriptions/"},"9497c5c0-0cdc-4f43-96de-4843bd246bac":{title:"Mesopotamian Seals",path:"/PROJECTS/mesopotamian_seals/"},"892b783d-1788-451f-9efd-1c58bfb4b064":{title:"Methoden der Manuskriptanalyse zur Wiedergewinnung verlorener Schrift",path:"/PROJECTS/methoden_der_manuskriptanalyse_zur_wiedergewinnung_verlorener_schrift/"},"d5dd164d-1887-473f-8282-584b8d09474d":{title:"Moving frontiers",path:"/PROJECTS/moving_frontiers/"},"7d8eb5d0-6284-4939-a48b-7ff7a2407989":{title:"Zoroastrian Middle Persian Corpus and Dictionary",path:"/PROJECTS/mpcd/"},"47a62965-3241-4531-b01a-a25e25dac602":{title:"Machine Translation and Automated Analysis of Cuneiform Language",path:"/PROJECTS/mtaac/"},"b37c6bd1-90d3-4718-ab58-fb1d60873186":{title:"Multilingual Corpus of Annotated Spoken Texts",path:"/PROJECTS/multi_cast/"},"cb428a09-41a6-4b68-b81e-8e72e23e6aba":{title:"The Multimedia Yasna",path:"/PROJECTS/muya/"},"9a4a2962-fbf2-4a52-a1ea-53af8e3d0842":{title:"New Languages for NLP",path:"/PROJECTS/newnlp/"},"bef67936-aeda-45ea-86fa-d06d79620459":{title:"Nimrud NW Palace",path:"/PROJECTS/nimrud_palace/"},"e050deba-6e1d-4d82-851b-cf6c1f7187a5":{title:"NoMansLand: Nomads’ Manuscripts Landscape",path:"/PROJECTS/nomansland/"},"97408d45-9570-4cad-a623-6007573bf070":{title:"Oxford Cambridge Islamic Manuscript Catalogue Online",path:"/PROJECTS/ocimco/"},"ddbb569b-1542-40fe-9fa7-3842610945c8":{title:"Onomasticon Arabicum",path:"/PROJECTS/onomasticon_arabicum/"},"4ed4b218-0a06-4ae1-857a-1d87a9371e08":{title:"Open Arabic Periodical Editions: A framework for bootstrapped digital scholarly editions outside the global north",path:"/PROJECTS/open_arabic_pe/"},"2860c96f-323e-4c33-97c6-4219bcf99f52":{title:"Open Encyclopedia System",path:"/PROJECTS/open_encyclopedia_system/"},"bef2e507-b663-422e-9dd3-7e49ca299f05":{title:"Open Islamicate Texts Initiative",path:"/PROJECTS/open_iti/"},"786edd87-476e-42a6-bcc0-521833ec73e5":{title:"Open Islamicate Texts Initiative Arabic-script OCR Catalyst Project",path:"/PROJECTS/open_iti_aocp/"},"d1d73911-81dc-4a65-bf1b-162f7fb2e84e":{title:"OpenITI_NgramReader",path:"/PROJECTS/open_iti_ngram_reader/"},"3e56a148-845f-4a39-a7d4-c05c75cabd31":{title:"Oracc: The Open Richly Annotated Cuneiform Corpus",path:"/PROJECTS/oracc/"},"a4fa5143-90d2-42ba-a8a1-424b09696b1c":{title:"Orient-Digital",path:"/PROJECTS/orient_digital/"},"d5448b02-b57f-429d-9553-637cc2add035":{title:"Paleocoran",path:"/PROJECTS/paleocoran/"},"2adf7ddc-9dd5-49b3-842c-9dc48dbbf36e":{title:"Country of Words: Reading and Reception of Palestinian Literature from 1948 to the Present",path:"/PROJECTS/pal_read/"},"c2c309a5-923c-4759-ae83-f870b10dceff":{title:"Patterns of Knowledge Circulation: The Transmission and Reception of Jewish Esoteric Knowledge in Manuscript and Print in Early Modern East-Central Europe (1500-1750)",path:"/PROJECTS/patterns_of_knowledge_circulation/"},"c1a2957b-0c24-46e6-9a67-381997525a87":{title:"Post-predicate Elements in Iranian: Inheritance, Contact, and Information Structure",path:"/PROJECTS/post_predicate_elements_in_iranian/"},"d0bda69f-d8c4-4521-ab18-af2c097ffcfc":{title:"Compilation and critical edition of pre-19th century Kurmanji Kurdish",path:"/PROJECTS/pre_19th_century_kurmanji_kurdish/"},"a9ca5d9f-47ab-4704-ad27-9a09e492ca2a":{title:"Ptolemaeus Arabus et Latinus",path:"/PROJECTS/ptolemaeus_arabus_et_latinus/"},"397a09d7-5307-43ba-a3ce-3faff1ea0e6c":{title:"Prosopografía de los ulemas de al-Andalus",path:"/PROJECTS/pua/"},"3c5fd869-4651-414c-a0f1-b1254712b689":{title:"SaxFDM-Fokusprojekt: Publikationsdienst für wissenschaftliche Datenmodelle und Vokabulare",path:"/PROJECTS/pudel/"},"3c5b84d0-791c-43bc-ab68-7372478bc568":{title:"Qalamos",path:"/PROJECTS/qalamos/"},"6298a9cd-d41a-40d8-91d0-c532692e95c9":{title:"QhoD – Digitale Edition von Quellen zur habsburgisch-osmanischen Diplomatie 1500–1918",path:"/PROJECTS/qhod/"},"ff1ec94f-2233-46e9-b550-45c792ae581e":{title:"Die Großbotschaften Damian Hugo von Virmonts und Ibrahim Paschas (1719/20)",path:"/PROJECTS/qhod_die_grossbotschaften/"},"e9b15bcd-05ec-4de1-95f5-07d5bb44e482":{title:"Die Schreiben Selims II. an Maximilian II. und Mustafa Paşa (1566–1574)",path:"/PROJECTS/qhod_die_schreiben_selims_ii/"},"99718590-5e1e-4a64-bf84-6e2213ad1836":{title:"Qumran Digital: Text und Lexikon",path:"/PROJECTS/qumran_digital_text_und_lexikon/"},"38e6dfb4-730a-4a80-8090-4b7ea551b3c7":{title:"Datenbankgestützte Erfassung, Erforschung und digitale Präsentation der Familienbibliothek Refaiya",path:"/PROJECTS/refaiya/"},"b0da2d75-183c-4fa4-8b12-47366c02ed7c":{title:"Reallexikon der Assyriologie und Vorderasiatischen Archäologie",path:"/PROJECTS/ria/"},"32bc596c-eafd-4bd2-8df3-f1ab5cff4ad6":{title:"Romantic Period Poetry Archive",path:"/PROJECTS/romantic_period_poetry_archive/"},"9078ff92-18f1-4019-a9f3-8c7d9aaa0db8":{title:"Belegwörterbuch der sabäischen Sprache",path:"/PROJECTS/sabaweb/"},"87d036b9-5145-47d0-8d0e-83bb6821f3fe":{title:"Surayt-Aramaic Online Project",path:"/PROJECTS/saop/"},"0cf58379-39c3-4e95-b7b1-cc9f7f11c7ba":{title:"Scripta-PSL",path:"/PROJECTS/scripta_psl/"},"9513964d-3509-462e-9d64-c47fd3922459":{title:"Scripta Qumranica Electronica: Eine Verbunddatenbank und virtuelle Forschungsumgebung für die Texte vom Toten Meer",path:"/PROJECTS/scripta_qumranica_electronica/"},"177501b1-c847-4547-a757-76f56c5af15f":{title:"Sefaria",path:"/PROJECTS/sefaria_org/"},"81d8ad85-5da8-457f-99a3-6ab11128ef03":{title:"SfarData",path:"/PROJECTS/sfardata/"},"1b2ca0bf-fb29-4b5c-852b-2eedd6a85773":{title:"SHARIAsource",path:"/PROJECTS/sharia_source/"},"68422d65-ccba-4dcb-8a0e-bd4f3f9e1dc9":{title:"Shawi",path:"/PROJECTS/shawi/"},"20ee58f5-f699-4262-a473-7765e249c871":{title:"SIHAFA: The Ideosphere of the Late Ottoman Arabic Press: Mapping the Discursive Field of Authors and Texts through Computational Approaches",path:"/PROJECTS/sihafa/"},"880f1d65-b815-4474-9fb4-b17f13bd3765":{title:"Streamlining Galen",path:"/PROJECTS/streamlining_galen/"},"85d053c3-4ce6-4130-bc6a-63f96acfb067":{title:"Strukturen und Transformationen des Wortschatzes der ägyptischen Sprache: Text- und Wissenskultur im Alten Ägypten",path:"/PROJECTS/strukturen_und_transformationen/"},"827f5ce7-a331-44fe-b40a-5cd93f348a0a":{title:"Synoptische Edition des kabbalistischen Traktats Keter Shem Ṭov",path:"/PROJECTS/synoptische_edition_des_kabbalistischen_traktats_keter_shem_tov/"},"fdda3e43-e15b-4c64-a99d-924f37152cc9":{title:"Syriaca.org: The Syriac Reference Portal",path:"/PROJECTS/syriaca_org/"},"28b08ba5-2a3f-4f35-a909-7a745c26ba55":{title:"TextGrid",path:"/PROJECTS/text_grid/"},"2689651d-1e28-4f26-ac43-cfdca097d837":{title:"Text+",path:"/PROJECTS/text_plus/"},"33a6a747-4180-4e28-a99c-2bf6dcf53200":{title:"The formation of Islam",path:"/PROJECTS/the_formation_of_islam/"},"862e636c-6757-4dc6-a382-b77768b69cbc":{title:"The Islamic Manuscript Association",path:"/PROJECTS/the_islamic_manuscript_association/"},"e9e4a759-5a0c-4d7d-aa61-49051477ab2f":{title:"A Literary History of Medicine Online",path:"/PROJECTS/the_literary_history_of_medicine_online/"},"57622367-8250-4932-ab3e-0356615d578a":{title:"Tierrecht und Strafen im 'Gesetz zur Abwehr der Dämonen' (Vidçvdâd, Kapitel 13–15)",path:"/PROJECTS/tierrecht_und_strafen/"},"ce4fc765-1578-4cfb-8efa-b82387c99590":{title:"Tikkoun Sofrim",path:"/PROJECTS/tikkoun_sofrim/"},"2b2d72f0-c4d6-462b-b47f-7c3550acdad3":{title:"Time, Space and Relations in Hadith Literature: A Machine Learning Approach",path:"/PROJECTS/time_space_relations_in_hadith_literature/"},"fbd22cab-b0b1-4ed4-aa1a-9f675c19c1af":{title:"Thesaurus Indogermanischer Text- und Sprachmaterialien",path:"/PROJECTS/titus/"},"b583a2f6-22bb-4ddb-8639-c9a9aa7b511b":{title:"Topoi. The Formation and Transformation of Space and Knowledge in Ancient Civilizations",path:"/PROJECTS/topoi/"},"77ae1011-1b54-46b5-b676-02895e3300fc":{title:"From Translation to Creation: Changes in Ethiopic Style and Lexicon from Late Antiquity to the Middle Ages",path:"/PROJECTS/traces/"},"79462111-75a7-4fa0-8e11-9d424293a074":{title:"Linguistic dynamics in the Greater Tunis Area: a corpus-based approach (TUNICO)",path:"/PROJECTS/tunico/"},"325a929a-6764-41e1-b452-6556209fa74f":{title:"TUNOCENT",path:"/PROJECTS/tunocent/"},"9ca46873-3089-4a04-99fa-89c0c1b01213":{title:"Understanding Written Artefacts",path:"/PROJECTS/understanding_written_artefacts/"},"a2984fec-9396-488e-ad56-d3d21dc49052":{title:"Verse und Sprueche: Impulse und Reichweiten wissenschaftlicher und popularisierender Diskurse im arabischen Sprachraum",path:"/PROJECTS/verse_und_sprueche/"},"8f343a28-a873-449c-b359-efcfab7d1201":{title:"Vienna Corpus of Arabic Varieties",path:"/PROJECTS/vicav/"},"fcbda96b-0c65-4ac9-9047-bde2323a0cb4":{title:"Virtuelle Archive für die geisteswissenschaftliche Forschung",path:"/PROJECTS/virtuelle_archive_fuer_die_geisteswissenschaftliche_forschung/"},"e9cb8ab1-2d2c-4cc3-a44d-a793220a8638":{title:"WIBARAB: What is Bedouin-Type Arabic?",path:"/PROJECTS/wibarab/"},"5f3c2fbb-ca17-41c9-acdb-d3e147869400":{title:"Communities of Knowledge: Interreligious Networks of Scholars in Ibn Abi Usaybi‘a’s “History of the Physicians”",path:"/PROJECTS/wissensgemeinschaften/"},"e17c5b2a-7619-40bd-bddd-51063f687cb0":{title:"The Yemeni Manuscript Digitization Initiative",path:"/PROJECTS/ymdi/"},"fb7e7faa-8797-4db7-9061-3498dd7e1c6d":{title:"Zodiac - Ancient Astral Science in Transformation",path:"/PROJECTS/zodiac/"}},{window:fa}=ca;function jt(r,i,a){const l=r.slice();return l[17]=i[a],l}function zt(r,i,a){const l=r.slice();return l[20]=i[a],l}function Nt(r,i,a){const l=r.slice();return l[23]=i[a],l}function Bt(r,i,a){const l=r.slice();return l[26]=i[a],l}function xt(r,i,a){const l=r.slice();return l[29]=i[a],l}function Gt(r,i,a){const l=r.slice();return l[32]=i[a],l}function Wt(r,i,a){const l=r.slice();return l[32]=i[a],l}function Ut(r,i,a){const l=r.slice();return l[37]=i[a],l}function Kt(r,i,a){const l=r.slice();return l[40]=i[a],l}function da(r){let i,a,l,c,o,m="Abbreviated title:",b,f,C,k,T,P="Entity type:",x,B,ue,G,K,Je="Description:",ve,$,_e,W,me="Periods of funding/operation:",ke,Q,y,F,Ie,ft,De,ee,Me,Ae,He,te,je,dt,ze,ae,Ne,ie,Be,ht,xe,le,Ge,ne,St="Keywords:",We,re,Ue,ye,Ke,Y,pe,Pt="Link to JSON record:",bt,V,Fe,Ve,Z,ut,qe,pt,Qe,ce,Ye,Le,Ze,se,Tt="Related institutions:",Xe,oe,$e,fe,Rt="Related entities:",et,de,tt,we,at,he,it,_t,lt,be,Ce=L(r[9]),w=[];for(let e=0;e{const r=await j(()=>import("../chunks/leaflet-src.CKS_39_u.js").then(s=>s.l),__vite__mapDeps([0,1]),import.meta.url);t=r.map(e).setView([51.53443,9.93228],5),r.tileLayer("https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",{attribution:'© OpenStreetMap contributors'}).addTo(t);const b=M;for(const[s,i]of b){const h=C(i.project.places),l=`${R}${s.split("/PROJECTS/")[1]}`;for(const c of h){const f=c.place_name.text+c.coordinates.lat.split(".")[0]+c.coordinates.lng.split(".")[0];if(o[f])o[f].projects.push({title:i.project.title,url:l});else{const y={lat:c.coordinates.lat,lng:c.coordinates.lng,projects:[{title:i.project.title,url:l}]};o[f]=y}}}for(const[,s]of Object.entries(o)){const i=s.projects.map(l=>` __vite__mapDeps.viteFileDeps[i]) +} +import{_ as j}from"../chunks/preload-helper.BQ24v_F8.js";import{s as k,n as u,o as E,a as P,b as S}from"../chunks/scheduler.kPUuJgHu.js";import{S as D,i as $,s as F,e as g,k as I,d as p,f as L,c as _,a as x,m as v,g as w,h as T}from"../chunks/index.CYrHsBOq.js";import{f as C}from"../chunks/utils.kS56dN66.js";import{e as M}from"../chunks/ENTRIES.B7c5x1cf.js";function O(m){let n,a,e;return{c(){n=F(),a=g("div"),e=g("div"),this.h()},l(t){I("svelte-1w6dn8w",document.head).forEach(p),n=L(t),a=_(t,"DIV",{class:!0});var d=x(a);e=_(d,"DIV",{class:!0}),x(e).forEach(p),d.forEach(p),this.h()},h(){document.title="Closing the Gap in Non-Latin-Script Data – Map",v(e,"class","h-[34rem] rounded-md font-normal"),v(a,"class","mx-auto max-w-6xl px-4")},m(t,o){w(t,n,o),w(t,a,o),T(a,e),m[1](e)},p:u,i:u,o:u,d(t){t&&(p(n),p(a)),m[1](null)}}}const R="https://github.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/blob/master/PROJECTS/";function V(m,n,a){let e,t;const o={};E(async()=>{const r=await j(()=>import("../chunks/leaflet-src.CKS_39_u.js").then(s=>s.l),__vite__mapDeps([0,1]),import.meta.url);t=r.map(e).setView([51.53443,9.93228],5),r.tileLayer("https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",{attribution:'© OpenStreetMap contributors'}).addTo(t);const b=M;for(const[s,i]of b){const h=C(i.project.places),l=`${R}${s.split("/PROJECTS/")[1]}`;for(const c of h){const f=c.place_name.text+c.coordinates.lat.split(".")[0]+c.coordinates.lng.split(".")[0];if(o[f])o[f].projects.push({title:i.project.title,url:l});else{const y={lat:c.coordinates.lat,lng:c.coordinates.lng,projects:[{title:i.project.title,url:l}]};o[f]=y}}}for(const[,s]of Object.entries(o)){const i=s.projects.map(l=>` `,className:"font-fira text-[13px]",iconSize:[32,48],iconAnchor:[16,48]});r.marker([s.lat,s.lng],{icon:h}).addTo(t).bindPopup(i,{maxHeight:250,maxWidth:250})}}),P(()=>{t&&t.remove()});function d(r){S[r?"unshift":"push"](()=>{e=r,a(0,e)})}return[e,d]}class J extends D{constructor(n){super(),$(this,n,V,O,k,{})}}export{J as component}; -function __vite__mapDeps(indexes) { - if (!__vite__mapDeps.viteFileDeps) { - __vite__mapDeps.viteFileDeps = ["../chunks/leaflet-src.CKS_39_u.js","../chunks/_commonjsHelpers.Cpj98o6Y.js"] - } - return indexes.map((i) => __vite__mapDeps.viteFileDeps[i]) -} diff --git a/_app/immutable/nodes/7.CVrWY7Kg.js b/_app/immutable/nodes/7.CYkEQhly.js similarity index 99% rename from _app/immutable/nodes/7.CVrWY7Kg.js rename to _app/immutable/nodes/7.CYkEQhly.js index 92ce33f47..0ac4c40d5 100644 --- a/_app/immutable/nodes/7.CVrWY7Kg.js +++ b/_app/immutable/nodes/7.CYkEQhly.js @@ -1 +1 @@ -import{s as Q,n as $}from"../chunks/scheduler.kPUuJgHu.js";import{S as W,i as X,s as N,e as m,k as Z,d as h,f as L,c as g,a as E,l as ee,m as k,g as p,h as T,n as A,o as j,t as S,b as H,j as z}from"../chunks/index.CYrHsBOq.js";import{e as x}from"../chunks/each.D6YF6ztN.js";import{e as te}from"../chunks/ENTRIES.DrMUelaC.js";function q(n,e,t){const c=n.slice();return c[6]=e[t][0],c[7]=e[t][1],c[9]=t,c}function B(n,e,t){const c=n.slice();return c[10]=e[t],c[12]=t,c}function F(n,e,t){const c=n.slice();return c[10]=e[t],c[12]=t,c}function G(n,e,t){const c=n.slice();return c[10]=e[t],c[9]=t,c}function le(n){let e,t,c=n[10].slice(-2)+"",a;return{c(){e=m("th"),t=S("’"),a=S(c),this.h()},l(r){e=g(r,"TH",{class:!0});var l=E(e);t=H(l,"’"),a=H(l,c),l.forEach(h),this.h()},h(){k(e,"class","border-b border-r border-slate-800 px-1 py-1.5 text-sm")},m(r,l){p(r,e,l),T(e,t),T(e,a)},p:$,d(r){r&&h(e)}}}function re(n){let e,t,c=n[10].slice(-2)+"",a;return{c(){e=m("th"),t=S("’"),a=S(c),this.h()},l(r){e=g(r,"TH",{class:!0});var l=E(e);t=H(l,"’"),a=H(l,c),l.forEach(h),this.h()},h(){k(e,"class","border-b border-slate-800 px-1 py-1.5 text-sm")},m(r,l){p(r,e,l),T(e,t),T(e,a)},p:$,d(r){r&&h(e)}}}function I(n){let e;function t(r,l){return r[9]===r[1].length-1?re:le}let a=t(n)(n);return{c(){a.c(),e=j()},l(r){a.l(r),e=j()},m(r,l){a.m(r,l),p(r,e,l)},p(r,l){a.p(r,l)},d(r){r&&h(e),a.d(r)}}}function ce(n){let e,t,c=P(n[7].project.title)+"",a,r,l,s,_=x(n[1]),u=[];for(let o=0;o<_.length;o+=1)u[o]=J(B(n,_,o));return{c(){e=m("td"),t=m("a"),a=S(c),l=N();for(let o=0;o=t.from.slice(0,4)&&n<=t.to.slice(0,4))return!0;return!1}function V(n){const e="https://github.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/blob/master/PROJECTS/",t=n.split("/PROJECTS/")[1];return e+t}function ue(n,e,t){let c;const a=te,r=new Date().getFullYear(),l=r-18,s=r+12,_=Array.from({length:s-l+1},(u,o)=>String(l+o));return t(0,c=a.filter(([,u])=>u.project.date[0].from&&u.project.date[0].to)),[c,_]}class ge extends W{constructor(e){super(),X(this,e,ue,_e,Q,{})}}export{ge as component}; +import{s as Q,n as $}from"../chunks/scheduler.kPUuJgHu.js";import{S as W,i as X,s as N,e as m,k as Z,d as h,f as L,c as g,a as E,l as ee,m as k,g as p,h as T,n as A,o as j,t as S,b as H,j as z}from"../chunks/index.CYrHsBOq.js";import{e as x}from"../chunks/each.D6YF6ztN.js";import{e as te}from"../chunks/ENTRIES.B7c5x1cf.js";function q(n,e,t){const c=n.slice();return c[6]=e[t][0],c[7]=e[t][1],c[9]=t,c}function B(n,e,t){const c=n.slice();return c[10]=e[t],c[12]=t,c}function F(n,e,t){const c=n.slice();return c[10]=e[t],c[12]=t,c}function G(n,e,t){const c=n.slice();return c[10]=e[t],c[9]=t,c}function le(n){let e,t,c=n[10].slice(-2)+"",a;return{c(){e=m("th"),t=S("’"),a=S(c),this.h()},l(r){e=g(r,"TH",{class:!0});var l=E(e);t=H(l,"’"),a=H(l,c),l.forEach(h),this.h()},h(){k(e,"class","border-b border-r border-slate-800 px-1 py-1.5 text-sm")},m(r,l){p(r,e,l),T(e,t),T(e,a)},p:$,d(r){r&&h(e)}}}function re(n){let e,t,c=n[10].slice(-2)+"",a;return{c(){e=m("th"),t=S("’"),a=S(c),this.h()},l(r){e=g(r,"TH",{class:!0});var l=E(e);t=H(l,"’"),a=H(l,c),l.forEach(h),this.h()},h(){k(e,"class","border-b border-slate-800 px-1 py-1.5 text-sm")},m(r,l){p(r,e,l),T(e,t),T(e,a)},p:$,d(r){r&&h(e)}}}function I(n){let e;function t(r,l){return r[9]===r[1].length-1?re:le}let a=t(n)(n);return{c(){a.c(),e=j()},l(r){a.l(r),e=j()},m(r,l){a.m(r,l),p(r,e,l)},p(r,l){a.p(r,l)},d(r){r&&h(e),a.d(r)}}}function ce(n){let e,t,c=P(n[7].project.title)+"",a,r,l,s,_=x(n[1]),u=[];for(let o=0;o<_.length;o+=1)u[o]=J(B(n,_,o));return{c(){e=m("td"),t=m("a"),a=S(c),l=N();for(let o=0;o=t.from.slice(0,4)&&n<=t.to.slice(0,4))return!0;return!1}function V(n){const e="https://github.com/M-L-D-H/Closing-The-Gap-In-Non-Latin-Script-Data/blob/master/PROJECTS/",t=n.split("/PROJECTS/")[1];return e+t}function ue(n,e,t){let c;const a=te,r=new Date().getFullYear(),l=r-18,s=r+12,_=Array.from({length:s-l+1},(u,o)=>String(l+o));return t(0,c=a.filter(([,u])=>u.project.date[0].from&&u.project.date[0].to)),[c,_]}class ge extends W{constructor(e){super(),X(this,e,ue,_e,Q,{})}}export{ge as component}; diff --git a/_app/immutable/nodes/8.CXYtvyRl.js b/_app/immutable/nodes/8.C-8QNMUP.js similarity index 67% rename from _app/immutable/nodes/8.CXYtvyRl.js rename to _app/immutable/nodes/8.C-8QNMUP.js index c9e478452..649b01e9c 100644 --- a/_app/immutable/nodes/8.CXYtvyRl.js +++ b/_app/immutable/nodes/8.C-8QNMUP.js @@ -21,7 +21,7 @@ import{s as FD,n as r1,o as MD}from"../chunks/scheduler.kPUuJgHu.js";import{S as : (u > v || v == null) && u != null ? ${r} : ((v = v instanceof Date ? +v : v), (u = u instanceof Date ? +u : u)) !== u && v === v ? ${n} : v !== v && u === u ? ${r} : `}var JJ={operator:(e,t)=>Ic(e,["_"],t.code),parameter:(e,t)=>Ic(e,["datum","_"],t.code),event:(e,t)=>Ic(e,["event"],t.code),handler:(e,t)=>{const n=`var datum=event.item&&event.item.datum;return ${t.code};`;return Ic(e,["_","event"],n)},encode:(e,t)=>{const{marktype:n,channels:r}=t;let i="var o=item,datum=o.datum,m=0,$;";for(const a in r){const s="o["+H(a)+"]";i+=`$=${r[a].code};if(${s}!==$)${s}=$,m=1;`}return i+=YJ(r,n),i+="return m;",Ic(e,["item","_"],i)},codegen:{get(e){const t=`[${e.map(H).join("][")}]`,n=Function("_",`return _${t};`);return n.path=t,n},comparator(e,t){let n;const r=(a,s)=>{const o=t[s];let u,c;return a.path?(u=`a${a.path}`,c=`b${a.path}`):((n=n||{})["f"+s]=a,u=`this.f${s}(a)`,c=`this.f${s}(b)`),KJ(u,c,-o,o)},i=Function("a","b","var u, v; return "+e.map(r).join("")+"0;");return n?i.bind(n):i}}};function QJ(e){const t=this;XJ(e.type)||!e.type?t.operator(e,e.update?t.operatorExpression(e.update):null):t.transform(e,e.type)}function ZJ(e){const t=this;if(e.params){const n=t.get(e.id);n||R("Invalid operator id: "+e.id),t.dataflow.connect(n,n.parameters(t.parseParameters(e.params),e.react,e.initonly))}}function eQ(e,t){t=t||{};const n=this;for(const r in e){const i=e[r];t[r]=P(i)?i.map(a=>$5(a,n,t)):$5(i,n,t)}return t}function $5(e,t,n){if(!e||!V(e))return e;for(let r=0,i=A5.length,a;ri&&i.$tupleid?ne:i);return t.fn[n]||(t.fn[n]=Jy(r,e.$order,t.expr.codegen))}function sQ(e,t){const n=e.$encode,r={};for(const i in n){const a=n[i];r[i]=$n(t.encodeExpression(a.$expr),a.$fields),r[i].output=a.$output}return r}function oQ(e,t){return t}function uQ(e,t){const n=e.$subflow;return function(r,i,a){const s=t.fork().parse(n),o=s.get(n.operators[0].id),u=s.signals.parent;return u&&u.set(a),o.detachSubflow=()=>t.detach(s),o}}function cQ(){return ne}function lQ(e){var t=this,n=e.filter!=null?t.eventExpression(e.filter):void 0,r=e.stream!=null?t.get(e.stream):void 0,i;e.source?r=t.events(e.source,e.type,n):e.merge&&(i=e.merge.map(a=>t.get(a)),r=i[0].merge.apply(i[0],i.slice(1))),e.between&&(i=e.between.map(a=>t.get(a)),r=r.between(i[0],i[1])),e.filter&&(r=r.filter(n)),e.throttle!=null&&(r=r.throttle(+e.throttle)),e.debounce!=null&&(r=r.debounce(+e.debounce)),r==null&&R("Invalid stream definition: "+JSON.stringify(e)),e.consume&&r.consume(!0),t.stream(e,r)}function fQ(e){var t=this,n=V(n=e.source)?n.$ref:n,r=t.get(n),i=null,a=e.update,s=void 0;r||R("Source not defined: "+e.source),i=e.target&&e.target.$expr?t.eventExpression(e.target.$expr):t.get(e.target),a&&a.$expr&&(a.$params&&(s=t.parseParameters(a.$params)),a=t.handlerExpression(a.$expr)),t.update(e,r,i,a,s)}const dQ={skip:!0};function hQ(e){var t=this,n={};if(e.signals){var r=n.signals={};Object.keys(t.signals).forEach(a=>{const s=t.signals[a];e.signals(a,s)&&(r[a]=s.value)})}if(e.data){var i=n.data={};Object.keys(t.data).forEach(a=>{const s=t.data[a];e.data(a,s)&&(i[a]=s.input.value)})}return t.subcontext&&e.recurse!==!1&&(n.subcontext=t.subcontext.map(a=>a.getState(e))),n}function gQ(e){var t=this,n=t.dataflow,r=e.data,i=e.signals;Object.keys(i||{}).forEach(a=>{n.update(t.signals[a],i[a],dQ)}),Object.keys(r||{}).forEach(a=>{n.pulse(t.data[a].input,n.changeset().remove(Zn).insert(r[a]))}),(e.subcontext||[]).forEach((a,s)=>{const o=t.subcontext[s];o&&o.setState(a)})}function rF(e,t,n,r){return new iF(e,t,n,r)}function iF(e,t,n,r){this.dataflow=e,this.transforms=t,this.events=e.events.bind(e),this.expr=r||JJ,this.signals={},this.scales={},this.nodes={},this.data={},this.fn={},n&&(this.functions=Object.create(n),this.functions.context=this)}function k5(e){this.dataflow=e.dataflow,this.transforms=e.transforms,this.events=e.events,this.expr=e.expr,this.signals=Object.create(e.signals),this.scales=Object.create(e.scales),this.nodes=Object.create(e.nodes),this.data=Object.create(e.data),this.fn=Object.create(e.fn),e.functions&&(this.functions=Object.create(e.functions),this.functions.context=this)}iF.prototype=k5.prototype={fork(){const e=new k5(this);return(this.subcontext||(this.subcontext=[])).push(e),e},detach(e){this.subcontext=this.subcontext.filter(n=>n!==e);const t=Object.keys(e.nodes);for(const n of t)e.nodes[n]._targets=null;for(const n of t)e.nodes[n].detach();e.nodes=null},get(e){return this.nodes[e]},set(e,t){return this.nodes[e]=t},add(e,t){const n=this,r=n.dataflow,i=e.value;if(n.set(e.id,t),VJ(e.type)&&i&&(i.$ingest?r.ingest(t,i.$ingest,i.$format):i.$request?r.preload(t,i.$request,i.$format):r.pulse(t,r.changeset().insert(i))),e.root&&(n.root=t),e.parent){let a=n.get(e.parent.$ref);a?(r.connect(a,[t]),t.targets().add(a)):(n.unresolved=n.unresolved||[]).push(()=>{a=n.get(e.parent.$ref),r.connect(a,[t]),t.targets().add(a)})}if(e.signal&&(n.signals[e.signal]=t),e.scale&&(n.scales[e.scale]=t),e.data)for(const a in e.data){const s=n.data[a]||(n.data[a]={});e.data[a].forEach(o=>s[o]=t)}},resolve(){return(this.unresolved||[]).forEach(e=>e()),delete this.unresolved,this},operator(e,t){this.add(e,this.dataflow.add(e.value,t))},transform(e,t){this.add(e,this.dataflow.add(this.transforms[v7(t)]))},stream(e,t){this.set(e.id,t)},update(e,t,n,r,i){this.dataflow.on(t,n,r,i,e.options)},operatorExpression(e){return this.expr.operator(this,e)},parameterExpression(e){return this.expr.parameter(this,e)},eventExpression(e){return this.expr.event(this,e)},handlerExpression(e){return this.expr.handler(this,e)},encodeExpression(e){return this.expr.encode(this,e)},parse:HJ,parseOperator:QJ,parseOperatorParameters:ZJ,parseParameters:eQ,parseStream:lQ,parseUpdate:fQ,getState:hQ,setState:gQ};function pQ(e){const t=e.container();t&&(t.setAttribute("role","graphics-document"),t.setAttribute("aria-roleDescription","visualization"),aF(t,e.description()))}function aF(e,t){e&&(t==null?e.removeAttribute("aria-label"):e.setAttribute("aria-label",t))}function mQ(e){e.add(null,t=>(e._background=t.bg,e._resize=1,t.bg),{bg:e._signals.background})}const am="default";function bQ(e){const t=e._signals.cursor||(e._signals.cursor=e.add({user:am,item:null}));e.on(e.events("view","pointermove"),t,(n,r)=>{const i=t.value,a=i?X(i)?i:i.user:am,s=r.item&&r.item.cursor||null;return i&&a===i.user&&s==i.item?i:{user:a,item:s}}),e.add(null,function(n){let r=n.cursor,i=this.value;return X(r)||(i=r.item,r=r.user),cy(e,r&&r!==am?r:i||r),i},{cursor:t})}function cy(e,t){const n=e.globalCursor()?typeof document<"u"&&document.body:e.container();if(n)return t==null?n.style.removeProperty("cursor"):n.style.cursor=t}function k0(e,t){var n=e._runtime.data;return ie(n,t)||R("Unrecognized data set: "+t),n[t]}function yQ(e,t){return arguments.length<2?k0(this,e).values.value:tp.call(this,e,So().remove(Zn).insert(t))}function tp(e,t){$E(t)||R("Second argument to changes must be a changeset.");const n=k0(this,e);return n.modified=!0,this.pulse(n.input,t)}function vQ(e,t){return tp.call(this,e,So().insert(t))}function xQ(e,t){return tp.call(this,e,So().remove(t))}function sF(e){var t=e.padding();return Math.max(0,e._viewWidth+t.left+t.right)}function oF(e){var t=e.padding();return Math.max(0,e._viewHeight+t.top+t.bottom)}function np(e){var t=e.padding(),n=e._origin;return[t.left+n[0],t.top+n[1]]}function _Q(e){var t=np(e),n=sF(e),r=oF(e);e._renderer.background(e.background()),e._renderer.resize(n,r,t),e._handler.origin(t),e._resizeListeners.forEach(i=>{try{i(n,r)}catch(a){e.error(a)}})}function wQ(e,t,n){var r=e._renderer,i=r&&r.canvas(),a,s,o;return i&&(o=np(e),s=t.changedTouches?t.changedTouches[0]:t,a=Ug(s,i),a[0]-=o[0],a[1]-=o[1]),t.dataflow=e,t.item=n,t.vega=EQ(e,n,a),t}function EQ(e,t,n){const r=t?t.mark.marktype==="group"?t:t.mark.group:null;function i(s){var o=r,u;if(s){for(u=t;u;u=u.mark.group)if(u.mark.name===s){o=u;break}}return o&&o.mark&&o.mark.interactive?o:{}}function a(s){if(!s)return n;X(s)&&(s=i(s));const o=n.slice();for(;s;)o[0]-=s.x||0,o[1]-=s.y||0,s=s.mark&&s.mark.group;return o}return{view:Ht(e),item:Ht(t||{}),group:i,xy:a,x:s=>a(s)[0],y:s=>a(s)[1]}}const C5="view",SQ="timer",$Q="window",AQ={trap:!1};function kQ(e){const t=ce({defaults:{}},e),n=(r,i)=>{i.forEach(a=>{P(r[a])&&(r[a]=Ar(r[a]))})};return n(t.defaults,["prevent","allow"]),n(t,["view","window","selector"]),t}function uF(e,t,n,r){e._eventListeners.push({type:n,sources:Y(t),handler:r})}function CQ(e,t){var n=e._eventConfig.defaults,r=n.prevent,i=n.allow;return r===!1||i===!0?!1:r===!0||i===!1?!0:r?r[t]:i?!i[t]:e.preventDefault()}function Td(e,t,n){const r=e._eventConfig&&e._eventConfig[t];return r===!1||V(r)&&!r[n]?(e.warn(`Blocked ${t} ${n} event listener.`),!1):!0}function FQ(e,t,n){var r=this,i=new fg(n),a=function(c,l){r.runAsync(null,()=>{e===C5&&CQ(r,t)&&c.preventDefault(),i.receive(wQ(r,c,l))})},s;if(e===SQ)Td(r,"timer",t)&&r.timer(a,t);else if(e===C5)Td(r,"view",t)&&r.addEventListener(t,a,AQ);else if(e===$Q?Td(r,"window",t)&&typeof window<"u"&&(s=[window]):typeof document<"u"&&Td(r,"selector",t)&&(s=Array.from(document.querySelectorAll(e))),!s)r.warn("Can not resolve event source: "+e);else{for(var o=0,u=s.length;o=0;)t[r].stop();for(r=n.length;--r>=0;)for(a=n[r],i=a.sources.length;--i>=0;)a.sources[i].removeEventListener(a.type,a.handler);return e&&e.call(this,this._handler,null,null,null),this}function Rn(e,t,n){const r=document.createElement(e);for(const i in t)r.setAttribute(i,t[i]);return n!=null&&(r.textContent=n),r}const NQ="vega-bind",DQ="vega-bind-name",OQ="vega-bind-radio";function RQ(e,t,n){if(!t)return;const r=n.param;let i=n.state;return i||(i=n.state={elements:null,active:!1,set:null,update:s=>{s!=e.signal(r.signal)&&e.runAsync(null,()=>{i.source=!0,e.signal(r.signal,s)})}},r.debounce&&(i.update=Qy(r.debounce,i.update))),(r.input==null&&r.element?LQ:IQ)(i,t,r,e),i.active||(e.on(e._signals[r.signal],null,()=>{i.source?i.source=!1:i.set(e.signal(r.signal))}),i.active=!0),i}function LQ(e,t,n,r){const i=n.event||"input",a=()=>e.update(t.value);r.signal(n.signal,t.value),t.addEventListener(i,a),uF(r,t,i,a),e.set=s=>{t.value=s,t.dispatchEvent(PQ(i))}}function PQ(e){return typeof Event<"u"?new Event(e):{type:e}}function IQ(e,t,n,r){const i=r.signal(n.signal),a=Rn("div",{class:NQ}),s=n.input==="radio"?a:a.appendChild(Rn("label"));s.appendChild(Rn("span",{class:DQ},n.name||n.signal)),t.appendChild(a);let o=zQ;switch(n.input){case"checkbox":o=BQ;break;case"select":o=UQ;break;case"radio":o=jQ;break;case"range":o=qQ;break}o(e,s,n,i)}function zQ(e,t,n,r){const i=Rn("input");for(const a in n)a!=="signal"&&a!=="element"&&i.setAttribute(a==="input"?"type":a,n[a]);i.setAttribute("name",n.signal),i.value=r,t.appendChild(i),i.addEventListener("input",()=>e.update(i.value)),e.elements=[i],e.set=a=>i.value=a}function BQ(e,t,n,r){const i={type:"checkbox",name:n.signal};r&&(i.checked=!0);const a=Rn("input",i);t.appendChild(a),a.addEventListener("change",()=>e.update(a.checked)),e.elements=[a],e.set=s=>a.checked=!!s||null}function UQ(e,t,n,r){const i=Rn("select",{name:n.signal}),a=n.labels||[];n.options.forEach((s,o)=>{const u={value:s};C0(s,r)&&(u.selected=!0),i.appendChild(Rn("option",u,(a[o]||s)+""))}),t.appendChild(i),i.addEventListener("change",()=>{e.update(n.options[i.selectedIndex])}),e.elements=[i],e.set=s=>{for(let o=0,u=n.options.length;o{const u={type:"radio",name:n.signal,value:s};C0(s,r)&&(u.checked=!0);const c=Rn("input",u);c.addEventListener("change",()=>e.update(s));const l=Rn("label",{},(a[o]||s)+"");return l.prepend(c),i.appendChild(l),c}),e.set=s=>{const o=e.elements,u=o.length;for(let c=0;c{u.textContent=o.value,e.update(+o.value)};o.addEventListener("input",c),o.addEventListener("change",c),e.elements=[o],e.set=l=>{o.value=l,u.textContent=l}}function C0(e,t){return e===t||e+""==t+""}function cF(e,t,n,r,i,a){return t=t||new r(e.loader()),t.initialize(n,sF(e),oF(e),np(e),i,a).background(e.background())}function x7(e,t){return t?function(){try{t.apply(this,arguments)}catch(n){e.error(n)}}:null}function WQ(e,t,n,r){const i=new r(e.loader(),x7(e,e.tooltip())).scene(e.scenegraph().root).initialize(n,np(e),e);return t&&t.handlers().forEach(a=>{i.on(a.type,a.handler)}),i}function HQ(e,t){const n=this,r=n._renderType,i=n._eventConfig.bind,a=qg(r);e=n._el=e?sm(n,e,!0):null,pQ(n),a||n.error("Unrecognized renderer type: "+r);const s=a.handler||qa,o=e?a.renderer:a.headless;return n._renderer=o?cF(n,n._renderer,e,o):null,n._handler=WQ(n,n._handler,e,s),n._redraw=!0,e&&i!=="none"&&(t=t?n._elBind=sm(n,t,!0):e.appendChild(Rn("form",{class:"vega-bindings"})),n._bind.forEach(u=>{u.param.element&&i!=="container"&&(u.element=sm(n,u.param.element,!!u.param.input))}),n._bind.forEach(u=>{RQ(n,u.element||t,u)})),n}function sm(e,t,n){if(typeof t=="string")if(typeof document<"u"){if(t=document.querySelector(t),!t)return e.error("Signal bind element not found: "+t),null}else return e.error("DOM document instance not found."),null;if(t&&n)try{t.textContent=""}catch(r){t=null,e.error(r)}return t}const zc=e=>+e||0,GQ=e=>({top:e,bottom:e,left:e,right:e});function N5(e){return V(e)?{top:zc(e.top),bottom:zc(e.bottom),left:zc(e.left),right:zc(e.right)}:GQ(zc(e))}async function _7(e,t,n,r){const i=qg(t),a=i&&i.headless;return a||R("Unrecognized renderer type: "+t),await e.runAsync(),cF(e,null,null,a,n,r).renderAsync(e._scenegraph.root)}async function YQ(e,t){e!==wa.Canvas&&e!==wa.SVG&&e!==wa.PNG&&R("Unrecognized image type: "+e);const n=await _7(this,e,t);return e===wa.SVG?XQ(n.svg(),"image/svg+xml"):n.canvas().toDataURL("image/png")}function XQ(e,t){const n=new Blob([e],{type:t});return window.URL.createObjectURL(n)}async function VQ(e,t){return(await _7(this,wa.Canvas,e,t)).canvas()}async function KQ(e){return(await _7(this,wa.SVG,e)).svg()}function JQ(e,t,n){return rF(e,Su,rf,n).parse(t)}function QQ(e){var t=this._runtime.scales;return ie(t,e)||R("Unrecognized scale or projection: "+e),t[e].value}var lF="width",fF="height",w7="padding",D5={skip:!0};function dF(e,t){var n=e.autosize(),r=e.padding();return t-(n&&n.contains===w7?r.left+r.right:0)}function hF(e,t){var n=e.autosize(),r=e.padding();return t-(n&&n.contains===w7?r.top+r.bottom:0)}function ZQ(e){var t=e._signals,n=t[lF],r=t[fF],i=t[w7];function a(){e._autosize=e._resize=1}e._resizeWidth=e.add(null,o=>{e._width=o.size,e._viewWidth=dF(e,o.size),a()},{size:n}),e._resizeHeight=e.add(null,o=>{e._height=o.size,e._viewHeight=hF(e,o.size),a()},{size:r});const s=e.add(null,a,{pad:i});e._resizeWidth.rank=n.rank+1,e._resizeHeight.rank=r.rank+1,s.rank=i.rank+1}function eZ(e,t,n,r,i,a){this.runAfter(s=>{let o=0;s._autosize=0,s.width()!==n&&(o=1,s.signal(lF,n,D5),s._resizeWidth.skip(!0)),s.height()!==r&&(o=1,s.signal(fF,r,D5),s._resizeHeight.skip(!0)),s._viewWidth!==e&&(s._resize=1,s._viewWidth=e),s._viewHeight!==t&&(s._resize=1,s._viewHeight=t),(s._origin[0]!==i[0]||s._origin[1]!==i[1])&&(s._resize=1,s._origin=i),o&&s.run("enter"),a&&s.runAfter(u=>u.resize())},!1,1)}function tZ(e){return this._runtime.getState(e||{data:nZ,signals:rZ,recurse:!0})}function nZ(e,t){return t.modified&&P(t.input.value)&&!e.startsWith("_:vega:_")}function rZ(e,t){return!(e==="parent"||t instanceof Su.proxy)}function iZ(e){return this.runAsync(null,t=>{t._trigger=!1,t._runtime.setState(e)},t=>{t._trigger=!0}),this}function aZ(e,t){function n(r){e({timestamp:Date.now(),elapsed:r})}this._timers.push(LG(n,t))}function sZ(e,t,n,r){const i=e.element();i&&i.setAttribute("title",oZ(r))}function oZ(e){return e==null?"":P(e)?gF(e):V(e)&&!Ca(e)?uZ(e):e+""}function uZ(e){return Object.keys(e).map(t=>{const n=e[t];return t+": "+(P(n)?gF(n):pF(n))}).join(` -`)}function gF(e){return"["+e.map(pF).join(", ")+"]"}function pF(e){return P(e)?"[…]":V(e)&&!Ca(e)?"{…}":e}function cZ(){if(this.renderer()==="canvas"&&this._renderer._canvas){let e=null;const t=()=>{e!=null&&e();const n=matchMedia(`(resolution: ${window.devicePixelRatio}dppx)`);n.addEventListener("change",t),e=()=>{n.removeEventListener("change",t)},this._renderer._canvas.getContext("2d").pixelRatio=window.devicePixelRatio||1,this._redraw=!0,this._resize=1,this.resize().runAsync()};t()}}function mF(e,t){const n=this;if(t=t||{},uu.call(n),t.loader&&n.loader(t.loader),t.logger&&n.logger(t.logger),t.logLevel!=null&&n.logLevel(t.logLevel),t.locale||e.locale){const a=ce({},e.locale,t.locale);n.locale(pE(a.number,a.time))}n._el=null,n._elBind=null,n._renderType=t.renderer||wa.Canvas,n._scenegraph=new n9;const r=n._scenegraph.root;n._renderer=null,n._tooltip=t.tooltip||sZ,n._redraw=!0,n._handler=new qa().scene(r),n._globalCursor=!1,n._preventDefault=!1,n._timers=[],n._eventListeners=[],n._resizeListeners=[],n._eventConfig=kQ(e.eventConfig),n.globalCursor(n._eventConfig.globalCursor);const i=JQ(n,e,t.expr);n._runtime=i,n._signals=i.signals,n._bind=(e.bindings||[]).map(a=>({state:null,param:ce({},a)})),i.root&&i.root.set(r),r.source=i.data.root.input,n.pulse(i.data.root.input,n.changeset().insert(r.items)),n._width=n.width(),n._height=n.height(),n._viewWidth=dF(n,n._width),n._viewHeight=hF(n,n._height),n._origin=[0,0],n._resize=0,n._autosize=1,ZQ(n),mQ(n),bQ(n),n.description(e.description),t.hover&&n.hover(),t.container&&n.initialize(t.container,t.bind),t.watchPixelRatio&&n._watchPixelRatio()}function Nd(e,t){return ie(e._signals,t)?e._signals[t]:R("Unrecognized signal name: "+H(t))}function bF(e,t){const n=(e._targets||[]).filter(r=>r._update&&r._update.handler===t);return n.length?n[0]:null}function O5(e,t,n,r){let i=bF(n,r);return i||(i=x7(e,()=>r(t,n.value)),i.handler=r,e.on(n,null,i)),e}function R5(e,t,n){const r=bF(t,n);return r&&t._targets.remove(r),e}W(mF,uu,{async evaluate(e,t,n){if(await uu.prototype.evaluate.call(this,e,t),this._redraw||this._resize)try{this._renderer&&(this._resize&&(this._resize=0,_Q(this)),await this._renderer.renderAsync(this._scenegraph.root)),this._redraw=!1}catch(r){this.error(r)}return n&&Gd(this,n),this},dirty(e){this._redraw=!0,this._renderer&&this._renderer.dirty(e)},description(e){if(arguments.length){const t=e!=null?e+"":null;return t!==this._desc&&aF(this._el,this._desc=t),this}return this._desc},container(){return this._el},scenegraph(){return this._scenegraph},origin(){return this._origin.slice()},signal(e,t,n){const r=Nd(this,e);return arguments.length===1?r.value:this.update(r,t,n)},width(e){return arguments.length?this.signal("width",e):this.signal("width")},height(e){return arguments.length?this.signal("height",e):this.signal("height")},padding(e){return arguments.length?this.signal("padding",N5(e)):N5(this.signal("padding"))},autosize(e){return arguments.length?this.signal("autosize",e):this.signal("autosize")},background(e){return arguments.length?this.signal("background",e):this.signal("background")},renderer(e){return arguments.length?(qg(e)||R("Unrecognized renderer type: "+e),e!==this._renderType&&(this._renderType=e,this._resetRenderer()),this):this._renderType},tooltip(e){return arguments.length?(e!==this._tooltip&&(this._tooltip=e,this._resetRenderer()),this):this._tooltip},loader(e){return arguments.length?(e!==this._loader&&(uu.prototype.loader.call(this,e),this._resetRenderer()),this):this._loader},resize(){return this._autosize=1,this.touch(Nd(this,"autosize"))},_resetRenderer(){this._renderer&&(this._renderer=null,this.initialize(this._el,this._elBind))},_resizeView:eZ,addEventListener(e,t,n){let r=t;return n&&n.trap===!1||(r=x7(this,t),r.raw=t),this._handler.on(e,r),this},removeEventListener(e,t){for(var n=this._handler.handlers(e),r=n.length,i,a;--r>=0;)if(a=n[r].type,i=n[r].handler,e===a&&(t===i||t===i.raw)){this._handler.off(a,i);break}return this},addResizeListener(e){const t=this._resizeListeners;return t.includes(e)||t.push(e),this},removeResizeListener(e){var t=this._resizeListeners,n=t.indexOf(e);return n>=0&&t.splice(n,1),this},addSignalListener(e,t){return O5(this,e,Nd(this,e),t)},removeSignalListener(e,t){return R5(this,Nd(this,e),t)},addDataListener(e,t){return O5(this,e,k0(this,e).values,t)},removeDataListener(e,t){return R5(this,k0(this,e).values,t)},globalCursor(e){if(arguments.length){if(this._globalCursor!==!!e){const t=cy(this,null);this._globalCursor=!!e,t&&cy(this,t)}return this}else return this._globalCursor},preventDefault(e){return arguments.length?(this._preventDefault=e,this):this._preventDefault},timer:aZ,events:FQ,finalize:TQ,hover:MQ,data:yQ,change:tp,insert:vQ,remove:xQ,scale:QQ,initialize:HQ,toImageURL:YQ,toCanvas:VQ,toSVG:KQ,getState:tZ,setState:iZ,_watchPixelRatio:cZ});const lZ="view",F0="[",M0="]",yF="{",vF="}",fZ=":",xF=",",dZ="@",hZ=">",gZ=/[[\]{}]/,pZ={"*":1,arc:1,area:1,group:1,image:1,line:1,path:1,rect:1,rule:1,shape:1,symbol:1,text:1,trail:1};let _F,wF;function as(e,t,n){return _F=t||lZ,wF=n||pZ,EF(e.trim()).map(ly)}function mZ(e){return wF[e]}function Ml(e,t,n,r,i){const a=e.length;let s=0,o;for(;t=0?--s:r&&r.indexOf(o)>=0&&++s}return t}function EF(e){const t=[],n=e.length;let r=0,i=0;for(;i' after between selector: "+e;r=r.map(ly);const i=ly(e.slice(1).trim());return i.between?{between:r,stream:i}:(i.between=r,i)}function yZ(e){const t={source:_F},n=[];let r=[0,0],i=0,a=0,s=e.length,o=0,u,c;if(e[s-1]===vF){if(o=e.lastIndexOf(yF),o>=0){try{r=vZ(e.substring(o+1,s-1))}catch{throw"Invalid throttle specification: "+e}e=e.slice(0,o).trim(),s=e.length}else throw"Unmatched right brace: "+e;o=0}if(!s)throw e;if(e[0]===dZ&&(i=++o),u=Ml(e,o,fZ),u1?(t.type=n[1],i?t.markname=n[0].slice(1):mZ(n[0])?t.marktype=n[0]:t.source=n[0]):t.type=n[0],t.type.slice(-1)==="!"&&(t.consume=!0,t.type=t.type.slice(0,-1)),c!=null&&(t.filter=c),r[0]&&(t.throttle=r[0]),r[1]&&(t.debounce=r[1]),t}function vZ(e){const t=e.split(xF);if(!e.length||t.length>2)throw e;return t.map(n=>{const r=+n;if(r!==r)throw e;return r})}function xZ(e){return V(e)?e:{type:e||"pad"}}const Bc=e=>+e||0,_Z=e=>({top:e,bottom:e,left:e,right:e});function wZ(e){return V(e)?e.signal?e:{top:Bc(e.top),bottom:Bc(e.bottom),left:Bc(e.left),right:Bc(e.right)}:_Z(Bc(e))}const mt=e=>V(e)&&!P(e)?ce({},e):{value:e};function L5(e,t,n,r){return n!=null?(V(n)&&!P(n)||P(n)&&n.length&&V(n[0])?e.update[t]=n:e[r||"enter"][t]={value:n},1):0}function Ct(e,t,n){for(const r in t)L5(e,r,t[r]);for(const r in n)L5(e,r,n[r],"update")}function hc(e,t,n){for(const r in t)n&&ie(n,r)||(e[r]=ce(e[r]||{},t[r]));return e}function eu(e,t){return t&&(t.enter&&t.enter[e]||t.update&&t.update[e])}const E7="mark",S7="frame",$7="scope",EZ="axis",SZ="axis-domain",$Z="axis-grid",AZ="axis-label",kZ="axis-tick",CZ="axis-title",FZ="legend",MZ="legend-band",TZ="legend-entry",NZ="legend-gradient",SF="legend-label",DZ="legend-symbol",OZ="legend-title",RZ="title",LZ="title-text",PZ="title-subtitle";function IZ(e,t,n,r,i){const a={},s={};let o,u,c,l;u="lineBreak",t==="text"&&i[u]!=null&&!eu(u,e)&&om(a,u,i[u]),(n=="legend"||String(n).startsWith("axis"))&&(n=null),l=n===S7?i.group:n===E7?ce({},i.mark,i[t]):null;for(u in l)c=eu(u,e)||(u==="fill"||u==="stroke")&&(eu("fill",e)||eu("stroke",e)),c||om(a,u,l[u]);Y(r).forEach(f=>{const d=i.style&&i.style[f];for(const h in d)eu(h,e)||om(a,h,d[h])}),e=ce({},e);for(u in a)l=a[u],l.signal?(o=o||{})[u]=l:s[u]=l;return e.enter=ce(s,e.enter),o&&(e.update=ce(o,e.update)),e}function om(e,t,n){e[t]=n&&n.signal?{signal:n.signal}:{value:n}}const $F=e=>X(e)?H(e):e.signal?`(${e.signal})`:AF(e);function rp(e){if(e.gradient!=null)return BZ(e);let t=e.signal?`(${e.signal})`:e.color?zZ(e.color):e.field!=null?AF(e.field):e.value!==void 0?H(e.value):void 0;return e.scale!=null&&(t=UZ(e,t)),t===void 0&&(t=null),e.exponent!=null&&(t=`pow(${t},${ch(e.exponent)})`),e.mult!=null&&(t+=`*${ch(e.mult)}`),e.offset!=null&&(t+=`+${ch(e.offset)}`),e.round&&(t=`round(${t})`),t}const Dd=(e,t,n,r)=>`(${e}(${[t,n,r].map(rp).join(",")})+'')`;function zZ(e){return e.c?Dd("hcl",e.h,e.c,e.l):e.h||e.s?Dd("hsl",e.h,e.s,e.l):e.l||e.a?Dd("lab",e.l,e.a,e.b):e.r||e.g||e.b?Dd("rgb",e.r,e.g,e.b):null}function BZ(e){const t=[e.start,e.stop,e.count].map(n=>n==null?null:H(n));for(;t.length&&xe(t)==null;)t.pop();return t.unshift($F(e.gradient)),`gradient(${t.join(",")})`}function ch(e){return V(e)?"("+rp(e)+")":e}function AF(e){return kF(V(e)?e:{datum:e})}function kF(e){let t,n,r;if(e.signal)t="datum",r=e.signal;else if(e.group||e.parent){for(n=Math.max(1,e.level||1),t="item";n-- >0;)t+=".mark.group";e.parent?(r=e.parent,t+=".datum"):r=e.group}else e.datum?(t="datum",r=e.datum):R("Invalid field reference: "+H(e));return e.signal||(r=X(r)?di(r).map(H).join("]["):kF(r)),t+"["+r+"]"}function UZ(e,t){const n=$F(e.scale);return e.range!=null?t=`lerp(_range(${n}), ${+e.range})`:(t!==void 0&&(t=`_scale(${n}, ${t})`),e.band&&(t=(t?t+"+":"")+`_bandwidth(${n})`+(+e.band==1?"":"*"+ch(e.band)),e.extra&&(t=`(datum.extra ? _scale(${n}, datum.extra.value) : ${t})`)),t==null&&(t="0")),t}function jZ(e){let t="";return e.forEach(n=>{const r=rp(n);t+=n.test?`(${n.test})?${r}:`:r}),xe(t)===":"&&(t+="null"),t}function CF(e,t,n,r,i,a){const s={};a=a||{},a.encoders={$encode:s},e=IZ(e,t,n,r,i.config);for(const o in e)s[o]=qZ(e[o],t,a,i);return a}function qZ(e,t,n,r){const i={},a={};for(const s in e)e[s]!=null&&(i[s]=HZ(WZ(e[s]),r,n,a));return{$expr:{marktype:t,channels:i},$fields:Object.keys(a),$output:Object.keys(e)}}function WZ(e){return P(e)?jZ(e):rp(e)}function HZ(e,t,n,r){const i=ui(e,t);return i.$fields.forEach(a=>r[a]=1),ce(n,i.$params),i.$expr}const GZ="outer",YZ=["value","update","init","react","bind"];function P5(e,t){R(e+' for "outer" push: '+H(t))}function FF(e,t){const n=e.name;if(e.push===GZ)t.signals[n]||P5("No prior signal definition",n),YZ.forEach(r=>{e[r]!==void 0&&P5("Invalid property ",r)});else{const r=t.addSignal(n,e.value);e.react===!1&&(r.react=!1),e.bind&&t.addBinding(n,e.bind)}}function fy(e,t,n,r){this.id=-1,this.type=e,this.value=t,this.params=n,r&&(this.parent=r)}function ip(e,t,n,r){return new fy(e,t,n,r)}function T0(e,t){return ip("operator",e,t)}function te(e){const t={$ref:e.id};return e.id<0&&(e.refs=e.refs||[]).push(t),t}function af(e,t){return t?{$field:e,$name:t}:{$field:e}}const dy=af("key");function I5(e,t){return{$compare:e,$order:t}}function XZ(e,t){const n={$key:e};return t&&(n.$flat=!0),n}const VZ="ascending",KZ="descending";function JZ(e){return V(e)?(e.order===KZ?"-":"+")+ap(e.op,e.field):""}function ap(e,t){return(e&&e.signal?"$"+e.signal:e||"")+(e&&t?"_":"")+(t&&t.signal?"$"+t.signal:t||"")}const A7="scope",hy="view";function ot(e){return e&&e.signal}function QZ(e){return e&&e.expr}function lh(e){if(ot(e))return!0;if(V(e)){for(const t in e)if(lh(e[t]))return!0}return!1}function hr(e,t){return e??t}function Gs(e){return e&&e.signal||e}const z5="timer";function sf(e,t){return(e.merge?eee:e.stream?tee:e.type?nee:R("Invalid stream specification: "+H(e)))(e,t)}function ZZ(e){return e===A7?hy:e||hy}function eee(e,t){const n=e.merge.map(i=>sf(i,t)),r=k7({merge:n},e,t);return t.addStream(r).id}function tee(e,t){const n=sf(e.stream,t),r=k7({stream:n},e,t);return t.addStream(r).id}function nee(e,t){let n;e.type===z5?(n=t.event(z5,e.throttle),e={between:e.between,filter:e.filter}):n=t.event(ZZ(e.source),e.type);const r=k7({stream:n},e,t);return Object.keys(r).length===1?n:t.addStream(r).id}function k7(e,t,n){let r=t.between;return r&&(r.length!==2&&R('Stream "between" parameter must have 2 entries: '+H(t)),e.between=[sf(r[0],n),sf(r[1],n)]),r=t.filter?[].concat(t.filter):[],(t.marktype||t.markname||t.markrole)&&r.push(ree(t.marktype,t.markname,t.markrole)),t.source===A7&&r.push("inScope(event.item)"),r.length&&(e.filter=ui("("+r.join(")&&(")+")",n).$expr),(r=t.throttle)!=null&&(e.throttle=+r),(r=t.debounce)!=null&&(e.debounce=+r),t.consume&&(e.consume=!0),e}function ree(e,t,n){const r="event.item";return r+(e&&e!=="*"?"&&"+r+".mark.marktype==='"+e+"'":"")+(n?"&&"+r+".mark.role==='"+n+"'":"")+(t?"&&"+r+".mark.name==='"+t+"'":"")}const iee={code:"_.$value",ast:{type:"Identifier",value:"value"}};function aee(e,t,n){const r=e.encode,i={target:n};let a=e.events,s=e.update,o=[];a||R("Signal update missing events specification."),X(a)&&(a=as(a,t.isSubscope()?A7:hy)),a=Y(a).filter(u=>u.signal||u.scale?(o.push(u),0):1),o.length>1&&(o=[oee(o)]),a.length&&o.push(a.length>1?{merge:a}:a[0]),r!=null&&(s&&R("Signal encode and update are mutually exclusive."),s="encode(item(),"+H(r)+")"),i.update=X(s)?ui(s,t):s.expr!=null?ui(s.expr,t):s.value!=null?s.value:s.signal!=null?{$expr:iee,$params:{$value:t.signalRef(s.signal)}}:R("Invalid signal update specification."),e.force&&(i.options={force:!0}),o.forEach(u=>t.addUpdate(ce(see(u,t),i)))}function see(e,t){return{source:e.signal?t.signalRef(e.signal):e.scale?t.scaleRef(e.scale):sf(e,t)}}function oee(e){return{signal:"["+e.map(t=>t.scale?'scale("'+t.scale+'")':t.signal)+"]"}}function uee(e,t){const n=t.getSignal(e.name);let r=e.update;e.init&&(r?R("Signals can not include both init and update expressions."):(r=e.init,n.initonly=!0)),r&&(r=ui(r,t),n.update=r.$expr,n.params=r.$params),e.on&&e.on.forEach(i=>aee(i,t,n.id))}const Le=e=>(t,n,r)=>ip(e,n,t||void 0,r),MF=Le("aggregate"),cee=Le("axisticks"),TF=Le("bound"),Nr=Le("collect"),B5=Le("compare"),lee=Le("datajoin"),NF=Le("encode"),fee=Le("expression"),dee=Le("facet"),hee=Le("field"),gee=Le("key"),pee=Le("legendentries"),mee=Le("load"),bee=Le("mark"),yee=Le("multiextent"),vee=Le("multivalues"),xee=Le("overlap"),_ee=Le("params"),DF=Le("prefacet"),wee=Le("projection"),Eee=Le("proxy"),See=Le("relay"),OF=Le("render"),$ee=Le("scale"),Co=Le("sieve"),Aee=Le("sortitems"),RF=Le("viewlayout"),kee=Le("values");let Cee=0;const LF={min:"min",max:"max",count:"sum"};function Fee(e,t){const n=e.type||"linear";A$(n)||R("Unrecognized scale type: "+H(n)),t.addScale(e.name,{type:n,domain:void 0})}function Mee(e,t){const n=t.getScale(e.name).params;let r;n.domain=PF(e.domain,e,t),e.range!=null&&(n.range=zF(e,t,n)),e.interpolate!=null&&Bee(e.interpolate,n),e.nice!=null&&(n.nice=zee(e.nice)),e.bins!=null&&(n.bins=Iee(e.bins,t));for(r in e)ie(n,r)||r==="name"||(n[r]=Xn(e[r],t))}function Xn(e,t){return V(e)?e.signal?t.signalRef(e.signal):R("Unsupported object: "+H(e)):e}function fh(e,t){return e.signal?t.signalRef(e.signal):e.map(n=>Xn(n,t))}function sp(e){R("Can not find data set: "+H(e))}function PF(e,t,n){if(!e){(t.domainMin!=null||t.domainMax!=null)&&R("No scale domain defined for domainMin/domainMax to override.");return}return e.signal?n.signalRef(e.signal):(P(e)?Tee:e.fields?Dee:Nee)(e,t,n)}function Tee(e,t,n){return e.map(r=>Xn(r,n))}function Nee(e,t,n){const r=n.getData(e.data);return r||sp(e.data),Fu(t.type)?r.valuesRef(n,e.field,IF(e.sort,!1)):F$(t.type)?r.domainRef(n,e.field):r.extentRef(n,e.field)}function Dee(e,t,n){const r=e.data,i=e.fields.reduce((a,s)=>(s=X(s)?{data:r,field:s}:P(s)||s.signal?Oee(s,n):s,a.push(s),a),[]);return(Fu(t.type)?Ree:F$(t.type)?Lee:Pee)(e,n,i)}function Oee(e,t){const n="_:vega:_"+Cee++,r=Nr({});if(P(e))r.value={$ingest:e};else if(e.signal){const i="setdata("+H(n)+","+e.signal+")";r.params.input=t.signalRef(i)}return t.addDataPipeline(n,[r,Co({})]),{data:n,field:"data"}}function Ree(e,t,n){const r=IF(e.sort,!0);let i,a;const s=n.map(c=>{const l=t.getData(c.data);return l||sp(c.data),l.countsRef(t,c.field,r)}),o={groupby:dy,pulse:s};r&&(i=r.op||"count",a=r.field?ap(i,r.field):"count",o.ops=[LF[i]],o.fields=[t.fieldRef(a)],o.as=[a]),i=t.add(MF(o));const u=t.add(Nr({pulse:te(i)}));return a=t.add(kee({field:dy,sort:t.sortRef(r),pulse:te(u)})),te(a)}function IF(e,t){return e&&(!e.field&&!e.op?V(e)?e.field="key":e={field:"key"}:!e.field&&e.op!=="count"?R("No field provided for sort aggregate op: "+e.op):t&&e.field&&e.op&&!LF[e.op]&&R("Multiple domain scales can not be sorted using "+e.op)),e}function Lee(e,t,n){const r=n.map(i=>{const a=t.getData(i.data);return a||sp(i.data),a.domainRef(t,i.field)});return te(t.add(vee({values:r})))}function Pee(e,t,n){const r=n.map(i=>{const a=t.getData(i.data);return a||sp(i.data),a.extentRef(t,i.field)});return te(t.add(yee({extents:r})))}function Iee(e,t){return e.signal||P(e)?fh(e,t):t.objectProperty(e)}function zee(e){return V(e)?{interval:Xn(e.interval),step:Xn(e.step)}:Xn(e)}function Bee(e,t){t.interpolate=Xn(e.type||e),e.gamma!=null&&(t.interpolateGamma=Xn(e.gamma))}function zF(e,t,n){const r=t.config.range;let i=e.range;if(i.signal)return t.signalRef(i.signal);if(X(i)){if(r&&ie(r,i))return e=ce({},e,{range:r[i]}),zF(e,t,n);i==="width"?i=[0,{signal:"width"}]:i==="height"?i=Fu(e.type)?[0,{signal:"height"}]:[{signal:"height"},0]:R("Unrecognized scale range value: "+H(i))}else if(i.scheme){n.scheme=P(i.scheme)?fh(i.scheme,t):Xn(i.scheme,t),i.extent&&(n.schemeExtent=fh(i.extent,t)),i.count&&(n.schemeCount=Xn(i.count,t));return}else if(i.step){n.rangeStep=Xn(i.step,t);return}else{if(Fu(e.type)&&!P(i))return PF(i,e,t);P(i)||R("Unsupported range type: "+H(i))}return i.map(a=>(P(a)?fh:Xn)(a,t))}function Uee(e,t){const n=t.config.projection||{},r={};for(const i in e)i!=="name"&&(r[i]=gy(e[i],i,t));for(const i in n)r[i]==null&&(r[i]=gy(n[i],i,t));t.addProjection(e.name,r)}function gy(e,t,n){return P(e)?e.map(r=>gy(r,t,n)):V(e)?e.signal?n.signalRef(e.signal):t==="fit"?e:R("Unsupported parameter object: "+H(e)):e}const Dr="top",gc="left",pc="right",Ha="bottom",BF="center",jee="vertical",qee="start",Wee="middle",Hee="end",py="index",C7="label",Gee="offset",Iu="perc",Yee="perc2",Kn="value",qf="guide-label",F7="guide-title",Xee="group-title",Vee="group-subtitle",U5="symbol",dh="gradient",my="discrete",by="size",Kee="shape",Jee="fill",Qee="stroke",Zee="strokeWidth",ete="strokeDash",tte="opacity",M7=[by,Kee,Jee,Qee,Zee,ete,tte],Wf={name:1,style:1,interactive:1},_e={value:0},Jn={value:1},op="group",UF="rect",T7="rule",nte="symbol",Fo="text";function of(e){return e.type=op,e.interactive=e.interactive||!1,e}function An(e,t){const n=(r,i)=>hr(e[r],hr(t[r],i));return n.isVertical=r=>jee===hr(e.direction,t.direction||(r?t.symbolDirection:t.gradientDirection)),n.gradientLength=()=>hr(e.gradientLength,t.gradientLength||t.gradientWidth),n.gradientThickness=()=>hr(e.gradientThickness,t.gradientThickness||t.gradientHeight),n.entryColumns=()=>hr(e.columns,hr(t.columns,+n.isVertical(!0))),n}function jF(e,t){const n=t&&(t.update&&t.update[e]||t.enter&&t.enter[e]);return n&&n.signal?n:n?n.value:null}function rte(e,t,n){const r=t.config.style[n];return r&&r[e]}function up(e,t,n){return`item.anchor === '${qee}' ? ${e} : item.anchor === '${Hee}' ? ${t} : ${n}`}const N7=up(H(gc),H(pc),H(BF));function ite(e){const t=e("tickBand");let n=e("tickOffset"),r,i;return t?t.signal?(r={signal:`(${t.signal}) === 'extent' ? 1 : 0.5`},i={signal:`(${t.signal}) === 'extent'`},V(n)||(n={signal:`(${t.signal}) === 'extent' ? 0 : ${n}`})):t==="extent"?(r=1,i=!0,n=0):(r=.5,i=!1):(r=e("bandPosition"),i=e("tickExtra")),{extra:i,band:r,offset:n}}function qF(e,t){return t?e?V(e)?Object.assign({},e,{offset:qF(e.offset,t)}):{value:e,offset:t}:t:e}function zn(e,t){return t?(e.name=t.name,e.style=t.style||e.style,e.interactive=!!t.interactive,e.encode=hc(e.encode,t,Wf)):e.interactive=!1,e}function ate(e,t,n,r){const i=An(e,n),a=i.isVertical(),s=i.gradientThickness(),o=i.gradientLength();let u,c,l,f,d;a?(c=[0,1],l=[0,0],f=s,d=o):(c=[0,0],l=[1,0],f=o,d=s);const h={enter:u={opacity:_e,x:_e,y:_e,width:mt(f),height:mt(d)},update:ce({},u,{opacity:Jn,fill:{gradient:t,start:c,stop:l}}),exit:{opacity:_e}};return Ct(h,{stroke:i("gradientStrokeColor"),strokeWidth:i("gradientStrokeWidth")},{opacity:i("gradientOpacity")}),zn({type:UF,role:NZ,encode:h},r)}function ste(e,t,n,r,i){const a=An(e,n),s=a.isVertical(),o=a.gradientThickness(),u=a.gradientLength();let c,l,f,d,h="";s?(c="y",f="y2",l="x",d="width",h="1-"):(c="x",f="x2",l="y",d="height");const g={opacity:_e,fill:{scale:t,field:Kn}};g[c]={signal:h+"datum."+Iu,mult:u},g[l]=_e,g[f]={signal:h+"datum."+Yee,mult:u},g[d]=mt(o);const p={enter:g,update:ce({},g,{opacity:Jn}),exit:{opacity:_e}};return Ct(p,{stroke:a("gradientStrokeColor"),strokeWidth:a("gradientStrokeWidth")},{opacity:a("gradientOpacity")}),zn({type:UF,role:MZ,key:Kn,from:i,encode:p},r)}const ote=`datum.${Iu}<=0?"${gc}":datum.${Iu}>=1?"${pc}":"${BF}"`,ute=`datum.${Iu}<=0?"${Ha}":datum.${Iu}>=1?"${Dr}":"${Wee}"`;function j5(e,t,n,r){const i=An(e,t),a=i.isVertical(),s=mt(i.gradientThickness()),o=i.gradientLength();let u=i("labelOverlap"),c,l,f,d,h="";const g={enter:c={opacity:_e},update:l={opacity:Jn,text:{field:C7}},exit:{opacity:_e}};return Ct(g,{fill:i("labelColor"),fillOpacity:i("labelOpacity"),font:i("labelFont"),fontSize:i("labelFontSize"),fontStyle:i("labelFontStyle"),fontWeight:i("labelFontWeight"),limit:hr(e.labelLimit,t.gradientLabelLimit)}),a?(c.align={value:"left"},c.baseline=l.baseline={signal:ute},f="y",d="x",h="1-"):(c.align=l.align={signal:ote},c.baseline={value:"top"},f="x",d="y"),c[f]=l[f]={signal:h+"datum."+Iu,mult:o},c[d]=l[d]=s,s.offset=hr(e.labelOffset,t.gradientLabelOffset)||0,u=u?{separation:i("labelSeparation"),method:u,order:"datum."+py}:void 0,zn({type:Fo,role:SF,style:qf,key:Kn,from:r,encode:g,overlap:u},n)}function cte(e,t,n,r,i){const a=An(e,t),s=n.entries,o=!!(s&&s.interactive),u=s?s.name:void 0,c=a("clipHeight"),l=a("symbolOffset"),f={data:"value"},d=`(${i}) ? datum.${Gee} : datum.${by}`,h=c?mt(c):{field:by},g=`datum.${py}`,p=`max(1, ${i})`;let m,b,y,v,x;h.mult=.5,m={enter:b={opacity:_e,x:{signal:d,mult:.5,offset:l},y:h},update:y={opacity:Jn,x:b.x,y:b.y},exit:{opacity:_e}};let _=null,E=null;e.fill||(_=t.symbolBaseFillColor,E=t.symbolBaseStrokeColor),Ct(m,{fill:a("symbolFillColor",_),shape:a("symbolType"),size:a("symbolSize"),stroke:a("symbolStrokeColor",E),strokeDash:a("symbolDash"),strokeDashOffset:a("symbolDashOffset"),strokeWidth:a("symbolStrokeWidth")},{opacity:a("symbolOpacity")}),M7.forEach(F=>{e[F]&&(y[F]=b[F]={scale:e[F],field:Kn})});const w=zn({type:nte,role:DZ,key:Kn,from:f,clip:c?!0:void 0,encode:m},n.symbols),S=mt(l);S.offset=a("labelOffset"),m={enter:b={opacity:_e,x:{signal:d,offset:S},y:h},update:y={opacity:Jn,text:{field:C7},x:b.x,y:b.y},exit:{opacity:_e}},Ct(m,{align:a("labelAlign"),baseline:a("labelBaseline"),fill:a("labelColor"),fillOpacity:a("labelOpacity"),font:a("labelFont"),fontSize:a("labelFontSize"),fontStyle:a("labelFontStyle"),fontWeight:a("labelFontWeight"),limit:a("labelLimit")});const $=zn({type:Fo,role:SF,style:qf,key:Kn,from:f,encode:m},n.labels);return m={enter:{noBound:{value:!c},width:_e,height:c?mt(c):_e,opacity:_e},exit:{opacity:_e},update:y={opacity:Jn,row:{signal:null},column:{signal:null}}},a.isVertical(!0)?(v=`ceil(item.mark.items.length / ${p})`,y.row.signal=`${g}%${v}`,y.column.signal=`floor(${g} / ${v})`,x={field:["row",g]}):(y.row.signal=`floor(${g} / ${p})`,y.column.signal=`${g} % ${p}`,x={field:g}),y.column.signal=`(${i})?${y.column.signal}:${g}`,r={facet:{data:r,name:"value",groupby:py}},of({role:$7,from:r,encode:hc(m,s,Wf),marks:[w,$],name:u,interactive:o,sort:x})}function lte(e,t){const n=An(e,t);return{align:n("gridAlign"),columns:n.entryColumns(),center:{row:!0,column:!1},padding:{row:n("rowPadding"),column:n("columnPadding")}}}const D7='item.orient === "left"',O7='item.orient === "right"',cp=`(${D7} || ${O7})`,fte=`datum.vgrad && ${cp}`,dte=up('"top"','"bottom"','"middle"'),hte=up('"right"','"left"','"center"'),gte=`datum.vgrad && ${O7} ? (${hte}) : (${cp} && !(datum.vgrad && ${D7})) ? "left" : ${N7}`,pte=`item._anchor || (${cp} ? "middle" : "start")`,mte=`${fte} ? (${D7} ? -90 : 90) : 0`,bte=`${cp} ? (datum.vgrad ? (${O7} ? "bottom" : "top") : ${dte}) : "top"`;function yte(e,t,n,r){const i=An(e,t),a={enter:{opacity:_e},update:{opacity:Jn,x:{field:{group:"padding"}},y:{field:{group:"padding"}}},exit:{opacity:_e}};return Ct(a,{orient:i("titleOrient"),_anchor:i("titleAnchor"),anchor:{signal:pte},angle:{signal:mte},align:{signal:gte},baseline:{signal:bte},text:e.title,fill:i("titleColor"),fillOpacity:i("titleOpacity"),font:i("titleFont"),fontSize:i("titleFontSize"),fontStyle:i("titleFontStyle"),fontWeight:i("titleFontWeight"),limit:i("titleLimit"),lineHeight:i("titleLineHeight")},{align:i("titleAlign"),baseline:i("titleBaseline")}),zn({type:Fo,role:OZ,style:F7,from:r,encode:a},n)}function vte(e,t){let n;return V(e)&&(e.signal?n=e.signal:e.path?n="pathShape("+q5(e.path)+")":e.sphere&&(n="geoShape("+q5(e.sphere)+', {type: "Sphere"})')),n?t.signalRef(n):!!e}function q5(e){return V(e)&&e.signal?e.signal:H(e)}function WF(e){const t=e.role||"";return!t.indexOf("axis")||!t.indexOf("legend")||!t.indexOf("title")?t:e.type===op?$7:t||E7}function xte(e){return{marktype:e.type,name:e.name||void 0,role:e.role||WF(e),zindex:+e.zindex||void 0,aria:e.aria,description:e.description}}function _te(e,t){return e&&e.signal?t.signalRef(e.signal):e!==!1}function R7(e,t){const n=CE(e.type);n||R("Unrecognized transform type: "+H(e.type));const r=ip(n.type.toLowerCase(),null,HF(n,e,t));return e.signal&&t.addSignal(e.signal,t.proxy(r)),r.metadata=n.metadata||{},r}function HF(e,t,n){const r={},i=e.params.length;for(let a=0;aW5(e,a,n)):W5(e,i,n)}function W5(e,t,n){const r=e.type;if(ot(t))return G5(r)?R("Expression references can not be signals."):um(r)?n.fieldRef(t):Y5(r)?n.compareRef(t):n.signalRef(t.signal);{const i=e.expr||um(r);return i&&$te(t)?n.exprRef(t.expr,t.as):i&&Ate(t)?af(t.field,t.as):G5(r)?ui(t,n):kte(r)?te(n.getData(t).values):um(r)?af(t):Y5(r)?n.compareRef(t):t}}function Ete(e,t,n){return X(t.from)||R('Lookup "from" parameter must be a string literal.'),n.getData(t.from).lookupRef(n,t.key)}function Ste(e,t,n){const r=t[e.name];return e.array?(P(r)||R("Expected an array of sub-parameters. Instead: "+H(r)),r.map(i=>H5(e,i,n))):H5(e,r,n)}function H5(e,t,n){const r=e.params.length;let i;for(let s=0;se&&e.expr,Ate=e=>e&&e.field,kte=e=>e==="data",G5=e=>e==="expr",um=e=>e==="field",Y5=e=>e==="compare";function Cte(e,t,n){let r,i,a,s,o;return e?(r=e.facet)&&(t||R("Only group marks can be faceted."),r.field!=null?s=o=hh(r,n):(e.data?o=te(n.getData(e.data).aggregate):(a=R7(ce({type:"aggregate",groupby:Y(r.groupby)},r.aggregate),n),a.params.key=n.keyRef(r.groupby),a.params.pulse=hh(r,n),s=o=te(n.add(a))),i=n.keyRef(r.groupby,!0))):s=te(n.add(Nr(null,[{}]))),s||(s=hh(e,n)),{key:i,pulse:s,parent:o}}function hh(e,t){return e.$ref?e:e.data&&e.data.$ref?e.data:te(t.getData(e.data).output)}function uo(e,t,n,r,i){this.scope=e,this.input=t,this.output=n,this.values=r,this.aggregate=i,this.index={}}uo.fromEntries=function(e,t){const n=t.length,r=t[n-1],i=t[n-2];let a=t[0],s=null,o=1;for(a&&a.type==="load"&&(a=t[1]),e.add(t[0]);of??"null").join(",")+"),0)",l=ui(c,t);u.update=l.$expr,u.params=l.$params}function lp(e,t){const n=WF(e),r=e.type===op,i=e.from&&e.from.facet,a=e.overlap;let s=e.layout||n===$7||n===S7,o,u,c,l,f,d,h;const g=n===E7||s||i,p=Cte(e.from,r,t);u=t.add(lee({key:p.key||(e.key?af(e.key):void 0),pulse:p.pulse,clean:!r}));const m=te(u);u=c=t.add(Nr({pulse:m})),u=t.add(bee({markdef:xte(e),interactive:_te(e.interactive,t),clip:vte(e.clip,t),context:{$context:!0},groups:t.lookup(),parent:t.signals.parent?t.signalRef("parent"):null,index:t.markpath(),pulse:te(u)}));const b=te(u);u=l=t.add(NF(CF(e.encode,e.type,n,e.style,t,{mod:!1,pulse:b}))),u.params.parent=t.encode(),e.transform&&e.transform.forEach(E=>{const w=R7(E,t),S=w.metadata;(S.generates||S.changes)&&R("Mark transforms should not generate new data."),S.nomod||(l.params.mod=!0),w.params.pulse=te(u),t.add(u=w)}),e.sort&&(u=t.add(Aee({sort:t.compareRef(e.sort),pulse:te(u)})));const y=te(u);(i||s)&&(s=t.add(RF({layout:t.objectProperty(e.layout),legends:t.legends,mark:b,pulse:y})),d=te(s));const v=t.add(TF({mark:b,pulse:d||y}));h=te(v),r&&(g&&(o=t.operators,o.pop(),s&&o.pop()),t.pushState(y,d||h,m),i?Fte(e,t,p):g?Mte(e,t,p):t.parse(e),t.popState(),g&&(s&&o.push(s),o.push(v))),a&&(h=Tte(a,h,t));const x=t.add(OF({pulse:h})),_=t.add(Co({pulse:te(x)},void 0,t.parent()));e.name!=null&&(f=e.name,t.addData(f,new uo(t,c,x,_)),e.on&&e.on.forEach(E=>{(E.insert||E.remove||E.toggle)&&R("Marks only support modify triggers."),YF(E,t,f)}))}function Tte(e,t,n){const r=e.method,i=e.bound,a=e.separation,s={separation:ot(a)?n.signalRef(a.signal):a,method:ot(r)?n.signalRef(r.signal):r,pulse:t};if(e.order&&(s.sort=n.compareRef({field:e.order})),i){const o=i.tolerance;s.boundTolerance=ot(o)?n.signalRef(o.signal):+o,s.boundScale=n.scaleRef(i.scale),s.boundOrient=i.orient}return te(n.add(xee(s)))}function Nte(e,t){const n=t.config.legend,r=e.encode||{},i=An(e,n),a=r.legend||{},s=a.name||void 0,o=a.interactive,u=a.style,c={};let l=0,f,d,h;M7.forEach(v=>e[v]?(c[v]=e[v],l=l||e[v]):0),l||R("Missing valid scale for legend.");const g=Dte(e,t.scaleType(l)),p={title:e.title!=null,scales:c,type:g,vgrad:g!=="symbol"&&i.isVertical()},m=te(t.add(Nr(null,[p]))),b={enter:{x:{value:0},y:{value:0}}},y=te(t.add(pee(d={type:g,scale:t.scaleRef(l),count:t.objectProperty(i("tickCount")),limit:t.property(i("symbolLimit")),values:t.objectProperty(e.values),minstep:t.property(e.tickMinStep),formatType:t.property(e.formatType),formatSpecifier:t.property(e.format)})));return g===dh?(h=[ate(e,l,n,r.gradient),j5(e,n,r.labels,y)],d.count=d.count||t.signalRef(`max(2,2*floor((${Gs(i.gradientLength())})/100))`)):g===my?h=[ste(e,l,n,r.gradient,y),j5(e,n,r.labels,y)]:(f=lte(e,n),h=[cte(e,n,r,y,Gs(f.columns))],d.size=Lte(e,t,h[0].marks)),h=[of({role:TZ,from:m,encode:b,marks:h,layout:f,interactive:o})],p.title&&h.push(yte(e,n,r.title,m)),lp(of({role:FZ,from:m,encode:hc(Rte(i,e,n),a,Wf),marks:h,aria:i("aria"),description:i("description"),zindex:i("zindex"),name:s,interactive:o,style:u}),t)}function Dte(e,t){let n=e.type||U5;return!e.type&&Ote(e)===1&&(e.fill||e.stroke)&&(n=T4(t)?dh:ob(t)?my:U5),n!==dh?n:ob(t)?my:dh}function Ote(e){return M7.reduce((t,n)=>t+(e[n]?1:0),0)}function Rte(e,t,n){const r={enter:{},update:{}};return Ct(r,{orient:e("orient"),offset:e("offset"),padding:e("padding"),titlePadding:e("titlePadding"),cornerRadius:e("cornerRadius"),fill:e("fillColor"),stroke:e("strokeColor"),strokeWidth:n.strokeWidth,strokeDash:n.strokeDash,x:e("legendX"),y:e("legendY"),format:t.format,formatType:t.formatType}),r}function Lte(e,t,n){const r=Gs(V5("size",e,n)),i=Gs(V5("strokeWidth",e,n)),a=Gs(Pte(n[1].encode,t,qf));return ui(`max(ceil(sqrt(${r})+${i}),${a})`,t)}function V5(e,t,n){return t[e]?`scale("${t[e]}",datum)`:jF(e,n[0].encode)}function Pte(e,t,n){return jF("fontSize",e)||rte("fontSize",t,n)}const Ite=`item.orient==="${gc}"?-90:item.orient==="${pc}"?90:0`;function zte(e,t){e=X(e)?{text:e}:e;const n=An(e,t.config.title),r=e.encode||{},i=r.group||{},a=i.name||void 0,s=i.interactive,o=i.style,u=[],c={},l=te(t.add(Nr(null,[c])));return u.push(jte(e,n,Bte(e),l)),e.subtitle&&u.push(qte(e,n,r.subtitle,l)),lp(of({role:RZ,from:l,encode:Ute(n,i),marks:u,aria:n("aria"),description:n("description"),zindex:n("zindex"),name:a,interactive:s,style:o}),t)}function Bte(e){const t=e.encode;return t&&t.title||ce({name:e.name,interactive:e.interactive,style:e.style},t)}function Ute(e,t){const n={enter:{},update:{}};return Ct(n,{orient:e("orient"),anchor:e("anchor"),align:{signal:N7},angle:{signal:Ite},limit:e("limit"),frame:e("frame"),offset:e("offset")||0,padding:e("subtitlePadding")}),hc(n,t,Wf)}function jte(e,t,n,r){const i={value:0},a=e.text,s={enter:{opacity:i},update:{opacity:{value:1}},exit:{opacity:i}};return Ct(s,{text:a,align:{signal:"item.mark.group.align"},angle:{signal:"item.mark.group.angle"},limit:{signal:"item.mark.group.limit"},baseline:"top",dx:t("dx"),dy:t("dy"),fill:t("color"),font:t("font"),fontSize:t("fontSize"),fontStyle:t("fontStyle"),fontWeight:t("fontWeight"),lineHeight:t("lineHeight")},{align:t("align"),angle:t("angle"),baseline:t("baseline")}),zn({type:Fo,role:LZ,style:Xee,from:r,encode:s},n)}function qte(e,t,n,r){const i={value:0},a=e.subtitle,s={enter:{opacity:i},update:{opacity:{value:1}},exit:{opacity:i}};return Ct(s,{text:a,align:{signal:"item.mark.group.align"},angle:{signal:"item.mark.group.angle"},limit:{signal:"item.mark.group.limit"},baseline:"top",dx:t("dx"),dy:t("dy"),fill:t("subtitleColor"),font:t("subtitleFont"),fontSize:t("subtitleFontSize"),fontStyle:t("subtitleFontStyle"),fontWeight:t("subtitleFontWeight"),lineHeight:t("subtitleLineHeight")},{align:t("align"),angle:t("angle"),baseline:t("baseline")}),zn({type:Fo,role:PZ,style:Vee,from:r,encode:s},n)}function Wte(e,t){const n=[];e.transform&&e.transform.forEach(r=>{n.push(R7(r,t))}),e.on&&e.on.forEach(r=>{YF(r,t,e.name)}),t.addDataPipeline(e.name,Hte(e,t,n))}function Hte(e,t,n){const r=[];let i=null,a=!1,s=!1,o,u,c,l,f;for(e.values?ot(e.values)||lh(e.format)?(r.push(K5(t,e)),r.push(i=ys())):r.push(i=ys({$ingest:e.values,$format:e.format})):e.url?lh(e.url)||lh(e.format)?(r.push(K5(t,e)),r.push(i=ys())):r.push(i=ys({$request:e.url,$format:e.format})):e.source&&(i=o=Y(e.source).map(d=>te(t.getData(d).output)),r.push(null)),u=0,c=n.length;ue===Ha||e===Dr,fp=(e,t,n)=>ot(e)?Vte(e.signal,t,n):e===gc||e===Dr?t:n,bt=(e,t,n)=>ot(e)?Yte(e.signal,t,n):XF(e)?t:n,Er=(e,t,n)=>ot(e)?Xte(e.signal,t,n):XF(e)?n:t,VF=(e,t,n)=>ot(e)?Kte(e.signal,t,n):e===Dr?{value:t}:{value:n},Gte=(e,t,n)=>ot(e)?Jte(e.signal,t,n):e===pc?{value:t}:{value:n},Yte=(e,t,n)=>KF(`${e} === '${Dr}' || ${e} === '${Ha}'`,t,n),Xte=(e,t,n)=>KF(`${e} !== '${Dr}' && ${e} !== '${Ha}'`,t,n),Vte=(e,t,n)=>L7(`${e} === '${gc}' || ${e} === '${Dr}'`,t,n),Kte=(e,t,n)=>L7(`${e} === '${Dr}'`,t,n),Jte=(e,t,n)=>L7(`${e} === '${pc}'`,t,n),KF=(e,t,n)=>(t=t!=null?mt(t):t,n=n!=null?mt(n):n,J5(t)&&J5(n)?(t=t?t.signal||H(t.value):null,n=n?n.signal||H(n.value):null,{signal:`${e} ? (${t}) : (${n})`}):[ce({test:e},t)].concat(n||[])),J5=e=>e==null||Object.keys(e).length===1,L7=(e,t,n)=>({signal:`${e} ? (${ou(t)}) : (${ou(n)})`}),Qte=(e,t,n,r,i)=>({signal:(r!=null?`${e} === '${gc}' ? (${ou(r)}) : `:"")+(n!=null?`${e} === '${Ha}' ? (${ou(n)}) : `:"")+(i!=null?`${e} === '${pc}' ? (${ou(i)}) : `:"")+(t!=null?`${e} === '${Dr}' ? (${ou(t)}) : `:"")+"(null)"}),ou=e=>ot(e)?e.signal:e==null?null:H(e),Zte=(e,t)=>t===0?0:ot(e)?{signal:`(${e.signal}) * ${t}`}:{value:e*t},du=(e,t)=>{const n=e.signal;return n&&n.endsWith("(null)")?{signal:n.slice(0,-6)+t.signal}:e};function Yo(e,t,n,r){let i;if(t&&ie(t,e))return t[e];if(ie(n,e))return n[e];if(e.startsWith("title")){switch(e){case"titleColor":i="fill";break;case"titleFont":case"titleFontSize":case"titleFontWeight":i=e[5].toLowerCase()+e.slice(6)}return r[F7][i]}else if(e.startsWith("label")){switch(e){case"labelColor":i="fill";break;case"labelFont":case"labelFontSize":i=e[5].toLowerCase()+e.slice(6)}return r[qf][i]}return null}function Q5(e){const t={};for(const n of e)if(n)for(const r in n)t[r]=1;return Object.keys(t)}function ene(e,t){var n=t.config,r=n.style,i=n.axis,a=t.scaleType(e.scale)==="band"&&n.axisBand,s=e.orient,o,u,c;if(ot(s)){const f=Q5([n.axisX,n.axisY]),d=Q5([n.axisTop,n.axisBottom,n.axisLeft,n.axisRight]);o={};for(c of f)o[c]=bt(s,Yo(c,n.axisX,i,r),Yo(c,n.axisY,i,r));u={};for(c of d)u[c]=Qte(s.signal,Yo(c,n.axisTop,i,r),Yo(c,n.axisBottom,i,r),Yo(c,n.axisLeft,i,r),Yo(c,n.axisRight,i,r))}else o=s===Dr||s===Ha?n.axisX:n.axisY,u=n["axis"+s[0].toUpperCase()+s.slice(1)];return o||u||a?ce({},i,o,u,a):i}function tne(e,t,n,r){const i=An(e,t),a=e.orient;let s,o;const u={enter:s={opacity:_e},update:o={opacity:Jn},exit:{opacity:_e}};Ct(u,{stroke:i("domainColor"),strokeCap:i("domainCap"),strokeDash:i("domainDash"),strokeDashOffset:i("domainDashOffset"),strokeWidth:i("domainWidth"),strokeOpacity:i("domainOpacity")});const c=Z5(e,0),l=Z5(e,1);return s.x=o.x=bt(a,c,_e),s.x2=o.x2=bt(a,l),s.y=o.y=Er(a,c,_e),s.y2=o.y2=Er(a,l),zn({type:T7,role:SZ,from:r,encode:u},n)}function Z5(e,t){return{scale:e.scale,range:t}}function nne(e,t,n,r,i){const a=An(e,t),s=e.orient,o=e.gridScale,u=fp(s,1,-1),c=rne(e.offset,u);let l,f,d;const h={enter:l={opacity:_e},update:d={opacity:Jn},exit:f={opacity:_e}};Ct(h,{stroke:a("gridColor"),strokeCap:a("gridCap"),strokeDash:a("gridDash"),strokeDashOffset:a("gridDashOffset"),strokeOpacity:a("gridOpacity"),strokeWidth:a("gridWidth")});const g={scale:e.scale,field:Kn,band:i.band,extra:i.extra,offset:i.offset,round:a("tickRound")},p=bt(s,{signal:"height"},{signal:"width"}),m=o?{scale:o,range:0,mult:u,offset:c}:{value:0,offset:c},b=o?{scale:o,range:1,mult:u,offset:c}:ce(p,{mult:u,offset:c});return l.x=d.x=bt(s,g,m),l.y=d.y=Er(s,g,m),l.x2=d.x2=Er(s,b),l.y2=d.y2=bt(s,b),f.x=bt(s,g),f.y=Er(s,g),zn({type:T7,role:$Z,key:Kn,from:r,encode:h},n)}function rne(e,t){if(t!==1)if(!V(e))e=ot(t)?{signal:`(${t.signal}) * (${e||0})`}:t*(e||0);else{let n=e=ce({},e);for(;n.mult!=null;)if(V(n.mult))n=n.mult=ce({},n.mult);else return n.mult=ot(t)?{signal:`(${n.mult}) * (${t.signal})`}:n.mult*t,e;n.mult=t}return e}function ine(e,t,n,r,i,a){const s=An(e,t),o=e.orient,u=fp(o,-1,1);let c,l,f;const d={enter:c={opacity:_e},update:f={opacity:Jn},exit:l={opacity:_e}};Ct(d,{stroke:s("tickColor"),strokeCap:s("tickCap"),strokeDash:s("tickDash"),strokeDashOffset:s("tickDashOffset"),strokeOpacity:s("tickOpacity"),strokeWidth:s("tickWidth")});const h=mt(i);h.mult=u;const g={scale:e.scale,field:Kn,band:a.band,extra:a.extra,offset:a.offset,round:s("tickRound")};return f.y=c.y=bt(o,_e,g),f.y2=c.y2=bt(o,h),l.x=bt(o,g),f.x=c.x=Er(o,_e,g),f.x2=c.x2=Er(o,h),l.y=Er(o,g),zn({type:T7,role:kZ,key:Kn,from:r,encode:d},n)}function cm(e,t,n,r,i){return{signal:'flush(range("'+e+'"), scale("'+e+'", datum.value), '+t+","+n+","+r+","+i+")"}}function ane(e,t,n,r,i,a){const s=An(e,t),o=e.orient,u=e.scale,c=fp(o,-1,1),l=Gs(s("labelFlush")),f=Gs(s("labelFlushOffset")),d=s("labelAlign"),h=s("labelBaseline");let g=l===0||!!l,p;const m=mt(i);m.mult=c,m.offset=mt(s("labelPadding")||0),m.offset.mult=c;const b={scale:u,field:Kn,band:.5,offset:qF(a.offset,s("labelOffset"))},y=bt(o,g?cm(u,l,'"left"','"right"','"center"'):{value:"center"},Gte(o,"left","right")),v=bt(o,VF(o,"bottom","top"),g?cm(u,l,'"top"','"bottom"','"middle"'):{value:"middle"}),x=cm(u,l,`-(${f})`,f,0);g=g&&f;const _={opacity:_e,x:bt(o,b,m),y:Er(o,b,m)},E={enter:_,update:p={opacity:Jn,text:{field:C7},x:_.x,y:_.y,align:y,baseline:v},exit:{opacity:_e,x:_.x,y:_.y}};Ct(E,{dx:!d&&g?bt(o,x):null,dy:!h&&g?Er(o,x):null}),Ct(E,{angle:s("labelAngle"),fill:s("labelColor"),fillOpacity:s("labelOpacity"),font:s("labelFont"),fontSize:s("labelFontSize"),fontWeight:s("labelFontWeight"),fontStyle:s("labelFontStyle"),limit:s("labelLimit"),lineHeight:s("labelLineHeight")},{align:d,baseline:h});const w=s("labelBound");let S=s("labelOverlap");return S=S||w?{separation:s("labelSeparation"),method:S,order:"datum.index",bound:w?{scale:u,orient:o,tolerance:w}:null}:void 0,p.align!==y&&(p.align=du(p.align,y)),p.baseline!==v&&(p.baseline=du(p.baseline,v)),zn({type:Fo,role:AZ,style:qf,key:Kn,from:r,encode:E,overlap:S},n)}function sne(e,t,n,r){const i=An(e,t),a=e.orient,s=fp(a,-1,1);let o,u;const c={enter:o={opacity:_e,anchor:mt(i("titleAnchor",null)),align:{signal:N7}},update:u=ce({},o,{opacity:Jn,text:mt(e.title)}),exit:{opacity:_e}},l={signal:`lerp(range("${e.scale}"), ${up(0,1,.5)})`};return u.x=bt(a,l),u.y=Er(a,l),o.angle=bt(a,_e,Zte(s,90)),o.baseline=bt(a,VF(a,Ha,Dr),{value:Ha}),u.angle=o.angle,u.baseline=o.baseline,Ct(c,{fill:i("titleColor"),fillOpacity:i("titleOpacity"),font:i("titleFont"),fontSize:i("titleFontSize"),fontStyle:i("titleFontStyle"),fontWeight:i("titleFontWeight"),limit:i("titleLimit"),lineHeight:i("titleLineHeight")},{align:i("titleAlign"),angle:i("titleAngle"),baseline:i("titleBaseline")}),one(i,a,c,n),c.update.align=du(c.update.align,o.align),c.update.angle=du(c.update.angle,o.angle),c.update.baseline=du(c.update.baseline,o.baseline),zn({type:Fo,role:CZ,style:F7,from:r,encode:c},n)}function one(e,t,n,r){const i=(o,u)=>o!=null?(n.update[u]=du(mt(o),n.update[u]),!1):!eu(u,r),a=i(e("titleX"),"x"),s=i(e("titleY"),"y");n.enter.auto=s===a?mt(s):bt(t,mt(s),mt(a))}function une(e,t){const n=ene(e,t),r=e.encode||{},i=r.axis||{},a=i.name||void 0,s=i.interactive,o=i.style,u=An(e,n),c=ite(u),l={scale:e.scale,ticks:!!u("ticks"),labels:!!u("labels"),grid:!!u("grid"),domain:!!u("domain"),title:e.title!=null},f=te(t.add(Nr({},[l]))),d=te(t.add(cee({scale:t.scaleRef(e.scale),extra:t.property(c.extra),count:t.objectProperty(e.tickCount),values:t.objectProperty(e.values),minstep:t.property(e.tickMinStep),formatType:t.property(e.formatType),formatSpecifier:t.property(e.format)}))),h=[];let g;return l.grid&&h.push(nne(e,n,r.grid,d,c)),l.ticks&&(g=u("tickSize"),h.push(ine(e,n,r.ticks,d,g,c))),l.labels&&(g=l.ticks?g:0,h.push(ane(e,n,r.labels,d,g,c))),l.domain&&h.push(tne(e,n,r.domain,f)),l.title&&h.push(sne(e,n,r.title,f)),lp(of({role:EZ,from:f,encode:hc(cne(u,e),i,Wf),marks:h,aria:u("aria"),description:u("description"),zindex:u("zindex"),name:a,interactive:s,style:o}),t)}function cne(e,t){const n={enter:{},update:{}};return Ct(n,{orient:e("orient"),offset:e("offset")||0,position:hr(t.position,0),titlePadding:e("titlePadding"),minExtent:e("minExtent"),maxExtent:e("maxExtent"),range:{signal:`abs(span(range("${t.scale}")))`},translate:e("translate"),format:t.format,formatType:t.formatType}),n}function JF(e,t,n){const r=Y(e.signals),i=Y(e.scales);return n||r.forEach(a=>FF(a,t)),Y(e.projections).forEach(a=>Uee(a,t)),i.forEach(a=>Fee(a,t)),Y(e.data).forEach(a=>Wte(a,t)),i.forEach(a=>Mee(a,t)),(n||r).forEach(a=>uee(a,t)),Y(e.axes).forEach(a=>une(a,t)),Y(e.marks).forEach(a=>lp(a,t)),Y(e.legends).forEach(a=>Nte(a,t)),e.title&&zte(e.title,t),t.parseLambdas(),t}const lne=e=>hc({enter:{x:{value:0},y:{value:0}},update:{width:{signal:"width"},height:{signal:"height"}}},e);function fne(e,t){const n=t.config,r=te(t.root=t.add(T0())),i=dne(e,n);i.forEach(c=>FF(c,t)),t.description=e.description||n.description,t.eventConfig=n.events,t.legends=t.objectProperty(n.legend&&n.legend.layout),t.locale=n.locale;const a=t.add(Nr()),s=t.add(NF(CF(lne(e.encode),op,S7,e.style,t,{pulse:te(a)}))),o=t.add(RF({layout:t.objectProperty(e.layout),legends:t.legends,autosize:t.signalRef("autosize"),mark:r,pulse:te(s)}));t.operators.pop(),t.pushState(te(s),te(o),null),JF(e,t,i),t.operators.push(o);let u=t.add(TF({mark:r,pulse:te(o)}));return u=t.add(OF({pulse:te(u)})),u=t.add(Co({pulse:te(u)})),t.addData("root",new uo(t,a,a,u)),t}function jc(e,t){return t&&t.signal?{name:e,update:t.signal}:{name:e,value:t}}function dne(e,t){const n=s=>hr(e[s],t[s]),r=[jc("background",n("background")),jc("autosize",xZ(n("autosize"))),jc("padding",wZ(n("padding"))),jc("width",n("width")||0),jc("height",n("height")||0)],i=r.reduce((s,o)=>(s[o.name]=o,s),{}),a={};return Y(e.signals).forEach(s=>{ie(i,s.name)?s=ce(i[s.name],s):r.push(s),a[s.name]=s}),Y(t.signals).forEach(s=>{!ie(a,s.name)&&!ie(i,s.name)&&r.push(s)}),r}function QF(e,t){this.config=e||{},this.options=t||{},this.bindings=[],this.field={},this.signals={},this.lambdas={},this.scales={},this.events={},this.data={},this.streams=[],this.updates=[],this.operators=[],this.eventConfig=null,this.locale=null,this._id=0,this._subid=0,this._nextsub=[0],this._parent=[],this._encode=[],this._lookup=[],this._markpath=[]}function ex(e){this.config=e.config,this.options=e.options,this.legends=e.legends,this.field=Object.create(e.field),this.signals=Object.create(e.signals),this.lambdas=Object.create(e.lambdas),this.scales=Object.create(e.scales),this.events=Object.create(e.events),this.data=Object.create(e.data),this.streams=[],this.updates=[],this.operators=[],this._id=0,this._subid=++e._nextsub[0],this._nextsub=e._nextsub,this._parent=e._parent.slice(),this._encode=e._encode.slice(),this._lookup=e._lookup.slice(),this._markpath=e._markpath}QF.prototype=ex.prototype={parse(e){return JF(e,this)},fork(){return new ex(this)},isSubscope(){return this._subid>0},toRuntime(){return this.finish(),{description:this.description,operators:this.operators,streams:this.streams,updates:this.updates,bindings:this.bindings,eventConfig:this.eventConfig,locale:this.locale}},id(){return(this._subid?this._subid+":":0)+this._id++},add(e){return this.operators.push(e),e.id=this.id(),e.refs&&(e.refs.forEach(t=>{t.$ref=e.id}),e.refs=null),e},proxy(e){const t=e instanceof fy?te(e):e;return this.add(Eee({value:t}))},addStream(e){return this.streams.push(e),e.id=this.id(),e},addUpdate(e){return this.updates.push(e),e},finish(){let e,t;this.root&&(this.root.root=!0);for(e in this.signals)this.signals[e].signal=e;for(e in this.scales)this.scales[e].scale=e;function n(r,i,a){let s,o;r&&(s=r.data||(r.data={}),o=s[i]||(s[i]=[]),o.push(a))}for(e in this.data){t=this.data[e],n(t.input,e,"input"),n(t.output,e,"output"),n(t.values,e,"values");for(const r in t.index)n(t.index[r],e,"index:"+r)}return this},pushState(e,t,n){this._encode.push(te(this.add(Co({pulse:e})))),this._parent.push(t),this._lookup.push(n?te(this.proxy(n)):null),this._markpath.push(-1)},popState(){this._encode.pop(),this._parent.pop(),this._lookup.pop(),this._markpath.pop()},parent(){return xe(this._parent)},encode(){return xe(this._encode)},lookup(){return xe(this._lookup)},markpath(){const e=this._markpath;return++e[e.length-1]},fieldRef(e,t){if(X(e))return af(e,t);e.signal||R("Unsupported field reference: "+H(e));const n=e.signal;let r=this.field[n];if(!r){const i={name:this.signalRef(n)};t&&(i.as=t),this.field[n]=r=te(this.add(hee(i)))}return r},compareRef(e){let t=!1;const n=a=>ot(a)?(t=!0,this.signalRef(a.signal)):QZ(a)?(t=!0,this.exprRef(a.expr)):a,r=Y(e.field).map(n),i=Y(e.order).map(n);return t?te(this.add(B5({fields:r,orders:i}))):I5(r,i)},keyRef(e,t){let n=!1;const r=a=>ot(a)?(n=!0,te(i[a.signal])):a,i=this.signals;return e=Y(e).map(r),n?te(this.add(gee({fields:e,flat:t}))):XZ(e,t)},sortRef(e){if(!e)return e;const t=ap(e.op,e.field),n=e.order||VZ;return n.signal?te(this.add(B5({fields:t,orders:this.signalRef(n.signal)}))):I5(t,n)},event(e,t){const n=e+":"+t;if(!this.events[n]){const r=this.id();this.streams.push({id:r,source:e,type:t}),this.events[n]=r}return this.events[n]},hasOwnSignal(e){return ie(this.signals,e)},addSignal(e,t){this.hasOwnSignal(e)&&R("Duplicate signal name: "+H(e));const n=t instanceof fy?t:this.add(T0(t));return this.signals[e]=n},getSignal(e){return this.signals[e]||R("Unrecognized signal name: "+H(e)),this.signals[e]},signalRef(e){return this.signals[e]?te(this.signals[e]):(ie(this.lambdas,e)||(this.lambdas[e]=this.add(T0(null))),te(this.lambdas[e]))},parseLambdas(){const e=Object.keys(this.lambdas);for(let t=0,n=e.length;t0?",":"")+(V(i)?i.signal||P7(i):H(i))}return n+"]"}function gne(e){let t="{",n=0,r,i;for(r in e)i=e[r],t+=(++n>1?",":"")+H(r)+":"+(V(i)?i.signal||P7(i):H(i));return t+"}"}function pne(){const e="sans-serif",r="#4c78a8",i="#000",a="#888",s="#ddd";return{description:"Vega visualization",padding:0,autosize:"pad",background:null,events:{defaults:{allow:["wheel"]}},group:null,mark:null,arc:{fill:r},area:{fill:r},image:null,line:{stroke:r,strokeWidth:2},path:{stroke:r},rect:{fill:r},rule:{stroke:i},shape:{stroke:r},symbol:{fill:r,size:64},text:{fill:i,font:e,fontSize:11},trail:{fill:r,size:2},style:{"guide-label":{fill:i,font:e,fontSize:10},"guide-title":{fill:i,font:e,fontSize:11,fontWeight:"bold"},"group-title":{fill:i,font:e,fontSize:13,fontWeight:"bold"},"group-subtitle":{fill:i,font:e,fontSize:12},point:{size:30,strokeWidth:2,shape:"circle"},circle:{size:30,strokeWidth:2},square:{size:30,strokeWidth:2,shape:"square"},cell:{fill:"transparent",stroke:s},view:{fill:"transparent"}},title:{orient:"top",anchor:"middle",offset:4,subtitlePadding:3},axis:{minExtent:0,maxExtent:200,bandPosition:.5,domain:!0,domainWidth:1,domainColor:a,grid:!1,gridWidth:1,gridColor:s,labels:!0,labelAngle:0,labelLimit:180,labelOffset:0,labelPadding:2,ticks:!0,tickColor:a,tickOffset:0,tickRound:!0,tickSize:5,tickWidth:1,titlePadding:4},axisBand:{tickOffset:-.5},projection:{type:"mercator"},legend:{orient:"right",padding:0,gridAlign:"each",columnPadding:10,rowPadding:2,symbolDirection:"vertical",gradientDirection:"vertical",gradientLength:200,gradientThickness:16,gradientStrokeColor:s,gradientStrokeWidth:0,gradientLabelOffset:2,labelAlign:"left",labelBaseline:"middle",labelLimit:160,labelOffset:4,labelOverlap:!0,symbolLimit:30,symbolType:"circle",symbolSize:100,symbolOffset:0,symbolStrokeWidth:1.5,symbolBaseFillColor:"transparent",symbolBaseStrokeColor:a,titleLimit:180,titleOrient:"top",titlePadding:5,layout:{offset:18,direction:"horizontal",left:{direction:"vertical"},right:{direction:"vertical"}}},range:{category:{scheme:"tableau10"},ordinal:{scheme:"blues"},heatmap:{scheme:"yellowgreenblue"},ramp:{scheme:"blues"},diverging:{scheme:"blueorange",extent:[1,0]},symbol:["circle","square","triangle-up","cross","diamond","triangle-right","triangle-down","triangle-left"]}}}function mne(e,t,n){return V(e)||R("Input Vega specification must be an object."),t=ec(pne(),t,e.config),fne(e,new QF(t,n)).toRuntime()}var bne="5.27.0";ce(Su,wI,qq,_W,sG,eY,kX,sX,FX,ZX,cV,mV);const yne=Object.freeze(Object.defineProperty({__proto__:null,Bounds:nt,CanvasHandler:qa,CanvasRenderer:Xl,DATE:xn,DAY:Lt,DAYOFYEAR:si,Dataflow:uu,Debug:K_,Error:Hy,EventStream:fg,Gradient:W$,GroupItem:Og,HOURS:Ln,Handler:ja,HybridHandler:f9,HybridRenderer:Yh,Info:V_,Item:Dg,MILLISECONDS:kr,MINUTES:Pn,MONTH:Ut,Marks:In,MultiPulse:m2,None:X_,Operator:Pe,Parameters:lg,Pulse:Ma,QUARTER:vn,RenderType:wa,Renderer:Un,ResourceLoader:B4,SECONDS:er,SVGHandler:i9,SVGRenderer:jg,SVGStringRenderer:l9,Scenegraph:n9,TIME_UNITS:s2,Transform:N,View:mF,WEEK:at,Warn:Gy,YEAR:At,accessor:$n,accessorFields:Bt,accessorName:Je,array:Y,ascending:Z0,bandwidthNRD:x2,bin:TE,bootstrapCI:NE,boundClip:UA,boundContext:Tf,boundItem:hb,boundMark:cA,boundStroke:ea,changeset:So,clampRange:ow,codegenExpression:qC,compare:Jy,constant:Ht,cumulativeLogNormal:A2,cumulativeNormal:hg,cumulativeUniform:M2,dayofyear:Iw,debounce:Qy,defaultLocale:f2,definition:CE,densityLogNormal:$2,densityNormal:_2,densityUniform:F2,domChild:it,domClear:Wn,domCreate:xa,domFind:r9,dotbin:DE,error:R,expressionFunction:tt,extend:ce,extent:ri,extentIndex:uw,falsy:la,fastmap:nc,field:Qn,flush:cw,font:zg,fontFamily:Of,fontSize:gi,format:Hd,formatLocale:Sh,formats:g2,hasOwnProperty:ie,id:mf,identity:Wt,inferType:bE,inferTypes:yE,ingest:Fe,inherits:W,inrange:nu,interpolate:N4,interpolateColors:Tg,interpolateRange:M$,intersect:PA,intersectBoxLine:ru,intersectPath:U4,intersectPoint:j4,intersectRule:Q$,isArray:P,isBoolean:Za,isDate:Ca,isFunction:le,isIterable:lw,isNumber:we,isObject:V,isRegExp:fw,isString:X,isTuple:ug,key:Zy,lerp:dw,lineHeight:Ba,loader:sg,locale:pE,logger:Yy,lruCache:hw,markup:c9,merge:gw,mergeConfig:ec,multiLineOffset:Z4,one:Zu,pad:pw,panLinear:tw,panLog:nw,panPow:rw,panSymlog:iw,parse:mne,parseExpression:l7,parseSelector:as,path:yg,pathCurves:P4,pathEqual:jA,pathParse:Mu,pathRectangle:Y$,pathRender:Wl,pathSymbols:G$,pathTrail:X$,peek:xe,point:Ug,projection:M9,quantileLogNormal:k2,quantileNormal:gg,quantileUniform:T2,quantiles:y2,quantizeInterpolator:T$,quarter:aw,quartiles:v2,get random(){return tr},randomInteger:AP,randomKDE:E2,randomLCG:$P,randomLogNormal:RE,randomMixture:LE,randomNormal:w2,randomUniform:PE,read:_E,regressionConstant:N2,regressionExp:zE,regressionLinear:D2,regressionLoess:jE,regressionLog:IE,regressionPoly:UE,regressionPow:BE,regressionQuad:O2,renderModule:qg,repeat:Kc,resetDefaultLocale:wL,resetSVGClipId:K$,resetSVGDefIds:oq,responseType:xE,runtimeContext:rF,sampleCurve:mg,sampleLogNormal:S2,sampleNormal:dg,sampleUniform:C2,scale:Ae,sceneEqual:d9,sceneFromJSON:fA,scenePickVisit:Ih,sceneToJSON:lA,sceneVisit:Cr,sceneZOrder:q4,scheme:D4,serializeXML:CA,setHybridRendererOptions:rq,setRandom:EP,span:bf,splitAccessPath:di,stringValue:H,textMetrics:On,timeBin:tE,timeFloor:Hw,timeFormatLocale:Il,timeInterval:sc,timeOffset:Xw,timeSequence:Jw,timeUnitSpecifier:Pw,timeUnits:o2,toBoolean:e2,toDate:t2,toNumber:Pt,toSet:Ar,toString:n2,transform:FE,transforms:Su,truncate:mw,truthy:Zn,tupleid:ne,typeParsers:Vm,utcFloor:Gw,utcInterval:oc,utcOffset:Vw,utcSequence:Qw,utcdayofyear:Uw,utcquarter:sw,utcweek:jw,version:bne,visitArray:ha,week:zw,writeConfig:tc,zero:ya,zoomLinear:Xy,zoomLog:Vy,zoomPow:yh,zoomSymlog:Ky},Symbol.toStringTag,{value:"Module"}));function vne(e,t,n){let r;t.x2&&(t.x?(n&&e.x>e.x2&&(r=e.x,e.x=e.x2,e.x2=r),e.width=e.x2-e.x):e.x=e.x2-(e.width||0)),t.xc&&(e.x=e.xc-(e.width||0)/2),t.y2&&(t.y?(n&&e.y>e.y2&&(r=e.y,e.y=e.y2,e.y2=r),e.height=e.y2-e.y):e.y=e.y2-(e.height||0)),t.yc&&(e.y=e.yc-(e.height||0)/2)}var xne={NaN:NaN,E:Math.E,LN2:Math.LN2,LN10:Math.LN10,LOG2E:Math.LOG2E,LOG10E:Math.LOG10E,PI:Math.PI,SQRT1_2:Math.SQRT1_2,SQRT2:Math.SQRT2,MIN_VALUE:Number.MIN_VALUE,MAX_VALUE:Number.MAX_VALUE},_ne={"*":(e,t)=>e*t,"+":(e,t)=>e+t,"-":(e,t)=>e-t,"/":(e,t)=>e/t,"%":(e,t)=>e%t,">":(e,t)=>e>t,"<":(e,t)=>ee<=t,">=":(e,t)=>e>=t,"==":(e,t)=>e==t,"!=":(e,t)=>e!=t,"===":(e,t)=>e===t,"!==":(e,t)=>e!==t,"&":(e,t)=>e&t,"|":(e,t)=>e|t,"^":(e,t)=>e^t,"<<":(e,t)=>e<>":(e,t)=>e>>t,">>>":(e,t)=>e>>>t},wne={"+":e=>+e,"-":e=>-e,"~":e=>~e,"!":e=>!e};const Ene=Array.prototype.slice,vs=(e,t,n)=>{const r=n?n(t[0]):t[0];return r[e].apply(r,Ene.call(t,1))},Sne=(e,t,n,r,i,a,s)=>new Date(e,t||0,n??1,r||0,i||0,a||0,s||0);var $ne={isNaN:Number.isNaN,isFinite:Number.isFinite,abs:Math.abs,acos:Math.acos,asin:Math.asin,atan:Math.atan,atan2:Math.atan2,ceil:Math.ceil,cos:Math.cos,exp:Math.exp,floor:Math.floor,log:Math.log,max:Math.max,min:Math.min,pow:Math.pow,random:Math.random,round:Math.round,sin:Math.sin,sqrt:Math.sqrt,tan:Math.tan,clamp:(e,t,n)=>Math.max(t,Math.min(n,e)),now:Date.now,utc:Date.UTC,datetime:Sne,date:e=>new Date(e).getDate(),day:e=>new Date(e).getDay(),year:e=>new Date(e).getFullYear(),month:e=>new Date(e).getMonth(),hours:e=>new Date(e).getHours(),minutes:e=>new Date(e).getMinutes(),seconds:e=>new Date(e).getSeconds(),milliseconds:e=>new Date(e).getMilliseconds(),time:e=>new Date(e).getTime(),timezoneoffset:e=>new Date(e).getTimezoneOffset(),utcdate:e=>new Date(e).getUTCDate(),utcday:e=>new Date(e).getUTCDay(),utcyear:e=>new Date(e).getUTCFullYear(),utcmonth:e=>new Date(e).getUTCMonth(),utchours:e=>new Date(e).getUTCHours(),utcminutes:e=>new Date(e).getUTCMinutes(),utcseconds:e=>new Date(e).getUTCSeconds(),utcmilliseconds:e=>new Date(e).getUTCMilliseconds(),length:e=>e.length,join:function(){return vs("join",arguments)},indexof:function(){return vs("indexOf",arguments)},lastindexof:function(){return vs("lastIndexOf",arguments)},slice:function(){return vs("slice",arguments)},reverse:e=>e.slice().reverse(),parseFloat,parseInt,upper:e=>String(e).toUpperCase(),lower:e=>String(e).toLowerCase(),substring:function(){return vs("substring",arguments,String)},split:function(){return vs("split",arguments,String)},replace:function(){return vs("replace",arguments,String)},trim:e=>String(e).trim(),regexp:RegExp,test:(e,t)=>RegExp(e).test(t)};const Ane=["view","item","group","xy","x","y"],yy=new Set([Function,eval,setTimeout,setInterval]);typeof setImmediate=="function"&&yy.add(setImmediate);const kne={Literal:(e,t)=>t.value,Identifier:(e,t)=>{const n=t.name;return e.memberDepth>0?n:n==="datum"?e.datum:n==="event"?e.event:n==="item"?e.item:xne[n]||e.params["$"+n]},MemberExpression:(e,t)=>{const n=!t.computed,r=e(t.object);n&&(e.memberDepth+=1);const i=e(t.property);if(n&&(e.memberDepth-=1),yy.has(r[i])){console.error(`Prevented interpretation of member "${i}" which could lead to insecure code execution`);return}return r[i]},CallExpression:(e,t)=>{const n=t.arguments;let r=t.callee.name;return r.startsWith("_")&&(r=r.slice(1)),r==="if"?e(n[0])?e(n[1]):e(n[2]):(e.fn[r]||$ne[r]).apply(e.fn,n.map(e))},ArrayExpression:(e,t)=>t.elements.map(e),BinaryExpression:(e,t)=>_ne[t.operator](e(t.left),e(t.right)),UnaryExpression:(e,t)=>wne[t.operator](e(t.argument)),ConditionalExpression:(e,t)=>e(t.test)?e(t.consequent):e(t.alternate),LogicalExpression:(e,t)=>t.operator==="&&"?e(t.left)&&e(t.right):e(t.left)||e(t.right),ObjectExpression:(e,t)=>t.properties.reduce((n,r)=>{e.memberDepth+=1;const i=e(r.key);return e.memberDepth-=1,yy.has(e(r.value))?console.error(`Prevented interpretation of property "${i}" which could lead to insecure code execution`):n[i]=e(r.value),n},{})};function qc(e,t,n,r,i,a){const s=o=>kne[o.type](s,o);return s.memberDepth=0,s.fn=Object.create(t),s.params=n,s.datum=r,s.event=i,s.item=a,Ane.forEach(o=>s.fn[o]=function(){return i.vega[o](...arguments)}),s(e)}var Cne={operator(e,t){const n=t.ast,r=e.functions;return i=>qc(n,r,i)},parameter(e,t){const n=t.ast,r=e.functions;return(i,a)=>qc(n,r,a,i)},event(e,t){const n=t.ast,r=e.functions;return i=>qc(n,r,void 0,void 0,i)},handler(e,t){const n=t.ast,r=e.functions;return(i,a)=>{const s=a.item&&a.item.datum;return qc(n,r,i,s,a)}},encode(e,t){const{marktype:n,channels:r}=t,i=e.functions,a=n==="group"||n==="image"||n==="rect";return(s,o)=>{const u=s.datum;let c=0,l;for(const f in r)l=qc(r[f].ast,i,o,u,void 0,s),s[f]!==l&&(s[f]=l,c=1);return n!=="rule"&&vne(s,r,a),c}}};const Fne="vega-lite",Mne='Dominik Moritz, Kanit "Ham" Wongsuphasawat, Arvind Satyanarayan, Jeffrey Heer',Tne="5.16.3",Nne=["Kanit Wongsuphasawat (http://kanitw.yellowpigz.com)","Dominik Moritz (https://www.domoritz.de)","Arvind Satyanarayan (https://arvindsatya.com)","Jeffrey Heer (https://jheer.org)"],Dne="https://vega.github.io/vega-lite/",One="Vega-Lite is a concise high-level language for interactive visualization.",Rne=["vega","chart","visualization"],Lne="build/vega-lite.js",Pne="build/vega-lite.min.js",Ine="build/vega-lite.min.js",zne="build/src/index",Bne="build/src/index.d.ts",Une={vl2pdf:"./bin/vl2pdf",vl2png:"./bin/vl2png",vl2svg:"./bin/vl2svg",vl2vg:"./bin/vl2vg"},jne=["bin","build","src","vega-lite*","tsconfig.json"],qne={changelog:"conventional-changelog -p angular -r 2",prebuild:"yarn clean:build",build:"yarn build:only","build:only":"tsc -p tsconfig.build.json && rollup -c","prebuild:examples":"yarn build:only","build:examples":"yarn data && TZ=America/Los_Angeles scripts/build-examples.sh","prebuild:examples-full":"yarn build:only","build:examples-full":"TZ=America/Los_Angeles scripts/build-examples.sh 1","build:example":"TZ=America/Los_Angeles scripts/build-example.sh","build:toc":"yarn build:jekyll && scripts/generate-toc","build:site":"rollup -c site/rollup.config.mjs","build:jekyll":"pushd site && bundle exec jekyll build -q && popd","build:versions":"scripts/update-version.sh",clean:"yarn clean:build && del-cli 'site/data/*' 'examples/compiled/*.png' && find site/examples ! -name 'index.md' ! -name 'data' -type f -delete","clean:build":"del-cli 'build/*' !build/vega-lite-schema.json",data:"rsync -r node_modules/vega-datasets/data/* site/data",schema:"mkdir -p build && ts-json-schema-generator -f tsconfig.json -p src/index.ts -t TopLevelSpec --no-type-check --no-ref-encode > build/vega-lite-schema.json && yarn renameschema && cp build/vega-lite-schema.json site/_data/",renameschema:"scripts/rename-schema.sh",presite:"yarn data && yarn schema && yarn build:site && yarn build:versions && scripts/create-example-pages.sh",site:"yarn site:only","site:only":"pushd site && bundle exec jekyll serve -I -l && popd",prettierbase:"prettier '**/*.{md,css,yml}'",format:"eslint . --fix && yarn prettierbase --write",lint:"eslint . && yarn prettierbase --check",jest:"NODE_OPTIONS=--experimental-vm-modules npx jest",test:"yarn jest test/ && yarn lint && yarn schema && yarn jest examples/ && yarn test:runtime","test:cover":"yarn jest --collectCoverage test/","test:inspect":"node --inspect-brk --experimental-vm-modules ./node_modules/.bin/jest --runInBand test","test:runtime":"NODE_OPTIONS=--experimental-vm-modules TZ=America/Los_Angeles npx jest test-runtime/ --config test-runtime/jest-config.json","test:runtime:generate":"yarn build:only && del-cli test-runtime/resources && VL_GENERATE_TESTS=true yarn test:runtime",watch:"tsc -p tsconfig.build.json -w","watch:site":"yarn build:site -w","watch:test":"yarn jest --watch test/","watch:test:runtime":"NODE_OPTIONS=--experimental-vm-modules TZ=America/Los_Angeles npx jest --watch test-runtime/ --config test-runtime/jest-config.json",release:"release-it"},Wne={type:"git",url:"https://github.com/vega/vega-lite.git"},Hne="BSD-3-Clause",Gne={url:"https://github.com/vega/vega-lite/issues"},Yne={"@babel/core":"^7.22.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/preset-env":"^7.22.10","@babel/preset-typescript":"^7.22.5","@release-it/conventional-changelog":"^7.0.0","@rollup/plugin-alias":"^5.0.0","@rollup/plugin-babel":"^6.0.3","@rollup/plugin-commonjs":"^25.0.4","@rollup/plugin-json":"^6.0.0","@rollup/plugin-node-resolve":"^15.2.1","@rollup/plugin-terser":"^0.4.3","@types/chai":"^4.3.5","@types/d3":"^7.4.0","@types/jest":"^29.5.4","@types/pako":"^2.0.0","@typescript-eslint/eslint-plugin":"^6.4.1","@typescript-eslint/parser":"^6.4.1",ajv:"^8.12.0","ajv-formats":"^2.1.1",chai:"^4.3.7",cheerio:"^1.0.0-rc.12","conventional-changelog-cli":"^4.0.0",d3:"^7.8.5","del-cli":"^5.0.0",eslint:"^8.47.0","eslint-config-prettier":"^9.0.0","eslint-plugin-jest":"^27.2.3","eslint-plugin-prettier":"^5.0.0","fast-json-stable-stringify":"~2.1.0","highlight.js":"^11.8.0",jest:"^29.6.3","jest-dev-server":"^9.0.0",mkdirp:"^3.0.1",pako:"^2.1.0",prettier:"^3.0.2",puppeteer:"^15.0.0","release-it":"^16.1.5",rollup:"^3.28.1","rollup-plugin-bundle-size":"^1.0.3","rollup-plugin-sourcemaps":"^0.6.3",serve:"^14.2.1",terser:"^5.19.2","ts-jest":"^29.1.1","ts-json-schema-generator":"^1.3.0",typescript:"~5.2.2","vega-cli":"^5.25.0","vega-datasets":"^2.7.0","vega-embed":"^6.22.2","vega-tooltip":"^0.33.0","yaml-front-matter":"^4.1.1"},Xne={"json-stringify-pretty-compact":"~3.0.0",tslib:"~2.6.2","vega-event-selector":"~3.0.1","vega-expression":"~5.1.0","vega-util":"~1.17.2",yargs:"~17.7.2"},Vne={vega:"^5.24.0"},Kne={node:">=18"},Jne={name:Fne,author:Mne,version:Tne,collaborators:Nne,homepage:Dne,description:One,keywords:Rne,main:Lne,unpkg:Pne,jsdelivr:Ine,module:zne,types:Bne,bin:Une,files:jne,scripts:qne,repository:Wne,license:Hne,bugs:Gne,devDependencies:Yne,dependencies:Xne,peerDependencies:Vne,engines:Kne};function I7(e){return!!e.or}function z7(e){return!!e.and}function B7(e){return!!e.not}function gh(e,t){if(B7(e))gh(e.not,t);else if(z7(e))for(const n of e.and)gh(n,t);else if(I7(e))for(const n of e.or)gh(n,t);else t(e)}function hu(e,t){return B7(e)?{not:hu(e.not,t)}:z7(e)?{and:e.and.map(n=>hu(n,t))}:I7(e)?{or:e.or.map(n=>hu(n,t))}:t(e)}const oe=structuredClone;function ZF(e){throw new Error(e)}function zu(e,t){const n={};for(const r of t)ie(e,r)&&(n[r]=e[r]);return n}function bn(e,t){const n={...e};for(const r of t)delete n[r];return n}Set.prototype.toJSON=function(){return`Set(${[...this].map(e=>Re(e)).join(",")})`};function be(e){if(we(e))return e;const t=X(e)?e:Re(e);if(t.length<250)return t;let n=0;for(let r=0;ro===0?s:`[${s}]`),a=i.map((s,o)=>i.slice(0,o+1).join(""));for(const s of a)t.add(s)}return t}function q7(e,t){return e===void 0||t===void 0?!0:j7(xy(e),xy(t))}function Oe(e){return B(e).length===0}const B=Object.keys,kt=Object.values,Ga=Object.entries;function uf(e){return e===!0||e===!1}function We(e){const t=e.replace(/\W/g,"_");return(e.match(/^\d+/)?"_":"")+t}function Tl(e,t){return B7(e)?`!(${Tl(e.not,t)})`:z7(e)?`(${e.and.map(n=>Tl(n,t)).join(") && (")})`:I7(e)?`(${e.or.map(n=>Tl(n,t)).join(") || (")})`:t(e)}function N0(e,t){if(t.length===0)return!0;const n=t.shift();return n in e&&N0(e[n],t)&&delete e[n],Oe(e)}function Hf(e){return e.charAt(0).toUpperCase()+e.substr(1)}function W7(e,t="datum"){const n=di(e),r=[];for(let i=1;i<=n.length;i++){const a=`[${n.slice(0,i).map(H).join("][")}]`;r.push(`${t}${a}`)}return r.join(" && ")}function nM(e,t="datum"){return`${t}[${H(di(e).join("."))}]`}function ere(e){return e.replace(/(\[|\]|\.|'|")/g,"\\$1")}function rr(e){return`${di(e).map(ere).join("\\.")}`}function lo(e,t,n){return e.replace(new RegExp(t.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),"g"),n)}function H7(e){return`${di(e).join(".")}`}function Bu(e){return e?di(e).length:0}function Ze(...e){for(const t of e)if(t!==void 0)return t}let rM=42;function iM(e){const t=++rM;return e?String(e)+t:t}function tre(){rM=42}function aM(e){return sM(e)?e:`__${e}`}function sM(e){return e.startsWith("__")}function cf(e){if(e!==void 0)return(e%360+360)%360}function dp(e){return we(e)?!0:!isNaN(e)&&!isNaN(parseFloat(e))}const tx=Object.getPrototypeOf(structuredClone({}));function Dn(e,t){if(e===t)return!0;if(e&&t&&typeof e=="object"&&typeof t=="object"){if(e.constructor.name!==t.constructor.name)return!1;let n,r;if(Array.isArray(e)){if(n=e.length,n!=t.length)return!1;for(r=n;r--!==0;)if(!Dn(e[r],t[r]))return!1;return!0}if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(r of e.entries())if(!t.has(r[0]))return!1;for(r of e.entries())if(!Dn(r[1],t.get(r[0])))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(r of e.entries())if(!t.has(r[0]))return!1;return!0}if(ArrayBuffer.isView(e)&&ArrayBuffer.isView(t)){if(n=e.length,n!=t.length)return!1;for(r=n;r--!==0;)if(e[r]!==t[r])return!1;return!0}if(e.constructor===RegExp)return e.source===t.source&&e.flags===t.flags;if(e.valueOf!==Object.prototype.valueOf&&e.valueOf!==tx.valueOf)return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString&&e.toString!==tx.toString)return e.toString()===t.toString();const i=Object.keys(e);if(n=i.length,n!==Object.keys(t).length)return!1;for(r=n;r--!==0;)if(!Object.prototype.hasOwnProperty.call(t,i[r]))return!1;for(r=n;r--!==0;){const a=i[r];if(!Dn(e[a],t[a]))return!1}return!0}return e!==e&&t!==t}function Re(e){const t=[];return function n(r){if(r&&r.toJSON&&typeof r.toJSON=="function"&&(r=r.toJSON()),r===void 0)return;if(typeof r=="number")return isFinite(r)?""+r:"null";if(typeof r!="object")return JSON.stringify(r);let i,a;if(Array.isArray(r)){for(a="[",i=0;ixp(e[t])?We(`_${t}_${Ga(e[t])}`):We(`_${t}_${e[t]}`)).join("")}function Be(e){return e===!0||No(e)&&!e.binned}function Et(e){return e==="binned"||No(e)&&e.binned===!0}function No(e){return V(e)}function xp(e){return e==null?void 0:e.param}function nx(e){switch(e){case Hi:case Gi:case ia:case wn:case vi:case xi:case cs:case aa:case os:case us:case En:return 6;case ls:return 4;default:return 10}}function Vf(e){return!!(e!=null&&e.expr)}function gn(e){const t=B(e||{}),n={};for(const r of t)n[r]=Mn(e[r]);return n}function _M(e){const{anchor:t,frame:n,offset:r,orient:i,angle:a,limit:s,color:o,subtitleColor:u,subtitleFont:c,subtitleFontSize:l,subtitleFontStyle:f,subtitleFontWeight:d,subtitleLineHeight:h,subtitlePadding:g,...p}=e,m={...p,...o?{fill:o}:{}},b={...t?{anchor:t}:{},...n?{frame:n}:{},...r?{offset:r}:{},...i?{orient:i}:{},...a!==void 0?{angle:a}:{},...s!==void 0?{limit:s}:{}},y={...u?{subtitleColor:u}:{},...c?{subtitleFont:c}:{},...l?{subtitleFontSize:l}:{},...f?{subtitleFontStyle:f}:{},...d?{subtitleFontWeight:d}:{},...h?{subtitleLineHeight:h}:{},...g?{subtitlePadding:g}:{}},v=zu(e,["align","baseline","dx","dy","limit"]);return{titleMarkConfig:m,subtitleMarkConfig:v,nonMarkTitleProperties:b,subtitle:y}}function ba(e){return X(e)||P(e)&&X(e[0])}function Q(e){return!!(e!=null&&e.signal)}function ds(e){return!!e.step}function $re(e){return P(e)?!1:"fields"in e&&!("data"in e)}function Are(e){return P(e)?!1:"fields"in e&&"data"in e}function Ui(e){return P(e)?!1:"field"in e&&"data"in e}const kre={aria:1,description:1,ariaRole:1,ariaRoleDescription:1,blend:1,opacity:1,fill:1,fillOpacity:1,stroke:1,strokeCap:1,strokeWidth:1,strokeOpacity:1,strokeDash:1,strokeDashOffset:1,strokeJoin:1,strokeOffset:1,strokeMiterLimit:1,startAngle:1,endAngle:1,padAngle:1,innerRadius:1,outerRadius:1,size:1,shape:1,interpolate:1,tension:1,orient:1,align:1,baseline:1,text:1,dir:1,dx:1,dy:1,ellipsis:1,limit:1,radius:1,theta:1,angle:1,font:1,fontSize:1,fontWeight:1,fontStyle:1,lineBreak:1,lineHeight:1,cursor:1,href:1,tooltip:1,cornerRadius:1,cornerRadiusTopLeft:1,cornerRadiusTopRight:1,cornerRadiusBottomLeft:1,cornerRadiusBottomRight:1,aspect:1,width:1,height:1,url:1,smooth:1},Cre=B(kre),Fre={arc:1,area:1,group:1,image:1,line:1,path:1,rect:1,rule:1,shape:1,symbol:1,text:1,trail:1},_y=["cornerRadius","cornerRadiusTopLeft","cornerRadiusTopRight","cornerRadiusBottomLeft","cornerRadiusBottomRight"];function wM(e){const t=P(e.condition)?e.condition.map(rx):rx(e.condition);return{...Mn(e),condition:t}}function Mn(e){if(Vf(e)){const{expr:t,...n}=e;return{signal:t,...n}}return e}function rx(e){if(Vf(e)){const{expr:t,...n}=e;return{signal:t,...n}}return e}function je(e){if(Vf(e)){const{expr:t,...n}=e;return{signal:t,...n}}return Q(e)?e:e!==void 0?{value:e}:void 0}function Mre(e){return Q(e)?e.signal:H(e)}function ix(e){return Q(e)?e.signal:H(e.value)}function xr(e){return Q(e)?e.signal:e==null?null:H(e)}function Tre(e,t,n){for(const r of n){const i=Zi(r,t.markDef,t.config);i!==void 0&&(e[r]=je(i))}return e}function EM(e){return[].concat(e.type,e.style??[])}function Te(e,t,n,r={}){const{vgChannel:i,ignoreVgConfig:a}=r;return i&&t[i]!==void 0?t[i]:t[e]!==void 0?t[e]:a&&(!i||i===e)?void 0:Zi(e,t,n,r)}function Zi(e,t,n,{vgChannel:r}={}){return Ze(r?D0(e,t,n.style):void 0,D0(e,t,n.style),r?n[t.type][r]:void 0,n[t.type][e],r?n.mark[r]:n.mark[e])}function D0(e,t,n){return SM(e,EM(t),n)}function SM(e,t,n){t=Y(t);let r;for(const i of t){const a=n[i];a&&a[e]!==void 0&&(r=a[e])}return r}function $M(e,t){return Y(e).reduce((n,r)=>(n.field.push(G(r,t)),n.order.push(r.sort??"ascending"),n),{field:[],order:[]})}function AM(e,t){const n=[...e];return t.forEach(r=>{for(const i of n)if(Dn(i,r))return;n.push(r)}),n}function kM(e,t){return Dn(e,t)||!t?e:e?[...Y(e),...Y(t)].join(", "):t}function CM(e,t){const n=e.value,r=t.value;if(n==null||r===null)return{explicit:e.explicit,value:null};if((ba(n)||Q(n))&&(ba(r)||Q(r)))return{explicit:e.explicit,value:kM(n,r)};if(ba(n)||Q(n))return{explicit:e.explicit,value:n};if(ba(r)||Q(r))return{explicit:e.explicit,value:r};if(!ba(n)&&!Q(n)&&!ba(r)&&!Q(r))return{explicit:e.explicit,value:AM(n,r)};throw new Error("It should never reach here")}function e6(e){return`Invalid specification ${Re(e)}. Make sure the specification includes at least one of the following properties: "mark", "layer", "facet", "hconcat", "vconcat", "concat", or "repeat".`}const Nre='Autosize "fit" only works for single views and layered views.';function ax(e){return`${e=="width"?"Width":"Height"} "container" only works for single views and layered views.`}function sx(e){const t=e=="width"?"Width":"Height",n=e=="width"?"x":"y";return`${t} "container" only works well with autosize "fit" or "fit-${n}".`}function ox(e){return e?`Dropping "fit-${e}" because spec has discrete ${Sn(e)}.`:'Dropping "fit" because spec has discrete size.'}function t6(e){return`Unknown field for ${e}. Cannot calculate view size.`}function ux(e){return`Cannot project a selection on encoding channel "${e}", which has no field.`}function Dre(e,t){return`Cannot project a selection on encoding channel "${e}" as it uses an aggregate function ("${t}").`}function Ore(e){return`The "nearest" transform is not supported for ${e} marks.`}function FM(e){return`Selection not supported for ${e} yet.`}function Rre(e){return`Cannot find a selection named "${e}".`}const Lre="Scale bindings are currently only supported for scales with unbinned, continuous domains.",Pre="Legend bindings are only supported for selections over an individual field or encoding channel.";function Ire(e){return`Lookups can only be performed on selection parameters. "${e}" is a variable parameter.`}function zre(e){return`Cannot define and lookup the "${e}" selection in the same view. Try moving the lookup into a second, layered view?`}const Bre="The same selection must be used to override scale domains in a layered view.",Ure='Interval selections should be initialized using "x", "y", "longitude", or "latitude" keys.';function jre(e){return`Unknown repeated value "${e}".`}function cx(e){return`The "columns" property cannot be used when "${e}" has nested row/column.`}const qre="Axes cannot be shared in concatenated or repeated views yet (https://github.com/vega/vega-lite/issues/2415).";function Wre(e){return`Unrecognized parse "${e}".`}function lx(e,t,n){return`An ancestor parsed field "${e}" as ${n} but a child wants to parse the field as ${t}.`}const Hre="Attempt to add the same child twice.";function Gre(e){return`Ignoring an invalid transform: ${Re(e)}.`}const Yre='If "from.fields" is not specified, "as" has to be a string that specifies the key to be used for the data from the secondary source.';function fx(e){return`Config.customFormatTypes is not true, thus custom format type and format for channel ${e} are dropped.`}function Xre(e){const{parentProjection:t,projection:n}=e;return`Layer's shared projection ${Re(t)} is overridden by a child projection ${Re(n)}.`}const Vre="Arc marks uses theta channel rather than angle, replacing angle with theta.";function Kre(e){return`${e}Offset dropped because ${e} is continuous`}function Jre(e,t,n){return`Channel ${e} is a ${t}. Converted to {value: ${Re(n)}}.`}function MM(e){return`Invalid field type "${e}".`}function Qre(e,t){return`Invalid field type "${e}" for aggregate: "${t}", using "quantitative" instead.`}function Zre(e){return`Invalid aggregation operator "${e}".`}function TM(e,t){const{fill:n,stroke:r}=t;return`Dropping color ${e} as the plot also has ${n&&r?"fill and stroke":n?"fill":"stroke"}.`}function eie(e){return`Position range does not support relative band size for ${e}.`}function wy(e,t){return`Dropping ${Re(e)} from channel "${t}" since it does not contain any data field, datum, value, or signal.`}const tie="Line marks cannot encode size with a non-groupby field. You may want to use trail marks instead.";function _p(e,t,n){return`${e} dropped as it is incompatible with "${t}"${n?` when ${n}`:""}.`}function nie(e){return`${e}-encoding is dropped as ${e} is not a valid encoding channel.`}function rie(e){return`${e} encoding should be discrete (ordinal / nominal / binned).`}function iie(e){return`${e} encoding should be discrete (ordinal / nominal / binned) or use a discretizing scale (e.g. threshold).`}function aie(e){return`Facet encoding dropped as ${e.join(" and ")} ${e.length>1?"are":"is"} also specified.`}function fm(e,t){return`Using discrete channel "${e}" to encode "${t}" field can be misleading as it does not encode ${t==="ordinal"?"order":"magnitude"}.`}function sie(e){return`The ${e} for range marks cannot be an expression`}function oie(e,t){return`Line mark is for continuous lines and thus cannot be used with ${e&&t?"x2 and y2":e?"x2":"y2"}. We will use the rule mark (line segments) instead.`}function uie(e,t){return`Specified orient "${e}" overridden with "${t}".`}function cie(e){return`Cannot use the scale property "${e}" with non-color channel.`}function lie(e){return`Cannot use the relative band size with ${e} scale.`}function fie(e){return`Using unaggregated domain with raw field has no effect (${Re(e)}).`}function die(e){return`Unaggregated domain not applicable for "${e}" since it produces values outside the origin domain of the source data.`}function hie(e){return`Unaggregated domain is currently unsupported for log scale (${Re(e)}).`}function gie(e){return`Cannot apply size to non-oriented mark "${e}".`}function pie(e,t,n){return`Channel "${e}" does not work with "${t}" scale. We are using "${n}" scale instead.`}function mie(e,t){return`FieldDef does not work with "${e}" scale. We are using "${t}" scale instead.`}function NM(e,t,n){return`${n}-scale's "${t}" is dropped as it does not work with ${e} scale.`}function DM(e){return`The step for "${e}" is dropped because the ${e==="width"?"x":"y"} is continuous.`}function bie(e,t,n,r){return`Conflicting ${t.toString()} property "${e.toString()}" (${Re(n)} and ${Re(r)}). Using ${Re(n)}.`}function yie(e,t,n,r){return`Conflicting ${t.toString()} property "${e.toString()}" (${Re(n)} and ${Re(r)}). Using the union of the two domains.`}function vie(e){return`Setting the scale to be independent for "${e}" means we also have to set the guide (axis or legend) to be independent.`}function xie(e){return`Dropping sort property ${Re(e)} as unioned domains only support boolean or op "count", "min", and "max".`}const dx="Domains that should be unioned has conflicting sort properties. Sort will be set to true.",_ie="Detected faceted independent scales that union domain of multiple fields from different data sources. We will use the first field. The result view size may be incorrect.",wie="Detected faceted independent scales that union domain of the same fields from different source. We will assume that this is the same field from a different fork of the same data source. However, if this is not the case, the result view size may be incorrect.",Eie="Detected faceted independent scales that union domain of multiple fields from the same data source. We will use the first field. The result view size may be incorrect.";function Sie(e){return`Cannot stack "${e}" if there is already "${e}2".`}function $ie(e){return`Cannot stack non-linear scale (${e}).`}function Aie(e){return`Stacking is applied even though the aggregate function is non-summative ("${e}").`}function O0(e,t){return`Invalid ${e}: ${Re(t)}.`}function kie(e){return`Dropping day from datetime ${Re(e)} as day cannot be combined with other units.`}function Cie(e,t){return`${t?"extent ":""}${t&&e?"and ":""}${e?"center ":""}${t&&e?"are ":"is "}not needed when data are aggregated.`}function Fie(e,t,n){return`${e} is not usually used with ${t} for ${n}.`}function Mie(e,t){return`Continuous axis should not have customized aggregation function ${e}; ${t} already agregates the axis.`}function hx(e){return`1D error band does not support ${e}.`}function OM(e){return`Channel ${e} is required for "binned" bin.`}function Tie(e){return`Channel ${e} should not be used with "binned" bin.`}function Nie(e){return`Domain for ${e} is required for threshold scale.`}const RM=Yy(Gy);let ju=RM;function Die(e){return ju=e,ju}function Oie(){return ju=RM,ju}function j(...e){ju.warn(...e)}function Rie(...e){ju.debug(...e)}function Do(e){if(e&&V(e)){for(const t of r6)if(t in e)return!0}return!1}const LM=["january","february","march","april","may","june","july","august","september","october","november","december"],Lie=LM.map(e=>e.substr(0,3)),PM=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"],Pie=PM.map(e=>e.substr(0,3));function Iie(e){if(dp(e)&&(e=+e),we(e))return e>4&&j(O0("quarter",e)),e-1;throw new Error(O0("quarter",e))}function zie(e){if(dp(e)&&(e=+e),we(e))return e-1;{const t=e.toLowerCase(),n=LM.indexOf(t);if(n!==-1)return n;const r=t.substr(0,3),i=Lie.indexOf(r);if(i!==-1)return i;throw new Error(O0("month",e))}}function Bie(e){if(dp(e)&&(e=+e),we(e))return e%7;{const t=e.toLowerCase(),n=PM.indexOf(t);if(n!==-1)return n;const r=t.substr(0,3),i=Pie.indexOf(r);if(i!==-1)return i;throw new Error(O0("day",e))}}function n6(e,t){const n=[];if(t&&e.day!==void 0&&B(e).length>1&&(j(kie(e)),e=oe(e),delete e.day),e.year!==void 0?n.push(e.year):n.push(2012),e.month!==void 0){const r=t?zie(e.month):e.month;n.push(r)}else if(e.quarter!==void 0){const r=t?Iie(e.quarter):e.quarter;n.push(we(r)?r*3:`${r}*3`)}else n.push(0);if(e.date!==void 0)n.push(e.date);else if(e.day!==void 0){const r=t?Bie(e.day):e.day;n.push(we(r)?r+1:`${r}+1`)}else n.push(1);for(const r of["hours","minutes","seconds","milliseconds"]){const i=e[r];n.push(typeof i>"u"?0:i)}return n}function ho(e){const n=n6(e,!0).join(", ");return e.utc?`utc(${n})`:`datetime(${n})`}function Uie(e){const n=n6(e,!1).join(", ");return e.utc?`utc(${n})`:`datetime(${n})`}function jie(e){const t=n6(e,!0);return e.utc?+new Date(Date.UTC(...t)):+new Date(...t)}const IM={year:1,quarter:1,month:1,week:1,day:1,dayofyear:1,date:1,hours:1,minutes:1,seconds:1,milliseconds:1},r6=B(IM);function qie(e){return!!IM[e]}function Oo(e){return V(e)?e.binned:zM(e)}function zM(e){return e&&e.startsWith("binned")}function i6(e){return e.startsWith("utc")}function Wie(e){return e.substring(3)}const Hie={"year-month":"%b %Y ","year-month-date":"%b %d, %Y "};function wp(e){return r6.filter(t=>UM(e,t))}function BM(e){const t=wp(e);return t[t.length-1]}function UM(e,t){const n=e.indexOf(t);return!(n<0||n>0&&t==="seconds"&&e.charAt(n-1)==="i"||e.length>n+3&&t==="day"&&e.charAt(n+3)==="o"||n>0&&t==="year"&&e.charAt(n-1)==="f")}function Gie(e,t,{end:n}={end:!1}){const r=W7(t),i=i6(e)?"utc":"";function a(u){return u==="quarter"?`(${i}quarter(${r})-1)`:`${i}${u}(${r})`}let s;const o={};for(const u of r6)UM(e,u)&&(o[u]=a(u),s=u);return n&&(o[s]+="+1"),Uie(o)}function jM(e){if(!e)return;const t=wp(e);return`timeUnitSpecifier(${Re(t)}, ${Re(Hie)})`}function Yie(e,t,n){if(!e)return;const r=jM(e);return`${n||i6(e)?"utc":"time"}Format(${t}, ${r})`}function yt(e){if(!e)return;let t;return X(e)?zM(e)?t={unit:e.substring(6),binned:!0}:t={unit:e}:V(e)&&(t={...e,...e.unit?{unit:e.unit}:{}}),i6(t.unit)&&(t.utc=!0,t.unit=Wie(t.unit)),t}function Xie(e){const{utc:t,...n}=yt(e);return n.unit?(t?"utc":"")+B(n).map(r=>We(`${r==="unit"?"":`_${r}_`}${n[r]}`)).join(""):(t?"utc":"")+"timeunit"+B(n).map(r=>We(`_${r}_${n[r]}`)).join("")}function qM(e,t=n=>n){const n=yt(e),r=BM(n.unit);if(r&&r!=="day"){const i={year:2001,month:1,date:1,hours:0,minutes:0,seconds:0,milliseconds:0},{step:a,part:s}=WM(r,n.step),o={...i,[s]:+i[s]+a};return`${t(ho(o))} - ${t(ho(i))}`}}const Vie={year:1,month:1,date:1,hours:1,minutes:1,seconds:1,milliseconds:1};function Kie(e){return!!Vie[e]}function WM(e,t=1){if(Kie(e))return{part:e,step:t};switch(e){case"day":case"dayofyear":return{part:"date",step:t};case"quarter":return{part:"month",step:t*3};case"week":return{part:"date",step:t*7}}}function Jie(e){return e==null?void 0:e.param}function a6(e){return!!(e!=null&&e.field)&&e.equal!==void 0}function s6(e){return!!(e!=null&&e.field)&&e.lt!==void 0}function o6(e){return!!(e!=null&&e.field)&&e.lte!==void 0}function u6(e){return!!(e!=null&&e.field)&&e.gt!==void 0}function c6(e){return!!(e!=null&&e.field)&&e.gte!==void 0}function l6(e){if(e!=null&&e.field){if(P(e.range)&&e.range.length===2)return!0;if(Q(e.range))return!0}return!1}function f6(e){return!!(e!=null&&e.field)&&(P(e.oneOf)||P(e.in))}function Qie(e){return!!(e!=null&&e.field)&&e.valid!==void 0}function HM(e){return f6(e)||a6(e)||l6(e)||s6(e)||u6(e)||o6(e)||c6(e)}function Ur(e,t){return Np(e,{timeUnit:t,wrapTime:!0})}function Zie(e,t){return e.map(n=>Ur(n,t))}function GM(e,t=!0){const{field:n}=e,r=yt(e.timeUnit),{unit:i,binned:a}=r||{},s=G(e,{expr:"datum"}),o=i?`time(${a?s:Gie(i,n)})`:s;if(a6(e))return`${o}===${Ur(e.equal,i)}`;if(s6(e)){const u=e.lt;return`${o}<${Ur(u,i)}`}else if(u6(e)){const u=e.gt;return`${o}>${Ur(u,i)}`}else if(o6(e)){const u=e.lte;return`${o}<=${Ur(u,i)}`}else if(c6(e)){const u=e.gte;return`${o}>=${Ur(u,i)}`}else{if(f6(e))return`indexof([${Zie(e.oneOf,i).join(",")}], ${o}) !== -1`;if(Qie(e))return d6(o,e.valid);if(l6(e)){const{range:u}=e,c=Q(u)?{signal:`${u.signal}[0]`}:u[0],l=Q(u)?{signal:`${u.signal}[1]`}:u[1];if(c!==null&&l!==null&&t)return"inrange("+o+", ["+Ur(c,i)+", "+Ur(l,i)+"])";const f=[];return c!==null&&f.push(`${o} >= ${Ur(c,i)}`),l!==null&&f.push(`${o} <= ${Ur(l,i)}`),f.length>0?f.join(" && "):"true"}}throw new Error(`Invalid field predicate: ${Re(e)}`)}function d6(e,t=!0){return t?`isValid(${e}) && isFinite(+${e})`:`!isValid(${e}) || !isFinite(+${e})`}function eae(e){return HM(e)&&e.timeUnit?{...e,timeUnit:yt(e.timeUnit)}:e}const Kf={quantitative:"quantitative",ordinal:"ordinal",temporal:"temporal",nominal:"nominal",geojson:"geojson"};function tae(e){return e==="quantitative"||e==="temporal"}function YM(e){return e==="ordinal"||e==="nominal"}const go=Kf.quantitative,h6=Kf.ordinal,qu=Kf.temporal,g6=Kf.nominal,bc=Kf.geojson;function nae(e){if(e)switch(e=e.toLowerCase(),e){case"q":case go:return"quantitative";case"t":case qu:return"temporal";case"o":case h6:return"ordinal";case"n":case g6:return"nominal";case bc:return"geojson"}}const yn={LINEAR:"linear",LOG:"log",POW:"pow",SQRT:"sqrt",SYMLOG:"symlog",IDENTITY:"identity",SEQUENTIAL:"sequential",TIME:"time",UTC:"utc",QUANTILE:"quantile",QUANTIZE:"quantize",THRESHOLD:"threshold",BIN_ORDINAL:"bin-ordinal",ORDINAL:"ordinal",POINT:"point",BAND:"band"},Ey={linear:"numeric",log:"numeric",pow:"numeric",sqrt:"numeric",symlog:"numeric",identity:"numeric",sequential:"numeric",time:"time",utc:"time",ordinal:"ordinal","bin-ordinal":"bin-ordinal",point:"ordinal-position",band:"ordinal-position",quantile:"discretizing",quantize:"discretizing",threshold:"discretizing"};function rae(e,t){const n=Ey[e],r=Ey[t];return n===r||n==="ordinal-position"&&r==="time"||r==="ordinal-position"&&n==="time"}const iae={linear:0,log:1,pow:1,sqrt:1,symlog:1,identity:1,sequential:1,time:0,utc:0,point:10,band:11,ordinal:0,"bin-ordinal":0,quantile:0,quantize:0,threshold:0};function gx(e){return iae[e]}const XM=new Set(["linear","log","pow","sqrt","symlog"]),VM=new Set([...XM,"time","utc"]);function KM(e){return XM.has(e)}const JM=new Set(["quantile","quantize","threshold"]),aae=new Set([...VM,...JM,"sequential","identity"]),sae=new Set(["ordinal","bin-ordinal","point","band"]);function vt(e){return sae.has(e)}function Bn(e){return aae.has(e)}function _r(e){return VM.has(e)}function Wu(e){return JM.has(e)}const oae={pointPadding:.5,barBandPaddingInner:.1,rectBandPaddingInner:0,bandWithNestedOffsetPaddingInner:.2,bandWithNestedOffsetPaddingOuter:.2,minBandSize:2,minFontSize:8,maxFontSize:40,minOpacity:.3,maxOpacity:.8,minSize:9,minStrokeWidth:1,maxStrokeWidth:4,quantileCount:4,quantizeCount:4,zero:!0};function uae(e){return!X(e)&&!!e.name}function QM(e){return e==null?void 0:e.param}function cae(e){return e==null?void 0:e.unionWith}function lae(e){return V(e)&&"field"in e}const fae={type:1,domain:1,domainMax:1,domainMin:1,domainMid:1,domainRaw:1,align:1,range:1,rangeMax:1,rangeMin:1,scheme:1,bins:1,reverse:1,round:1,clamp:1,nice:1,base:1,exponent:1,constant:1,interpolate:1,zero:1,padding:1,paddingInner:1,paddingOuter:1},{type:T0e,domain:N0e,range:D0e,rangeMax:O0e,rangeMin:R0e,scheme:L0e,...dae}=fae,hae=B(dae);function Sy(e,t){switch(t){case"type":case"domain":case"reverse":case"range":return!0;case"scheme":case"interpolate":return!["point","band","identity"].includes(e);case"bins":return!["point","band","identity","ordinal"].includes(e);case"round":return _r(e)||e==="band"||e==="point";case"padding":case"rangeMin":case"rangeMax":return _r(e)||["point","band"].includes(e);case"paddingOuter":case"align":return["point","band"].includes(e);case"paddingInner":return e==="band";case"domainMax":case"domainMid":case"domainMin":case"domainRaw":case"clamp":return _r(e);case"nice":return _r(e)||e==="quantize"||e==="threshold";case"exponent":return e==="pow";case"base":return e==="log";case"constant":return e==="symlog";case"zero":return Bn(e)&&!ye(["log","time","utc","threshold","quantile"],e)}}function ZM(e,t){switch(t){case"interpolate":case"scheme":case"domainMid":return gu(e)?void 0:cie(t);case"align":case"type":case"bins":case"domain":case"domainMax":case"domainMin":case"domainRaw":case"range":case"base":case"exponent":case"constant":case"nice":case"padding":case"paddingInner":case"paddingOuter":case"rangeMax":case"rangeMin":case"reverse":case"round":case"clamp":case"zero":return}}function gae(e,t){return ye([h6,g6],t)?e===void 0||vt(e):t===qu?ye([yn.TIME,yn.UTC,void 0],e):t===go?KM(e)||Wu(e)||e===void 0:!0}function pae(e,t,n=!1){if(!sa(e))return!1;switch(e){case He:case _t:case ss:case mc:case sr:case Rr:return _r(t)||t==="band"?!0:t==="point"?!n:!1;case ia:case cs:case aa:case os:case us:case Mo:return _r(t)||Wu(t)||ye(["band","point","ordinal"],t);case wn:case vi:case xi:return t!=="band";case ls:case En:return t==="ordinal"||Wu(t)}}const ln={arc:"arc",area:"area",bar:"bar",image:"image",line:"line",point:"point",rect:"rect",rule:"rule",text:"text",tick:"tick",trail:"trail",circle:"circle",square:"square",geoshape:"geoshape"},eT=ln.arc,Ep=ln.area,Sp=ln.bar,mae=ln.image,$p=ln.line,Ap=ln.point,bae=ln.rect,R0=ln.rule,tT=ln.text,p6=ln.tick,yae=ln.trail,m6=ln.circle,b6=ln.square,nT=ln.geoshape;function hs(e){return["line","area","trail"].includes(e)}function lf(e){return["rect","bar","image","arc"].includes(e)}const vae=new Set(B(ln));function ci(e){return e.type}const xae=["stroke","strokeWidth","strokeDash","strokeDashOffset","strokeOpacity","strokeJoin","strokeMiterLimit"],_ae=["fill","fillOpacity"],wae=[...xae,..._ae],Eae={color:1,filled:1,invalid:1,order:1,radius2:1,theta2:1,timeUnitBandSize:1,timeUnitBandPosition:1},px=B(Eae),Sae={area:["line","point"],bar:["binSpacing","continuousBandSize","discreteBandSize","minBandSize"],rect:["binSpacing","continuousBandSize","discreteBandSize","minBandSize"],line:["point"],tick:["bandSize","thickness"]},$ae={color:"#4c78a8",invalid:"filter",timeUnitBandSize:1},Aae={mark:1,arc:1,area:1,bar:1,circle:1,image:1,line:1,point:1,rect:1,rule:1,square:1,text:1,tick:1,trail:1,geoshape:1},rT=B(Aae);function po(e){return e&&e.band!=null}const kae={horizontal:["cornerRadiusTopRight","cornerRadiusBottomRight"],vertical:["cornerRadiusTopLeft","cornerRadiusTopRight"]},iT=5,Cae={binSpacing:1,continuousBandSize:iT,minBandSize:.25,timeUnitBandPosition:.5},Fae={binSpacing:0,continuousBandSize:iT,minBandSize:.25,timeUnitBandPosition:.5},Mae={thickness:1};function Tae(e){return ci(e)?e.type:e}function y6(e){const{channel:t,channelDef:n,markDef:r,scale:i,config:a}=e,s=x6(e);return U(n)&&!vM(n.aggregate)&&i&&_r(i.get("type"))?Nae({fieldDef:n,channel:t,markDef:r,ref:s,config:a}):s}function Nae({fieldDef:e,channel:t,markDef:n,ref:r,config:i}){return hs(n.type)?r:Te("invalid",n,i)===null?[Dae(e,t),r]:r}function Dae(e,t){const n=v6(e,!0),i=To(t)==="y"?{field:{group:"height"}}:{value:0};return{test:n,...i}}function v6(e,t=!0){return d6(X(e)?e:G(e,{expr:"datum"}),!t)}function Oae(e){const{datum:t}=e;return Do(t)?ho(t):`${Re(t)}`}function Ys(e,t,n,r){const i={};if(t&&(i.scale=t),Ei(e)){const{datum:a}=e;Do(a)?i.signal=ho(a):Q(a)?i.signal=a.signal:Vf(a)?i.signal=a.expr:i.value=a}else i.field=G(e,n);if(r){const{offset:a,band:s}=r;a&&(i.offset=a),s&&(i.band=s)}return i}function L0({scaleName:e,fieldOrDatumDef:t,fieldOrDatumDef2:n,offset:r,startSuffix:i,endSuffix:a="end",bandPosition:s=.5}){const o=!Q(s)&&0{switch(t.fieldTitle){case"plain":return e.field;case"functional":return Xae(e);default:return Yae(e,t)}};let yT=bT;function vT(e){yT=e}function Vae(){vT(bT)}function pu(e,t,{allowDisabling:n,includeDefault:r=!0}){var o;const i=(o=S6(e))==null?void 0:o.title;if(!U(e))return i??e.title;const a=e,s=r?$6(a,t):void 0;return n?Ze(i,a.title,s):i??a.title??s}function S6(e){if(Gu(e)&&e.axis)return e.axis;if(pT(e)&&e.legend)return e.legend;if(w6(e)&&e.header)return e.header}function $6(e,t){return yT(e,t)}function z0(e){if(mT(e)){const{format:t,formatType:n}=e;return{format:t,formatType:n}}else{const t=S6(e)??{},{format:n,formatType:r}=t;return{format:n,formatType:r}}}function Kae(e,t){var a;switch(t){case"latitude":case"longitude":return"quantitative";case"row":case"column":case"facet":case"shape":case"strokeDash":return"nominal";case"order":return"ordinal"}if(E6(e)&&P(e.sort))return"ordinal";const{aggregate:n,bin:r,timeUnit:i}=e;if(i)return"temporal";if(r||n&&!fs(n)&&!Qi(n))return"quantitative";if(Ro(e)&&((a=e.scale)!=null&&a.type))switch(Ey[e.scale.type]){case"numeric":case"discretizing":return"quantitative";case"time":return"temporal"}return"nominal"}function li(e){if(U(e))return e;if(Mp(e))return e.condition}function st(e){if(ue(e))return e;if(Zf(e))return e.condition}function xT(e,t,n,r={}){if(X(e)||we(e)||Za(e)){const i=X(e)?"string":we(e)?"number":"boolean";return j(Jre(t,i,e)),{value:e}}return ue(e)?B0(e,t,n,r):Zf(e)?{...e,condition:B0(e.condition,t,n,r)}:e}function B0(e,t,n,r){if(mT(e)){const{format:i,formatType:a,...s}=e;if(mo(a)&&!n.customFormatTypes)return j(fx(t)),B0(s,t,n,r)}else{const i=Gu(e)?"axis":pT(e)?"legend":w6(e)?"header":null;if(i&&e[i]){const{format:a,formatType:s,...o}=e[i];if(mo(s)&&!n.customFormatTypes)return j(fx(t)),B0({...e,[i]:o},t,n,r)}}return U(e)?A6(e,t,r):Jae(e)}function Jae(e){let t=e.type;if(t)return e;const{datum:n}=e;return t=we(n)?"quantitative":X(n)?"nominal":Do(n)?"temporal":void 0,{...e,type:t}}function A6(e,t,{compositeMark:n=!1}={}){const{aggregate:r,timeUnit:i,bin:a,field:s}=e,o={...e};if(!n&&r&&!Z7(r)&&!fs(r)&&!Qi(r)&&(j(Zre(r)),delete o.aggregate),i&&(o.timeUnit=yt(i)),s&&(o.field=`${s}`),Be(a)&&(o.bin=Tp(a,t)),Et(a)&&!et(t)&&j(Tie(t)),un(o)){const{type:u}=o,c=nae(u);u!==c&&(o.type=c),u!=="quantitative"&&vM(r)&&(j(Qre(u,r)),o.type="quantitative")}else if(!hM(t)){const u=Kae(o,t);o.type=u}if(un(o)){const{compatible:u,warning:c}=Qae(o,t)||{};u===!1&&j(c)}if(E6(o)&&X(o.sort)){const{sort:u}=o;if(bx(u))return{...o,sort:{encoding:u}};const c=u.substr(1);if(u.charAt(0)==="-"&&bx(c))return{...o,sort:{encoding:c,order:"descending"}}}if(w6(o)){const{header:u}=o;if(u){const{orient:c,...l}=u;if(c)return{...o,header:{...l,labelOrient:u.labelOrient||c,titleOrient:u.titleOrient||c}}}}return o}function Tp(e,t){return Za(e)?{maxbins:nx(t)}:e==="binned"?{binned:!0}:!e.maxbins&&!e.step?{...e,maxbins:nx(t)}:e}const Xo={compatible:!0};function Qae(e,t){const n=e.type;if(n==="geojson"&&t!=="shape")return{compatible:!1,warning:`Channel ${t} should not be used with a geojson data.`};switch(t){case Hi:case Gi:case hp:return I0(e)?Xo:{compatible:!1,warning:rie(t)};case He:case _t:case ss:case mc:case wn:case vi:case xi:case Gf:case Yf:case gp:case fo:case pp:case mp:case Mo:case sr:case Rr:case bp:return Xo;case Pr:case ir:case Lr:case Ir:return n!==go?{compatible:!1,warning:`Channel ${t} should be used with a quantitative field only, not ${e.type} field.`}:Xo;case aa:case os:case us:case cs:case ia:case ra:case na:case Or:case yi:return n==="nominal"&&!e.sort?{compatible:!1,warning:`Channel ${t} should not be used with an unsorted discrete field.`}:Xo;case En:case ls:return!I0(e)&&!Hae(e)?{compatible:!1,warning:iie(t)}:Xo;case Uu:return e.type==="nominal"&&!("sort"in e)?{compatible:!1,warning:"Channel order is inappropriate for nominal field, which has no inherent order."}:Xo}}function Yu(e){const{formatType:t}=z0(e);return t==="time"||!t&&Zae(e)}function Zae(e){return e&&(e.type==="temporal"||U(e)&&!!e.timeUnit)}function Np(e,{timeUnit:t,type:n,wrapTime:r,undefinedIfExprNotRequired:i}){var u;const a=t&&((u=yt(t))==null?void 0:u.unit);let s=a||n==="temporal",o;return Vf(e)?o=e.expr:Q(e)?o=e.signal:Do(e)?(s=!0,o=ho(e)):(X(e)||we(e))&&s&&(o=`datetime(${Re(e)})`,qie(a)&&(we(e)&&e<1e4||X(e)&&isNaN(Date.parse(e)))&&(o=ho({[a]:e}))),o?r&&s?`time(${o})`:o:i?void 0:Re(e)}function _T(e,t){const{type:n}=e;return t.map(r=>{const i=U(e)&&!Oo(e.timeUnit)?e.timeUnit:void 0,a=Np(r,{timeUnit:i,type:n,undefinedIfExprNotRequired:!0});return a!==void 0?{signal:a}:r})}function ed(e,t){return Be(e.bin)?sa(t)&&["ordinal","nominal"].includes(e.type):(console.warn("Only call this method for binned field defs."),!1)}const xx={labelAlign:{part:"labels",vgProp:"align"},labelBaseline:{part:"labels",vgProp:"baseline"},labelColor:{part:"labels",vgProp:"fill"},labelFont:{part:"labels",vgProp:"font"},labelFontSize:{part:"labels",vgProp:"fontSize"},labelFontStyle:{part:"labels",vgProp:"fontStyle"},labelFontWeight:{part:"labels",vgProp:"fontWeight"},labelOpacity:{part:"labels",vgProp:"opacity"},labelOffset:null,labelPadding:null,gridColor:{part:"grid",vgProp:"stroke"},gridDash:{part:"grid",vgProp:"strokeDash"},gridDashOffset:{part:"grid",vgProp:"strokeDashOffset"},gridOpacity:{part:"grid",vgProp:"opacity"},gridWidth:{part:"grid",vgProp:"strokeWidth"},tickColor:{part:"ticks",vgProp:"stroke"},tickDash:{part:"ticks",vgProp:"strokeDash"},tickDashOffset:{part:"ticks",vgProp:"strokeDashOffset"},tickOpacity:{part:"ticks",vgProp:"opacity"},tickSize:null,tickWidth:{part:"ticks",vgProp:"strokeWidth"}};function td(e){return e==null?void 0:e.condition}const wT=["domain","grid","labels","ticks","title"],ese={grid:"grid",gridCap:"grid",gridColor:"grid",gridDash:"grid",gridDashOffset:"grid",gridOpacity:"grid",gridScale:"grid",gridWidth:"grid",orient:"main",bandPosition:"both",aria:"main",description:"main",domain:"main",domainCap:"main",domainColor:"main",domainDash:"main",domainDashOffset:"main",domainOpacity:"main",domainWidth:"main",format:"main",formatType:"main",labelAlign:"main",labelAngle:"main",labelBaseline:"main",labelBound:"main",labelColor:"main",labelFlush:"main",labelFlushOffset:"main",labelFont:"main",labelFontSize:"main",labelFontStyle:"main",labelFontWeight:"main",labelLimit:"main",labelLineHeight:"main",labelOffset:"main",labelOpacity:"main",labelOverlap:"main",labelPadding:"main",labels:"main",labelSeparation:"main",maxExtent:"main",minExtent:"main",offset:"both",position:"main",tickCap:"main",tickColor:"main",tickDash:"main",tickDashOffset:"main",tickMinStep:"both",tickOffset:"both",tickOpacity:"main",tickRound:"both",ticks:"main",tickSize:"main",tickWidth:"both",title:"main",titleAlign:"main",titleAnchor:"main",titleAngle:"main",titleBaseline:"main",titleColor:"main",titleFont:"main",titleFontSize:"main",titleFontStyle:"main",titleFontWeight:"main",titleLimit:"main",titleLineHeight:"main",titleOpacity:"main",titlePadding:"main",titleX:"main",titleY:"main",encode:"both",scale:"both",tickBand:"both",tickCount:"both",tickExtra:"both",translate:"both",values:"both",zindex:"both"},ET={orient:1,aria:1,bandPosition:1,description:1,domain:1,domainCap:1,domainColor:1,domainDash:1,domainDashOffset:1,domainOpacity:1,domainWidth:1,format:1,formatType:1,grid:1,gridCap:1,gridColor:1,gridDash:1,gridDashOffset:1,gridOpacity:1,gridWidth:1,labelAlign:1,labelAngle:1,labelBaseline:1,labelBound:1,labelColor:1,labelFlush:1,labelFlushOffset:1,labelFont:1,labelFontSize:1,labelFontStyle:1,labelFontWeight:1,labelLimit:1,labelLineHeight:1,labelOffset:1,labelOpacity:1,labelOverlap:1,labelPadding:1,labels:1,labelSeparation:1,maxExtent:1,minExtent:1,offset:1,position:1,tickBand:1,tickCap:1,tickColor:1,tickCount:1,tickDash:1,tickDashOffset:1,tickExtra:1,tickMinStep:1,tickOffset:1,tickOpacity:1,tickRound:1,ticks:1,tickSize:1,tickWidth:1,title:1,titleAlign:1,titleAnchor:1,titleAngle:1,titleBaseline:1,titleColor:1,titleFont:1,titleFontSize:1,titleFontStyle:1,titleFontWeight:1,titleLimit:1,titleLineHeight:1,titleOpacity:1,titlePadding:1,titleX:1,titleY:1,translate:1,values:1,zindex:1},tse={...ET,style:1,labelExpr:1,encoding:1};function _x(e){return!!tse[e]}const nse={axis:1,axisBand:1,axisBottom:1,axisDiscrete:1,axisLeft:1,axisPoint:1,axisQuantitative:1,axisRight:1,axisTemporal:1,axisTop:1,axisX:1,axisXBand:1,axisXDiscrete:1,axisXPoint:1,axisXQuantitative:1,axisXTemporal:1,axisY:1,axisYBand:1,axisYDiscrete:1,axisYPoint:1,axisYQuantitative:1,axisYTemporal:1},ST=B(nse);function oa(e){return"mark"in e}class Dp{constructor(t,n){this.name=t,this.run=n}hasMatchingType(t){return oa(t)?Tae(t.mark)===this.name:!1}}function Xs(e,t){const n=e&&e[t];return n?P(n)?co(n,r=>!!r.field):U(n)||Mp(n):!1}function $T(e,t){const n=e&&e[t];return n?P(n)?co(n,r=>!!r.field):U(n)||Ei(n)||Zf(n):!1}function AT(e,t){if(et(t)){const n=e[t];if((U(n)||Ei(n))&&(YM(n.type)||U(n)&&n.timeUnit)){const r=V7(t);return $T(e,r)}}return!1}function k6(e){return co(ire,t=>{if(Xs(e,t)){const n=e[t];if(P(n))return co(n,r=>!!r.aggregate);{const r=li(n);return r&&!!r.aggregate}}return!1})}function kT(e,t){const n=[],r=[],i=[],a=[],s={};return C6(e,(o,u)=>{if(U(o)){const{field:c,aggregate:l,bin:f,timeUnit:d,...h}=o;if(l||d||f){const g=S6(o),p=g==null?void 0:g.title;let m=G(o,{forAs:!0});const b={...p?[]:{title:pu(o,t,{allowDisabling:!0})},...h,field:m};if(l){let y;if(fs(l)?(y="argmax",m=G({op:"argmax",field:l.argmax},{forAs:!0}),b.field=`${m}.${c}`):Qi(l)?(y="argmin",m=G({op:"argmin",field:l.argmin},{forAs:!0}),b.field=`${m}.${c}`):l!=="boxplot"&&l!=="errorbar"&&l!=="errorband"&&(y=l),y){const v={op:y,as:m};c&&(v.field=c),a.push(v)}}else if(n.push(m),un(o)&&Be(f)){if(r.push({bin:f,field:c,as:m}),n.push(G(o,{binSuffix:"end"})),ed(o,u)&&n.push(G(o,{binSuffix:"range"})),et(u)){const y={field:`${m}_end`};s[`${u}2`]=y}b.bin="binned",hM(u)||(b.type=go)}else if(d&&!Oo(d)){i.push({timeUnit:d,field:c,as:m});const y=un(o)&&o.type!==qu&&"time";y&&(u===Gf||u===fo?b.formatType=y:gre(u)?b.legend={formatType:y,...b.legend}:et(u)&&(b.axis={formatType:y,...b.axis}))}s[u]=b}else n.push(c),s[u]=e[u]}else s[u]=e[u]}),{bins:r,timeUnits:i,aggregate:a,groupby:n,encoding:s}}function rse(e,t,n){const r=mre(t,n);if(r){if(r==="binned"){const i=e[t===Or?He:_t];return!!(U(i)&&U(e[t])&&Et(i.bin))}}else return!1;return!0}function ise(e,t,n,r){const i={};for(const a of B(e))dM(a)||j(nie(a));for(let a of lre){if(!e[a])continue;const s=e[a];if(Xf(a)){const o=cre(a),u=i[o];if(U(u)&&tae(u.type)&&U(s)&&!u.timeUnit){j(Kre(o));continue}}if(a==="angle"&&t==="arc"&&!e.theta&&(j(Vre),a=sr),!rse(e,a,t)){j(_p(a,t));continue}if(a===ia&&t==="line"){const o=li(e[a]);if(o!=null&&o.aggregate){j(tie);continue}}if(a===wn&&(n?"fill"in e:"stroke"in e)){j(TM("encoding",{fill:"fill"in e,stroke:"stroke"in e}));continue}if(a===Yf||a===Uu&&!P(s)&&!Fr(s)||a===fo&&P(s)){if(s){if(a===Uu){const o=e[a];if(gT(o)){i[a]=o;continue}}i[a]=Y(s).reduce((o,u)=>(U(u)?o.push(A6(u,a)):j(wy(u,a)),o),[])}}else{if(a===fo&&s===null)i[a]=null;else if(!U(s)&&!Ei(s)&&!Fr(s)&&!Fp(s)&&!Q(s)){j(wy(s,a));continue}i[a]=xT(s,a,r)}}return i}function Op(e,t){const n={};for(const r of B(e)){const i=xT(e[r],r,t,{compositeMark:!0});n[r]=i}return n}function ase(e){const t=[];for(const n of B(e))if(Xs(e,n)){const r=e[n],i=Y(r);for(const a of i)U(a)?t.push(a):Mp(a)&&t.push(a.condition)}return t}function C6(e,t,n){if(e)for(const r of B(e)){const i=e[r];if(P(i))for(const a of i)t.call(n,a,r);else t.call(n,i,r)}}function sse(e,t,n,r){return e?B(e).reduce((i,a)=>{const s=e[a];return P(s)?s.reduce((o,u)=>t.call(r,o,u,a),i):t.call(r,i,s,a)},n):n}function CT(e,t){return B(t).reduce((n,r)=>{switch(r){case He:case _t:case pp:case bp:case mp:case Or:case yi:case ss:case mc:case sr:case ra:case Rr:case na:case Lr:case Pr:case Ir:case ir:case Gf:case En:case Mo:case fo:return n;case Uu:if(e==="line"||e==="trail")return n;case Yf:case gp:{const i=t[r];if(P(i)||U(i))for(const a of Y(i))a.aggregate||n.push(G(a,{}));return n}case ia:if(e==="trail")return n;case wn:case vi:case xi:case aa:case os:case us:case ls:case cs:{const i=li(t[r]);return i&&!i.aggregate&&n.push(G(i,{})),n}}},[])}function ose(e){const{tooltip:t,...n}=e;if(!t)return{filteredEncoding:n};let r,i;if(P(t)){for(const a of t)a.aggregate?(r||(r=[]),r.push(a)):(i||(i=[]),i.push(a));r&&(n.tooltip=r)}else t.aggregate?n.tooltip=t:i=t;return P(i)&&i.length===1&&(i=i[0]),{customTooltipWithoutAggregatedField:i,filteredEncoding:n}}function Ay(e,t,n,r=!0){if("tooltip"in n)return{tooltip:n.tooltip};const i=e.map(({fieldPrefix:s,titlePrefix:o})=>{const u=r?` of ${F6(t)}`:"";return{field:s+t.field,type:t.type,title:Q(o)?{signal:`${o}"${escape(u)}"`}:o+u}}),a=ase(n).map(qae);return{tooltip:[...i,...Kr(a,be)]}}function F6(e){const{title:t,field:n}=e;return Ze(t,n)}function M6(e,t,n,r,i){const{scale:a,axis:s}=n;return({partName:o,mark:u,positionPrefix:c,endPositionPrefix:l=void 0,extraEncoding:f={}})=>{const d=F6(n);return FT(e,o,i,{mark:u,encoding:{[t]:{field:`${c}_${n.field}`,type:n.type,...d!==void 0?{title:d}:{},...a!==void 0?{scale:a}:{},...s!==void 0?{axis:s}:{}},...X(l)?{[`${t}2`]:{field:`${l}_${n.field}`}}:{},...r,...f}})}}function FT(e,t,n,r){const{clip:i,color:a,opacity:s}=e,o=e.type;return e[t]||e[t]===void 0&&n[t]?[{...r,mark:{...n[t],...i?{clip:i}:{},...a?{color:a}:{},...s?{opacity:s}:{},...ci(r.mark)?r.mark:{type:r.mark},style:`${o}-${String(t)}`,...Za(e[t])?{}:e[t]}}]:[]}function MT(e,t,n){const{encoding:r}=e,i=t==="vertical"?"y":"x",a=r[i],s=r[`${i}2`],o=r[`${i}Error`],u=r[`${i}Error2`];return{continuousAxisChannelDef:Od(a,n),continuousAxisChannelDef2:Od(s,n),continuousAxisChannelDefError:Od(o,n),continuousAxisChannelDefError2:Od(u,n),continuousAxis:i}}function Od(e,t){if(e!=null&&e.aggregate){const{aggregate:n,...r}=e;return n!==t&&j(Mie(n,t)),r}else return e}function TT(e,t){const{mark:n,encoding:r}=e,{x:i,y:a}=r;if(ci(n)&&n.orient)return n.orient;if(ka(i)){if(ka(a)){const s=U(i)&&i.aggregate,o=U(a)&&a.aggregate;if(!s&&o===t)return"vertical";if(!o&&s===t)return"horizontal";if(s===t&&o===t)throw new Error("Both x and y cannot have aggregate");return Yu(a)&&!Yu(i)?"horizontal":"vertical"}return"horizontal"}else{if(ka(a))return"vertical";throw new Error(`Need a valid continuous axis for ${t}s`)}}const U0="boxplot",use=["box","median","outliers","rule","ticks"],cse=new Dp(U0,DT);function NT(e){return we(e)?"tukey":e}function DT(e,{config:t}){e={...e,encoding:Op(e.encoding,t)};const{mark:n,encoding:r,params:i,projection:a,...s}=e,o=ci(n)?n:{type:n};i&&j(FM("boxplot"));const u=o.extent??t.boxplot.extent,c=Te("size",o,t),l=o.invalid,f=NT(u),{bins:d,timeUnits:h,transform:g,continuousAxisChannelDef:p,continuousAxis:m,groupby:b,aggregate:y,encodingWithoutContinuousAxis:v,ticksOrient:x,boxOrient:_,customTooltipWithoutAggregatedField:E}=lse(e,u,t),{color:w,size:S,...$}=v,F=Gt=>M6(o,m,p,Gt,t.boxplot),k=F($),D=F(v),A=F({...$,...S?{size:S}:{}}),M=Ay([{fieldPrefix:f==="min-max"?"upper_whisker_":"max_",titlePrefix:"Max"},{fieldPrefix:"upper_box_",titlePrefix:"Q3"},{fieldPrefix:"mid_box_",titlePrefix:"Median"},{fieldPrefix:"lower_box_",titlePrefix:"Q1"},{fieldPrefix:f==="min-max"?"lower_whisker_":"min_",titlePrefix:"Min"}],p,v),C={type:"tick",color:"black",opacity:1,orient:x,invalid:l,aria:!1},T=f==="min-max"?M:Ay([{fieldPrefix:"upper_whisker_",titlePrefix:"Upper Whisker"},{fieldPrefix:"lower_whisker_",titlePrefix:"Lower Whisker"}],p,v),L=[...k({partName:"rule",mark:{type:"rule",invalid:l,aria:!1},positionPrefix:"lower_whisker",endPositionPrefix:"lower_box",extraEncoding:T}),...k({partName:"rule",mark:{type:"rule",invalid:l,aria:!1},positionPrefix:"upper_box",endPositionPrefix:"upper_whisker",extraEncoding:T}),...k({partName:"ticks",mark:C,positionPrefix:"lower_whisker",extraEncoding:T}),...k({partName:"ticks",mark:C,positionPrefix:"upper_whisker",extraEncoding:T})],I=[...f!=="tukey"?L:[],...D({partName:"box",mark:{type:"bar",...c?{size:c}:{},orient:_,invalid:l,ariaRoleDescription:"box"},positionPrefix:"lower_box",endPositionPrefix:"upper_box",extraEncoding:M}),...A({partName:"median",mark:{type:"tick",invalid:l,...V(t.boxplot.median)&&t.boxplot.median.color?{color:t.boxplot.median.color}:{},...c?{size:c}:{},orient:x,aria:!1},positionPrefix:"mid_box",extraEncoding:M})];if(f==="min-max")return{...s,transform:(s.transform??[]).concat(g),layer:I};const z=`datum["lower_box_${p.field}"]`,Z=`datum["upper_box_${p.field}"]`,ee=`(${Z} - ${z})`,fe=`${z} - ${u} * ${ee}`,Ee=`${Z} + ${u} * ${ee}`,me=`datum["${p.field}"]`,Ie={joinaggregate:OT(p.field),groupby:b},Si={transform:[{filter:`(${fe} <= ${me}) && (${me} <= ${Ee})`},{aggregate:[{op:"min",field:p.field,as:`lower_whisker_${p.field}`},{op:"max",field:p.field,as:`upper_whisker_${p.field}`},{op:"min",field:`lower_box_${p.field}`,as:`lower_box_${p.field}`},{op:"max",field:`upper_box_${p.field}`,as:`upper_box_${p.field}`},...y],groupby:b}],layer:L},{tooltip:Io,...gs}=$,{scale:K,axis:de}=p,ge=F6(p),q=bn(de,["title"]),wt=FT(o,"outliers",t.boxplot,{transform:[{filter:`(${me} < ${fe}) || (${me} > ${Ee})`}],mark:"point",encoding:{[m]:{field:p.field,type:p.type,...ge!==void 0?{title:ge}:{},...K!==void 0?{scale:K}:{},...Oe(q)?{}:{axis:q}},...gs,...w?{color:w}:{},...E?{tooltip:E}:{}}})[0];let Ce;const Mt=[...d,...h,Ie];return wt?Ce={transform:Mt,layer:[wt,Si]}:(Ce=Si,Ce.transform.unshift(...Mt)),{...s,layer:[Ce,{transform:g,layer:I}]}}function OT(e){return[{op:"q1",field:e,as:`lower_box_${e}`},{op:"q3",field:e,as:`upper_box_${e}`}]}function lse(e,t,n){const r=TT(e,U0),{continuousAxisChannelDef:i,continuousAxis:a}=MT(e,r,U0),s=i.field,o=NT(t),u=[...OT(s),{op:"median",field:s,as:`mid_box_${s}`},{op:"min",field:s,as:(o==="min-max"?"lower_whisker_":"min_")+s},{op:"max",field:s,as:(o==="min-max"?"upper_whisker_":"max_")+s}],c=o==="min-max"||o==="tukey"?[]:[{calculate:`datum["upper_box_${s}"] - datum["lower_box_${s}"]`,as:`iqr_${s}`},{calculate:`min(datum["upper_box_${s}"] + datum["iqr_${s}"] * ${t}, datum["max_${s}"])`,as:`upper_whisker_${s}`},{calculate:`max(datum["lower_box_${s}"] - datum["iqr_${s}"] * ${t}, datum["min_${s}"])`,as:`lower_whisker_${s}`}],{[a]:l,...f}=e.encoding,{customTooltipWithoutAggregatedField:d,filteredEncoding:h}=ose(f),{bins:g,timeUnits:p,aggregate:m,groupby:b,encoding:y}=kT(h,n),v=r==="vertical"?"horizontal":"vertical",x=r,_=[...g,...p,{aggregate:[...m,...u],groupby:b},...c];return{bins:g,timeUnits:p,transform:_,groupby:b,aggregate:m,continuousAxisChannelDef:i,continuousAxis:a,encodingWithoutContinuousAxis:y,ticksOrient:v,boxOrient:x,customTooltipWithoutAggregatedField:d}}const T6="errorbar",fse=["ticks","rule"],dse=new Dp(T6,RT);function RT(e,{config:t}){e={...e,encoding:Op(e.encoding,t)};const{transform:n,continuousAxisChannelDef:r,continuousAxis:i,encodingWithoutContinuousAxis:a,ticksOrient:s,markDef:o,outerSpec:u,tooltipEncoding:c}=LT(e,T6,t);delete a.size;const l=M6(o,i,r,a,t.errorbar),f=o.thickness,d=o.size,h={type:"tick",orient:s,aria:!1,...f!==void 0?{thickness:f}:{},...d!==void 0?{size:d}:{}},g=[...l({partName:"ticks",mark:h,positionPrefix:"lower",extraEncoding:c}),...l({partName:"ticks",mark:h,positionPrefix:"upper",extraEncoding:c}),...l({partName:"rule",mark:{type:"rule",ariaRoleDescription:"errorbar",...f!==void 0?{size:f}:{}},positionPrefix:"lower",endPositionPrefix:"upper",extraEncoding:c})];return{...u,transform:n,...g.length>1?{layer:g}:{...g[0]}}}function hse(e,t){const{encoding:n}=e;if(gse(n))return{orient:TT(e,t),inputType:"raw"};const r=pse(n),i=mse(n),a=n.x,s=n.y;if(r){if(i)throw new Error(`${t} cannot be both type aggregated-upper-lower and aggregated-error`);const o=n.x2,u=n.y2;if(ue(o)&&ue(u))throw new Error(`${t} cannot have both x2 and y2`);if(ue(o)){if(ka(a))return{orient:"horizontal",inputType:"aggregated-upper-lower"};throw new Error(`Both x and x2 have to be quantitative in ${t}`)}else if(ue(u)){if(ka(s))return{orient:"vertical",inputType:"aggregated-upper-lower"};throw new Error(`Both y and y2 have to be quantitative in ${t}`)}throw new Error("No ranged axis")}else{const o=n.xError,u=n.xError2,c=n.yError,l=n.yError2;if(ue(u)&&!ue(o))throw new Error(`${t} cannot have xError2 without xError`);if(ue(l)&&!ue(c))throw new Error(`${t} cannot have yError2 without yError`);if(ue(o)&&ue(c))throw new Error(`${t} cannot have both xError and yError with both are quantiative`);if(ue(o)){if(ka(a))return{orient:"horizontal",inputType:"aggregated-error"};throw new Error("All x, xError, and xError2 (if exist) have to be quantitative")}else if(ue(c)){if(ka(s))return{orient:"vertical",inputType:"aggregated-error"};throw new Error("All y, yError, and yError2 (if exist) have to be quantitative")}throw new Error("No ranged axis")}}function gse(e){return(ue(e.x)||ue(e.y))&&!ue(e.x2)&&!ue(e.y2)&&!ue(e.xError)&&!ue(e.xError2)&&!ue(e.yError)&&!ue(e.yError2)}function pse(e){return ue(e.x2)||ue(e.y2)}function mse(e){return ue(e.xError)||ue(e.xError2)||ue(e.yError)||ue(e.yError2)}function LT(e,t,n){const{mark:r,encoding:i,params:a,projection:s,...o}=e,u=ci(r)?r:{type:r};a&&j(FM(t));const{orient:c,inputType:l}=hse(e,t),{continuousAxisChannelDef:f,continuousAxisChannelDef2:d,continuousAxisChannelDefError:h,continuousAxisChannelDefError2:g,continuousAxis:p}=MT(e,c,t),{errorBarSpecificAggregate:m,postAggregateCalculates:b,tooltipSummary:y,tooltipTitleWithFieldName:v}=bse(u,f,d,h,g,l,t,n),{[p]:x,[p==="x"?"x2":"y2"]:_,[p==="x"?"xError":"yError"]:E,[p==="x"?"xError2":"yError2"]:w,...S}=i,{bins:$,timeUnits:F,aggregate:k,groupby:D,encoding:A}=kT(S,n),M=[...k,...m],C=l!=="raw"?[]:D,T=Ay(y,f,A,v);return{transform:[...o.transform??[],...$,...F,...M.length===0?[]:[{aggregate:M,groupby:C}],...b],groupby:C,continuousAxisChannelDef:f,continuousAxis:p,encodingWithoutContinuousAxis:A,ticksOrient:c==="vertical"?"horizontal":"vertical",markDef:u,outerSpec:o,tooltipEncoding:T}}function bse(e,t,n,r,i,a,s,o){let u=[],c=[];const l=t.field;let f,d=!1;if(a==="raw"){const h=e.center?e.center:e.extent?e.extent==="iqr"?"median":"mean":o.errorbar.center,g=e.extent?e.extent:h==="mean"?"stderr":"iqr";if(h==="median"!=(g==="iqr")&&j(Fie(h,g,s)),g==="stderr"||g==="stdev")u=[{op:g,field:l,as:`extent_${l}`},{op:h,field:l,as:`center_${l}`}],c=[{calculate:`datum["center_${l}"] + datum["extent_${l}"]`,as:`upper_${l}`},{calculate:`datum["center_${l}"] - datum["extent_${l}"]`,as:`lower_${l}`}],f=[{fieldPrefix:"center_",titlePrefix:Hf(h)},{fieldPrefix:"upper_",titlePrefix:wx(h,g,"+")},{fieldPrefix:"lower_",titlePrefix:wx(h,g,"-")}],d=!0;else{let p,m,b;g==="ci"?(p="mean",m="ci0",b="ci1"):(p="median",m="q1",b="q3"),u=[{op:m,field:l,as:`lower_${l}`},{op:b,field:l,as:`upper_${l}`},{op:p,field:l,as:`center_${l}`}],f=[{fieldPrefix:"upper_",titlePrefix:pu({field:l,aggregate:b,type:"quantitative"},o,{allowDisabling:!1})},{fieldPrefix:"lower_",titlePrefix:pu({field:l,aggregate:m,type:"quantitative"},o,{allowDisabling:!1})},{fieldPrefix:"center_",titlePrefix:pu({field:l,aggregate:p,type:"quantitative"},o,{allowDisabling:!1})}]}}else{(e.center||e.extent)&&j(Cie(e.center,e.extent)),a==="aggregated-upper-lower"?(f=[],c=[{calculate:`datum["${n.field}"]`,as:`upper_${l}`},{calculate:`datum["${l}"]`,as:`lower_${l}`}]):a==="aggregated-error"&&(f=[{fieldPrefix:"",titlePrefix:l}],c=[{calculate:`datum["${l}"] + datum["${r.field}"]`,as:`upper_${l}`}],i?c.push({calculate:`datum["${l}"] + datum["${i.field}"]`,as:`lower_${l}`}):c.push({calculate:`datum["${l}"] - datum["${r.field}"]`,as:`lower_${l}`}));for(const h of c)f.push({fieldPrefix:h.as.substring(0,6),titlePrefix:lo(lo(h.calculate,'datum["',""),'"]',"")})}return{postAggregateCalculates:c,errorBarSpecificAggregate:u,tooltipSummary:f,tooltipTitleWithFieldName:d}}function wx(e,t,n){return`${Hf(e)} ${n} ${t}`}const N6="errorband",yse=["band","borders"],vse=new Dp(N6,PT);function PT(e,{config:t}){e={...e,encoding:Op(e.encoding,t)};const{transform:n,continuousAxisChannelDef:r,continuousAxis:i,encodingWithoutContinuousAxis:a,markDef:s,outerSpec:o,tooltipEncoding:u}=LT(e,N6,t),c=s,l=M6(c,i,r,a,t.errorband),f=e.encoding.x!==void 0&&e.encoding.y!==void 0;let d={type:f?"area":"rect"},h={type:f?"line":"rule"};const g={...c.interpolate?{interpolate:c.interpolate}:{},...c.tension&&c.interpolate?{tension:c.tension}:{}};return f?(d={...d,...g,ariaRoleDescription:"errorband"},h={...h,...g,aria:!1}):c.interpolate?j(hx("interpolate")):c.tension&&j(hx("tension")),{...o,transform:n,layer:[...l({partName:"band",mark:d,positionPrefix:"lower",endPositionPrefix:"upper",extraEncoding:u}),...l({partName:"borders",mark:h,positionPrefix:"lower",extraEncoding:u}),...l({partName:"borders",mark:h,positionPrefix:"upper",extraEncoding:u})]}}const IT={};function D6(e,t,n){const r=new Dp(e,t);IT[e]={normalizer:r,parts:n}}function xse(){return B(IT)}D6(U0,DT,use);D6(T6,RT,fse);D6(N6,PT,yse);const _se=["gradientHorizontalMaxLength","gradientHorizontalMinLength","gradientVerticalMaxLength","gradientVerticalMinLength","unselectedOpacity"],zT={titleAlign:"align",titleAnchor:"anchor",titleAngle:"angle",titleBaseline:"baseline",titleColor:"color",titleFont:"font",titleFontSize:"fontSize",titleFontStyle:"fontStyle",titleFontWeight:"fontWeight",titleLimit:"limit",titleLineHeight:"lineHeight",titleOrient:"orient",titlePadding:"offset"},BT={labelAlign:"align",labelAnchor:"anchor",labelAngle:"angle",labelBaseline:"baseline",labelColor:"color",labelFont:"font",labelFontSize:"fontSize",labelFontStyle:"fontStyle",labelFontWeight:"fontWeight",labelLimit:"limit",labelLineHeight:"lineHeight",labelOrient:"orient",labelPadding:"offset"},wse=B(zT),Ese=B(BT),Sse={header:1,headerRow:1,headerColumn:1,headerFacet:1},UT=B(Sse),jT=["size","shape","fill","stroke","strokeDash","strokeWidth","opacity"],$se={gradientHorizontalMaxLength:200,gradientHorizontalMinLength:100,gradientVerticalMaxLength:200,gradientVerticalMinLength:64,unselectedOpacity:.35},Ase={aria:1,clipHeight:1,columnPadding:1,columns:1,cornerRadius:1,description:1,direction:1,fillColor:1,format:1,formatType:1,gradientLength:1,gradientOpacity:1,gradientStrokeColor:1,gradientStrokeWidth:1,gradientThickness:1,gridAlign:1,labelAlign:1,labelBaseline:1,labelColor:1,labelFont:1,labelFontSize:1,labelFontStyle:1,labelFontWeight:1,labelLimit:1,labelOffset:1,labelOpacity:1,labelOverlap:1,labelPadding:1,labelSeparation:1,legendX:1,legendY:1,offset:1,orient:1,padding:1,rowPadding:1,strokeColor:1,symbolDash:1,symbolDashOffset:1,symbolFillColor:1,symbolLimit:1,symbolOffset:1,symbolOpacity:1,symbolSize:1,symbolStrokeColor:1,symbolStrokeWidth:1,symbolType:1,tickCount:1,tickMinStep:1,title:1,titleAlign:1,titleAnchor:1,titleBaseline:1,titleColor:1,titleFont:1,titleFontSize:1,titleFontStyle:1,titleFontWeight:1,titleLimit:1,titleLineHeight:1,titleOpacity:1,titleOrient:1,titlePadding:1,type:1,values:1,zindex:1},Mr="_vgsid_",kse={point:{on:"click",fields:[Mr],toggle:"event.shiftKey",resolve:"global",clear:"dblclick"},interval:{on:"[pointerdown, window:pointerup] > window:pointermove!",encodings:["x","y"],translate:"[pointerdown, window:pointerup] > window:pointermove!",zoom:"wheel!",mark:{fill:"#333",fillOpacity:.125,stroke:"white"},resolve:"global",clear:"dblclick"}};function O6(e){return e==="legend"||!!(e!=null&&e.legend)}function dm(e){return O6(e)&&V(e)}function R6(e){return!!(e!=null&&e.select)}function qT(e){const t=[];for(const n of e||[]){if(R6(n))continue;const{expr:r,bind:i,...a}=n;if(i&&r){const s={...a,bind:i,init:r};t.push(s)}else{const s={...a,...r?{update:r}:{},...i?{bind:i}:{}};t.push(s)}}return t}function Cse(e){return Rp(e)||P6(e)||L6(e)}function L6(e){return"concat"in e}function Rp(e){return"vconcat"in e}function P6(e){return"hconcat"in e}function WT({step:e,offsetIsDiscrete:t}){return t?e.for??"offset":"position"}function fi(e){return V(e)&&e.step!==void 0}function Ex(e){return e.view||e.width||e.height}const Sx=20,Fse={align:1,bounds:1,center:1,columns:1,spacing:1},Mse=B(Fse);function Tse(e,t,n){const r=n[t],i={},{spacing:a,columns:s}=r;a!==void 0&&(i.spacing=a),s!==void 0&&(Cp(e)&&!Qf(e.facet)||L6(e))&&(i.columns=s),Rp(e)&&(i.columns=1);for(const o of Mse)if(e[o]!==void 0)if(o==="spacing"){const u=e[o];i[o]=we(u)?u:{row:u.row??a,column:u.column??a}}else i[o]=e[o];return i}function ky(e,t){return e[t]??e[t==="width"?"continuousWidth":"continuousHeight"]}function j0(e,t){const n=q0(e,t);return fi(n)?n.step:HT}function q0(e,t){const n=e[t]??e[t==="width"?"discreteWidth":"discreteHeight"];return Ze(n,{step:e.step})}const HT=20,Nse={continuousWidth:200,continuousHeight:200,step:HT},Dse={background:"white",padding:5,timeFormat:"%b %d, %Y",countTitle:"Count of Records",view:Nse,mark:$ae,arc:{},area:{},bar:Cae,circle:{},geoshape:{},image:{},line:{},point:{},rect:Fae,rule:{color:"black"},square:{},text:{color:"black"},tick:Mae,trail:{},boxplot:{size:14,extent:1.5,box:{},median:{color:"white"},outliers:{},rule:{},ticks:null},errorbar:{center:"mean",rule:!0,ticks:!1},errorband:{band:{opacity:.3},borders:!1},scale:oae,projection:{},legend:$se,header:{titlePadding:10,labelPadding:10},headerColumn:{},headerRow:{},headerFacet:{},selection:kse,style:{},title:{},facet:{spacing:Sx},concat:{spacing:Sx},normalizedNumberFormat:".0%"},Ci=["#4c78a8","#f58518","#e45756","#72b7b2","#54a24b","#eeca3b","#b279a2","#ff9da6","#9d755d","#bab0ac"],$x={text:11,guideLabel:10,guideTitle:11,groupTitle:13,groupSubtitle:12},Ax={blue:Ci[0],orange:Ci[1],red:Ci[2],teal:Ci[3],green:Ci[4],yellow:Ci[5],purple:Ci[6],pink:Ci[7],brown:Ci[8],gray0:"#000",gray1:"#111",gray2:"#222",gray3:"#333",gray4:"#444",gray5:"#555",gray6:"#666",gray7:"#777",gray8:"#888",gray9:"#999",gray10:"#aaa",gray11:"#bbb",gray12:"#ccc",gray13:"#ddd",gray14:"#eee",gray15:"#fff"};function Ose(e={}){return{signals:[{name:"color",value:V(e)?{...Ax,...e}:Ax}],mark:{color:{signal:"color.blue"}},rule:{color:{signal:"color.gray0"}},text:{color:{signal:"color.gray0"}},style:{"guide-label":{fill:{signal:"color.gray0"}},"guide-title":{fill:{signal:"color.gray0"}},"group-title":{fill:{signal:"color.gray0"}},"group-subtitle":{fill:{signal:"color.gray0"}},cell:{stroke:{signal:"color.gray8"}}},axis:{domainColor:{signal:"color.gray13"},gridColor:{signal:"color.gray8"},tickColor:{signal:"color.gray13"}},range:{category:[{signal:"color.blue"},{signal:"color.orange"},{signal:"color.red"},{signal:"color.teal"},{signal:"color.green"},{signal:"color.yellow"},{signal:"color.purple"},{signal:"color.pink"},{signal:"color.brown"},{signal:"color.grey8"}]}}}function Rse(e){return{signals:[{name:"fontSize",value:V(e)?{...$x,...e}:$x}],text:{fontSize:{signal:"fontSize.text"}},style:{"guide-label":{fontSize:{signal:"fontSize.guideLabel"}},"guide-title":{fontSize:{signal:"fontSize.guideTitle"}},"group-title":{fontSize:{signal:"fontSize.groupTitle"}},"group-subtitle":{fontSize:{signal:"fontSize.groupSubtitle"}}}}}function Lse(e){return{text:{font:e},style:{"guide-label":{font:e},"guide-title":{font:e},"group-title":{font:e},"group-subtitle":{font:e}}}}function GT(e){const t=B(e||{}),n={};for(const r of t){const i=e[r];n[r]=td(i)?wM(i):Mn(i)}return n}function Pse(e){const t=B(e),n={};for(const r of t)n[r]=GT(e[r]);return n}const Ise=[...rT,...ST,...UT,"background","padding","legend","lineBreak","scale","style","title","view"];function YT(e={}){const{color:t,font:n,fontSize:r,selection:i,...a}=e,s=ec({},oe(Dse),n?Lse(n):{},t?Ose(t):{},r?Rse(r):{},a||{});i&&tc(s,"selection",i,!0);const o=bn(s,Ise);for(const u of["background","lineBreak","padding"])s[u]&&(o[u]=Mn(s[u]));for(const u of rT)s[u]&&(o[u]=gn(s[u]));for(const u of ST)s[u]&&(o[u]=GT(s[u]));for(const u of UT)s[u]&&(o[u]=gn(s[u]));return s.legend&&(o.legend=gn(s.legend)),s.scale&&(o.scale=gn(s.scale)),s.style&&(o.style=Pse(s.style)),s.title&&(o.title=gn(s.title)),s.view&&(o.view=gn(s.view)),o}const zse=new Set(["view",...vae]),Bse=["color","fontSize","background","padding","facet","concat","numberFormat","numberFormatType","normalizedNumberFormat","normalizedNumberFormatType","timeFormat","countTitle","header","axisQuantitative","axisTemporal","axisDiscrete","axisPoint","axisXBand","axisXPoint","axisXDiscrete","axisXQuantitative","axisXTemporal","axisYBand","axisYPoint","axisYDiscrete","axisYQuantitative","axisYTemporal","scale","selection","overlay"],Use={view:["continuousWidth","continuousHeight","discreteWidth","discreteHeight","step"],...Sae};function jse(e){e=oe(e);for(const t of Bse)delete e[t];if(e.axis)for(const t in e.axis)td(e.axis[t])&&delete e.axis[t];if(e.legend)for(const t of _se)delete e.legend[t];if(e.mark){for(const t of px)delete e.mark[t];e.mark.tooltip&&V(e.mark.tooltip)&&delete e.mark.tooltip}e.params&&(e.signals=(e.signals||[]).concat(qT(e.params)),delete e.params);for(const t of zse){for(const r of px)delete e[t][r];const n=Use[t];if(n)for(const r of n)delete e[t][r];Wse(e,t)}for(const t of xse())delete e[t];qse(e);for(const t in e)V(e[t])&&Oe(e[t])&&delete e[t];return Oe(e)?void 0:e}function qse(e){const{titleMarkConfig:t,subtitleMarkConfig:n,subtitle:r}=_M(e.title);Oe(t)||(e.style["group-title"]={...e.style["group-title"],...t}),Oe(n)||(e.style["group-subtitle"]={...e.style["group-subtitle"],...n}),Oe(r)?delete e.title:e.title=r}function Wse(e,t,n,r){const i=r?e[t][r]:e[t];t==="view"&&(n="cell");const a={...i,...e.style[n??t]};Oe(a)||(e.style[n??t]=a),r||delete e[t]}function Lp(e){return"layer"in e}function Hse(e){return"repeat"in e}function Gse(e){return!P(e.repeat)&&e.repeat.layer}class I6{map(t,n){return Cp(t)?this.mapFacet(t,n):Hse(t)?this.mapRepeat(t,n):P6(t)?this.mapHConcat(t,n):Rp(t)?this.mapVConcat(t,n):L6(t)?this.mapConcat(t,n):this.mapLayerOrUnit(t,n)}mapLayerOrUnit(t,n){if(Lp(t))return this.mapLayer(t,n);if(oa(t))return this.mapUnit(t,n);throw new Error(e6(t))}mapLayer(t,n){return{...t,layer:t.layer.map(r=>this.mapLayerOrUnit(r,n))}}mapHConcat(t,n){return{...t,hconcat:t.hconcat.map(r=>this.map(r,n))}}mapVConcat(t,n){return{...t,vconcat:t.vconcat.map(r=>this.map(r,n))}}mapConcat(t,n){const{concat:r,...i}=t;return{...i,concat:r.map(a=>this.map(a,n))}}mapFacet(t,n){return{...t,spec:this.map(t.spec,n)}}mapRepeat(t,n){return{...t,spec:this.map(t.spec,n)}}}const Yse={zero:1,center:1,normalize:1};function Xse(e){return e in Yse}const Vse=new Set([eT,Sp,Ep,R0,Ap,m6,b6,$p,tT,p6]),Kse=new Set([Sp,Ep,eT]);function Vo(e){return U(e)&&Hu(e)==="quantitative"&&!e.bin}function kx(e,t,{orient:n,type:r}){const i=t==="x"?"y":"radius",a=t==="x"&&["bar","area"].includes(r),s=e[t],o=e[i];if(U(s)&&U(o))if(Vo(s)&&Vo(o)){if(s.stack)return t;if(o.stack)return i;const u=U(s)&&!!s.aggregate,c=U(o)&&!!o.aggregate;if(u!==c)return u?t:i;if(a){if(n==="vertical")return i;if(n==="horizontal")return t}}else{if(Vo(s))return t;if(Vo(o))return i}else{if(Vo(s))return a&&n==="vertical"?void 0:t;if(Vo(o))return a&&n==="horizontal"?void 0:i}}function Jse(e){switch(e){case"x":return"y";case"y":return"x";case"theta":return"radius";case"radius":return"theta"}}function XT(e,t){var p,m;const n=ci(e)?e:{type:e},r=n.type;if(!Vse.has(r))return null;const i=kx(t,"x",n)||kx(t,"theta",n);if(!i)return null;const a=t[i],s=U(a)?G(a,{}):void 0,o=Jse(i),u=[],c=new Set;if(t[o]){const b=t[o],y=U(b)?G(b,{}):void 0;y&&y!==s&&(u.push(o),c.add(y))}const l=o==="x"?"xOffset":"yOffset",f=t[l],d=U(f)?G(f,{}):void 0;d&&d!==s&&(u.push(l),c.add(d));const h=fre.reduce((b,y)=>{if(y!=="tooltip"&&Xs(t,y)){const v=t[y];for(const x of Y(v)){const _=li(x);if(_.aggregate)continue;const E=G(_,{});(!E||!c.has(E))&&b.push({channel:y,fieldDef:_})}}return b},[]);let g;return a.stack!==void 0?Za(a.stack)?g=a.stack?"zero":null:g=a.stack:Kse.has(r)&&(g="zero"),!g||!Xse(g)||k6(t)&&h.length===0?null:(p=a==null?void 0:a.scale)!=null&&p.type&&((m=a==null?void 0:a.scale)==null?void 0:m.type)!==yn.LINEAR?(a!=null&&a.stack&&j($ie(a.scale.type)),null):ue(t[_i(i)])?(a.stack!==void 0&&j(Sie(i)),null):(U(a)&&a.aggregate&&!Ere.has(a.aggregate)&&j(Aie(a.aggregate)),{groupbyChannels:u,groupbyFields:c,fieldChannel:i,impute:a.impute===null?!1:hs(r),stackBy:h,offset:g})}function VT(e,t,n){const r=gn(e),i=Te("orient",r,n);if(r.orient=toe(r.type,t,i),i!==void 0&&i!==r.orient&&j(uie(r.orient,i)),r.type==="bar"&&r.orient){const o=Te("cornerRadiusEnd",r,n);if(o!==void 0){const u=r.orient==="horizontal"&&t.x2||r.orient==="vertical"&&t.y2?["cornerRadius"]:kae[r.orient];for(const c of u)r[c]=o;r.cornerRadiusEnd!==void 0&&delete r.cornerRadiusEnd}}return Te("opacity",r,n)===void 0&&(r.opacity=Zse(r.type,t)),Te("cursor",r,n)===void 0&&(r.cursor=Qse(r,t,n)),r}function Qse(e,t,n){return t.href||e.href||Te("href",e,n)?"pointer":e.cursor}function Zse(e,t){if(ye([Ap,p6,m6,b6],e)&&!k6(t))return .7}function eoe(e,t,{graticule:n}){if(n)return!1;const r=Zi("filled",e,t),i=e.type;return Ze(r,i!==Ap&&i!==$p&&i!==R0)}function toe(e,t,n){switch(e){case Ap:case m6:case b6:case tT:case bae:case mae:return}const{x:r,y:i,x2:a,y2:s}=t;switch(e){case Sp:if(U(r)&&(Et(r.bin)||U(i)&&i.aggregate&&!r.aggregate))return"vertical";if(U(i)&&(Et(i.bin)||U(r)&&r.aggregate&&!i.aggregate))return"horizontal";if(s||a){if(n)return n;if(!a)return(U(r)&&r.type===go&&!Be(r.bin)||P0(r))&&U(i)&&Et(i.bin)?"horizontal":"vertical";if(!s)return(U(i)&&i.type===go&&!Be(i.bin)||P0(i))&&U(r)&&Et(r.bin)?"vertical":"horizontal"}case R0:if(a&&!(U(r)&&Et(r.bin))&&s&&!(U(i)&&Et(i.bin)))return;case Ep:if(s)return U(i)&&Et(i.bin)?"horizontal":"vertical";if(a)return U(r)&&Et(r.bin)?"vertical":"horizontal";if(e===R0){if(r&&!i)return"vertical";if(i&&!r)return"horizontal"}case $p:case p6:{const o=vx(r),u=vx(i);if(n)return n;if(o&&!u)return e!=="tick"?"horizontal":"vertical";if(!o&&u)return e!=="tick"?"vertical":"horizontal";if(o&&u)return"vertical";{const c=un(r)&&r.type===qu,l=un(i)&&i.type===qu;if(c&&!l)return"vertical";if(!c&&l)return"horizontal"}return}}return"vertical"}function noe(e){const{point:t,line:n,...r}=e;return B(r).length>1?r:r.type}function roe(e){for(const t of["line","area","rule","trail"])e[t]&&(e={...e,[t]:bn(e[t],["point","line"])});return e}function hm(e,t={},n){return e.point==="transparent"?{opacity:0}:e.point?V(e.point)?e.point:{}:e.point!==void 0?null:t.point||n.shape?V(t.point)?t.point:{}:void 0}function Cx(e,t={}){return e.line?e.line===!0?{}:e.line:e.line!==void 0?null:t.line?t.line===!0?{}:t.line:void 0}class ioe{constructor(){this.name="path-overlay"}hasMatchingType(t,n){if(oa(t)){const{mark:r,encoding:i}=t,a=ci(r)?r:{type:r};switch(a.type){case"line":case"rule":case"trail":return!!hm(a,n[a.type],i);case"area":return!!hm(a,n[a.type],i)||!!Cx(a,n[a.type])}}return!1}run(t,n,r){const{config:i}=n,{params:a,projection:s,mark:o,name:u,encoding:c,...l}=t,f=Op(c,i),d=ci(o)?o:{type:o},h=hm(d,i[d.type],f),g=d.type==="area"&&Cx(d,i[d.type]),p=[{name:u,...a?{params:a}:{},mark:noe({...d.type==="area"&&d.opacity===void 0&&d.fillOpacity===void 0?{opacity:.7}:{},...d}),encoding:bn(f,["shape"])}],m=XT(VT(d,f,i),f);let b=f;if(m){const{fieldChannel:y,offset:v}=m;b={...f,[y]:{...f[y],...v?{stack:v}:{}}}}return b=bn(b,["y2","x2"]),g&&p.push({...s?{projection:s}:{},mark:{type:"line",...zu(d,["clip","interpolate","tension","tooltip"]),...g},encoding:b}),h&&p.push({...s?{projection:s}:{},mark:{type:"point",opacity:1,filled:!0,...zu(d,["clip","tooltip"]),...h},encoding:b}),r({...l,layer:p},{...n,config:roe(i)})}}function aoe(e,t){return t?Qf(e)?JT(e,t):KT(e,t):e}function gm(e,t){return t?JT(e,t):e}function Cy(e,t,n){const r=t[e];if(Uae(r)){if(r.repeat in n)return{...t,[e]:n[r.repeat]};j(jre(r.repeat));return}return t}function KT(e,t){if(e=Cy("field",e,t),e!==void 0){if(e===null)return null;if(E6(e)&&ei(e.sort)){const n=Cy("field",e.sort,t);e={...e,...n?{sort:n}:{}}}return e}}function Fx(e,t){if(U(e))return KT(e,t);{const n=Cy("datum",e,t);return n!==e&&!n.type&&(n.type="nominal"),n}}function Mx(e,t){if(ue(e)){const n=Fx(e,t);if(n)return n;if(Fp(e))return{condition:e.condition}}else{if(Zf(e)){const n=Fx(e.condition,t);if(n)return{...e,condition:n};{const{condition:r,...i}=e;return i}}return e}}function JT(e,t){const n={};for(const r in e)if(ie(e,r)){const i=e[r];if(P(i))n[r]=i.map(a=>Mx(a,t)).filter(a=>a);else{const a=Mx(i,t);a!==void 0&&(n[r]=a)}}return n}class soe{constructor(){this.name="RuleForRangedLine"}hasMatchingType(t){if(oa(t)){const{encoding:n,mark:r}=t;if(r==="line"||ci(r)&&r.type==="line")for(const i of ure){const a=To(i),s=n[a];if(n[i]&&(U(s)&&!Et(s.bin)||Ei(s)))return!0}}return!1}run(t,n,r){const{encoding:i,mark:a}=t;return j(oie(!!i.x2,!!i.y2)),r({...t,mark:V(a)?{...a,type:"rule"}:"rule"},n)}}class ooe extends I6{constructor(){super(...arguments),this.nonFacetUnitNormalizers=[cse,dse,vse,new ioe,new soe]}map(t,n){if(oa(t)){const r=Xs(t.encoding,Hi),i=Xs(t.encoding,Gi),a=Xs(t.encoding,hp);if(r||i||a)return this.mapFacetedUnit(t,n)}return super.map(t,n)}mapUnit(t,n){const{parentEncoding:r,parentProjection:i}=n,a=gm(t.encoding,n.repeater),s={...t,...t.name?{name:[n.repeaterPrefix,t.name].filter(u=>u).join("_")}:{},...a?{encoding:a}:{}};if(r||i)return this.mapUnitWithParentEncodingOrProjection(s,n);const o=this.mapLayerOrUnit.bind(this);for(const u of this.nonFacetUnitNormalizers)if(u.hasMatchingType(s,n.config))return u.run(s,n,o);return s}mapRepeat(t,n){return Gse(t)?this.mapLayerRepeat(t,n):this.mapNonLayerRepeat(t,n)}mapLayerRepeat(t,n){const{repeat:r,spec:i,...a}=t,{row:s,column:o,layer:u}=r,{repeater:c={},repeaterPrefix:l=""}=n;return s||o?this.mapRepeat({...t,repeat:{...s?{row:s}:{},...o?{column:o}:{}},spec:{repeat:{layer:u},spec:i}},n):{...a,layer:u.map(f=>{const d={...c,layer:f},h=`${(i.name?`${i.name}_`:"")+l}child__layer_${We(f)}`,g=this.mapLayerOrUnit(i,{...n,repeater:d,repeaterPrefix:h});return g.name=h,g})}}mapNonLayerRepeat(t,n){const{repeat:r,spec:i,data:a,...s}=t;!P(r)&&t.columns&&(t=bn(t,["columns"]),j(cx("repeat")));const o=[],{repeater:u={},repeaterPrefix:c=""}=n,l=!P(r)&&r.row||[u?u.row:null],f=!P(r)&&r.column||[u?u.column:null],d=P(r)&&r||[u?u.repeat:null];for(const g of d)for(const p of l)for(const m of f){const b={repeat:g,row:p,column:m,layer:u.layer},y=(i.name?`${i.name}_`:"")+c+"child__"+(P(r)?`${We(g)}`:(r.row?`row_${We(p)}`:"")+(r.column?`column_${We(m)}`:"")),v=this.map(i,{...n,repeater:b,repeaterPrefix:y});v.name=y,o.push(bn(v,["data"]))}const h=P(r)?t.columns:r.column?r.column.length:1;return{data:i.data??a,align:"all",...s,columns:h,concat:o}}mapFacet(t,n){const{facet:r}=t;return Qf(r)&&t.columns&&(t=bn(t,["columns"]),j(cx("facet"))),super.mapFacet(t,n)}mapUnitWithParentEncodingOrProjection(t,n){const{encoding:r,projection:i}=t,{parentEncoding:a,parentProjection:s,config:o}=n,u=Nx({parentProjection:s,projection:i}),c=Tx({parentEncoding:a,encoding:gm(r,n.repeater)});return this.mapUnit({...t,...u?{projection:u}:{},...c?{encoding:c}:{}},{config:o})}mapFacetedUnit(t,n){const{row:r,column:i,facet:a,...s}=t.encoding,{mark:o,width:u,projection:c,height:l,view:f,params:d,encoding:h,...g}=t,{facetMapping:p,layout:m}=this.getFacetMappingAndLayout({row:r,column:i,facet:a},n),b=gm(s,n.repeater);return this.mapFacet({...g,...m,facet:p,spec:{...u?{width:u}:{},...l?{height:l}:{},...f?{view:f}:{},...c?{projection:c}:{},mark:o,encoding:b,...d?{params:d}:{}}},n)}getFacetMappingAndLayout(t,n){const{row:r,column:i,facet:a}=t;if(r||i){a&&j(aie([...r?[Hi]:[],...i?[Gi]:[]]));const s={},o={};for(const u of[Hi,Gi]){const c=t[u];if(c){const{align:l,center:f,spacing:d,columns:h,...g}=c;s[u]=g;for(const p of["align","center","spacing"])c[p]!==void 0&&(o[p]??(o[p]={}),o[p][u]=c[p])}}return{facetMapping:s,layout:o}}else{const{align:s,center:o,spacing:u,columns:c,...l}=a;return{facetMapping:aoe(l,n.repeater),layout:{...s?{align:s}:{},...o?{center:o}:{},...u?{spacing:u}:{},...c?{columns:c}:{}}}}}mapLayer(t,{parentEncoding:n,parentProjection:r,...i}){const{encoding:a,projection:s,...o}=t,u={...i,parentEncoding:Tx({parentEncoding:n,encoding:a,layer:!0}),parentProjection:Nx({parentProjection:r,projection:s})};return super.mapLayer({...o,...t.name?{name:[u.repeaterPrefix,t.name].filter(c=>c).join("_")}:{}},u)}}function Tx({parentEncoding:e,encoding:t={},layer:n}){let r={};if(e){const i=new Set([...B(e),...B(t)]);for(const a of i){const s=t[a],o=e[a];if(ue(s)){const u={...o,...s};r[a]=u}else Zf(s)?r[a]={...s,condition:{...o,...s.condition}}:s||s===null?r[a]=s:(n||Fr(o)||Q(o)||ue(o)||P(o))&&(r[a]=o)}}else r=t;return!r||Oe(r)?void 0:r}function Nx(e){const{parentProjection:t,projection:n}=e;return t&&n&&j(Xre({parentProjection:t,projection:n})),n??t}function z6(e){return"filter"in e}function uoe(e){return(e==null?void 0:e.stop)!==void 0}function QT(e){return"lookup"in e}function coe(e){return"data"in e}function loe(e){return"param"in e}function foe(e){return"pivot"in e}function doe(e){return"density"in e}function hoe(e){return"quantile"in e}function goe(e){return"regression"in e}function poe(e){return"loess"in e}function moe(e){return"sample"in e}function boe(e){return"window"in e}function yoe(e){return"joinaggregate"in e}function voe(e){return"flatten"in e}function xoe(e){return"calculate"in e}function ZT(e){return"bin"in e}function _oe(e){return"impute"in e}function woe(e){return"timeUnit"in e}function Eoe(e){return"aggregate"in e}function Soe(e){return"stack"in e}function $oe(e){return"fold"in e}function Aoe(e){return"extent"in e&&!("density"in e)}function koe(e){return e.map(t=>z6(t)?{filter:hu(t.filter,eae)}:t)}class Coe extends I6{map(t,n){return n.emptySelections??(n.emptySelections={}),n.selectionPredicates??(n.selectionPredicates={}),t=Dx(t,n),super.map(t,n)}mapLayerOrUnit(t,n){if(t=Dx(t,n),t.encoding){const r={};for(const[i,a]of Ga(t.encoding))r[i]=eN(a,n);t={...t,encoding:r}}return super.mapLayerOrUnit(t,n)}mapUnit(t,n){const{selection:r,...i}=t;return r?{...i,params:Ga(r).map(([a,s])=>{const{init:o,bind:u,empty:c,...l}=s;l.type==="single"?(l.type="point",l.toggle=!1):l.type==="multi"&&(l.type="point"),n.emptySelections[a]=c!=="none";for(const f of kt(n.selectionPredicates[a]??{}))f.empty=c!=="none";return{name:a,value:o,select:l,bind:u}})}:t}}function Dx(e,t){const{transform:n,...r}=e;if(n){const i=n.map(a=>{if(z6(a))return{filter:Fy(a,t)};if(ZT(a)&&No(a.bin))return{...a,bin:tN(a.bin)};if(QT(a)){const{selection:s,...o}=a.from;return s?{...a,from:{param:s,...o}}:a}return a});return{...r,transform:i}}return e}function eN(e,t){var r,i;const n=oe(e);if(U(n)&&No(n.bin)&&(n.bin=tN(n.bin)),Ro(n)&&((i=(r=n.scale)==null?void 0:r.domain)!=null&&i.selection)){const{selection:a,...s}=n.scale.domain;n.scale.domain={...s,...a?{param:a}:{}}}if(Fp(n))if(P(n.condition))n.condition=n.condition.map(a=>{const{selection:s,param:o,test:u,...c}=a;return o?a:{...c,test:Fy(a,t)}});else{const{selection:a,param:s,test:o,...u}=eN(n.condition,t);n.condition=s?n.condition:{...u,test:Fy(n.condition,t)}}return n}function tN(e){const t=e.extent;if(t!=null&&t.selection){const{selection:n,...r}=t;return{...e,extent:{...r,param:n}}}return e}function Fy(e,t){const n=r=>hu(r,i=>{var a;const s=t.emptySelections[i]??!0,o={param:i,empty:s};return(a=t.selectionPredicates)[i]??(a[i]=[]),t.selectionPredicates[i].push(o),o});return e.selection?n(e.selection):hu(e.test||e.filter,r=>r.selection?n(r.selection):r)}class My extends I6{map(t,n){const r=n.selections??[];if(t.params&&!oa(t)){const i=[];for(const a of t.params)R6(a)?r.push(a):i.push(a);t.params=i}return n.selections=r,super.map(t,n)}mapUnit(t,n){const r=n.selections;if(!r||!r.length)return t;const i=(n.path??[]).concat(t.name),a=[];for(const s of r)if(!s.views||!s.views.length)a.push(s);else for(const o of s.views)(X(o)&&(o===t.name||i.includes(o))||P(o)&&o.map(u=>i.indexOf(u)).every((u,c,l)=>u!==-1&&(c===0||u>l[c-1])))&&a.push(s);return a.length&&(t.params=a),t}}for(const e of["mapFacet","mapRepeat","mapHConcat","mapVConcat","mapLayer"]){const t=My.prototype[e];My.prototype[e]=function(n,r){return t.call(this,n,Foe(n,r))}}function Foe(e,t){return e.name?{...t,path:(t.path??[]).concat(e.name)}:t}function nN(e,t){t===void 0&&(t=YT(e.config));const n=Doe(e,t),{width:r,height:i}=e,a=Ooe(n,{width:r,height:i,autosize:e.autosize},t);return{...n,...a?{autosize:a}:{}}}const Moe=new ooe,Toe=new Coe,Noe=new My;function Doe(e,t={}){const n={config:t};return Noe.map(Moe.map(Toe.map(e,n),n),n)}function Ox(e){return X(e)?{type:e}:e??{}}function Ooe(e,t,n){let{width:r,height:i}=t;const a=oa(e)||Lp(e),s={};a?r=="container"&&i=="container"?(s.type="fit",s.contains="padding"):r=="container"?(s.type="fit-x",s.contains="padding"):i=="container"&&(s.type="fit-y",s.contains="padding"):(r=="container"&&(j(ax("width")),r=void 0),i=="container"&&(j(ax("height")),i=void 0));const o={type:"pad",...s,...n?Ox(n.autosize):{},...Ox(e.autosize)};if(o.type==="fit"&&!a&&(j(Nre),o.type="pad"),r=="container"&&!(o.type=="fit"||o.type=="fit-x")&&j(sx("width")),i=="container"&&!(o.type=="fit"||o.type=="fit-y")&&j(sx("height")),!Dn(o,{type:"pad"}))return o}function Roe(e){return e==="fit"||e==="fit-x"||e==="fit-y"}function Loe(e){return e?`fit-${yp(e)}`:"fit"}const Poe=["background","padding"];function Rx(e,t){const n={};for(const r of Poe)e&&e[r]!==void 0&&(n[r]=Mn(e[r]));return t&&(n.params=e.params),n}class ua{constructor(t={},n={}){this.explicit=t,this.implicit=n}clone(){return new ua(oe(this.explicit),oe(this.implicit))}combine(){return{...this.explicit,...this.implicit}}get(t){return Ze(this.explicit[t],this.implicit[t])}getWithExplicit(t){return this.explicit[t]!==void 0?{explicit:!0,value:this.explicit[t]}:this.implicit[t]!==void 0?{explicit:!1,value:this.implicit[t]}:{explicit:!1,value:void 0}}setWithExplicit(t,{value:n,explicit:r}){n!==void 0&&this.set(t,n,r)}set(t,n,r){return delete this[r?"implicit":"explicit"][t],this[r?"explicit":"implicit"][t]=n,this}copyKeyFromSplit(t,{explicit:n,implicit:r}){n[t]!==void 0?this.set(t,n[t],!0):r[t]!==void 0&&this.set(t,r[t],!1)}copyKeyFromObject(t,n){n[t]!==void 0&&this.set(t,n[t],!0)}copyAll(t){for(const n of B(t.combine())){const r=t.getWithExplicit(n);this.setWithExplicit(n,r)}}}function Hr(e){return{explicit:!0,value:e}}function kn(e){return{explicit:!1,value:e}}function rN(e){return(t,n,r,i)=>{const a=e(t.value,n.value);return a>0?t:a<0?n:Pp(t,n,r,i)}}function Pp(e,t,n,r){return e.explicit&&t.explicit&&j(bie(n,r,e.value,t.value)),e}function Va(e,t,n,r,i=Pp){return e===void 0||e.value===void 0?t:e.explicit&&!t.explicit?e:t.explicit&&!e.explicit?t:Dn(e.value,t.value)?e:i(e,t,n,r)}class Ioe extends ua{constructor(t={},n={},r=!1){super(t,n),this.explicit=t,this.implicit=n,this.parseNothing=r}clone(){const t=super.clone();return t.parseNothing=this.parseNothing,t}}function Xu(e){return"url"in e}function ff(e){return"values"in e}function iN(e){return"name"in e&&!Xu(e)&&!ff(e)&&!Da(e)}function Da(e){return e&&(aN(e)||sN(e)||B6(e))}function aN(e){return"sequence"in e}function sN(e){return"sphere"in e}function B6(e){return"graticule"in e}var ze;(function(e){e[e.Raw=0]="Raw",e[e.Main=1]="Main",e[e.Row=2]="Row",e[e.Column=3]="Column",e[e.Lookup=4]="Lookup"})(ze||(ze={}));function oN(e){const{signals:t,hasLegend:n,index:r,...i}=e;return i.field=rr(i.field),i}function bo(e,t=!0,n=Wt){if(P(e)){const r=e.map(i=>bo(i,t,n));return t?`[${r.join(", ")}]`:r}else if(Do(e))return n(t?ho(e):jie(e));return t?n(Re(e)):e}function zoe(e,t){for(const n of kt(e.component.selection??{})){const r=n.name;let i=`${r}${Ja}, ${n.resolve==="global"?"true":`{unit: ${Vs(e)}}`}`;for(const a of Up)a.defined(n)&&(a.signals&&(t=a.signals(e,n,t)),a.modifyExpr&&(i=a.modifyExpr(e,n,i)));t.push({name:r+bue,on:[{events:{signal:n.name+Ja},update:`modify(${H(n.name+yo)}, ${i})`}]})}return U6(t)}function Boe(e,t){if(e.component.selection&&B(e.component.selection).length){const n=H(e.getName("cell"));t.unshift({name:"facet",value:{},on:[{events:as("pointermove","scope"),update:`isTuple(facet) ? facet : group(${n}).datum`}]})}return U6(t)}function Uoe(e,t){let n=!1;for(const r of kt(e.component.selection??{})){const i=r.name,a=H(i+yo);if(t.filter(o=>o.name===i).length===0){const o=r.resolve==="global"?"union":r.resolve,u=r.type==="point"?", true, true)":")";t.push({name:r.name,update:`${$N}(${a}, ${H(o)}${u}`})}n=!0;for(const o of Up)o.defined(r)&&o.topLevelSignals&&(t=o.topLevelSignals(e,r,t))}return n&&t.filter(i=>i.name==="unit").length===0&&t.unshift({name:"unit",value:{},on:[{events:"pointermove",update:"isTuple(group()) ? group() : unit"}]}),U6(t)}function joe(e,t){const n=[...t],r=Vs(e,{escape:!1});for(const i of kt(e.component.selection??{})){const a={name:i.name+yo};if(i.project.hasSelectionId&&(a.transform=[{type:"collect",sort:{field:Mr}}]),i.init){const o=i.project.items.map(oN);a.values=i.project.hasSelectionId?i.init.map(u=>({unit:r,[Mr]:bo(u,!1)[0]})):i.init.map(u=>({unit:r,fields:o,values:bo(u,!1)}))}n.filter(o=>o.name===i.name+yo).length||n.push(a)}return n}function uN(e,t){for(const n of kt(e.component.selection??{}))for(const r of Up)r.defined(n)&&r.marks&&(t=r.marks(e,n,t));return t}function qoe(e,t){for(const n of e.children)Ve(n)&&(t=uN(n,t));return t}function Woe(e,t,n,r){const i=MN(e,t.param,t);return{signal:Bn(n.get("type"))&&P(r)&&r[0]>r[1]?`isValid(${i}) && reverse(${i})`:i}}function U6(e){return e.map(t=>(t.on&&!t.on.length&&delete t.on,t))}class De{constructor(t,n){this.debugName=n,this._children=[],this._parent=null,t&&(this.parent=t)}clone(){throw new Error("Cannot clone node")}get parent(){return this._parent}set parent(t){this._parent=t,t&&t.addChild(this)}get children(){return this._children}numChildren(){return this._children.length}addChild(t,n){if(this._children.includes(t)){j(Hre);return}n!==void 0?this._children.splice(n,0,t):this._children.push(t)}removeChild(t){const n=this._children.indexOf(t);return this._children.splice(n,1),n}remove(){let t=this._parent.removeChild(this);for(const n of this._children)n._parent=this._parent,this._parent.addChild(n,t++)}insertAsParentOf(t){const n=t.parent;n.removeChild(this),this.parent=n,t.parent=this}swapWithParent(){const t=this._parent,n=t.parent;for(const i of this._children)i.parent=t;this._children=[],t.removeChild(this);const r=t.parent.removeChild(t);this._parent=n,n.addChild(this,r),t.parent=this}}class an extends De{clone(){const t=new this.constructor;return t.debugName=`clone_${this.debugName}`,t._source=this._source,t._name=`clone_${this._name}`,t.type=this.type,t.refCounts=this.refCounts,t.refCounts[t._name]=0,t}constructor(t,n,r,i){super(t,n),this.type=r,this.refCounts=i,this._source=this._name=n,this.refCounts&&!(this._name in this.refCounts)&&(this.refCounts[this._name]=0)}dependentFields(){return new Set}producedFields(){return new Set}hash(){return this._hash===void 0&&(this._hash=`Output ${iM()}`),this._hash}getSource(){return this.refCounts[this._name]++,this._source}isRequired(){return!!this.refCounts[this._name]}setSource(t){this._source=t}}function pm(e){return e.as!==void 0}function Lx(e){return`${e}_end`}class ti extends De{clone(){return new ti(null,oe(this.timeUnits))}constructor(t,n){super(t),this.timeUnits=n}static makeFromEncoding(t,n){const r=n.reduceFieldDef((i,a,s)=>{const{field:o,timeUnit:u}=a;if(u){let c;if(Oo(u)){if(Ve(n)){const{mark:l,markDef:f,config:d}=n,h=Xa({fieldDef:a,markDef:f,config:d});(lf(l)||h)&&(c={timeUnit:yt(u),field:o})}}else c={as:G(a,{forAs:!0}),field:o,timeUnit:u};if(Ve(n)){const{mark:l,markDef:f,config:d}=n,h=Xa({fieldDef:a,markDef:f,config:d});lf(l)&&et(s)&&h!==.5&&(c.rectBandPosition=h)}c&&(i[be(c)]=c)}return i},{});return Oe(r)?null:new ti(t,r)}static makeFromTransform(t,n){const{timeUnit:r,...i}={...n},a=yt(r),s={...i,timeUnit:a};return new ti(t,{[be(s)]:s})}merge(t){this.timeUnits={...this.timeUnits};for(const n in t.timeUnits)this.timeUnits[n]||(this.timeUnits[n]=t.timeUnits[n]);for(const n of t.children)t.removeChild(n),n.parent=this;t.remove()}removeFormulas(t){const n={};for(const[r,i]of Ga(this.timeUnits)){const a=pm(i)?i.as:`${i.field}_end`;t.has(a)||(n[r]=i)}this.timeUnits=n}producedFields(){return new Set(kt(this.timeUnits).map(t=>pm(t)?t.as:Lx(t.field)))}dependentFields(){return new Set(kt(this.timeUnits).map(t=>t.field))}hash(){return`TimeUnit ${be(this.timeUnits)}`}assemble(){const t=[];for(const n of kt(this.timeUnits)){const{rectBandPosition:r}=n,i=yt(n.timeUnit);if(pm(n)){const{field:a,as:s}=n,{unit:o,utc:u,...c}=i,l=[s,`${s}_end`];t.push({field:rr(a),type:"timeunit",...o?{units:wp(o)}:{},...u?{timezone:"utc"}:{},...c,as:l}),t.push(...Px(l,r,i))}else if(n){const{field:a}=n,s=a.replaceAll("\\.","."),o=cN({timeUnit:i,field:s}),u=Lx(s);t.push({type:"formula",expr:o,as:u}),t.push(...Px([s,u],r,i))}}return t}}const Ip="offsetted_rect_start",zp="offsetted_rect_end";function cN({timeUnit:e,field:t,reverse:n}){const{unit:r,utc:i}=e,a=BM(r),{part:s,step:o}=WM(a,e.step);return`${i?"utcOffset":"timeOffset"}('${s}', datum['${t}'], ${n?-o:o})`}function Px([e,t],n,r){if(n!==void 0&&n!==.5){const i=`datum['${e}']`,a=`datum['${t}']`;return[{type:"formula",expr:Ix([cN({timeUnit:r,field:e,reverse:!0}),i],n+.5),as:`${e}_${Ip}`},{type:"formula",expr:Ix([i,a],n+.5),as:`${e}_${zp}`}]}return[]}function Ix([e,t],n){return`${1-n} * ${e} + ${n} * ${t}`}const nd="_tuple_fields";class Hoe{constructor(...t){this.items=t,this.hasChannel={},this.hasField={},this.hasSelectionId=!1}}const Goe={defined:()=>!0,parse:(e,t,n)=>{const r=t.name,i=t.project??(t.project=new Hoe),a={},s={},o=new Set,u=(g,p)=>{const m=p==="visual"?g.channel:g.field;let b=We(`${r}_${m}`);for(let y=1;o.has(b);y++)b=We(`${r}_${m}_${y}`);return o.add(b),{[p]:b}},c=t.type,l=e.config.selection[c],f=n.value!==void 0?Y(n.value):null;let{fields:d,encodings:h}=V(n.select)?n.select:{};if(!d&&!h&&f){for(const g of f)if(V(g))for(const p of B(g))ore(p)?(h||(h=[])).push(p):c==="interval"?(j(Ure),h=l.encodings):(d??(d=[])).push(p)}!d&&!h&&(h=l.encodings,"fields"in l&&(d=l.fields));for(const g of h??[]){const p=e.fieldDef(g);if(p){let m=p.field;if(p.aggregate){j(Dre(g,p.aggregate));continue}else if(!m){j(ux(g));continue}if(p.timeUnit&&!Oo(p.timeUnit)){m=e.vgField(g);const b={timeUnit:p.timeUnit,as:m,field:p.field};s[be(b)]=b}if(!a[m]){const b=c==="interval"&&sa(g)&&Bn(e.getScaleComponent(g).get("type"))?"R":p.bin?"R-RE":"E",y={field:m,channel:g,type:b,index:i.items.length};y.signals={...u(y,"data"),...u(y,"visual")},i.items.push(a[m]=y),i.hasField[m]=a[m],i.hasSelectionId=i.hasSelectionId||m===Mr,lM(g)?(y.geoChannel=g,y.channel=cM(g),i.hasChannel[y.channel]=a[m]):i.hasChannel[g]=a[m]}}else j(ux(g))}for(const g of d??[]){if(i.hasField[g])continue;const p={type:"E",field:g,index:i.items.length};p.signals={...u(p,"data")},i.items.push(p),i.hasField[g]=p,i.hasSelectionId=i.hasSelectionId||g===Mr}f&&(t.init=f.map(g=>i.items.map(p=>V(g)?g[p.geoChannel||p.channel]!==void 0?g[p.geoChannel||p.channel]:g[p.field]:g))),Oe(s)||(i.timeUnit=new ti(null,s))},signals:(e,t,n)=>{const r=t.name+nd;return n.filter(a=>a.name===r).length>0||t.project.hasSelectionId?n:n.concat({name:r,value:t.project.items.map(oN)})}},Yi={defined:e=>e.type==="interval"&&e.resolve==="global"&&e.bind&&e.bind==="scales",parse:(e,t)=>{const n=t.scales=[];for(const r of t.project.items){const i=r.channel;if(!sa(i))continue;const a=e.getScaleComponent(i),s=a?a.get("type"):void 0;if(!a||!Bn(s)){j(Lre);continue}a.set("selectionExtent",{param:t.name,field:r.field},!0),n.push(r)}},topLevelSignals:(e,t,n)=>{const r=t.scales.filter(s=>n.filter(o=>o.name===s.signals.data).length===0);if(!e.parent||zx(e)||r.length===0)return n;const i=n.filter(s=>s.name===t.name)[0];let a=i.update;if(a.indexOf($N)>=0)i.update=`{${r.map(s=>`${H(rr(s.field))}: ${s.signals.data}`).join(", ")}}`;else{for(const s of r){const o=`${H(rr(s.field))}: ${s.signals.data}`;a.includes(o)||(a=`${a.substring(0,a.length-1)}, ${o}}`)}i.update=a}return n.concat(r.map(s=>({name:s.signals.data})))},signals:(e,t,n)=>{if(e.parent&&!zx(e))for(const r of t.scales){const i=n.filter(a=>a.name===r.signals.data)[0];i.push="outer",delete i.value,delete i.update}return n}};function Ty(e,t){return`domain(${H(e.scaleName(t))})`}function zx(e){return e.parent&&wc(e.parent)&&!e.parent.parent}const mu="_brush",lN="_scale_trigger",Wc="geo_interval_init_tick",fN="_init",Yoe="_center",Xoe={defined:e=>e.type==="interval",parse:(e,t,n)=>{var r;if(e.hasProjection){const i={...V(n.select)?n.select:{}};i.fields=[Mr],i.encodings||(i.encodings=n.value?B(n.value):[Pr,Lr]),n.select={type:"interval",...i}}if(t.translate&&!Yi.defined(t)){const i=`!event.item || event.item.mark.name !== ${H(t.name+mu)}`;for(const a of t.events){if(!a.between){j(`${a} is not an ordered event stream for interval selections.`);continue}const s=Y((r=a.between[0]).filter??(r.filter=[]));s.indexOf(i)<0&&s.push(i)}}},signals:(e,t,n)=>{const r=t.name,i=r+Ja,a=kt(t.project.hasChannel).filter(o=>o.channel===He||o.channel===_t),s=t.init?t.init[0]:null;if(n.push(...a.reduce((o,u)=>o.concat(Voe(e,t,u,s&&s[u.index])),[])),e.hasProjection){const o=H(e.projectionName()),u=e.projectionName()+Yoe,{x:c,y:l}=t.project.hasChannel,f=c&&c.signals.visual,d=l&&l.signals.visual,h=c?s&&s[c.index]:`${u}[0]`,g=l?s&&s[l.index]:`${u}[1]`,p=_=>e.getSizeSignalRef(_).signal,m=`[[${f?f+"[0]":"0"}, ${d?d+"[0]":"0"}],[${f?f+"[1]":p("width")}, ${d?d+"[1]":p("height")}]]`;s&&(n.unshift({name:r+fN,init:`[scale(${o}, [${c?h[0]:h}, ${l?g[0]:g}]), scale(${o}, [${c?h[1]:h}, ${l?g[1]:g}])]`}),(!c||!l)&&(n.find(E=>E.name===u)||n.unshift({name:u,update:`invert(${o}, [${p("width")}/2, ${p("height")}/2])`})));const b=`intersect(${m}, {markname: ${H(e.getName("marks"))}}, unit.mark)`,y=`{unit: ${Vs(e)}}`,v=`vlSelectionTuples(${b}, ${y})`,x=a.map(_=>_.signals.visual);return n.concat({name:i,on:[{events:[...x.length?[{signal:x.join(" || ")}]:[],...s?[{signal:Wc}]:[]],update:v}]})}else{if(!Yi.defined(t)){const c=r+lN,l=a.map(f=>{const d=f.channel,{data:h,visual:g}=f.signals,p=H(e.scaleName(d)),m=e.getScaleComponent(d).get("type"),b=Bn(m)?"+":"";return`(!isArray(${h}) || (${b}invert(${p}, ${g})[0] === ${b}${h}[0] && ${b}invert(${p}, ${g})[1] === ${b}${h}[1]))`});l.length&&n.push({name:c,value:{},on:[{events:a.map(f=>({scale:e.scaleName(f.channel)})),update:l.join(" && ")+` ? ${c} : {}`}]})}const o=a.map(c=>c.signals.data),u=`unit: ${Vs(e)}, fields: ${r+nd}, values`;return n.concat({name:i,...s?{init:`{${u}: ${bo(s)}}`}:{},...o.length?{on:[{events:[{signal:o.join(" || ")}],update:`${o.join(" && ")} ? {${u}: [${o}]} : null`}]}:{}})}},topLevelSignals:(e,t,n)=>(Ve(e)&&e.hasProjection&&t.init&&(n.filter(i=>i.name===Wc).length||n.unshift({name:Wc,value:null,on:[{events:"timer{1}",update:`${Wc} === null ? {} : ${Wc}`}]})),n),marks:(e,t,n)=>{const r=t.name,{x:i,y:a}=t.project.hasChannel,s=i==null?void 0:i.signals.visual,o=a==null?void 0:a.signals.visual,u=`data(${H(t.name+yo)})`;if(Yi.defined(t)||!i&&!a)return n;const c={x:i!==void 0?{signal:`${s}[0]`}:{value:0},y:a!==void 0?{signal:`${o}[0]`}:{value:0},x2:i!==void 0?{signal:`${s}[1]`}:{field:{group:"width"}},y2:a!==void 0?{signal:`${o}[1]`}:{field:{group:"height"}}};if(t.resolve==="global")for(const p of B(c))c[p]=[{test:`${u}.length && ${u}[0].unit === ${Vs(e)}`,...c[p]},{value:0}];const{fill:l,fillOpacity:f,cursor:d,...h}=t.mark,g=B(h).reduce((p,m)=>(p[m]=[{test:[i!==void 0&&`${s}[0] !== ${s}[1]`,a!==void 0&&`${o}[0] !== ${o}[1]`].filter(b=>b).join(" && "),value:h[m]},{value:null}],p),{});return[{name:`${r+mu}_bg`,type:"rect",clip:!0,encode:{enter:{fill:{value:l},fillOpacity:{value:f}},update:c}},...n,{name:r+mu,type:"rect",clip:!0,encode:{enter:{...d?{cursor:{value:d}}:{},fill:{value:"transparent"}},update:{...c,...g}}}]}};function Voe(e,t,n,r){const i=!e.hasProjection,a=n.channel,s=n.signals.visual,o=H(i?e.scaleName(a):e.projectionName()),u=d=>`scale(${o}, ${d})`,c=e.getSizeSignalRef(a===He?"width":"height").signal,l=`${a}(unit)`,f=t.events.reduce((d,h)=>[...d,{events:h.between[0],update:`[${l}, ${l}]`},{events:h,update:`[${s}[0], clamp(${l}, 0, ${c})]`}],[]);if(i){const d=n.signals.data,h=Yi.defined(t),g=e.getScaleComponent(a),p=g?g.get("type"):void 0,m=r?{init:bo(r,!0,u)}:{value:[]};return f.push({events:{signal:t.name+lN},update:Bn(p)?`[${u(`${d}[0]`)}, ${u(`${d}[1]`)}]`:"[0, 0]"}),h?[{name:d,on:[]}]:[{name:s,...m,on:f},{name:d,...r?{init:bo(r)}:{},on:[{events:{signal:s},update:`${s}[0] === ${s}[1] ? null : invert(${o}, ${s})`}]}]}else{const d=a===He?0:1,h=t.name+fN,g=r?{init:`[${h}[0][${d}], ${h}[1][${d}]]`}:{value:[]};return[{name:s,...g,on:f}]}}const Koe={defined:e=>e.type==="point",signals:(e,t,n)=>{const r=t.name,i=r+nd,a=t.project,s="(item().isVoronoi ? datum.datum : datum)",o=kt(e.component.selection??{}).reduce((f,d)=>d.type==="interval"?f.concat(d.name+mu):f,[]).map(f=>`indexof(item().mark.name, '${f}') < 0`).join(" && "),u=`datum && item().mark.marktype !== 'group' && indexof(item().mark.role, 'legend') < 0${o?` && ${o}`:""}`;let c=`unit: ${Vs(e)}, `;if(t.project.hasSelectionId)c+=`${Mr}: ${s}[${H(Mr)}]`;else{const f=a.items.map(d=>{const h=e.fieldDef(d.channel);return h!=null&&h.bin?`[${s}[${H(e.vgField(d.channel,{}))}], ${s}[${H(e.vgField(d.channel,{binSuffix:"end"}))}]]`:`${s}[${H(d.field)}]`}).join(", ");c+=`fields: ${i}, values: [${f}]`}const l=t.events;return n.concat([{name:r+Ja,on:l?[{events:l,update:`${u} ? {${c}} : null`,force:!0}]:[]}])}};function yc(e,t,n,r){const i=Fp(t)&&t.condition,a=r(t);if(i){const o=Y(i).map(u=>{const c=r(u);if(Bae(u)){const{param:l,empty:f}=u;return{test:FN(e,{param:l,empty:f}),...c}}else return{test:G0(e,u.test),...c}});return{[n]:[...o,...a!==void 0?[a]:[]]}}else return a!==void 0?{[n]:a}:{}}function j6(e,t="text"){const n=e.encoding[t];return yc(e,n,t,r=>Bp(r,e.config))}function Bp(e,t,n="datum"){if(e){if(Fr(e))return je(e.value);if(ue(e)){const{format:r,formatType:i}=z0(e);return _6({fieldOrDatumDef:e,format:r,formatType:i,expr:n,config:t})}}}function dN(e,t={}){const{encoding:n,markDef:r,config:i,stack:a}=e,s=n.tooltip;if(P(s))return{tooltip:Bx({tooltip:s},a,i,t)};{const o=t.reactiveGeom?"datum.datum":"datum";return yc(e,s,"tooltip",u=>{const c=Bp(u,i,o);if(c)return c;if(u===null)return;let l=Te("tooltip",r,i);if(l===!0&&(l={content:"encoding"}),X(l))return{value:l};if(V(l))return Q(l)?l:l.content==="encoding"?Bx(n,a,i,t):{signal:o}})}}function hN(e,t,n,{reactiveGeom:r}={}){const i={...n,...n.tooltipFormat},a={},s=r?"datum.datum":"datum",o=[];function u(l,f){const d=To(f),h=un(l)?l:{...l,type:e[d].type},g=h.title||$6(h,i),p=Y(g).join(", ").replaceAll(/"/g,'\\"');let m;if(et(f)){const b=f==="x"?"x2":"y2",y=li(e[b]);if(Et(h.bin)&&y){const v=G(h,{expr:s}),x=G(y,{expr:s}),{format:_,formatType:E}=z0(h);m=Jf(v,x,_,E,i),a[b]=!0}}if((et(f)||f===sr||f===Rr)&&t&&t.fieldChannel===f&&t.offset==="normalize"){const{format:b,formatType:y}=z0(h);m=_6({fieldOrDatumDef:h,format:b,formatType:y,expr:s,config:i,normalizeStack:!0}).signal}m??(m=Bp(h,i,s).signal),o.push({channel:f,key:p,value:m})}C6(e,(l,f)=>{U(l)?u(l,f):Mp(l)&&u(l.condition,f)});const c={};for(const{channel:l,key:f,value:d}of o)!a[l]&&!c[f]&&(c[f]=d);return c}function Bx(e,t,n,{reactiveGeom:r}={}){const i=hN(e,t,n,{reactiveGeom:r}),a=Ga(i).map(([s,o])=>`"${s}": ${o}`);return a.length>0?{signal:`{${a.join(", ")}}`}:void 0}function Joe(e){const{markDef:t,config:n}=e,r=Te("aria",t,n);return r===!1?{}:{...r?{aria:r}:{},...Qoe(e),...Zoe(e)}}function Qoe(e){const{mark:t,markDef:n,config:r}=e;if(r.aria===!1)return{};const i=Te("ariaRoleDescription",n,r);return i!=null?{ariaRoleDescription:{value:i}}:t in Fre?{}:{ariaRoleDescription:{value:t}}}function Zoe(e){const{encoding:t,markDef:n,config:r,stack:i}=e,a=t.description;if(a)return yc(e,a,"description",u=>Bp(u,e.config));const s=Te("description",n,r);if(s!=null)return{description:je(s)};if(r.aria===!1)return{};const o=hN(t,i,r);if(!Oe(o))return{description:{signal:Ga(o).map(([u,c],l)=>`"${l>0?"; ":""}${u}: " + (${c})`).join(" + ")}}}function dt(e,t,n={}){const{markDef:r,encoding:i,config:a}=t,{vgChannel:s}=n;let{defaultRef:o,defaultValue:u}=n;o===void 0&&(u??(u=Te(e,r,a,{vgChannel:s,ignoreVgConfig:!0})),u!==void 0&&(o=je(u)));const c=i[e];return yc(t,c,s??e,l=>x6({channel:e,channelDef:l,markDef:r,config:a,scaleName:t.scaleName(e),scale:t.getScaleComponent(e),stack:null,defaultRef:o}))}function gN(e,t={filled:void 0}){const{markDef:n,encoding:r,config:i}=e,{type:a}=n,s=t.filled??Te("filled",n,i),o=ye(["bar","point","circle","square","geoshape"],a)?"transparent":void 0,u=Te(s===!0?"color":void 0,n,i,{vgChannel:"fill"})??i.mark[s===!0&&"color"]??o,c=Te(s===!1?"color":void 0,n,i,{vgChannel:"stroke"})??i.mark[s===!1&&"color"],l=s?"fill":"stroke",f={...u?{fill:je(u)}:{},...c?{stroke:je(c)}:{}};return n.color&&(s?n.fill:n.stroke)&&j(TM("property",{fill:"fill"in n,stroke:"stroke"in n})),{...f,...dt("color",e,{vgChannel:l,defaultValue:s?u:c}),...dt("fill",e,{defaultValue:r.fill?u:void 0}),...dt("stroke",e,{defaultValue:r.stroke?c:void 0})}}function eue(e){const{encoding:t,mark:n}=e,r=t.order;return!hs(n)&&Fr(r)?yc(e,r,"zindex",i=>je(i.value)):{}}function Vu({channel:e,markDef:t,encoding:n={},model:r,bandPosition:i}){const a=`${e}Offset`,s=t[a],o=n[a];if((a==="xOffset"||a==="yOffset")&&o)return{offsetType:"encoding",offset:x6({channel:a,channelDef:o,markDef:t,config:r==null?void 0:r.config,scaleName:r.scaleName(a),scale:r.getScaleComponent(a),stack:null,defaultRef:je(s),bandPosition:i})};const u=t[a];return u?{offsetType:"visual",offset:u}:{}}function It(e,t,{defaultPos:n,vgChannel:r}){const{encoding:i,markDef:a,config:s,stack:o}=t,u=i[e],c=i[_i(e)],l=t.scaleName(e),f=t.getScaleComponent(e),{offset:d,offsetType:h}=Vu({channel:e,markDef:a,encoding:i,model:t,bandPosition:.5}),g=q6({model:t,defaultPos:n,channel:e,scaleName:l,scale:f}),p=!u&&et(e)&&(i.latitude||i.longitude)?{field:t.getName(e)}:tue({channel:e,channelDef:u,channel2Def:c,markDef:a,config:s,scaleName:l,scale:f,stack:o,offset:d,defaultRef:g,bandPosition:h==="encoding"?0:void 0});return p?{[r||e]:p}:void 0}function tue(e){const{channel:t,channelDef:n,scaleName:r,stack:i,offset:a,markDef:s}=e;if(ue(n)&&i&&t===i.fieldChannel){if(U(n)){let o=n.bandPosition;if(o===void 0&&s.type==="text"&&(t==="radius"||t==="theta")&&(o=.5),o!==void 0)return L0({scaleName:r,fieldOrDatumDef:n,startSuffix:"start",bandPosition:o,offset:a})}return Ys(n,r,{suffix:"end"},{offset:a})}return y6(e)}function q6({model:e,defaultPos:t,channel:n,scaleName:r,scale:i}){const{markDef:a,config:s}=e;return()=>{const o=To(n),u=Ya(n),c=Te(n,a,s,{vgChannel:u});if(c!==void 0)return Nl(n,c);switch(t){case"zeroOrMin":case"zeroOrMax":if(r){const l=i.get("type");if(!ye([yn.LOG,yn.TIME,yn.UTC],l)){if(i.domainDefinitelyIncludesZero())return{scale:r,value:0}}}if(t==="zeroOrMin")return o==="y"?{field:{group:"height"}}:{value:0};switch(o){case"radius":return{signal:`min(${e.width.signal},${e.height.signal})/2`};case"theta":return{signal:"2*PI"};case"x":return{field:{group:"width"}};case"y":return{value:0}}break;case"mid":return{...e[Sn(n)],mult:.5}}}}const nue={left:"x",center:"xc",right:"x2"},rue={top:"y",middle:"yc",bottom:"y2"};function pN(e,t,n,r="middle"){if(e==="radius"||e==="theta")return Ya(e);const i=e==="x"?"align":"baseline",a=Te(i,t,n);let s;return Q(a)?(j(sie(i)),s=void 0):s=a,e==="x"?nue[s||(r==="top"?"left":"center")]:rue[s||r]}function W0(e,t,{defaultPos:n,defaultPos2:r,range:i}){return i?mN(e,t,{defaultPos:n,defaultPos2:r}):It(e,t,{defaultPos:n})}function mN(e,t,{defaultPos:n,defaultPos2:r}){const{markDef:i,config:a}=t,s=_i(e),o=Sn(e),u=iue(t,r,s),c=u[o]?pN(e,i,a):Ya(e);return{...It(e,t,{defaultPos:n,vgChannel:c}),...u}}function iue(e,t,n){const{encoding:r,mark:i,markDef:a,stack:s,config:o}=e,u=To(n),c=Sn(n),l=Ya(n),f=r[u],d=e.scaleName(u),h=e.getScaleComponent(u),{offset:g}=n in r||n in a?Vu({channel:n,markDef:a,encoding:r,model:e}):Vu({channel:u,markDef:a,encoding:r,model:e});if(!f&&(n==="x2"||n==="y2")&&(r.latitude||r.longitude)){const m=Sn(n),b=e.markDef[m];return b!=null?{[m]:{value:b}}:{[l]:{field:e.getName(n)}}}const p=aue({channel:n,channelDef:f,channel2Def:r[n],markDef:a,config:o,scaleName:d,scale:h,stack:s,offset:g,defaultRef:void 0});return p!==void 0?{[l]:p}:Rd(n,a)||Rd(n,{[n]:D0(n,a,o.style),[c]:D0(c,a,o.style)})||Rd(n,o[i])||Rd(n,o.mark)||{[l]:q6({model:e,defaultPos:t,channel:n,scaleName:d,scale:h})()}}function aue({channel:e,channelDef:t,channel2Def:n,markDef:r,config:i,scaleName:a,scale:s,stack:o,offset:u,defaultRef:c}){return ue(t)&&o&&e.charAt(0)===o.fieldChannel.charAt(0)?Ys(t,a,{suffix:"start"},{offset:u}):y6({channel:e,channelDef:n,scaleName:a,scale:s,stack:o,markDef:r,config:i,offset:u,defaultRef:c})}function Rd(e,t){const n=Sn(e),r=Ya(e);if(t[r]!==void 0)return{[r]:Nl(e,t[r])};if(t[e]!==void 0)return{[r]:Nl(e,t[e])};if(t[n]){const i=t[n];if(po(i))j(eie(n));else return{[n]:Nl(e,i)}}}function Ka(e,t){const{config:n,encoding:r,markDef:i}=e,a=i.type,s=_i(t),o=Sn(t),u=r[t],c=r[s],l=e.getScaleComponent(t),f=l?l.get("type"):void 0,d=i.orient,h=r[o]??r.size??Te("size",i,n,{vgChannel:o}),g=gM(t),p=a==="bar"&&(t==="x"?d==="vertical":d==="horizontal");return U(u)&&(Be(u.bin)||Et(u.bin)||u.timeUnit&&!c)&&!(h&&!po(h))&&!r[g]&&!vt(f)?uue({fieldDef:u,fieldDef2:c,channel:t,model:e}):(ue(u)&&vt(f)||p)&&!c?oue(u,t,e):mN(t,e,{defaultPos:"zeroOrMax",defaultPos2:"zeroOrMin"})}function sue(e,t,n,r,i,a,s){if(po(i))if(n){const u=n.get("type");if(u==="band"){let c=`bandwidth('${t}')`;i.band!==1&&(c=`${i.band} * ${c}`);const l=Zi("minBandSize",{type:s},r);return{signal:l?`max(${xr(l)}, ${c})`:c}}else i.band!==1&&(j(lie(u)),i=void 0)}else return{mult:i.band,field:{group:e}};else{if(Q(i))return i;if(i)return{value:i}}if(n){const u=n.get("range");if(ds(u)&&we(u.step))return{value:u.step-2}}if(!a){const{bandPaddingInner:u,barBandPaddingInner:c,rectBandPaddingInner:l}=r.scale,f=Ze(u,s==="bar"?c:l);if(Q(f))return{signal:`(1 - (${f.signal})) * ${e}`};if(we(f))return{signal:`${1-f} * ${e}`}}return{value:j0(r.view,e)-2}}function oue(e,t,n){var $,F;const{markDef:r,encoding:i,config:a,stack:s}=n,o=r.orient,u=n.scaleName(t),c=n.getScaleComponent(t),l=Sn(t),f=_i(t),d=gM(t),h=n.scaleName(d),g=n.getScaleComponent(V7(t)),p=o==="horizontal"&&t==="y"||o==="vertical"&&t==="x";let m;(i.size||r.size)&&(p?m=dt("size",n,{vgChannel:l,defaultRef:je(r.size)}):j(gie(r.type)));const b=!!m,y=dT({channel:t,fieldDef:e,markDef:r,config:a,scaleType:($=c||g)==null?void 0:$.get("type"),useVlSizeChannel:p});m=m||{[l]:sue(l,h||u,g||c,a,y,!!e,r.type)};const v=((F=c||g)==null?void 0:F.get("type"))==="band"&&po(y)&&!b?"top":"middle",x=pN(t,r,a,v),_=x==="xc"||x==="yc",{offset:E,offsetType:w}=Vu({channel:t,markDef:r,encoding:i,model:n,bandPosition:_?.5:0}),S=y6({channel:t,channelDef:e,markDef:r,config:a,scaleName:u,scale:c,stack:s,offset:E,defaultRef:q6({model:n,defaultPos:"mid",channel:t,scaleName:u,scale:c}),bandPosition:_?w==="encoding"?0:.5:Q(y)?{signal:`(1-${y})/2`}:po(y)?(1-y.band)/2:0});if(l)return{[x]:S,...m};{const k=Ya(f),D=m[l],A=E?{...D,offset:E}:D;return{[x]:S,[k]:P(S)?[S[0],{...S[1],offset:A}]:{...S,offset:A}}}}function Ux(e,t,n,r,i,a,s){if(uM(e))return 0;const o=e==="x"||e==="y2",u=o?-t/2:t/2;if(Q(n)||Q(i)||Q(r)||a){const c=xr(n),l=xr(i),f=xr(r),d=xr(a),g=a?`(${s} < ${d} ? ${o?"":"-"}0.5 * (${d} - (${s})) : ${u})`:u,p=f?`${f} + `:"",m=c?`(${c} ? -1 : 1) * `:"",b=l?`(${l} + ${g})`:g;return{signal:p+m+b}}else return i=i||0,r+(n?-i-u:+i+u)}function uue({fieldDef:e,fieldDef2:t,channel:n,model:r}){var F;const{config:i,markDef:a,encoding:s}=r,o=r.getScaleComponent(n),u=r.scaleName(n),c=o?o.get("type"):void 0,l=o.get("reverse"),f=dT({channel:n,fieldDef:e,markDef:a,config:i,scaleType:c}),d=(F=r.component.axes[n])==null?void 0:F[0],h=(d==null?void 0:d.get("translate"))??.5,g=et(n)?Te("binSpacing",a,i)??0:0,p=_i(n),m=Ya(n),b=Ya(p),y=Zi("minBandSize",a,i),{offset:v}=Vu({channel:n,markDef:a,encoding:s,model:r,bandPosition:0}),{offset:x}=Vu({channel:p,markDef:a,encoding:s,model:r,bandPosition:0}),_=Rae({fieldDef:e,scaleName:u}),E=Ux(n,g,l,h,v,y,_),w=Ux(p,g,l,h,x??v,y,_),S=Q(f)?{signal:`(1-${f.signal})/2`}:po(f)?(1-f.band)/2:.5,$=Xa({fieldDef:e,fieldDef2:t,markDef:a,config:i});if(Be(e.bin)||e.timeUnit){const k=e.timeUnit&&$!==.5;return{[b]:jx({fieldDef:e,scaleName:u,bandPosition:S,offset:w,useRectOffsetField:k}),[m]:jx({fieldDef:e,scaleName:u,bandPosition:Q(S)?{signal:`1-${S.signal}`}:1-S,offset:E,useRectOffsetField:k})}}else if(Et(e.bin)){const k=Ys(e,u,{},{offset:w});if(U(t))return{[b]:k,[m]:Ys(t,u,{},{offset:E})};if(No(e.bin)&&e.bin.step)return{[b]:k,[m]:{signal:`scale("${u}", ${G(e,{expr:"datum"})} + ${e.bin.step})`,offset:E}}}j(OM(p))}function jx({fieldDef:e,scaleName:t,bandPosition:n,offset:r,useRectOffsetField:i}){return L0({scaleName:t,fieldOrDatumDef:e,bandPosition:n,offset:r,...i?{startSuffix:Ip,endSuffix:zp}:{}})}const cue=new Set(["aria","width","height"]);function or(e,t){const{fill:n=void 0,stroke:r=void 0}=t.color==="include"?gN(e):{};return{...lue(e.markDef,t),...qx(e,"fill",n),...qx(e,"stroke",r),...dt("opacity",e),...dt("fillOpacity",e),...dt("strokeOpacity",e),...dt("strokeWidth",e),...dt("strokeDash",e),...eue(e),...dN(e),...j6(e,"href"),...Joe(e)}}function qx(e,t,n){const{config:r,mark:i,markDef:a}=e;if(Te("invalid",a,r)==="hide"&&n&&!hs(i)){const o=fue(e,{invalid:!0,channels:vp});if(o)return{[t]:[{test:o,value:null},...Y(n)]}}return n?{[t]:n}:{}}function lue(e,t){return Cre.reduce((n,r)=>(!cue.has(r)&&e[r]!==void 0&&t[r]!=="ignore"&&(n[r]=je(e[r])),n),{})}function fue(e,{invalid:t=!1,channels:n}){const r=n.reduce((a,s)=>{const o=e.getScaleComponent(s);if(o){const u=o.get("type"),c=e.vgField(s,{expr:"datum"});c&&Bn(u)&&(a[c]=!0)}return a},{}),i=B(r);if(i.length>0){const a=t?"||":"&&";return i.map(s=>v6(s,t)).join(` ${a} `)}}function W6(e){const{config:t,markDef:n}=e;if(Te("invalid",n,t)){const i=due(e,{channels:wi});if(i)return{defined:{signal:i}}}return{}}function due(e,{invalid:t=!1,channels:n}){const r=n.reduce((a,s)=>{var u;const o=e.getScaleComponent(s);if(o){const c=o.get("type"),l=e.vgField(s,{expr:"datum",binSuffix:(u=e.stack)!=null&&u.impute?"mid":void 0});l&&Bn(c)&&(a[l]=!0)}return a},{}),i=B(r);if(i.length>0){const a=t?"||":"&&";return i.map(s=>v6(s,t)).join(` ${a} `)}}function Wx(e,t){if(t!==void 0)return{[e]:je(t)}}const mm="voronoi",bN={defined:e=>e.type==="point"&&e.nearest,parse:(e,t)=>{if(t.events)for(const n of t.events)n.markname=e.getName(mm)},marks:(e,t,n)=>{const{x:r,y:i}=t.project.hasChannel,a=e.mark;if(hs(a))return j(Ore(a)),n;const s={name:e.getName(mm),type:"path",interactive:!0,from:{data:e.getName("marks")},encode:{update:{fill:{value:"transparent"},strokeWidth:{value:.35},stroke:{value:"transparent"},isVoronoi:{value:!0},...dN(e,{reactiveGeom:!0})}},transform:[{type:"voronoi",x:{expr:r||!i?"datum.datum.x || 0":"0"},y:{expr:i||!r?"datum.datum.y || 0":"0"},size:[e.getSizeSignalRef("width"),e.getSizeSignalRef("height")]}]};let o=0,u=!1;return n.forEach((c,l)=>{const f=c.name??"";f===e.component.mark[0].name?o=l:f.indexOf(mm)>=0&&(u=!0)}),u||n.splice(o+1,0,s),n}},yN={defined:e=>e.type==="point"&&e.resolve==="global"&&e.bind&&e.bind!=="scales"&&!O6(e.bind),parse:(e,t,n)=>AN(t,n),topLevelSignals:(e,t,n)=>{const r=t.name,i=t.project,a=t.bind,s=t.init&&t.init[0],o=bN.defined(t)?"(item().isVoronoi ? datum.datum : datum)":"datum";return i.items.forEach((u,c)=>{const l=We(`${r}_${u.field}`);n.filter(d=>d.name===l).length||n.unshift({name:l,...s?{init:bo(s[c])}:{value:null},on:t.events?[{events:t.events,update:`datum && item().mark.marktype !== 'group' ? ${o}[${H(u.field)}] : null`}]:[],bind:a[u.field]??a[u.channel]??a})}),n},signals:(e,t,n)=>{const r=t.name,i=t.project,a=n.filter(c=>c.name===r+Ja)[0],s=r+nd,o=i.items.map(c=>We(`${r}_${c.field}`)),u=o.map(c=>`${c} !== null`).join(" && ");return o.length&&(a.update=`${u} ? {fields: ${s}, values: [${o.join(", ")}]} : null`),delete a.value,delete a.on,n}},H0="_toggle",vN={defined:e=>e.type==="point"&&!!e.toggle,signals:(e,t,n)=>n.concat({name:t.name+H0,value:!1,on:[{events:t.events,update:t.toggle}]}),modifyExpr:(e,t)=>{const n=t.name+Ja,r=t.name+H0;return`${r} ? null : ${n}, `+(t.resolve==="global"?`${r} ? null : true, `:`${r} ? null : {unit: ${Vs(e)}}, `)+`${r} ? ${n} : null`}},hue={defined:e=>e.clear!==void 0&&e.clear!==!1,parse:(e,t)=>{t.clear&&(t.clear=X(t.clear)?as(t.clear,"view"):t.clear)},topLevelSignals:(e,t,n)=>{if(yN.defined(t))for(const r of t.project.items){const i=n.findIndex(a=>a.name===We(`${t.name}_${r.field}`));i!==-1&&n[i].on.push({events:t.clear,update:"null"})}return n},signals:(e,t,n)=>{function r(i,a){i!==-1&&n[i].on&&n[i].on.push({events:t.clear,update:a})}if(t.type==="interval")for(const i of t.project.items){const a=n.findIndex(s=>s.name===i.signals.visual);if(r(a,"[0, 0]"),a===-1){const s=n.findIndex(o=>o.name===i.signals.data);r(s,"null")}}else{let i=n.findIndex(a=>a.name===t.name+Ja);r(i,"null"),vN.defined(t)&&(i=n.findIndex(a=>a.name===t.name+H0),r(i,"false"))}return n}},xN={defined:e=>{const t=e.resolve==="global"&&e.bind&&O6(e.bind),n=e.project.items.length===1&&e.project.items[0].field!==Mr;return t&&!n&&j(Pre),t&&n},parse:(e,t,n)=>{const r=oe(n);if(r.select=X(r.select)?{type:r.select,toggle:t.toggle}:{...r.select,toggle:t.toggle},AN(t,r),V(n.select)&&(n.select.on||n.select.clear)){const s='event.item && indexof(event.item.mark.role, "legend") < 0';for(const o of t.events)o.filter=Y(o.filter??[]),o.filter.includes(s)||o.filter.push(s)}const i=dm(t.bind)?t.bind.legend:"click",a=X(i)?as(i,"view"):Y(i);t.bind={legend:{merge:a}}},topLevelSignals:(e,t,n)=>{const r=t.name,i=dm(t.bind)&&t.bind.legend,a=s=>o=>{const u=oe(o);return u.markname=s,u};for(const s of t.project.items){if(!s.hasLegend)continue;const o=`${We(s.field)}_legend`,u=`${r}_${o}`;if(n.filter(l=>l.name===u).length===0){const l=i.merge.map(a(`${o}_symbols`)).concat(i.merge.map(a(`${o}_labels`))).concat(i.merge.map(a(`${o}_entries`)));n.unshift({name:u,...t.init?{}:{value:null},on:[{events:l,update:"isDefined(datum.value) ? datum.value : item().items[0].items[0].datum.value",force:!0},{events:i.merge,update:`!event.item || !datum ? null : ${u}`,force:!0}]})}}return n},signals:(e,t,n)=>{const r=t.name,i=t.project,a=n.find(d=>d.name===r+Ja),s=r+nd,o=i.items.filter(d=>d.hasLegend).map(d=>We(`${r}_${We(d.field)}_legend`)),c=`${o.map(d=>`${d} !== null`).join(" && ")} ? {fields: ${s}, values: [${o.join(", ")}]} : null`;t.events&&o.length>0?a.on.push({events:o.map(d=>({signal:d})),update:c}):o.length>0&&(a.update=c,delete a.value,delete a.on);const l=n.find(d=>d.name===r+H0),f=dm(t.bind)&&t.bind.legend;return l&&(t.events?l.on.push({...l.on[0],events:f}):l.on[0].events=f),n}};function gue(e,t,n){var i;const r=(i=e.fieldDef(t))==null?void 0:i.field;for(const a of kt(e.component.selection??{})){const s=a.project.hasField[r]??a.project.hasChannel[t];if(s&&xN.defined(a)){const o=n.get("selections")??[];o.push(a.name),n.set("selections",o,!1),s.hasLegend=!0}}}const _N="_translate_anchor",wN="_translate_delta",pue={defined:e=>e.type==="interval"&&e.translate,signals:(e,t,n)=>{const r=t.name,i=Yi.defined(t),a=r+_N,{x:s,y:o}=t.project.hasChannel;let u=as(t.translate,"scope");return i||(u=u.map(c=>(c.between[0].markname=r+mu,c))),n.push({name:a,value:{},on:[{events:u.map(c=>c.between[0]),update:"{x: x(unit), y: y(unit)"+(s!==void 0?`, extent_x: ${i?Ty(e,He):`slice(${s.signals.visual})`}`:"")+(o!==void 0?`, extent_y: ${i?Ty(e,_t):`slice(${o.signals.visual})`}`:"")+"}"}]},{name:r+wN,value:{},on:[{events:u,update:`{x: ${a}.x - x(unit), y: ${a}.y - y(unit)}`}]}),s!==void 0&&Hx(e,t,s,"width",n),o!==void 0&&Hx(e,t,o,"height",n),n}};function Hx(e,t,n,r,i){const a=t.name,s=a+_N,o=a+wN,u=n.channel,c=Yi.defined(t),l=i.filter(_=>_.name===n.signals[c?"data":"visual"])[0],f=e.getSizeSignalRef(r).signal,d=e.getScaleComponent(u),h=d&&d.get("type"),g=d&&d.get("reverse"),p=c?u===He?g?"":"-":g?"-":"":"",m=`${s}.extent_${u}`,b=`${p}${o}.${u} / ${c?`${f}`:`span(${m})`}`,y=!c||!d?"panLinear":h==="log"?"panLog":h==="symlog"?"panSymlog":h==="pow"?"panPow":"panLinear",v=c?h==="pow"?`, ${d.get("exponent")??1}`:h==="symlog"?`, ${d.get("constant")??1}`:"":"",x=`${y}(${m}, ${b}${v})`;l.on.push({events:{signal:o},update:c?x:`clampRange(${x}, 0, ${f})`})}const EN="_zoom_anchor",SN="_zoom_delta",mue={defined:e=>e.type==="interval"&&e.zoom,signals:(e,t,n)=>{const r=t.name,i=Yi.defined(t),a=r+SN,{x:s,y:o}=t.project.hasChannel,u=H(e.scaleName(He)),c=H(e.scaleName(_t));let l=as(t.zoom,"scope");return i||(l=l.map(f=>(f.markname=r+mu,f))),n.push({name:r+EN,on:[{events:l,update:i?"{"+[u?`x: invert(${u}, x(unit))`:"",c?`y: invert(${c}, y(unit))`:""].filter(f=>f).join(", ")+"}":"{x: x(unit), y: y(unit)}"}]},{name:a,on:[{events:l,force:!0,update:"pow(1.001, event.deltaY * pow(16, event.deltaMode))"}]}),s!==void 0&&Gx(e,t,s,"width",n),o!==void 0&&Gx(e,t,o,"height",n),n}};function Gx(e,t,n,r,i){const a=t.name,s=n.channel,o=Yi.defined(t),u=i.filter(y=>y.name===n.signals[o?"data":"visual"])[0],c=e.getSizeSignalRef(r).signal,l=e.getScaleComponent(s),f=l&&l.get("type"),d=o?Ty(e,s):u.name,h=a+SN,g=`${a}${EN}.${s}`,p=!o||!l?"zoomLinear":f==="log"?"zoomLog":f==="symlog"?"zoomSymlog":f==="pow"?"zoomPow":"zoomLinear",m=o?f==="pow"?`, ${l.get("exponent")??1}`:f==="symlog"?`, ${l.get("constant")??1}`:"":"",b=`${p}(${d}, ${g}, ${h}${m})`;u.on.push({events:{signal:h},update:o?b:`clampRange(${b}, 0, ${c})`})}const yo="_store",Ja="_tuple",bue="_modify",$N="vlSelectionResolve",Up=[Koe,Xoe,Goe,vN,yN,Yi,xN,hue,pue,mue,bN];function yue(e){let t=e.parent;for(;t&&!$r(t);)t=t.parent;return t}function Vs(e,{escape:t}={escape:!0}){let n=t?H(e.name):e.name;const r=yue(e);if(r){const{facet:i}=r;for(const a of Vn)i[a]&&(n+=` + '__facet_${a}_' + (facet[${H(r.vgField(a))}])`)}return n}function H6(e){return kt(e.component.selection??{}).reduce((t,n)=>t||n.project.hasSelectionId,!1)}function AN(e,t){(X(t.select)||!t.select.on)&&delete e.events,(X(t.select)||!t.select.clear)&&delete e.clear,(X(t.select)||!t.select.toggle)&&delete e.toggle}function Ny(e){const t=[];return e.type==="Identifier"?[e.name]:e.type==="Literal"?[e.value]:(e.type==="MemberExpression"&&(t.push(...Ny(e.object)),t.push(...Ny(e.property))),t)}function kN(e){return e.object.type==="MemberExpression"?kN(e.object):e.object.name==="datum"}function CN(e){const t=l7(e),n=new Set;return t.visit(r=>{r.type==="MemberExpression"&&kN(r)&&n.add(Ny(r).slice(1).join("."))}),n}class vc extends De{clone(){return new vc(null,this.model,oe(this.filter))}constructor(t,n,r){super(t),this.model=n,this.filter=r,this.expr=G0(this.model,this.filter,this),this._dependentFields=CN(this.expr)}dependentFields(){return this._dependentFields}producedFields(){return new Set}assemble(){return{type:"filter",expr:this.expr}}hash(){return`Filter ${this.expr}`}}function vue(e,t){const n={},r=e.config.selection;if(!t||!t.length)return n;for(const i of t){const a=We(i.name),s=i.select,o=X(s)?s:s.type,u=V(s)?oe(s):{type:o},c=r[o];for(const d in c)d==="fields"||d==="encodings"||(d==="mark"&&(u[d]={...c[d],...u[d]}),(u[d]===void 0||u[d]===!0)&&(u[d]=oe(c[d]??u[d])));const l=n[a]={...u,name:a,type:o,init:i.value,bind:i.bind,events:X(u.on)?as(u.on,"scope"):Y(oe(u.on))},f=oe(i);for(const d of Up)d.defined(l)&&d.parse&&d.parse(e,l,f)}return n}function FN(e,t,n,r="datum"){const i=X(t)?t:t.param,a=We(i),s=H(a+yo);let o;try{o=e.getSelectionComponent(a,i)}catch{return`!!${a}`}if(o.project.timeUnit){const d=n??e.component.data.raw,h=o.project.timeUnit.clone();d.parent?h.insertAsParentOf(d):d.parent=h}const u=o.project.hasSelectionId?"vlSelectionIdTest(":"vlSelectionTest(",c=o.resolve==="global"?")":`, ${H(o.resolve)})`,l=`${u}${s}, ${r}${c}`,f=`length(data(${s}))`;return t.empty===!1?`${f} && ${l}`:`!${f} || ${l}`}function MN(e,t,n){const r=We(t),i=n.encoding;let a=n.field,s;try{s=e.getSelectionComponent(r,t)}catch{return r}if(!i&&!a)a=s.project.items[0].field,s.project.items.length>1&&j(`A "field" or "encoding" must be specified when using a selection as a scale domain. Using "field": ${H(a)}.`);else if(i&&!a){const o=s.project.items.filter(u=>u.channel===i);!o.length||o.length>1?(a=s.project.items[0].field,j((o.length?"Multiple ":"No ")+`matching ${H(i)} encoding found for selection ${H(n.param)}. Using "field": ${H(a)}.`)):a=o[0].field}return`${s.name}[${H(rr(a))}]`}function xue(e,t){for(const[n,r]of Ga(e.component.selection??{})){const i=e.getName(`lookup_${n}`);e.component.data.outputNodes[i]=r.materialized=new an(new vc(t,e,{param:n}),i,ze.Lookup,e.component.data.outputNodeRefCounts)}}function G0(e,t,n){return Tl(t,r=>X(r)?r:Jie(r)?FN(e,r,n):GM(r))}function _ue(e,t){if(e)return P(e)&&!ba(e)?e.map(n=>$6(n,t)).join(", "):e}function bm(e,t,n,r){var i,a;e.encode??(e.encode={}),(i=e.encode)[t]??(i[t]={}),(a=e.encode[t]).update??(a.update={}),e.encode[t].update[n]=r}function bl(e,t,n,r={header:!1}){var f,d;const{disable:i,orient:a,scale:s,labelExpr:o,title:u,zindex:c,...l}=e.combine();if(!i){for(const h in l){const g=ese[h],p=l[h];if(g&&g!==t&&g!=="both")delete l[h];else if(td(p)){const{condition:m,...b}=p,y=Y(m),v=xx[h];if(v){const{vgProp:x,part:_}=v,E=[...y.map(w=>{const{test:S,...$}=w;return{test:G0(null,S),...$}}),b];bm(l,_,x,E),delete l[h]}else if(v===null){const x={signal:y.map(_=>{const{test:E,...w}=_;return`${G0(null,E)} ? ${ix(w)} : `}).join("")+ix(b)};l[h]=x}}else if(Q(p)){const m=xx[h];if(m){const{vgProp:b,part:y}=m;bm(l,y,b,p),delete l[h]}}ye(["labelAlign","labelBaseline"],h)&&l[h]===null&&delete l[h]}if(t==="grid"){if(!l.grid)return;if(l.encode){const{grid:h}=l.encode;l.encode={...h?{grid:h}:{}},Oe(l.encode)&&delete l.encode}return{scale:s,orient:a,...l,domain:!1,labels:!1,aria:!1,maxExtent:0,minExtent:0,ticks:!1,zindex:Ze(c,0)}}else{if(!r.header&&e.mainExtracted)return;if(o!==void 0){let g=o;(d=(f=l.encode)==null?void 0:f.labels)!=null&&d.update&&Q(l.encode.labels.update.text)&&(g=lo(o,"datum.label",l.encode.labels.update.text.signal)),bm(l,"labels","text",{signal:g})}if(l.labelAlign===null&&delete l.labelAlign,l.encode){for(const g of wT)e.hasAxisPart(g)||delete l.encode[g];Oe(l.encode)&&delete l.encode}const h=_ue(u,n);return{scale:s,orient:a,grid:!1,...h?{title:h}:{},...l,...n.aria===!1?{aria:!1}:{},zindex:Ze(c,0)}}}}function TN(e){const{axes:t}=e.component,n=[];for(const r of wi)if(t[r]){for(const i of t[r])if(!i.get("disable")&&!i.get("gridScale")){const a=r==="x"?"height":"width",s=e.getSizeSignalRef(a).signal;a!==s&&n.push({name:a,update:s})}}return n}function wue(e,t){const{x:n=[],y:r=[]}=e;return[...n.map(i=>bl(i,"grid",t)),...r.map(i=>bl(i,"grid",t)),...n.map(i=>bl(i,"main",t)),...r.map(i=>bl(i,"main",t))].filter(i=>i)}function Yx(e,t,n,r){return Object.assign.apply(null,[{},...e.map(i=>{if(i==="axisOrient"){const a=n==="x"?"bottom":"left",s=t[n==="x"?"axisBottom":"axisLeft"]||{},o=t[n==="x"?"axisTop":"axisRight"]||{},u=new Set([...B(s),...B(o)]),c={};for(const l of u.values())c[l]={signal:`${r.signal} === "${a}" ? ${xr(s[l])} : ${xr(o[l])}`};return c}return t[i]})])}function Eue(e,t,n,r){const i=t==="band"?["axisDiscrete","axisBand"]:t==="point"?["axisDiscrete","axisPoint"]:KM(t)?["axisQuantitative"]:t==="time"||t==="utc"?["axisTemporal"]:[],a=e==="x"?"axisX":"axisY",s=Q(n)?"axisOrient":`axis${Hf(n)}`,o=[...i,...i.map(c=>a+c.substr(4))],u=["axis",s,a];return{vlOnlyAxisConfig:Yx(o,r,e,n),vgAxisConfig:Yx(u,r,e,n),axisConfigStyle:Sue([...u,...o],r)}}function Sue(e,t){var r;const n=[{}];for(const i of e){let a=(r=t[i])==null?void 0:r.style;if(a){a=Y(a);for(const s of a)n.push(t.style[s])}}return Object.assign.apply(null,n)}function Dy(e,t,n,r={}){var a;const i=SM(e,n,t);if(i!==void 0)return{configFrom:"style",configValue:i};for(const s of["vlOnlyAxisConfig","vgAxisConfig","axisConfigStyle"])if(((a=r[s])==null?void 0:a[e])!==void 0)return{configFrom:s,configValue:r[s][e]};return{}}const Xx={scale:({model:e,channel:t})=>e.scaleName(t),format:({format:e})=>e,formatType:({formatType:e})=>e,grid:({fieldOrDatumDef:e,axis:t,scaleType:n})=>t.grid??$ue(n,e),gridScale:({model:e,channel:t})=>Aue(e,t),labelAlign:({axis:e,labelAngle:t,orient:n,channel:r})=>e.labelAlign||DN(t,n,r),labelAngle:({labelAngle:e})=>e,labelBaseline:({axis:e,labelAngle:t,orient:n,channel:r})=>e.labelBaseline||NN(t,n,r),labelFlush:({axis:e,fieldOrDatumDef:t,channel:n})=>e.labelFlush??Cue(t.type,n),labelOverlap:({axis:e,fieldOrDatumDef:t,scaleType:n})=>e.labelOverlap??Fue(t.type,n,U(t)&&!!t.timeUnit,U(t)?t.sort:void 0),orient:({orient:e})=>e,tickCount:({channel:e,model:t,axis:n,fieldOrDatumDef:r,scaleType:i})=>{const a=e==="x"?"width":e==="y"?"height":void 0,s=a?t.getSizeSignalRef(a):void 0;return n.tickCount??Tue({fieldOrDatumDef:r,scaleType:i,size:s,values:n.values})},tickMinStep:Nue,title:({axis:e,model:t,channel:n})=>{if(e.title!==void 0)return e.title;const r=ON(t,n);if(r!==void 0)return r;const i=t.typedFieldDef(n),a=n==="x"?"x2":"y2",s=t.fieldDef(a);return AM(i?[yx(i)]:[],U(s)?[yx(s)]:[])},values:({axis:e,fieldOrDatumDef:t})=>Due(e,t),zindex:({axis:e,fieldOrDatumDef:t,mark:n})=>e.zindex??Oue(n,t)};function $ue(e,t){return!vt(e)&&U(t)&&!Be(t==null?void 0:t.bin)&&!Et(t==null?void 0:t.bin)}function Aue(e,t){const n=t==="x"?"y":"x";if(e.getScaleComponent(n))return e.scaleName(n)}function kue(e,t,n,r,i){const a=t==null?void 0:t.labelAngle;if(a!==void 0)return Q(a)?a:cf(a);{const{configValue:s}=Dy("labelAngle",r,t==null?void 0:t.style,i);return s!==void 0?cf(s):n===He&&ye([g6,h6],e.type)&&!(U(e)&&e.timeUnit)?270:void 0}}function Oy(e){return`(((${e.signal} % 360) + 360) % 360)`}function NN(e,t,n,r){if(e!==void 0)if(n==="x"){if(Q(e)){const i=Oy(e),a=Q(t)?`(${t.signal} === "top")`:t==="top";return{signal:`(45 < ${i} && ${i} < 135) || (225 < ${i} && ${i} < 315) ? "middle" :(${i} <= 45 || 315 <= ${i}) === ${a} ? "bottom" : "top"`}}if(45{if(Ro(r)&&fT(r.sort)){const{field:a,timeUnit:s}=r,o=r.sort,u=o.map((c,l)=>`${GM({field:a,timeUnit:s,equal:c})} ? ${l} : `).join("")+o.length;t=new Ku(t,{calculate:u,as:Ju(r,i,{forAs:!0})})}}),t}producedFields(){return new Set([this.transform.as])}dependentFields(){return this._dependentFields}assemble(){return{type:"formula",expr:this.transform.calculate,as:this.transform.as}}hash(){return`Calculate ${be(this.transform)}`}}function Ju(e,t,n){return G(e,{prefix:t,suffix:"sort_index",...n??{}})}function jp(e,t){return ye(["top","bottom"],t)?"column":ye(["left","right"],t)||e==="row"?"row":"column"}function Qu(e,t,n,r){const i=r==="row"?n.headerRow:r==="column"?n.headerColumn:n.headerFacet;return Ze((t||{})[e],i[e],n.header[e])}function qp(e,t,n,r){const i={};for(const a of e){const s=Qu(a,t||{},n,r);s!==void 0&&(i[a]=s)}return i}const G6=["row","column"],Y6=["header","footer"];function Rue(e,t){const n=e.component.layoutHeaders[t].title,r=e.config?e.config:void 0,i=e.component.layoutHeaders[t].facetFieldDef?e.component.layoutHeaders[t].facetFieldDef:void 0,{titleAnchor:a,titleAngle:s,titleOrient:o}=qp(["titleAnchor","titleAngle","titleOrient"],i.header,r,t),u=jp(t,o),c=cf(s);return{name:`${t}-title`,type:"group",role:`${u}-title`,title:{text:n,...t==="row"?{orient:"left"}:{},style:"guide-title",...LN(c,u),...RN(u,c,a),...PN(r,i,t,wse,zT)}}}function RN(e,t,n="middle"){switch(n){case"start":return{align:"left"};case"end":return{align:"right"}}const r=DN(t,e==="row"?"left":"top",e==="row"?"y":"x");return r?{align:r}:{}}function LN(e,t){const n=NN(e,t==="row"?"left":"top",t==="row"?"y":"x",!0);return n?{baseline:n}:{}}function Lue(e,t){const n=e.component.layoutHeaders[t],r=[];for(const i of Y6)if(n[i])for(const a of n[i]){const s=Iue(e,t,i,n,a);s!=null&&r.push(s)}return r}function Pue(e,t){const{sort:n}=e;return ei(n)?{field:G(n,{expr:"datum"}),order:n.order??"ascending"}:P(n)?{field:Ju(e,t,{expr:"datum"}),order:"ascending"}:{field:G(e,{expr:"datum"}),order:n??"ascending"}}function Ry(e,t,n){const{format:r,formatType:i,labelAngle:a,labelAnchor:s,labelOrient:o,labelExpr:u}=qp(["format","formatType","labelAngle","labelAnchor","labelOrient","labelExpr"],e.header,n,t),c=_6({fieldOrDatumDef:e,format:r,formatType:i,expr:"parent",config:n}).signal,l=jp(t,o);return{text:{signal:u?lo(lo(u,"datum.label",c),"datum.value",G(e,{expr:"parent"})):c},...t==="row"?{orient:"left"}:{},style:"guide-label",frame:"group",...LN(a,l),...RN(l,a,s),...PN(n,e,t,Ese,BT)}}function Iue(e,t,n,r,i){if(i){let a=null;const{facetFieldDef:s}=r,o=e.config?e.config:void 0;if(s&&i.labels){const{labelOrient:f}=qp(["labelOrient"],s.header,o,t);(t==="row"&&!ye(["top","bottom"],f)||t==="column"&&!ye(["left","right"],f))&&(a=Ry(s,t,o))}const u=$r(e)&&!Qf(e.facet),c=i.axes,l=(c==null?void 0:c.length)>0;if(a||l){const f=t==="row"?"height":"width";return{name:e.getName(`${t}_${n}`),type:"group",role:`${t}-${n}`,...r.facetFieldDef?{from:{data:e.getName(`${t}_domain`)},sort:Pue(s,t)}:{},...l&&u?{from:{data:e.getName(`facet_domain_${t}`)}}:{},...a?{title:a}:{},...i.sizeSignal?{encode:{update:{[f]:i.sizeSignal}}}:{},...l?{axes:c}:{}}}}return null}const zue={column:{start:0,end:1},row:{start:1,end:0}};function Bue(e,t){return zue[t][e]}function Uue(e,t){const n={};for(const r of Vn){const i=e[r];if(i!=null&&i.facetFieldDef){const{titleAnchor:a,titleOrient:s}=qp(["titleAnchor","titleOrient"],i.facetFieldDef.header,t,r),o=jp(r,s),u=Bue(a,o);u!==void 0&&(n[o]=u)}}return Oe(n)?void 0:n}function PN(e,t,n,r,i){const a={};for(const s of r){if(!i[s])continue;const o=Qu(s,t==null?void 0:t.header,e,n);o!==void 0&&(a[i[s]]=o)}return a}function X6(e){return[...Ld(e,"width"),...Ld(e,"height"),...Ld(e,"childWidth"),...Ld(e,"childHeight")]}function Ld(e,t){const n=t==="width"?"x":"y",r=e.component.layoutSize.get(t);if(!r||r==="merged")return[];const i=e.getSizeSignalRef(t).signal;if(r==="step"){const a=e.getScaleComponent(n);if(a){const s=a.get("type"),o=a.get("range");if(vt(s)&&ds(o)){const u=e.scaleName(n);return $r(e.parent)&&e.parent.component.resolve.scale[n]==="independent"?[Vx(u,o)]:[Vx(u,o),{name:i,update:IN(u,a,`domain('${u}').length`)}]}}throw new Error("layout size is step although width/height is not step.")}else if(r=="container"){const a=i.endsWith("width"),s=a?"containerSize()[0]":"containerSize()[1]",o=ky(e.config.view,a?"width":"height"),u=`isFinite(${s}) ? ${s} : ${o}`;return[{name:i,init:u,on:[{update:u,events:"window:resize"}]}]}else return[{name:i,value:r}]}function Vx(e,t){const n=`${e}_step`;return Q(t.step)?{name:n,update:t.step.signal}:{name:n,value:t.step}}function IN(e,t,n){const r=t.get("type"),i=t.get("padding"),a=Ze(t.get("paddingOuter"),i);let s=t.get("paddingInner");return s=r==="band"?s!==void 0?s:i:1,`bandspace(${n}, ${xr(s)}, ${xr(a)}) * ${e}_step`}function zN(e){return e==="childWidth"?"width":e==="childHeight"?"height":e}function BN(e,t){return B(e).reduce((n,r)=>{const i=e[r];return{...n,...yc(t,i,r,a=>je(a.value))}},{})}function UN(e,t){if($r(t))return e==="theta"?"independent":"shared";if(wc(t))return"shared";if(t8(t))return et(e)||e==="theta"||e==="radius"?"independent":"shared";throw new Error("invalid model type for resolve")}function V6(e,t){const n=e.scale[t],r=et(t)?"axis":"legend";return n==="independent"?(e[r][t]==="shared"&&j(vie(t)),"independent"):e[r][t]||"shared"}const jue={...Ase,disable:1,labelExpr:1,selections:1,opacity:1,shape:1,stroke:1,fill:1,size:1,strokeWidth:1,strokeDash:1,encode:1},jN=B(jue);class que extends ua{}const Kx={symbols:Wue,gradient:Hue,labels:Gue,entries:Yue};function Wue(e,{fieldOrDatumDef:t,model:n,channel:r,legendCmpt:i,legendType:a}){if(a!=="symbol")return;const{markDef:s,encoding:o,config:u,mark:c}=n,l=s.filled&&c!=="trail";let f={...Tre({},n,wae),...gN(n,{filled:l})};const d=i.get("symbolOpacity")??u.legend.symbolOpacity,h=i.get("symbolFillColor")??u.legend.symbolFillColor,g=i.get("symbolStrokeColor")??u.legend.symbolStrokeColor,p=d===void 0?qN(o.opacity)??s.opacity:void 0;if(f.fill){if(r==="fill"||l&&r===wn)delete f.fill;else if(f.fill.field)h?delete f.fill:(f.fill=je(u.legend.symbolBaseFillColor??"black"),f.fillOpacity=je(p??1));else if(P(f.fill)){const m=Ly(o.fill??o.color)??s.fill??(l&&s.color);m&&(f.fill=je(m))}}if(f.stroke){if(r==="stroke"||!l&&r===wn)delete f.stroke;else if(f.stroke.field||g)delete f.stroke;else if(P(f.stroke)){const m=Ze(Ly(o.stroke||o.color),s.stroke,l?s.color:void 0);m&&(f.stroke={value:m})}}if(r!==aa){const m=U(t)&&HN(n,i,t);m?f.opacity=[{test:m,...je(p??1)},je(u.legend.unselectedOpacity)]:p&&(f.opacity=je(p))}return f={...f,...e},Oe(f)?void 0:f}function Hue(e,{model:t,legendType:n,legendCmpt:r}){if(n!=="gradient")return;const{config:i,markDef:a,encoding:s}=t;let o={};const c=(r.get("gradientOpacity")??i.legend.gradientOpacity)===void 0?qN(s.opacity)||a.opacity:void 0;return c&&(o.opacity=je(c)),o={...o,...e},Oe(o)?void 0:o}function Gue(e,{fieldOrDatumDef:t,model:n,channel:r,legendCmpt:i}){const a=n.legend(r)||{},s=n.config,o=U(t)?HN(n,i,t):void 0,u=o?[{test:o,value:1},{value:s.legend.unselectedOpacity}]:void 0,{format:c,formatType:l}=a;let f;mo(l)?f=wr({fieldOrDatumDef:t,field:"datum.value",format:c,formatType:l,config:s}):c===void 0&&l===void 0&&s.customFormatTypes&&(t.type==="quantitative"&&s.numberFormatType?f=wr({fieldOrDatumDef:t,field:"datum.value",format:s.numberFormat,formatType:s.numberFormatType,config:s}):t.type==="temporal"&&s.timeFormatType&&U(t)&&t.timeUnit===void 0&&(f=wr({fieldOrDatumDef:t,field:"datum.value",format:s.timeFormat,formatType:s.timeFormatType,config:s})));const d={...u?{opacity:u}:{},...f?{text:f}:{},...e};return Oe(d)?void 0:d}function Yue(e,{legendCmpt:t}){const n=t.get("selections");return n!=null&&n.length?{...e,fill:{value:"transparent"}}:e}function qN(e){return WN(e,(t,n)=>Math.max(t,n.value))}function Ly(e){return WN(e,(t,n)=>Ze(t,n.value))}function WN(e,t){if(jae(e))return Y(e.condition).reduce(t,e.value);if(Fr(e))return e.value}function HN(e,t,n){const r=t.get("selections");if(!(r!=null&&r.length))return;const i=H(n.field);return r.map(a=>`(!length(data(${H(We(a)+yo)})) || (${a}[${i}] && indexof(${a}[${i}], datum.value) >= 0))`).join(" || ")}const Jx={direction:({direction:e})=>e,format:({fieldOrDatumDef:e,legend:t,config:n})=>{const{format:r,formatType:i}=t;return oT(e,e.type,r,i,n,!1)},formatType:({legend:e,fieldOrDatumDef:t,scaleType:n})=>{const{formatType:r}=e;return uT(r,t,n)},gradientLength:e=>{const{legend:t,legendConfig:n}=e;return t.gradientLength??n.gradientLength??ece(e)},labelOverlap:({legend:e,legendConfig:t,scaleType:n})=>e.labelOverlap??t.labelOverlap??tce(n),symbolType:({legend:e,markDef:t,channel:n,encoding:r})=>e.symbolType??Vue(t.type,n,r.shape,t.shape),title:({fieldOrDatumDef:e,config:t})=>pu(e,t,{allowDisabling:!0}),type:({legendType:e,scaleType:t,channel:n})=>{if(gu(n)&&_r(t)){if(e==="gradient")return}else if(e==="symbol")return;return e},values:({fieldOrDatumDef:e,legend:t})=>Xue(t,e)};function Xue(e,t){const n=e.values;if(P(n))return _T(t,n);if(Q(n))return n}function Vue(e,t,n,r){if(t!=="shape"){const i=Ly(n)??r;if(i)return i}switch(e){case"bar":case"rect":case"image":case"square":return"square";case"line":case"trail":case"rule":return"stroke";case"arc":case"point":case"circle":case"tick":case"geoshape":case"area":case"text":return"circle"}}function Kue(e){const{legend:t}=e;return Ze(t.type,Jue(e))}function Jue({channel:e,timeUnit:t,scaleType:n}){if(gu(e)){if(ye(["quarter","month","day"],t))return"symbol";if(_r(n))return"gradient"}return"symbol"}function Que({legendConfig:e,legendType:t,orient:n,legend:r}){return r.direction??e[t?"gradientDirection":"symbolDirection"]??Zue(n,t)}function Zue(e,t){switch(e){case"top":case"bottom":return"horizontal";case"left":case"right":case"none":case void 0:return;default:return t==="gradient"?"horizontal":void 0}}function ece({legendConfig:e,model:t,direction:n,orient:r,scaleType:i}){const{gradientHorizontalMaxLength:a,gradientHorizontalMinLength:s,gradientVerticalMaxLength:o,gradientVerticalMinLength:u}=e;if(_r(i))return n==="horizontal"?r==="top"||r==="bottom"?Qx(t,"width",s,a):s:Qx(t,"height",u,o)}function Qx(e,t,n,r){return{signal:`clamp(${e.getSizeSignalRef(t).signal}, ${n}, ${r})`}}function tce(e){if(ye(["quantile","threshold","log","symlog"],e))return"greedy"}function GN(e){const t=Ve(e)?nce(e):sce(e);return e.component.legends=t,t}function nce(e){const{encoding:t}=e,n={};for(const r of[wn,...jT]){const i=st(t[r]);!i||!e.getScaleComponent(r)||r===En&&U(i)&&i.type===bc||(n[r]=ace(e,r))}return n}function rce(e,t){const n=e.scaleName(t);if(e.mark==="trail"){if(t==="color")return{stroke:n};if(t==="size")return{strokeWidth:n}}return t==="color"?e.markDef.filled?{fill:n}:{stroke:n}:{[t]:n}}function ice(e,t,n,r){switch(t){case"disable":return n!==void 0;case"values":return!!(n!=null&&n.values);case"title":if(t==="title"&&e===(r==null?void 0:r.title))return!0}return e===(n||{})[t]}function ace(e,t){var x;let n=e.legend(t);const{markDef:r,encoding:i,config:a}=e,s=a.legend,o=new que({},rce(e,t));gue(e,t,o);const u=n!==void 0?!n:s.disable;if(o.set("disable",u,n!==void 0),u)return o;n=n||{};const c=e.getScaleComponent(t).get("type"),l=st(i[t]),f=U(l)?(x=yt(l.timeUnit))==null?void 0:x.unit:void 0,d=n.orient||a.legend.orient||"right",h=Kue({legend:n,channel:t,timeUnit:f,scaleType:c}),g=Que({legend:n,legendType:h,orient:d,legendConfig:s}),p={legend:n,channel:t,model:e,markDef:r,encoding:i,fieldOrDatumDef:l,legendConfig:s,config:a,scaleType:c,orient:d,legendType:h,direction:g};for(const _ of jN){if(h==="gradient"&&_.startsWith("symbol")||h==="symbol"&&_.startsWith("gradient"))continue;const E=_ in Jx?Jx[_](p):n[_];if(E!==void 0){const w=ice(E,_,n,e.fieldDef(t));(w||a.legend[_]===void 0)&&o.set(_,E,w)}}const m=(n==null?void 0:n.encoding)??{},b=o.get("selections"),y={},v={fieldOrDatumDef:l,model:e,channel:t,legendCmpt:o,legendType:h};for(const _ of["labels","legend","title","symbols","gradient","entries"]){const E=BN(m[_]??{},e),w=_ in Kx?Kx[_](E,v):E;w!==void 0&&!Oe(w)&&(y[_]={...b!=null&&b.length&&U(l)?{name:`${We(l.field)}_legend_${_}`}:{},...b!=null&&b.length?{interactive:!!b}:{},update:w})}return Oe(y)||o.set("encode",y,!!(n!=null&&n.encoding)),o}function sce(e){const{legends:t,resolve:n}=e.component;for(const r of e.children){GN(r);for(const i of B(r.component.legends))n.legend[i]=V6(e.component.resolve,i),n.legend[i]==="shared"&&(t[i]=YN(t[i],r.component.legends[i]),t[i]||(n.legend[i]="independent",delete t[i]))}for(const r of B(t))for(const i of e.children)i.component.legends[r]&&n.legend[r]==="shared"&&delete i.component.legends[r];return t}function YN(e,t){var a,s,o,u;if(!e)return t.clone();const n=e.getWithExplicit("orient"),r=t.getWithExplicit("orient");if(n.explicit&&r.explicit&&n.value!==r.value)return;let i=!1;for(const c of jN){const l=Va(e.getWithExplicit(c),t.getWithExplicit(c),c,"legend",(f,d)=>{switch(c){case"symbolType":return oce(f,d);case"title":return CM(f,d);case"type":return i=!0,kn("symbol")}return Pp(f,d,c,"legend")});e.setWithExplicit(c,l)}return i&&((s=(a=e.implicit)==null?void 0:a.encode)!=null&&s.gradient&&N0(e.implicit,["encode","gradient"]),(u=(o=e.explicit)==null?void 0:o.encode)!=null&&u.gradient&&N0(e.explicit,["encode","gradient"])),e}function oce(e,t){return t.value==="circle"?t:e}function uce(e,t,n,r){var i,a;e.encode??(e.encode={}),(i=e.encode)[t]??(i[t]={}),(a=e.encode[t]).update??(a.update={}),e.encode[t].update[n]=r}function XN(e){const t=e.component.legends,n={};for(const i of B(t)){const a=e.getScaleComponent(i),s=Re(a.get("domains"));if(n[s])for(const o of n[s])YN(o,t[i])||n[s].push(t[i]);else n[s]=[t[i].clone()]}return kt(n).flat().map(i=>cce(i,e.config)).filter(i=>i!==void 0)}function cce(e,t){var s,o,u;const{disable:n,labelExpr:r,selections:i,...a}=e.combine();if(!n){if(t.aria===!1&&a.aria==null&&(a.aria=!1),(s=a.encode)!=null&&s.symbols){const c=a.encode.symbols.update;c.fill&&c.fill.value!=="transparent"&&!c.stroke&&!a.stroke&&(c.stroke={value:"transparent"});for(const l of jT)a[l]&&delete c[l]}if(a.title||delete a.title,r!==void 0){let c=r;(u=(o=a.encode)==null?void 0:o.labels)!=null&&u.update&&Q(a.encode.labels.update.text)&&(c=lo(r,"datum.label",a.encode.labels.update.text.signal)),uce(a,"labels","text",{signal:c})}return a}}function lce(e){return wc(e)||t8(e)?fce(e):VN(e)}function fce(e){return e.children.reduce((t,n)=>t.concat(n.assembleProjections()),VN(e))}function VN(e){const t=e.component.projection;if(!t||t.merged)return[];const n=t.combine(),{name:r}=n;if(t.data){const i={signal:`[${t.size.map(s=>s.signal).join(", ")}]`},a=t.data.reduce((s,o)=>{const u=Q(o)?o.signal:`data('${e.lookupDataSource(o)}')`;return ye(s,u)||s.push(u),s},[]);if(a.length<=0)throw new Error("Projection's fit didn't find any data sources");return[{name:r,size:i,fit:{signal:a.length>1?`[${a.join(", ")}]`:a[0]},...n}]}else return[{name:r,translate:{signal:"[width / 2, height / 2]"},...n}]}const dce=["type","clipAngle","clipExtent","center","rotate","precision","reflectX","reflectY","coefficient","distance","fraction","lobes","parallel","radius","ratio","spacing","tilt"];class KN extends ua{constructor(t,n,r,i){super({...n},{name:t}),this.specifiedProjection=n,this.size=r,this.data=i,this.merged=!1}get isFit(){return!!this.data}}function JN(e){e.component.projection=Ve(e)?hce(e):mce(e)}function hce(e){if(e.hasProjection){const t=gn(e.specifiedProjection),n=!(t&&(t.scale!=null||t.translate!=null)),r=n?[e.getSizeSignalRef("width"),e.getSizeSignalRef("height")]:void 0,i=n?gce(e):void 0,a=new KN(e.projectionName(!0),{...gn(e.config.projection)??{},...t??{}},r,i);return a.get("type")||a.set("type","equalEarth",!1),a}}function gce(e){const t=[],{encoding:n}=e;for(const r of[[Pr,Lr],[ir,Ir]])(st(n[r[0]])||st(n[r[1]]))&&t.push({signal:e.getName(`geojson_${t.length}`)});return e.channelHasField(En)&&e.typedFieldDef(En).type===bc&&t.push({signal:e.getName(`geojson_${t.length}`)}),t.length===0&&t.push(e.requestDataName(ze.Main)),t}function pce(e,t){const n=U7(dce,i=>!!(!ie(e.explicit,i)&&!ie(t.explicit,i)||ie(e.explicit,i)&&ie(t.explicit,i)&&Dn(e.get(i),t.get(i))));if(Dn(e.size,t.size)){if(n)return e;if(Dn(e.explicit,{}))return t;if(Dn(t.explicit,{}))return e}return null}function mce(e){if(e.children.length===0)return;let t;for(const r of e.children)JN(r);const n=U7(e.children,r=>{const i=r.component.projection;if(i)if(t){const a=pce(t,i);return a&&(t=a),!!a}else return t=i,!0;else return!0});if(t&&n){const r=e.projectionName(!0),i=new KN(r,t.specifiedProjection,t.size,oe(t.data));for(const a of e.children){const s=a.component.projection;s&&(s.isFit&&i.data.push(...a.component.projection.data),a.renameProjection(s.get("name"),r),s.merged=!0)}return i}}function bce(e,t,n,r){if(ed(t,n)){const i=Ve(e)?e.axis(n)??e.legend(n)??{}:{},a=G(t,{expr:"datum"}),s=G(t,{expr:"datum",binSuffix:"end"});return{formulaAs:G(t,{binSuffix:"range",forAs:!0}),formula:Jf(a,s,i.format,i.formatType,r)}}return{}}function QN(e,t){return`${xM(e)}_${t}`}function yce(e,t){return{signal:e.getName(`${t}_bins`),extentSignal:e.getName(`${t}_extent`)}}function K6(e,t,n){const r=Tp(n,void 0)??{},i=QN(r,t);return e.getName(`${i}_bins`)}function vce(e){return"as"in e}function Zx(e,t,n){let r,i;vce(e)?r=X(e.as)?[e.as,`${e.as}_end`]:[e.as[0],e.as[1]]:r=[G(e,{forAs:!0}),G(e,{binSuffix:"end",forAs:!0})];const a={...Tp(t,void 0)},s=QN(a,e.field),{signal:o,extentSignal:u}=yce(n,s);if(xp(a.extent)){const l=a.extent;i=MN(n,l.param,l),delete a.extent}const c={bin:a,field:e.field,as:[r],...o?{signal:o}:{},...u?{extentSignal:u}:{},...i?{span:i}:{}};return{key:s,binComponent:c}}class ni extends De{clone(){return new ni(null,oe(this.bins))}constructor(t,n){super(t),this.bins=n}static makeFromEncoding(t,n){const r=n.reduceFieldDef((i,a,s)=>{if(un(a)&&Be(a.bin)){const{key:o,binComponent:u}=Zx(a,a.bin,n);i[o]={...u,...i[o],...bce(n,a,s,n.config)}}return i},{});return Oe(r)?null:new ni(t,r)}static makeFromTransform(t,n,r){const{key:i,binComponent:a}=Zx(n,n.bin,r);return new ni(t,{[i]:a})}merge(t,n){for(const r of B(t.bins))r in this.bins?(n(t.bins[r].signal,this.bins[r].signal),this.bins[r].as=Kr([...this.bins[r].as,...t.bins[r].as],be)):this.bins[r]=t.bins[r];for(const r of t.children)t.removeChild(r),r.parent=this;t.remove()}producedFields(){return new Set(kt(this.bins).map(t=>t.as).flat(2))}dependentFields(){return new Set(kt(this.bins).map(t=>t.field))}hash(){return`Bin ${be(this.bins)}`}assemble(){return kt(this.bins).flatMap(t=>{const n=[],[r,...i]=t.as,{extent:a,...s}=t.bin,o={type:"bin",field:rr(t.field),as:r,signal:t.signal,...xp(a)?{extent:null}:{extent:a},...t.span?{span:{signal:`span(${t.span})`}}:{},...s};!a&&t.extentSignal&&(n.push({type:"extent",field:rr(t.field),signal:t.extentSignal}),o.extent={signal:t.extentSignal}),n.push(o);for(const u of i)for(let c=0;c<2;c++)n.push({type:"formula",expr:G({field:r[c]},{expr:"datum"}),as:u[c]});return t.formula&&n.push({type:"formula",expr:t.formula,as:t.formulaAs}),n})}}function xce(e,t,n,r){var a;const i=Ve(r)?r.encoding[_i(t)]:void 0;if(un(n)&&Ve(r)&&hT(n,i,r.markDef,r.config)){e.add(G(n,{})),e.add(G(n,{suffix:"end"}));const{mark:s,markDef:o,config:u}=r,c=Xa({fieldDef:n,markDef:o,config:u});lf(s)&&c!==.5&&et(t)&&(e.add(G(n,{suffix:Ip})),e.add(G(n,{suffix:zp}))),n.bin&&ed(n,t)&&e.add(G(n,{binSuffix:"range"}))}else if(lM(t)){const s=cM(t);e.add(r.getName(s))}else e.add(G(n));return Ro(n)&&lae((a=n.scale)==null?void 0:a.range)&&e.add(n.scale.range.field),e}function _ce(e,t){for(const n of B(t)){const r=t[n];for(const i of B(r))n in e?e[n][i]=new Set([...e[n][i]??[],...r[i]]):e[n]={[i]:r[i]}}}class Sr extends De{clone(){return new Sr(null,new Set(this.dimensions),oe(this.measures))}constructor(t,n,r){super(t),this.dimensions=n,this.measures=r}get groupBy(){return this.dimensions}static makeFromEncoding(t,n){let r=!1;n.forEachFieldDef(s=>{s.aggregate&&(r=!0)});const i={},a=new Set;return!r||(n.forEachFieldDef((s,o)=>{const{aggregate:u,field:c}=s;if(u)if(u==="count")i["*"]??(i["*"]={}),i["*"].count=new Set([G(s,{forAs:!0})]);else{if(Qi(u)||fs(u)){const l=Qi(u)?"argmin":"argmax",f=u[l];i[f]??(i[f]={}),i[f][l]=new Set([G({op:l,field:f},{forAs:!0})])}else i[c]??(i[c]={}),i[c][u]=new Set([G(s,{forAs:!0})]);sa(o)&&n.scaleDomain(o)==="unaggregated"&&(i[c]??(i[c]={}),i[c].min=new Set([G({field:c,aggregate:"min"},{forAs:!0})]),i[c].max=new Set([G({field:c,aggregate:"max"},{forAs:!0})]))}else xce(a,o,s,n)}),a.size+B(i).length===0)?null:new Sr(t,a,i)}static makeFromTransform(t,n){const r=new Set,i={};for(const a of n.aggregate){const{op:s,field:o,as:u}=a;s&&(s==="count"?(i["*"]??(i["*"]={}),i["*"].count=new Set([u||G(a,{forAs:!0})])):(i[o]??(i[o]={}),i[o][s]=new Set([u||G(a,{forAs:!0})])))}for(const a of n.groupby??[])r.add(a);return r.size+B(i).length===0?null:new Sr(t,r,i)}merge(t){return tM(this.dimensions,t.dimensions)?(_ce(this.measures,t.measures),!0):(Rie("different dimensions, cannot merge"),!1)}addDimensions(t){t.forEach(this.dimensions.add,this.dimensions)}dependentFields(){return new Set([...this.dimensions,...B(this.measures)])}producedFields(){const t=new Set;for(const n of B(this.measures))for(const r of B(this.measures[n])){const i=this.measures[n][r];i.size===0?t.add(`${r}_${n}`):i.forEach(t.add,t)}return t}hash(){return`Aggregate ${be({dimensions:this.dimensions,measures:this.measures})}`}assemble(){const t=[],n=[],r=[];for(const a of B(this.measures))for(const s of B(this.measures[a]))for(const o of this.measures[a][s])r.push(o),t.push(s),n.push(a==="*"?null:rr(a));return{type:"aggregate",groupby:[...this.dimensions].map(rr),ops:t,fields:n,as:r}}}class xc extends De{constructor(t,n,r,i){super(t),this.model=n,this.name=r,this.data=i;for(const a of Vn){const s=n.facet[a];if(s){const{bin:o,sort:u}=s;this[a]={name:n.getName(`${a}_domain`),fields:[G(s),...Be(o)?[G(s,{binSuffix:"end"})]:[]],...ei(u)?{sortField:u}:P(u)?{sortIndexField:Ju(s,a)}:{}}}}this.childModel=n.child}hash(){let t="Facet";for(const n of Vn)this[n]&&(t+=` ${n.charAt(0)}:${be(this[n])}`);return t}get fields(){var n;const t=[];for(const r of Vn)(n=this[r])!=null&&n.fields&&t.push(...this[r].fields);return t}dependentFields(){const t=new Set(this.fields);for(const n of Vn)this[n]&&(this[n].sortField&&t.add(this[n].sortField.field),this[n].sortIndexField&&t.add(this[n].sortIndexField));return t}producedFields(){return new Set}getSource(){return this.name}getChildIndependentFieldsWithStep(){const t={};for(const n of wi){const r=this.childModel.component.scales[n];if(r&&!r.merged){const i=r.get("type"),a=r.get("range");if(vt(i)&&ds(a)){const s=Wp(this.childModel,n),o=e8(s);o?t[n]=o:j(t6(n))}}}return t}assembleRowColumnHeaderData(t,n,r){const i={row:"y",column:"x",facet:void 0}[t],a=[],s=[],o=[];i&&r&&r[i]&&(n?(a.push(`distinct_${r[i]}`),s.push("max")):(a.push(r[i]),s.push("distinct")),o.push(`distinct_${r[i]}`));const{sortField:u,sortIndexField:c}=this[t];if(u){const{op:l=kp,field:f}=u;a.push(f),s.push(l),o.push(G(u,{forAs:!0}))}else c&&(a.push(c),s.push("max"),o.push(c));return{name:this[t].name,source:n??this.data,transform:[{type:"aggregate",groupby:this[t].fields,...a.length?{fields:a,ops:s,as:o}:{}}]}}assembleFacetHeaderData(t){var u;const{columns:n}=this.model.layout,{layoutHeaders:r}=this.model.component,i=[],a={};for(const c of G6){for(const l of Y6){const f=(r[c]&&r[c][l])??[];for(const d of f)if(((u=d.axes)==null?void 0:u.length)>0){a[c]=!0;break}}if(a[c]){const l=`length(data("${this.facet.name}"))`,f=c==="row"?n?{signal:`ceil(${l} / ${n})`}:1:n?{signal:`min(${l}, ${n})`}:{signal:l};i.push({name:`${this.facet.name}_${c}`,transform:[{type:"sequence",start:0,stop:f}]})}}const{row:s,column:o}=a;return(s||o)&&i.unshift(this.assembleRowColumnHeaderData("facet",null,t)),i}assemble(){const t=[];let n=null;const r=this.getChildIndependentFieldsWithStep(),{column:i,row:a,facet:s}=this;if(i&&a&&(r.x||r.y)){n=`cross_${this.column.name}_${this.row.name}`;const o=[].concat(r.x??[],r.y??[]),u=o.map(()=>"distinct");t.push({name:n,source:this.data,transform:[{type:"aggregate",groupby:this.fields,fields:o,ops:u}]})}for(const o of[Gi,Hi])this[o]&&t.push(this.assembleRowColumnHeaderData(o,n,r));if(s){const o=this.assembleFacetHeaderData(r);o&&t.push(...o)}return t}}function e_(e){return e.startsWith("'")&&e.endsWith("'")||e.startsWith('"')&&e.endsWith('"')?e.slice(1,-1):e}function wce(e,t){const n=W7(e);if(t==="number")return`toNumber(${n})`;if(t==="boolean")return`toBoolean(${n})`;if(t==="string")return`toString(${n})`;if(t==="date")return`toDate(${n})`;if(t==="flatten")return n;if(t.startsWith("date:")){const r=e_(t.slice(5,t.length));return`timeParse(${n},'${r}')`}else if(t.startsWith("utc:")){const r=e_(t.slice(4,t.length));return`utcParse(${n},'${r}')`}else return j(Wre(t)),null}function Ece(e){const t={};return gh(e.filter,n=>{if(HM(n)){let r=null;a6(n)?r=Mn(n.equal):o6(n)?r=Mn(n.lte):s6(n)?r=Mn(n.lt):u6(n)?r=Mn(n.gt):c6(n)?r=Mn(n.gte):l6(n)?r=n.range[0]:f6(n)&&(r=(n.oneOf??n.in)[0]),r&&(Do(r)?t[n.field]="date":we(r)?t[n.field]="number":X(r)&&(t[n.field]="string")),n.timeUnit&&(t[n.field]="date")}}),t}function Sce(e){const t={};function n(r){Yu(r)?t[r.field]="date":r.type==="quantitative"&&wre(r.aggregate)?t[r.field]="number":Bu(r.field)>1?r.field in t||(t[r.field]="flatten"):Ro(r)&&ei(r.sort)&&Bu(r.sort.field)>1&&(r.sort.field in t||(t[r.sort.field]="flatten"))}if((Ve(e)||$r(e))&&e.forEachFieldDef((r,i)=>{if(un(r))n(r);else{const a=To(i),s=e.fieldDef(a);n({...r,type:s.type})}}),Ve(e)){const{mark:r,markDef:i,encoding:a}=e;if(hs(r)&&!e.encoding.order){const s=i.orient==="horizontal"?"y":"x",o=a[s];U(o)&&o.type==="quantitative"&&!(o.field in t)&&(t[o.field]="number")}}return t}function $ce(e){const t={};if(Ve(e)&&e.component.selection)for(const n of B(e.component.selection)){const r=e.component.selection[n];for(const i of r.project.items)!i.channel&&Bu(i.field)>1&&(t[i.field]="flatten")}return t}class zt extends De{clone(){return new zt(null,oe(this._parse))}constructor(t,n){super(t),this._parse=n}hash(){return`Parse ${be(this._parse)}`}static makeExplicit(t,n,r){var s;let i={};const a=n.data;return!Da(a)&&((s=a==null?void 0:a.format)!=null&&s.parse)&&(i=a.format.parse),this.makeWithAncestors(t,i,{},r)}static makeWithAncestors(t,n,r,i){for(const o of B(r)){const u=i.getWithExplicit(o);u.value!==void 0&&(u.explicit||u.value===r[o]||u.value==="derived"||r[o]==="flatten"?delete r[o]:j(lx(o,r[o],u.value)))}for(const o of B(n)){const u=i.get(o);u!==void 0&&(u===n[o]?delete n[o]:j(lx(o,n[o],u)))}const a=new ua(n,r);i.copyAll(a);const s={};for(const o of B(a.combine())){const u=a.get(o);u!==null&&(s[o]=u)}return B(s).length===0||i.parseNothing?null:new zt(t,s)}get parse(){return this._parse}merge(t){this._parse={...this._parse,...t.parse},t.remove()}assembleFormatParse(){const t={};for(const n of B(this._parse)){const r=this._parse[n];Bu(n)===1&&(t[n]=r)}return t}producedFields(){return new Set(B(this._parse))}dependentFields(){return new Set(B(this._parse))}assembleTransforms(t=!1){return B(this._parse).filter(n=>t?Bu(n)>1:!0).map(n=>{const r=wce(n,this._parse[n]);return r?{type:"formula",expr:r,as:H7(n)}:null}).filter(n=>n!==null)}}class Qa extends De{clone(){return new Qa(null)}constructor(t){super(t)}dependentFields(){return new Set}producedFields(){return new Set([Mr])}hash(){return"Identifier"}assemble(){return{type:"identifier",as:Mr}}}class rd extends De{clone(){return new rd(null,this.params)}constructor(t,n){super(t),this.params=n}dependentFields(){return new Set}producedFields(){}hash(){return`Graticule ${be(this.params)}`}assemble(){return{type:"graticule",...this.params===!0?{}:this.params}}}class id extends De{clone(){return new id(null,this.params)}constructor(t,n){super(t),this.params=n}dependentFields(){return new Set}producedFields(){return new Set([this.params.as??"data"])}hash(){return`Hash ${be(this.params)}`}assemble(){return{type:"sequence",...this.params}}}class vo extends De{constructor(t){super(null),t??(t={name:"source"});let n;if(Da(t)||(n=t.format?{...bn(t.format,["parse"])}:{}),ff(t))this._data={values:t.values};else if(Xu(t)){if(this._data={url:t.url},!n.type){let r=/(?:\.([^.]+))?$/.exec(t.url)[1];ye(["json","csv","tsv","dsv","topojson"],r)||(r="json"),n.type=r}}else sN(t)?this._data={values:[{type:"Sphere"}]}:(iN(t)||Da(t))&&(this._data={});this._generator=Da(t),t.name&&(this._name=t.name),n&&!Oe(n)&&(this._data.format=n)}dependentFields(){return new Set}producedFields(){}get data(){return this._data}hasName(){return!!this._name}get isGenerator(){return this._generator}get dataName(){return this._name}set dataName(t){this._name=t}set parent(t){throw new Error("Source nodes have to be roots.")}remove(){throw new Error("Source nodes are roots and cannot be removed.")}hash(){throw new Error("Cannot hash sources")}assemble(){return{name:this._name,...this._data,transform:[]}}}var t_=function(e,t,n,r,i){if(r==="m")throw new TypeError("Private method is not writable");if(r==="a"&&!i)throw new TypeError("Private accessor was defined without a setter");if(typeof t=="function"?e!==t||!i:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return r==="a"?i.call(e,n):i?i.value=n:t.set(e,n),n},Ace=function(e,t,n,r){if(n==="a"&&!r)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?e!==t||!r:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return n==="m"?r:n==="a"?r.call(e):r?r.value:t.get(e)},yl;function J6(e){return e instanceof vo||e instanceof rd||e instanceof id}class Q6{constructor(){yl.set(this,void 0),t_(this,yl,!1,"f")}setModified(){t_(this,yl,!0,"f")}get modifiedFlag(){return Ace(this,yl,"f")}}yl=new WeakMap;class Lo extends Q6{getNodeDepths(t,n,r){r.set(t,n);for(const i of t.children)this.getNodeDepths(i,n+1,r);return r}optimize(t){const r=[...this.getNodeDepths(t,0,new Map).entries()].sort((i,a)=>a[1]-i[1]);for(const i of r)this.run(i[0]);return this.modifiedFlag}}class Z6 extends Q6{optimize(t){this.run(t);for(const n of t.children)this.optimize(n);return this.modifiedFlag}}class kce extends Z6{mergeNodes(t,n){const r=n.shift();for(const i of n)t.removeChild(i),i.parent=r,i.remove()}run(t){const n=t.children.map(i=>i.hash()),r={};for(let i=0;i1&&(this.setModified(),this.mergeNodes(t,r[i]))}}class Cce extends Z6{constructor(t){super(),this.requiresSelectionId=t&&H6(t)}run(t){t instanceof Qa&&(this.requiresSelectionId&&(J6(t.parent)||t.parent instanceof Sr||t.parent instanceof zt)||(this.setModified(),t.remove()))}}class Fce extends Q6{optimize(t){return this.run(t,new Set),this.modifiedFlag}run(t,n){let r=new Set;t instanceof ti&&(r=t.producedFields(),j7(r,n)&&(this.setModified(),t.removeFormulas(n),t.producedFields.length===0&&t.remove()));for(const i of t.children)this.run(i,new Set([...n,...r]))}}class Mce extends Z6{constructor(){super()}run(t){t instanceof an&&!t.isRequired()&&(this.setModified(),t.remove())}}class Tce extends Lo{run(t){if(!J6(t)&&!(t.numChildren()>1)){for(const n of t.children)if(n instanceof zt)if(t instanceof zt)this.setModified(),t.merge(n);else{if(q7(t.producedFields(),n.dependentFields()))continue;this.setModified(),n.swapWithParent()}}}}class Nce extends Lo{run(t){const n=[...t.children],r=t.children.filter(i=>i instanceof zt);if(t.numChildren()>1&&r.length>=1){const i={},a=new Set;for(const s of r){const o=s.parse;for(const u of B(o))u in i?i[u]!==o[u]&&a.add(u):i[u]=o[u]}for(const s of a)delete i[s];if(!Oe(i)){this.setModified();const s=new zt(t,i);for(const o of n){if(o instanceof zt)for(const u of B(i))delete o.parse[u];t.removeChild(o),o.parent=s,o instanceof zt&&B(o.parse).length===0&&o.remove()}}}}}class Dce extends Lo{run(t){t instanceof an||t.numChildren()>0||t instanceof xc||t instanceof vo||(this.setModified(),t.remove())}}class Oce extends Lo{run(t){const n=t.children.filter(i=>i instanceof ti),r=n.pop();for(const i of n)this.setModified(),r.merge(i)}}class Rce extends Lo{run(t){const n=t.children.filter(i=>i instanceof Sr),r={};for(const i of n){const a=be(i.groupBy);a in r||(r[a]=[]),r[a].push(i)}for(const i of B(r)){const a=r[i];if(a.length>1){const s=a.pop();for(const o of a)s.merge(o)&&(t.removeChild(o),o.parent=s,o.remove(),this.setModified())}}}}class Lce extends Lo{constructor(t){super(),this.model=t}run(t){const n=!(J6(t)||t instanceof vc||t instanceof zt||t instanceof Qa),r=[],i=[];for(const a of t.children)a instanceof ni&&(n&&!q7(t.producedFields(),a.dependentFields())?r.push(a):i.push(a));if(r.length>0){const a=r.pop();for(const s of r)a.merge(s,this.model.renameSignal.bind(this.model));this.setModified(),t instanceof ni?t.merge(a,this.model.renameSignal.bind(this.model)):a.swapWithParent()}if(i.length>1){const a=i.pop();for(const s of i)a.merge(s,this.model.renameSignal.bind(this.model));this.setModified()}}}class Pce extends Lo{run(t){const n=[...t.children];if(!co(n,s=>s instanceof an)||t.numChildren()<=1)return;const i=[];let a;for(const s of n)if(s instanceof an){let o=s;for(;o.numChildren()===1;){const[u]=o.children;if(u instanceof an)o=u;else break}i.push(...o.children),a?(t.removeChild(s),s.parent=a.parent,a.parent.removeChild(a),a.parent=o,this.setModified()):a=o}else i.push(s);if(i.length){this.setModified();for(const s of i)s.parent.removeChild(s),s.parent=a}}}class Po extends De{clone(){return new Po(null,oe(this.transform))}constructor(t,n){super(t),this.transform=n}addDimensions(t){this.transform.groupby=Kr(this.transform.groupby.concat(t),n=>n)}dependentFields(){const t=new Set;return this.transform.groupby&&this.transform.groupby.forEach(t.add,t),this.transform.joinaggregate.map(n=>n.field).filter(n=>n!==void 0).forEach(t.add,t),t}producedFields(){return new Set(this.transform.joinaggregate.map(this.getDefaultName))}getDefaultName(t){return t.as??G(t)}hash(){return`JoinAggregateTransform ${be(this.transform)}`}assemble(){const t=[],n=[],r=[];for(const a of this.transform.joinaggregate)n.push(a.op),r.push(this.getDefaultName(a)),t.push(a.field===void 0?null:a.field);const i=this.transform.groupby;return{type:"joinaggregate",as:r,ops:n,fields:t,...i!==void 0?{groupby:i}:{}}}}function Ice(e){return e.stack.stackBy.reduce((t,n)=>{const r=n.fieldDef,i=G(r);return i&&t.push(i),t},[])}function zce(e){return P(e)&&e.every(t=>X(t))&&e.length>1}class Xi extends De{clone(){return new Xi(null,oe(this._stack))}constructor(t,n){super(t),this._stack=n}static makeFromTransform(t,n){const{stack:r,groupby:i,as:a,offset:s="zero"}=n,o=[],u=[];if(n.sort!==void 0)for(const f of n.sort)o.push(f.field),u.push(Ze(f.order,"ascending"));const c={field:o,order:u};let l;return zce(a)?l=a:X(a)?l=[a,`${a}_end`]:l=[`${n.stack}_start`,`${n.stack}_end`],new Xi(t,{dimensionFieldDefs:[],stackField:r,groupby:i,offset:s,sort:c,facetby:[],as:l})}static makeFromEncoding(t,n){const r=n.stack,{encoding:i}=n;if(!r)return null;const{groupbyChannels:a,fieldChannel:s,offset:o,impute:u}=r,c=a.map(h=>{const g=i[h];return li(g)}).filter(h=>!!h),l=Ice(n),f=n.encoding.order;let d;if(P(f)||U(f))d=$M(f);else{const h=gT(f)?f.sort:s==="y"?"descending":"ascending";d=l.reduce((g,p)=>(g.field.push(p),g.order.push(h),g),{field:[],order:[]})}return new Xi(t,{dimensionFieldDefs:c,stackField:n.vgField(s),facetby:[],stackby:l,sort:d,offset:o,impute:u,as:[n.vgField(s,{suffix:"start",forAs:!0}),n.vgField(s,{suffix:"end",forAs:!0})]})}get stack(){return this._stack}addDimensions(t){this._stack.facetby.push(...t)}dependentFields(){const t=new Set;return t.add(this._stack.stackField),this.getGroupbyFields().forEach(t.add,t),this._stack.facetby.forEach(t.add,t),this._stack.sort.field.forEach(t.add,t),t}producedFields(){return new Set(this._stack.as)}hash(){return`Stack ${be(this._stack)}`}getGroupbyFields(){const{dimensionFieldDefs:t,impute:n,groupby:r}=this._stack;return t.length>0?t.map(i=>i.bin?n?[G(i,{binSuffix:"mid"})]:[G(i,{}),G(i,{binSuffix:"end"})]:[G(i)]).flat():r??[]}assemble(){const t=[],{facetby:n,dimensionFieldDefs:r,stackField:i,stackby:a,sort:s,offset:o,impute:u,as:c}=this._stack;if(u)for(const l of r){const{bandPosition:f=.5,bin:d}=l;if(d){const h=G(l,{expr:"datum"}),g=G(l,{expr:"datum",binSuffix:"end"});t.push({type:"formula",expr:`${f}*${h}+${1-f}*${g}`,as:G(l,{binSuffix:"mid",forAs:!0})})}t.push({type:"impute",field:i,groupby:[...a,...n],key:G(l,{binSuffix:"mid"}),method:"value",value:0})}return t.push({type:"stack",groupby:[...this.getGroupbyFields(),...n],field:i,sort:s,as:c,offset:o}),t}}class _c extends De{clone(){return new _c(null,oe(this.transform))}constructor(t,n){super(t),this.transform=n}addDimensions(t){this.transform.groupby=Kr(this.transform.groupby.concat(t),n=>n)}dependentFields(){const t=new Set;return(this.transform.groupby??[]).forEach(t.add,t),(this.transform.sort??[]).forEach(n=>t.add(n.field)),this.transform.window.map(n=>n.field).filter(n=>n!==void 0).forEach(t.add,t),t}producedFields(){return new Set(this.transform.window.map(this.getDefaultName))}getDefaultName(t){return t.as??G(t)}hash(){return`WindowTransform ${be(this.transform)}`}assemble(){const t=[],n=[],r=[],i=[];for(const f of this.transform.window)n.push(f.op),r.push(this.getDefaultName(f)),i.push(f.param===void 0?null:f.param),t.push(f.field===void 0?null:f.field);const a=this.transform.frame,s=this.transform.groupby;if(a&&a[0]===null&&a[1]===null&&n.every(f=>Z7(f)))return{type:"joinaggregate",as:r,ops:n,fields:t,...s!==void 0?{groupby:s}:{}};const o=[],u=[];if(this.transform.sort!==void 0)for(const f of this.transform.sort)o.push(f.field),u.push(f.order??"ascending");const c={field:o,order:u},l=this.transform.ignorePeers;return{type:"window",params:i,as:r,ops:n,fields:t,sort:c,...l!==void 0?{ignorePeers:l}:{},...s!==void 0?{groupby:s}:{},...a!==void 0?{frame:a}:{}}}}function Bce(e){function t(n){if(!(n instanceof xc)){const r=n.clone();if(r instanceof an){const i=Iy+r.getSource();r.setSource(i),e.model.component.data.outputNodes[i]=r}else(r instanceof Sr||r instanceof Xi||r instanceof _c||r instanceof Po)&&r.addDimensions(e.fields);for(const i of n.children.flatMap(t))i.parent=r;return[r]}return n.children.flatMap(t)}return t}function Py(e){if(e instanceof xc)if(e.numChildren()===1&&!(e.children[0]instanceof an)){const t=e.children[0];(t instanceof Sr||t instanceof Xi||t instanceof _c||t instanceof Po)&&t.addDimensions(e.fields),t.swapWithParent(),Py(e)}else{const t=e.model.component.data.main;ZN(t);const n=Bce(e),r=e.children.map(n).flat();for(const i of r)i.parent=t}else e.children.map(Py)}function ZN(e){if(e instanceof an&&e.type===ze.Main&&e.numChildren()===1){const t=e.children[0];t instanceof xc||(t.swapWithParent(),ZN(e))}}const Iy="scale_",Pd=5;function zy(e){for(const t of e){for(const n of t.children)if(n.parent!==t)return!1;if(!zy(t.children))return!1}return!0}function ur(e,t){let n=!1;for(const r of t)n=e.optimize(r)||n;return n}function n_(e,t,n){let r=e.sources,i=!1;return i=ur(new Mce,r)||i,i=ur(new Cce(t),r)||i,r=r.filter(a=>a.numChildren()>0),i=ur(new Dce,r)||i,r=r.filter(a=>a.numChildren()>0),n||(i=ur(new Tce,r)||i,i=ur(new Lce(t),r)||i,i=ur(new Fce,r)||i,i=ur(new Nce,r)||i,i=ur(new Rce,r)||i,i=ur(new Oce,r)||i,i=ur(new kce,r)||i,i=ur(new Pce,r)||i),e.sources=r,i}function Uce(e,t){zy(e.sources);let n=0,r=0;for(let i=0;it(n))}}function eD(e){Ve(e)?jce(e):qce(e)}function jce(e){const t=e.component.scales;for(const n of B(t)){const r=Hce(e,n);if(t[n].setWithExplicit("domains",r),Yce(e,n),e.component.data.isFaceted){let a=e;for(;!$r(a)&&a.parent;)a=a.parent;if(a.component.resolve.scale[n]==="shared")for(const o of r.value)Ui(o)&&(o.data=Iy+o.data.replace(Iy,""))}}}function qce(e){for(const n of e.children)eD(n);const t=e.component.scales;for(const n of B(t)){let r,i=null;for(const a of e.children){const s=a.component.scales[n];if(s){r===void 0?r=s.getWithExplicit("domains"):r=Va(r,s.getWithExplicit("domains"),"domains","scale",By);const o=s.get("selectionExtent");i&&o&&i.param!==o.param&&j(Bre),i=o}}t[n].setWithExplicit("domains",r),i&&t[n].set("selectionExtent",i,!0)}}function Wce(e,t,n,r){if(e==="unaggregated"){const{valid:i,reason:a}=r_(t,n);if(!i){j(a);return}}else if(e===void 0&&r.useUnaggregatedDomain){const{valid:i}=r_(t,n);if(i)return"unaggregated"}return e}function Hce(e,t){const n=e.getScaleComponent(t).get("type"),{encoding:r}=e,i=Wce(e.scaleDomain(t),e.typedFieldDef(t),n,e.config.scale);return i!==e.scaleDomain(t)&&(e.specifiedScales[t]={...e.specifiedScales[t],domain:i}),t==="x"&&st(r.x2)?st(r.x)?Va(da(n,i,e,"x"),da(n,i,e,"x2"),"domain","scale",By):da(n,i,e,"x2"):t==="y"&&st(r.y2)?st(r.y)?Va(da(n,i,e,"y"),da(n,i,e,"y2"),"domain","scale",By):da(n,i,e,"y2"):da(n,i,e,t)}function Gce(e,t,n){return e.map(r=>({signal:`{data: ${Np(r,{timeUnit:n,type:t})}}`}))}function ym(e,t,n){var i;const r=(i=yt(n))==null?void 0:i.unit;return t==="temporal"||r?Gce(e,t,r):[e]}function da(e,t,n,r){const{encoding:i,markDef:a,mark:s,config:o,stack:u}=n,c=st(i[r]),{type:l}=c,f=c.timeUnit;if(cae(t)){const g=da(e,void 0,n,r),p=ym(t.unionWith,l,f);return Hr([...p,...g.value])}else{if(Q(t))return Hr([t]);if(t&&t!=="unaggregated"&&!QM(t))return Hr(ym(t,l,f))}if(u&&r===u.fieldChannel){if(u.offset==="normalize")return kn([[0,1]]);const g=n.requestDataName(ze.Main);return kn([{data:g,field:n.vgField(r,{suffix:"start"})},{data:g,field:n.vgField(r,{suffix:"end"})}])}const d=sa(r)&&U(c)?Xce(n,r,e):void 0;if(Ei(c)){const g=ym([c.datum],l,f);return kn(g)}const h=c;if(t==="unaggregated"){const g=n.requestDataName(ze.Main),{field:p}=c;return kn([{data:g,field:G({field:p,aggregate:"min"})},{data:g,field:G({field:p,aggregate:"max"})}])}else if(Be(h.bin)){if(vt(e))return kn(e==="bin-ordinal"?[]:[{data:uf(d)?n.requestDataName(ze.Main):n.requestDataName(ze.Raw),field:n.vgField(r,ed(h,r)?{binSuffix:"range"}:{}),sort:d===!0||!V(d)?{field:n.vgField(r,{}),op:"min"}:d}]);{const{bin:g}=h;if(Be(g)){const p=K6(n,h.field,g);return kn([new ft(()=>{const m=n.getSignalName(p);return`[${m}.start, ${m}.stop]`})])}else return kn([{data:n.requestDataName(ze.Main),field:n.vgField(r,{})}])}}else if(h.timeUnit&&ye(["time","utc"],e)){const g=i[_i(r)];if(hT(h,g,a,o)){const p=n.requestDataName(ze.Main),m=Xa({fieldDef:h,fieldDef2:g,markDef:a,config:o}),b=lf(s)&&m!==.5&&et(r);return kn([{data:p,field:n.vgField(r,b?{suffix:Ip}:{})},{data:p,field:n.vgField(r,{suffix:b?zp:"end"})}])}}return kn(d?[{data:uf(d)?n.requestDataName(ze.Main):n.requestDataName(ze.Raw),field:n.vgField(r),sort:d}]:[{data:n.requestDataName(ze.Main),field:n.vgField(r)}])}function vm(e,t){const{op:n,field:r,order:i}=e;return{op:n??(t?"sum":kp),...r?{field:rr(r)}:{},...i?{order:i}:{}}}function Yce(e,t){var o;const n=e.component.scales[t],r=e.specifiedScales[t].domain,i=(o=e.fieldDef(t))==null?void 0:o.bin,a=QM(r)&&r,s=No(i)&&xp(i.extent)&&i.extent;(a||s)&&n.set("selectionExtent",a??s,!0)}function Xce(e,t,n){if(!vt(n))return;const r=e.fieldDef(t),i=r.sort;if(fT(i))return{op:"min",field:Ju(r,t),order:"ascending"};const{stack:a}=e,s=a?new Set([...a.groupbyFields,...a.stackBy.map(o=>o.fieldDef.field)]):void 0;if(ei(i)){const o=a&&!s.has(i.field);return vm(i,o)}else if(lT(i)){const{encoding:o,order:u}=i,c=e.fieldDef(o),{aggregate:l,field:f}=c,d=a&&!s.has(f);if(Qi(l)||fs(l))return vm({field:G(c),order:u},d);if(Z7(l)||!l)return vm({op:l,field:f,order:u},d)}else{if(i==="descending")return{op:"min",field:e.vgField(t),order:"descending"};if(ye(["ascending",void 0],i))return!0}}function r_(e,t){const{aggregate:n,type:r}=e;return n?X(n)&&!Sre.has(n)?{valid:!1,reason:die(n)}:r==="quantitative"&&t==="log"?{valid:!1,reason:hie(e)}:{valid:!0}:{valid:!1,reason:fie(e)}}function By(e,t,n,r){return e.explicit&&t.explicit&&j(yie(n,r,e.value,t.value)),{explicit:e.explicit,value:[...e.value,...t.value]}}function Vce(e){const t=Kr(e.map(s=>{if(Ui(s)){const{sort:o,...u}=s;return u}return s}),be),n=Kr(e.map(s=>{if(Ui(s)){const o=s.sort;return o!==void 0&&!uf(o)&&("op"in o&&o.op==="count"&&delete o.field,o.order==="ascending"&&delete o.order),o}}).filter(s=>s!==void 0),be);if(t.length===0)return;if(t.length===1){const s=e[0];if(Ui(s)&&n.length>0){let o=n[0];if(n.length>1){j(dx);const u=n.filter(c=>V(c)&&"op"in c&&c.op!=="min");n.every(c=>V(c)&&"op"in c)&&u.length===1?o=u[0]:o=!0}else if(V(o)&&"field"in o){const u=o.field;s.field===u&&(o=o.order?{order:o.order}:!0)}return{...s,sort:o}}return s}const r=Kr(n.map(s=>uf(s)||!("op"in s)||X(s.op)&&s.op in xre?s:(j(xie(s)),!0)),be);let i;r.length===1?i=r[0]:r.length>1&&(j(dx),i=!0);const a=Kr(e.map(s=>Ui(s)?s.data:null),s=>s);return a.length===1&&a[0]!==null?{data:a[0],fields:t.map(o=>o.field),...i?{sort:i}:{}}:{fields:t,...i?{sort:i}:{}}}function e8(e){if(Ui(e)&&X(e.field))return e.field;if($re(e)){let t;for(const n of e.fields)if(Ui(n)&&X(n.field)){if(!t)t=n.field;else if(t!==n.field)return j(_ie),t}return j(wie),t}else if(Are(e)){j(Eie);const t=e.fields[0];return X(t)?t:void 0}}function Wp(e,t){const r=e.component.scales[t].get("domains").map(i=>(Ui(i)&&(i.data=e.lookupDataSource(i.data)),i));return Vce(r)}function tD(e){return wc(e)||t8(e)?e.children.reduce((t,n)=>t.concat(tD(n)),i_(e)):i_(e)}function i_(e){return B(e.component.scales).reduce((t,n)=>{const r=e.component.scales[n];if(r.merged)return t;const i=r.combine(),{name:a,type:s,selectionExtent:o,domains:u,range:c,reverse:l,...f}=i,d=Kce(i.range,a,n,e),h=Wp(e,n),g=o?Woe(e,o,r,h):null;return t.push({name:a,type:s,...h?{domain:h}:{},...g?{domainRaw:g}:{},range:d,...l!==void 0?{reverse:l}:{},...f}),t},[])}function Kce(e,t,n,r){if(et(n)){if(ds(e))return{step:{signal:`${t}_step`}}}else if(V(e)&&Ui(e))return{...e,data:r.lookupDataSource(e.data)};return e}class nD extends ua{constructor(t,n){super({},{name:t}),this.merged=!1,this.setWithExplicit("type",n)}domainDefinitelyIncludesZero(){return this.get("zero")!==!1?!0:co(this.get("domains"),t=>P(t)&&t.length===2&&we(t[0])&&t[0]<=0&&we(t[1])&&t[1]>=0)}}const Jce=["range","scheme"];function Qce(e){const t=e.component.scales;for(const n of vp){const r=t[n];if(!r)continue;const i=Zce(n,e);r.setWithExplicit("range",i)}}function a_(e,t){const n=e.fieldDef(t);if(n!=null&&n.bin){const{bin:r,field:i}=n,a=Sn(t),s=e.getName(a);if(V(r)&&r.binned&&r.step!==void 0)return new ft(()=>{const o=e.scaleName(t),u=`(domain("${o}")[1] - domain("${o}")[0]) / ${r.step}`;return`${e.getSignalName(s)} / (${u})`});if(Be(r)){const o=K6(e,i,r);return new ft(()=>{const u=e.getSignalName(o),c=`(${u}.stop - ${u}.start) / ${u}.step`;return`${e.getSignalName(s)} / (${c})`})}}}function Zce(e,t){const n=t.specifiedScales[e],{size:r}=t,a=t.getScaleComponent(e).get("type");for(const f of Jce)if(n[f]!==void 0){const d=Sy(a,f),h=ZM(e,f);if(!d)j(NM(a,f,e));else if(h)j(h);else switch(f){case"range":{const g=n.range;if(P(g)){if(et(e))return Hr(g.map(p=>{if(p==="width"||p==="height"){const m=t.getName(p),b=t.getSignalName.bind(t);return ft.fromName(b,m)}return p}))}else if(V(g))return Hr({data:t.requestDataName(ze.Main),field:g.field,sort:{op:"min",field:t.vgField(e)}});return Hr(g)}case"scheme":return Hr(ele(n[f]))}}const s=e===He||e==="xOffset"?"width":"height",o=r[s];if(fi(o)){if(et(e))if(vt(a)){const f=iD(o,t,e);if(f)return Hr({step:f})}else j(DM(s));else if(Xf(e)){const f=e===ss?"x":"y";if(t.getScaleComponent(f).get("type")==="band"){const g=aD(o,a);if(g)return Hr(g)}}}const{rangeMin:u,rangeMax:c}=n,l=tle(e,t);return(u!==void 0||c!==void 0)&&Sy(a,"rangeMin")&&P(l)&&l.length===2?Hr([u??l[0],c??l[1]]):kn(l)}function ele(e){return uae(e)?{scheme:e.name,...bn(e,["name"])}:{scheme:e}}function rD(e,t,n,{center:r}={}){const i=Sn(e),a=t.getName(i),s=t.getSignalName.bind(t);return e===_t&&Bn(n)?r?[ft.fromName(o=>`${s(o)}/2`,a),ft.fromName(o=>`-${s(o)}/2`,a)]:[ft.fromName(s,a),0]:r?[ft.fromName(o=>`-${s(o)}/2`,a),ft.fromName(o=>`${s(o)}/2`,a)]:[0,ft.fromName(s,a)]}function tle(e,t){const{size:n,config:r,mark:i,encoding:a}=t,{type:s}=st(a[e]),u=t.getScaleComponent(e).get("type"),{domain:c,domainMid:l}=t.specifiedScales[e];switch(e){case He:case _t:{if(ye(["point","band"],u)){const f=sD(e,n,r.view);if(fi(f))return{step:iD(f,t,e)}}return rD(e,t,u)}case ss:case mc:return nle(e,t,u);case ia:{const f=t.component.scales[e].get("zero"),d=oD(i,f,r),h=ale(i,n,t,r);return Wu(u)?ile(d,h,rle(u,r,c,e)):[d,h]}case sr:return[0,Math.PI*2];case Mo:return[0,360];case Rr:return[0,new ft(()=>{const f=t.getSignalName("width"),d=t.getSignalName("height");return`min(${f},${d})/2`})];case cs:return[r.scale.minStrokeWidth,r.scale.maxStrokeWidth];case ls:return[[1,0],[4,2],[2,1],[1,1],[1,2,4,2]];case En:return"symbol";case wn:case vi:case xi:return u==="ordinal"?s==="nominal"?"category":"ordinal":l!==void 0?"diverging":i==="rect"||i==="geoshape"?"heatmap":"ramp";case aa:case os:case us:return[r.scale.minOpacity,r.scale.maxOpacity]}}function iD(e,t,n){const{encoding:r}=t,i=t.getScaleComponent(n),a=V7(n),s=r[a];if(WT({step:e,offsetIsDiscrete:ue(s)&&YM(s.type)})==="offset"&&$T(r,a)){const u=t.getScaleComponent(a);let l=`domain('${t.scaleName(a)}').length`;if(u.get("type")==="band"){const d=u.get("paddingInner")??u.get("padding")??0,h=u.get("paddingOuter")??u.get("padding")??0;l=`bandspace(${l}, ${d}, ${h})`}const f=i.get("paddingInner")??i.get("padding");return{signal:`${e.step} * ${l} / (1-${Mre(f)})`}}else return e.step}function aD(e,t){if(WT({step:e,offsetIsDiscrete:vt(t)})==="offset")return{step:e.step}}function nle(e,t,n){const r=e===ss?"x":"y",i=t.getScaleComponent(r);if(!i)return rD(r,t,n,{center:!0});const a=i.get("type"),s=t.scaleName(r),{markDef:o,config:u}=t;if(a==="band"){const c=sD(r,t.size,t.config.view);if(fi(c)){const l=aD(c,n);if(l)return l}return[0,{signal:`bandwidth('${s}')`}]}else{const c=t.encoding[r];if(U(c)&&c.timeUnit){const l=qM(c.timeUnit,g=>`scale('${s}', ${g})`),f=t.config.scale.bandWithNestedOffsetPaddingInner,d=Xa({fieldDef:c,markDef:o,config:u})-.5,h=d!==0?` + ${d}`:"";if(f){const g=Q(f)?`${f.signal}/2`+h:`${f/2+d}`,p=Q(f)?`(1 - ${f.signal}/2)`+h:`${1-f/2+d}`;return[{signal:`${g} * (${l})`},{signal:`${p} * (${l})`}]}return[0,{signal:l}]}return ZF(`Cannot use ${e} scale if ${r} scale is not discrete.`)}}function sD(e,t,n){const r=e===He?"width":"height",i=t[r];return i||q0(n,r)}function rle(e,t,n,r){switch(e){case"quantile":return t.scale.quantileCount;case"quantize":return t.scale.quantizeCount;case"threshold":return n!==void 0&&P(n)?n.length+1:(j(Nie(r)),3)}}function ile(e,t,n){const r=()=>{const i=xr(t),a=xr(e),s=`(${i} - ${a}) / (${n} - 1)`;return`sequence(${a}, ${i} + ${s}, ${s})`};return Q(t)?new ft(r):{signal:r()}}function oD(e,t,n){if(t)return Q(t)?{signal:`${t.signal} ? 0 : ${oD(e,!1,n)}`}:0;switch(e){case"bar":case"tick":return n.scale.minBandSize;case"line":case"trail":case"rule":return n.scale.minStrokeWidth;case"text":return n.scale.minFontSize;case"point":case"square":case"circle":return n.scale.minSize}throw new Error(_p("size",e))}const s_=.95;function ale(e,t,n,r){const i={x:a_(n,"x"),y:a_(n,"y")};switch(e){case"bar":case"tick":{if(r.scale.maxBandSize!==void 0)return r.scale.maxBandSize;const a=o_(t,i,r.view);return we(a)?a-1:new ft(()=>`${a.signal} - 1`)}case"line":case"trail":case"rule":return r.scale.maxStrokeWidth;case"text":return r.scale.maxFontSize;case"point":case"square":case"circle":{if(r.scale.maxSize)return r.scale.maxSize;const a=o_(t,i,r.view);return we(a)?Math.pow(s_*a,2):new ft(()=>`pow(${s_} * ${a.signal}, 2)`)}}throw new Error(_p("size",e))}function o_(e,t,n){const r=fi(e.width)?e.width.step:j0(n,"width"),i=fi(e.height)?e.height.step:j0(n,"height");return t.x||t.y?new ft(()=>`min(${[t.x?t.x.signal:r,t.y?t.y.signal:i].join(", ")})`):Math.min(r,i)}function uD(e,t){Ve(e)?sle(e,t):lD(e,t)}function sle(e,t){const n=e.component.scales,{config:r,encoding:i,markDef:a,specifiedScales:s}=e;for(const o of B(n)){const u=s[o],c=n[o],l=e.getScaleComponent(o),f=st(i[o]),d=u[t],h=l.get("type"),g=l.get("padding"),p=l.get("paddingInner"),m=Sy(h,t),b=ZM(o,t);if(d!==void 0&&(m?b&&j(b):j(NM(h,t,o))),m&&b===void 0)if(d!==void 0){const y=f.timeUnit,v=f.type;switch(t){case"domainMax":case"domainMin":Do(u[t])||v==="temporal"||y?c.set(t,{signal:Np(u[t],{type:v,timeUnit:y})},!0):c.set(t,u[t],!0);break;default:c.copyKeyFromObject(t,u)}}else{const y=t in u_?u_[t]({model:e,channel:o,fieldOrDatumDef:f,scaleType:h,scalePadding:g,scalePaddingInner:p,domain:u.domain,domainMin:u.domainMin,domainMax:u.domainMax,markDef:a,config:r,hasNestedOffsetScale:AT(i,o),hasSecondaryRangeChannel:!!i[_i(o)]}):r.scale[t];y!==void 0&&c.set(t,y,!1)}}}const u_={bins:({model:e,fieldOrDatumDef:t})=>U(t)?ole(e,t):void 0,interpolate:({channel:e,fieldOrDatumDef:t})=>ule(e,t.type),nice:({scaleType:e,channel:t,domain:n,domainMin:r,domainMax:i,fieldOrDatumDef:a})=>cle(e,t,n,r,i,a),padding:({channel:e,scaleType:t,fieldOrDatumDef:n,markDef:r,config:i})=>lle(e,t,i.scale,n,r,i.bar),paddingInner:({scalePadding:e,channel:t,markDef:n,scaleType:r,config:i,hasNestedOffsetScale:a})=>fle(e,t,n.type,r,i.scale,a),paddingOuter:({scalePadding:e,channel:t,scaleType:n,scalePaddingInner:r,config:i,hasNestedOffsetScale:a})=>dle(e,t,n,r,i.scale,a),reverse:({fieldOrDatumDef:e,scaleType:t,channel:n,config:r})=>{const i=U(e)?e.sort:void 0;return hle(t,i,n,r.scale)},zero:({channel:e,fieldOrDatumDef:t,domain:n,markDef:r,scaleType:i,config:a,hasSecondaryRangeChannel:s})=>gle(e,t,n,r,i,a.scale,s)};function cD(e){Ve(e)?Qce(e):lD(e,"range")}function lD(e,t){const n=e.component.scales;for(const r of e.children)t==="range"?cD(r):uD(r,t);for(const r of B(n)){let i;for(const a of e.children){const s=a.component.scales[r];if(s){const o=s.getWithExplicit(t);i=Va(i,o,t,"scale",rN((u,c)=>{switch(t){case"range":return u.step&&c.step?u.step-c.step:0}return 0}))}}n[r].setWithExplicit(t,i)}}function ole(e,t){const n=t.bin;if(Be(n)){const r=K6(e,t.field,n);return new ft(()=>e.getSignalName(r))}else if(Et(n)&&No(n)&&n.step!==void 0)return{step:n.step}}function ule(e,t){if(ye([wn,vi,xi],e)&&t!=="nominal")return"hcl"}function cle(e,t,n,r,i,a){var s;if(!((s=li(a))!=null&&s.bin||P(n)||i!=null||r!=null||ye([yn.TIME,yn.UTC],e)))return et(t)?!0:void 0}function lle(e,t,n,r,i,a){if(et(e)){if(_r(t)){if(n.continuousPadding!==void 0)return n.continuousPadding;const{type:s,orient:o}=i;if(s==="bar"&&!(U(r)&&(r.bin||r.timeUnit))&&(o==="vertical"&&e==="x"||o==="horizontal"&&e==="y"))return a.continuousBandSize}if(t===yn.POINT)return n.pointPadding}}function fle(e,t,n,r,i,a=!1){if(e===void 0){if(et(t)){const{bandPaddingInner:s,barBandPaddingInner:o,rectBandPaddingInner:u,bandWithNestedOffsetPaddingInner:c}=i;return a?c:Ze(s,n==="bar"?o:u)}else if(Xf(t)&&r===yn.BAND)return i.offsetBandPaddingInner}}function dle(e,t,n,r,i,a=!1){if(e===void 0){if(et(t)){const{bandPaddingOuter:s,bandWithNestedOffsetPaddingOuter:o}=i;if(a)return o;if(n===yn.BAND)return Ze(s,Q(r)?{signal:`${r.signal}/2`}:r/2)}else if(Xf(t)){if(n===yn.POINT)return .5;if(n===yn.BAND)return i.offsetBandPaddingOuter}}}function hle(e,t,n,r){if(n==="x"&&r.xReverse!==void 0)return Bn(e)&&t==="descending"?Q(r.xReverse)?{signal:`!${r.xReverse.signal}`}:!r.xReverse:r.xReverse;if(Bn(e)&&t==="descending")return!0}function gle(e,t,n,r,i,a,s){if(!!n&&n!=="unaggregated"&&Bn(i)){if(P(n)){const u=n[0],c=n[n.length-1];if(we(u)&&u<=0&&we(c)&&c>=0)return!0}return!1}if(e==="size"&&t.type==="quantitative"&&!Wu(i))return!0;if(!(U(t)&&t.bin)&&ye([...wi,...dre],e)){const{orient:u,type:c}=r;return ye(["bar","area","line","trail"],c)&&(u==="horizontal"&&e==="y"||u==="vertical"&&e==="x")?!1:ye(["bar","area"],c)&&!s?!0:a==null?void 0:a.zero}return!1}function ple(e,t,n,r,i=!1){const a=mle(t,n,r,i),{type:s}=e;return sa(t)?s!==void 0?pae(t,s)?U(n)&&!gae(s,n.type)?(j(mie(s,a)),a):s:(j(pie(t,s,a)),a):a:null}function mle(e,t,n,r){var i;switch(t.type){case"nominal":case"ordinal":{if(gu(e)||lm(e)==="discrete")return e==="shape"&&t.type==="ordinal"&&j(fm(e,"ordinal")),"ordinal";if(et(e)||Xf(e)){if(ye(["rect","bar","image","rule"],n.type)||r)return"band"}else if(n.type==="arc"&&e in Q7)return"band";const a=n[Sn(e)];return po(a)||Gu(t)&&((i=t.axis)!=null&&i.tickBand)?"band":"point"}case"temporal":return gu(e)?"time":lm(e)==="discrete"?(j(fm(e,"temporal")),"ordinal"):U(t)&&t.timeUnit&&yt(t.timeUnit).utc?"utc":"time";case"quantitative":return gu(e)?U(t)&&Be(t.bin)?"bin-ordinal":"linear":lm(e)==="discrete"?(j(fm(e,"quantitative")),"ordinal"):"linear";case"geojson":return}throw new Error(MM(t.type))}function ble(e,{ignoreRange:t}={}){fD(e),eD(e);for(const n of hae)uD(e,n);t||cD(e)}function fD(e){Ve(e)?e.component.scales=yle(e):e.component.scales=xle(e)}function yle(e){const{encoding:t,mark:n,markDef:r}=e,i={};for(const a of vp){const s=st(t[a]);if(s&&n===nT&&a===En&&s.type===bc)continue;let o=s&&s.scale;if(s&&o!==null&&o!==!1){o??(o={});const u=AT(t,a),c=ple(o,a,s,r,u);i[a]=new nD(e.scaleName(`${a}`,!0),{value:c,explicit:o.type===c})}}return i}const vle=rN((e,t)=>gx(e)-gx(t));function xle(e){var t;const n=e.component.scales={},r={},i=e.component.resolve;for(const a of e.children){fD(a);for(const s of B(a.component.scales))if((t=i.scale)[s]??(t[s]=UN(s,e)),i.scale[s]==="shared"){const o=r[s],u=a.component.scales[s].getWithExplicit("type");o?rae(o.value,u.value)?r[s]=Va(o,u,"type","scale",vle):(i.scale[s]="independent",delete r[s]):r[s]=u}}for(const a of B(r)){const s=e.scaleName(a,!0),o=r[a];n[a]=new nD(s,o);for(const u of e.children){const c=u.component.scales[a];c&&(u.renameScale(c.get("name"),s),c.merged=!0)}}return n}class xm{constructor(){this.nameMap={}}rename(t,n){this.nameMap[t]=n}has(t){return this.nameMap[t]!==void 0}get(t){for(;this.nameMap[t]&&t!==this.nameMap[t];)t=this.nameMap[t];return t}}function Ve(e){return(e==null?void 0:e.type)==="unit"}function $r(e){return(e==null?void 0:e.type)==="facet"}function t8(e){return(e==null?void 0:e.type)==="concat"}function wc(e){return(e==null?void 0:e.type)==="layer"}class n8{constructor(t,n,r,i,a,s,o){this.type=n,this.parent=r,this.config=a,this.correctDataNames=u=>{var c,l,f;return(c=u.from)!=null&&c.data&&(u.from.data=this.lookupDataSource(u.from.data)),(f=(l=u.from)==null?void 0:l.facet)!=null&&f.data&&(u.from.facet.data=this.lookupDataSource(u.from.facet.data)),u},this.parent=r,this.config=a,this.view=gn(o),this.name=t.name??i,this.title=ba(t.title)?{text:t.title}:t.title?gn(t.title):void 0,this.scaleNameMap=r?r.scaleNameMap:new xm,this.projectionNameMap=r?r.projectionNameMap:new xm,this.signalNameMap=r?r.signalNameMap:new xm,this.data=t.data,this.description=t.description,this.transforms=koe(t.transform??[]),this.layout=n==="layer"||n==="unit"?{}:Tse(t,n,a),this.component={data:{sources:r?r.component.data.sources:[],outputNodes:r?r.component.data.outputNodes:{},outputNodeRefCounts:r?r.component.data.outputNodeRefCounts:{},isFaceted:Cp(t)||(r==null?void 0:r.component.data.isFaceted)&&t.data===void 0},layoutSize:new ua,layoutHeaders:{row:{},column:{},facet:{}},mark:null,resolve:{scale:{},axis:{},legend:{},...s?oe(s):{}},selection:null,scales:null,projection:null,axes:{},legends:{}}}get width(){return this.getSizeSignalRef("width")}get height(){return this.getSizeSignalRef("height")}parse(){this.parseScale(),this.parseLayoutSize(),this.renameTopLevelLayoutSizeSignal(),this.parseSelections(),this.parseProjection(),this.parseData(),this.parseAxesAndHeaders(),this.parseLegends(),this.parseMarkGroup()}parseScale(){ble(this)}parseProjection(){JN(this)}renameTopLevelLayoutSizeSignal(){this.getName("width")!=="width"&&this.renameSignal(this.getName("width"),"width"),this.getName("height")!=="height"&&this.renameSignal(this.getName("height"),"height")}parseLegends(){GN(this)}assembleEncodeFromView(t){const{style:n,...r}=t,i={};for(const a of B(r)){const s=r[a];s!==void 0&&(i[a]=je(s))}return i}assembleGroupEncodeEntry(t){let n={};return this.view&&(n=this.assembleEncodeFromView(this.view)),!t&&(this.description&&(n.description=je(this.description)),this.type==="unit"||this.type==="layer")?{width:this.getSizeSignalRef("width"),height:this.getSizeSignalRef("height"),...n??{}}:Oe(n)?void 0:n}assembleLayout(){if(!this.layout)return;const{spacing:t,...n}=this.layout,{component:r,config:i}=this,a=Uue(r.layoutHeaders,i);return{padding:t,...this.assembleDefaultLayout(),...n,...a?{titleBand:a}:{}}}assembleDefaultLayout(){return{}}assembleHeaderMarks(){const{layoutHeaders:t}=this.component;let n=[];for(const r of Vn)t[r].title&&n.push(Rue(this,r));for(const r of G6)n=n.concat(Lue(this,r));return n}assembleAxes(){return wue(this.component.axes,this.config)}assembleLegends(){return XN(this)}assembleProjections(){return lce(this)}assembleTitle(){const{encoding:t,...n}=this.title??{},r={..._M(this.config.title).nonMarkTitleProperties,...n,...t?{encode:{update:t}}:{}};if(r.text)return ye(["unit","layer"],this.type)?ye(["middle",void 0],r.anchor)&&(r.frame??(r.frame="group")):r.anchor??(r.anchor="start"),Oe(r)?void 0:r}assembleGroup(t=[]){const n={};t=t.concat(this.assembleSignals()),t.length>0&&(n.signals=t);const r=this.assembleLayout();r&&(n.layout=r),n.marks=[].concat(this.assembleHeaderMarks(),this.assembleMarks());const i=!this.parent||$r(this.parent)?tD(this):[];i.length>0&&(n.scales=i);const a=this.assembleAxes();a.length>0&&(n.axes=a);const s=this.assembleLegends();return s.length>0&&(n.legends=s),n}getName(t){return We((this.name?`${this.name}_`:"")+t)}getDataName(t){return this.getName(ze[t].toLowerCase())}requestDataName(t){const n=this.getDataName(t),r=this.component.data.outputNodeRefCounts;return r[n]=(r[n]||0)+1,n}getSizeSignalRef(t){if($r(this.parent)){const n=zN(t),r=yp(n),i=this.component.scales[r];if(i&&!i.merged){const a=i.get("type"),s=i.get("range");if(vt(a)&&ds(s)){const o=i.get("name"),u=Wp(this,r),c=e8(u);if(c){const l=G({aggregate:"distinct",field:c},{expr:"datum"});return{signal:IN(o,i,l)}}else return j(t6(r)),null}}}return{signal:this.signalNameMap.get(this.getName(t))}}lookupDataSource(t){const n=this.component.data.outputNodes[t];return n?n.getSource():t}getSignalName(t){return this.signalNameMap.get(t)}renameSignal(t,n){this.signalNameMap.rename(t,n)}renameScale(t,n){this.scaleNameMap.rename(t,n)}renameProjection(t,n){this.projectionNameMap.rename(t,n)}scaleName(t,n){if(n)return this.getName(t);if(dM(t)&&sa(t)&&this.component.scales[t]||this.scaleNameMap.has(this.getName(t)))return this.scaleNameMap.get(this.getName(t))}projectionName(t){if(t)return this.getName("projection");if(this.component.projection&&!this.component.projection.merged||this.projectionNameMap.has(this.getName("projection")))return this.projectionNameMap.get(this.getName("projection"))}getScaleComponent(t){if(!this.component.scales)throw new Error("getScaleComponent cannot be called before parseScale(). Make sure you have called parseScale or use parseUnitModelWithScale().");const n=this.component.scales[t];return n&&!n.merged?n:this.parent?this.parent.getScaleComponent(t):void 0}getSelectionComponent(t,n){let r=this.component.selection[t];if(!r&&this.parent&&(r=this.parent.getSelectionComponent(t,n)),!r)throw new Error(Rre(n));return r}hasAxisOrientSignalRef(){var t,n;return((t=this.component.axes.x)==null?void 0:t.some(r=>r.hasOrientSignalRef()))||((n=this.component.axes.y)==null?void 0:n.some(r=>r.hasOrientSignalRef()))}}class dD extends n8{vgField(t,n={}){const r=this.fieldDef(t);if(r)return G(r,n)}reduceFieldDef(t,n){return sse(this.getMapping(),(r,i,a)=>{const s=li(i);return s?t(r,s,a):r},n)}forEachFieldDef(t,n){C6(this.getMapping(),(r,i)=>{const a=li(r);a&&t(a,i)},n)}}class Hp extends De{clone(){return new Hp(null,oe(this.transform))}constructor(t,n){super(t),this.transform=n,this.transform=oe(n);const r=this.transform.as??[void 0,void 0];this.transform.as=[r[0]??"value",r[1]??"density"]}dependentFields(){return new Set([this.transform.density,...this.transform.groupby??[]])}producedFields(){return new Set(this.transform.as)}hash(){return`DensityTransform ${be(this.transform)}`}assemble(){const{density:t,...n}=this.transform,r={type:"kde",field:t,...n};return this.transform.groupby&&(r.resolve="shared"),r}}class Gp extends De{clone(){return new Gp(null,oe(this.transform))}constructor(t,n){super(t),this.transform=n,this.transform=oe(n)}dependentFields(){return new Set([this.transform.extent])}producedFields(){return new Set([])}hash(){return`ExtentTransform ${be(this.transform)}`}assemble(){const{extent:t,param:n}=this.transform;return{type:"extent",field:t,signal:n}}}class df extends De{clone(){return new df(null,{...this.filter})}constructor(t,n){super(t),this.filter=n}static make(t,n){const{config:r,mark:i,markDef:a}=n;if(Te("invalid",a,r)!=="filter")return null;const o=n.reduceFieldDef((u,c,l)=>{const f=sa(l)&&n.getScaleComponent(l);if(f){const d=f.get("type");Bn(d)&&c.aggregate!=="count"&&!hs(i)&&(u[c.field]=c)}return u},{});return B(o).length?new df(t,o):null}dependentFields(){return new Set(B(this.filter))}producedFields(){return new Set}hash(){return`FilterInvalid ${be(this.filter)}`}assemble(){const t=B(this.filter).reduce((n,r)=>{const i=this.filter[r],a=G(i,{expr:"datum"});return i!==null&&(i.type==="temporal"?n.push(`(isDate(${a}) || (isValid(${a}) && isFinite(+${a})))`):i.type==="quantitative"&&(n.push(`isValid(${a})`),n.push(`isFinite(+${a})`))),n},[]);return t.length>0?{type:"filter",expr:t.join(" && ")}:null}}class Yp extends De{clone(){return new Yp(this.parent,oe(this.transform))}constructor(t,n){super(t),this.transform=n,this.transform=oe(n);const{flatten:r,as:i=[]}=this.transform;this.transform.as=r.map((a,s)=>i[s]??a)}dependentFields(){return new Set(this.transform.flatten)}producedFields(){return new Set(this.transform.as)}hash(){return`FlattenTransform ${be(this.transform)}`}assemble(){const{flatten:t,as:n}=this.transform;return{type:"flatten",fields:t,as:n}}}class Xp extends De{clone(){return new Xp(null,oe(this.transform))}constructor(t,n){super(t),this.transform=n,this.transform=oe(n);const r=this.transform.as??[void 0,void 0];this.transform.as=[r[0]??"key",r[1]??"value"]}dependentFields(){return new Set(this.transform.fold)}producedFields(){return new Set(this.transform.as)}hash(){return`FoldTransform ${be(this.transform)}`}assemble(){const{fold:t,as:n}=this.transform;return{type:"fold",fields:t,as:n}}}class bu extends De{clone(){return new bu(null,oe(this.fields),this.geojson,this.signal)}static parseAll(t,n){if(n.component.projection&&!n.component.projection.isFit)return t;let r=0;for(const i of[[Pr,Lr],[ir,Ir]]){const a=i.map(s=>{const o=st(n.encoding[s]);return U(o)?o.field:Ei(o)?{expr:`${o.datum}`}:Fr(o)?{expr:`${o.value}`}:void 0});(a[0]||a[1])&&(t=new bu(t,a,null,n.getName(`geojson_${r++}`)))}if(n.channelHasField(En)){const i=n.typedFieldDef(En);i.type===bc&&(t=new bu(t,null,i.field,n.getName(`geojson_${r++}`)))}return t}constructor(t,n,r,i){super(t),this.fields=n,this.geojson=r,this.signal=i}dependentFields(){const t=(this.fields??[]).filter(X);return new Set([...this.geojson?[this.geojson]:[],...t])}producedFields(){return new Set}hash(){return`GeoJSON ${this.geojson} ${this.signal} ${be(this.fields)}`}assemble(){return[...this.geojson?[{type:"filter",expr:`isValid(datum["${this.geojson}"])`}]:[],{type:"geojson",...this.fields?{fields:this.fields}:{},...this.geojson?{geojson:this.geojson}:{},signal:this.signal}]}}class hf extends De{clone(){return new hf(null,this.projection,oe(this.fields),oe(this.as))}constructor(t,n,r,i){super(t),this.projection=n,this.fields=r,this.as=i}static parseAll(t,n){if(!n.projectionName())return t;for(const r of[[Pr,Lr],[ir,Ir]]){const i=r.map(s=>{const o=st(n.encoding[s]);return U(o)?o.field:Ei(o)?{expr:`${o.datum}`}:Fr(o)?{expr:`${o.value}`}:void 0}),a=r[0]===ir?"2":"";(i[0]||i[1])&&(t=new hf(t,n.projectionName(),i,[n.getName(`x${a}`),n.getName(`y${a}`)]))}return t}dependentFields(){return new Set(this.fields.filter(X))}producedFields(){return new Set(this.as)}hash(){return`Geopoint ${this.projection} ${be(this.fields)} ${be(this.as)}`}assemble(){return{type:"geopoint",projection:this.projection,fields:this.fields,as:this.as}}}class Ks extends De{clone(){return new Ks(null,oe(this.transform))}constructor(t,n){super(t),this.transform=n}dependentFields(){return new Set([this.transform.impute,this.transform.key,...this.transform.groupby??[]])}producedFields(){return new Set([this.transform.impute])}processSequence(t){const{start:n=0,stop:r,step:i}=t;return{signal:`sequence(${[n,r,...i?[i]:[]].join(",")})`}}static makeFromTransform(t,n){return new Ks(t,n)}static makeFromEncoding(t,n){const r=n.encoding,i=r.x,a=r.y;if(U(i)&&U(a)){const s=i.impute?i:a.impute?a:void 0;if(s===void 0)return;const o=i.impute?a:a.impute?i:void 0,{method:u,value:c,frame:l,keyvals:f}=s.impute,d=CT(n.mark,r);return new Ks(t,{impute:s.field,key:o.field,...u?{method:u}:{},...c!==void 0?{value:c}:{},...l?{frame:l}:{},...f!==void 0?{keyvals:f}:{},...d.length?{groupby:d}:{}})}return null}hash(){return`Impute ${be(this.transform)}`}assemble(){const{impute:t,key:n,keyvals:r,method:i,groupby:a,value:s,frame:o=[null,null]}=this.transform,u={type:"impute",field:t,key:n,...r?{keyvals:uoe(r)?this.processSequence(r):r}:{},method:"value",...a?{groupby:a}:{},value:!i||i==="value"?s:null};if(i&&i!=="value"){const c={type:"window",as:[`imputed_${t}_value`],ops:[i],fields:[t],frame:o,ignorePeers:!1,...a?{groupby:a}:{}},l={type:"formula",expr:`datum.${t} === null ? datum.imputed_${t}_value : datum.${t}`,as:t};return[u,c,l]}else return[u]}}class Vp extends De{clone(){return new Vp(null,oe(this.transform))}constructor(t,n){super(t),this.transform=n,this.transform=oe(n);const r=this.transform.as??[void 0,void 0];this.transform.as=[r[0]??n.on,r[1]??n.loess]}dependentFields(){return new Set([this.transform.loess,this.transform.on,...this.transform.groupby??[]])}producedFields(){return new Set(this.transform.as)}hash(){return`LoessTransform ${be(this.transform)}`}assemble(){const{loess:t,on:n,...r}=this.transform;return{type:"loess",x:n,y:t,...r}}}class gf extends De{clone(){return new gf(null,oe(this.transform),this.secondary)}constructor(t,n,r){super(t),this.transform=n,this.secondary=r}static make(t,n,r,i){const a=n.component.data.sources,{from:s}=r;let o=null;if(coe(s)){let u=pD(s.data,a);u||(u=new vo(s.data),a.push(u));const c=n.getName(`lookup_${i}`);o=new an(u,c,ze.Lookup,n.component.data.outputNodeRefCounts),n.component.data.outputNodes[c]=o}else if(loe(s)){const u=s.param;r={as:u,...r};let c;try{c=n.getSelectionComponent(We(u),u)}catch{throw new Error(Ire(u))}if(o=c.materialized,!o)throw new Error(zre(u))}return new gf(t,r,o.getSource())}dependentFields(){return new Set([this.transform.lookup])}producedFields(){return new Set(this.transform.as?Y(this.transform.as):this.transform.from.fields)}hash(){return`Lookup ${be({transform:this.transform,secondary:this.secondary})}`}assemble(){let t;if(this.transform.from.fields)t={values:this.transform.from.fields,...this.transform.as?{as:Y(this.transform.as)}:{}};else{let n=this.transform.as;X(n)||(j(Yre),n="_lookup"),t={as:[n]}}return{type:"lookup",from:this.secondary,key:this.transform.from.key,fields:[this.transform.lookup],...t,...this.transform.default?{default:this.transform.default}:{}}}}class Kp extends De{clone(){return new Kp(null,oe(this.transform))}constructor(t,n){super(t),this.transform=n,this.transform=oe(n);const r=this.transform.as??[void 0,void 0];this.transform.as=[r[0]??"prob",r[1]??"value"]}dependentFields(){return new Set([this.transform.quantile,...this.transform.groupby??[]])}producedFields(){return new Set(this.transform.as)}hash(){return`QuantileTransform ${be(this.transform)}`}assemble(){const{quantile:t,...n}=this.transform;return{type:"quantile",field:t,...n}}}class Jp extends De{clone(){return new Jp(null,oe(this.transform))}constructor(t,n){super(t),this.transform=n,this.transform=oe(n);const r=this.transform.as??[void 0,void 0];this.transform.as=[r[0]??n.on,r[1]??n.regression]}dependentFields(){return new Set([this.transform.regression,this.transform.on,...this.transform.groupby??[]])}producedFields(){return new Set(this.transform.as)}hash(){return`RegressionTransform ${be(this.transform)}`}assemble(){const{regression:t,on:n,...r}=this.transform;return{type:"regression",x:n,y:t,...r}}}class Qp extends De{clone(){return new Qp(null,oe(this.transform))}constructor(t,n){super(t),this.transform=n}addDimensions(t){this.transform.groupby=Kr((this.transform.groupby??[]).concat(t),n=>n)}producedFields(){}dependentFields(){return new Set([this.transform.pivot,this.transform.value,...this.transform.groupby??[]])}hash(){return`PivotTransform ${be(this.transform)}`}assemble(){const{pivot:t,value:n,groupby:r,limit:i,op:a}=this.transform;return{type:"pivot",field:t,value:n,...i!==void 0?{limit:i}:{},...a!==void 0?{op:a}:{},...r!==void 0?{groupby:r}:{}}}}class Zp extends De{clone(){return new Zp(null,oe(this.transform))}constructor(t,n){super(t),this.transform=n}dependentFields(){return new Set}producedFields(){return new Set}hash(){return`SampleTransform ${be(this.transform)}`}assemble(){return{type:"sample",size:this.transform.sample}}}function hD(e){let t=0;function n(r,i){if(r instanceof vo&&!r.isGenerator&&!Xu(r.data)&&(e.push(i),i={name:null,source:i.name,transform:[]}),r instanceof zt&&(r.parent instanceof vo&&!i.source?(i.format={...i.format??{},parse:r.assembleFormatParse()},i.transform.push(...r.assembleTransforms(!0))):i.transform.push(...r.assembleTransforms())),r instanceof xc){i.name||(i.name=`data_${t++}`),!i.source||i.transform.length>0?(e.push(i),r.data=i.name):r.data=i.source,e.push(...r.assemble());return}switch((r instanceof rd||r instanceof id||r instanceof df||r instanceof vc||r instanceof Ku||r instanceof hf||r instanceof Sr||r instanceof gf||r instanceof _c||r instanceof Po||r instanceof Xp||r instanceof Yp||r instanceof Hp||r instanceof Vp||r instanceof Kp||r instanceof Jp||r instanceof Qa||r instanceof Zp||r instanceof Qp||r instanceof Gp)&&i.transform.push(r.assemble()),(r instanceof ni||r instanceof ti||r instanceof Ks||r instanceof Xi||r instanceof bu)&&i.transform.push(...r.assemble()),r instanceof an&&(i.source&&i.transform.length===0?r.setSource(i.source):r.parent instanceof an?r.setSource(i.name):(i.name||(i.name=`data_${t++}`),r.setSource(i.name),r.numChildren()===1&&(e.push(i),i={name:null,source:i.name,transform:[]}))),r.numChildren()){case 0:r instanceof an&&(!i.source||i.transform.length>0)&&e.push(i);break;case 1:n(r.children[0],i);break;default:{i.name||(i.name=`data_${t++}`);let a=i.name;!i.source||i.transform.length>0?e.push(i):a=i.source;for(const s of r.children)n(s,{name:null,source:a,transform:[]});break}}}return n}function _le(e){const t=[],n=hD(t);for(const r of e.children)n(r,{source:e.name,name:null,transform:[]});return t}function wle(e,t){const n=[],r=hD(n);let i=0;for(const s of e.sources){s.hasName()||(s.dataName=`source_${i++}`);const o=s.assemble();r(s,o)}for(const s of n)s.transform.length===0&&delete s.transform;let a=0;for(const[s,o]of n.entries())(o.transform??[]).length===0&&!o.source&&n.splice(a++,0,n.splice(s,1)[0]);for(const s of n)for(const o of s.transform??[])o.type==="lookup"&&(o.from=e.outputNodes[o.from].getSource());for(const s of n)s.name in t&&(s.values=t[s.name]);return n}function Ele(e){return e==="top"||e==="left"||Q(e)?"header":"footer"}function Sle(e){for(const t of Vn)$le(e,t);c_(e,"x"),c_(e,"y")}function $le(e,t){var s;const{facet:n,config:r,child:i,component:a}=e;if(e.channelHasField(t)){const o=n[t],u=Qu("title",null,r,t);let c=pu(o,r,{allowDisabling:!0,includeDefault:u===void 0||!!u});i.component.layoutHeaders[t].title&&(c=P(c)?c.join(", "):c,c+=` / ${i.component.layoutHeaders[t].title}`,i.component.layoutHeaders[t].title=null);const l=Qu("labelOrient",o.header,r,t),f=o.header!==null?Ze((s=o.header)==null?void 0:s.labels,r.header.labels,!0):!1,d=ye(["bottom","right"],l)?"footer":"header";a.layoutHeaders[t]={title:o.header!==null?c:null,facetFieldDef:o,[d]:t==="facet"?[]:[gD(e,t,f)]}}}function gD(e,t,n){const r=t==="row"?"height":"width";return{labels:n,sizeSignal:e.child.component.layoutSize.get(r)?e.child.getSizeSignalRef(r):void 0,axes:[]}}function c_(e,t){const{child:n}=e;if(n.component.axes[t]){const{layoutHeaders:r,resolve:i}=e.component;if(i.axis[t]=V6(i,t),i.axis[t]==="shared"){const a=t==="x"?"column":"row",s=r[a];for(const o of n.component.axes[t]){const u=Ele(o.get("orient"));s[u]??(s[u]=[gD(e,a,!1)]);const c=bl(o,"main",e.config,{header:!0});c&&s[u][0].axes.push(c),o.mainExtracted=!0}}}}function Ale(e){r8(e),Y0(e,"width"),Y0(e,"height")}function kle(e){r8(e);const t=e.layout.columns===1?"width":"childWidth",n=e.layout.columns===void 0?"height":"childHeight";Y0(e,t),Y0(e,n)}function r8(e){for(const t of e.children)t.parseLayoutSize()}function Y0(e,t){const n=zN(t),r=yp(n),i=e.component.resolve,a=e.component.layoutSize;let s;for(const o of e.children){const u=o.component.layoutSize.getWithExplicit(n),c=i.scale[r]??UN(r,e);if(c==="independent"&&u.value==="step"){s=void 0;break}if(s){if(c==="independent"&&s.value!==u.value){s=void 0;break}s=Va(s,u,n,"")}else s=u}if(s){for(const o of e.children)e.renameSignal(o.getName(n),e.getName(t)),o.component.layoutSize.set(n,"merged",!1);a.setWithExplicit(t,s)}else a.setWithExplicit(t,{explicit:!1,value:void 0})}function Cle(e){const{size:t,component:n}=e;for(const r of wi){const i=Sn(r);if(t[i]){const a=t[i];n.layoutSize.set(i,fi(a)?"step":a,!0)}else{const a=Fle(e,i);n.layoutSize.set(i,a,!1)}}}function Fle(e,t){const n=t==="width"?"x":"y",r=e.config,i=e.getScaleComponent(n);if(i){const a=i.get("type"),s=i.get("range");if(vt(a)){const o=q0(r.view,t);return ds(s)||fi(o)?"step":o}else return ky(r.view,t)}else{if(e.hasProjection||e.mark==="arc")return ky(r.view,t);{const a=q0(r.view,t);return fi(a)?a.step:a}}}function Uy(e,t,n){return G(t,{suffix:`by_${G(e)}`,...n??{}})}class Dl extends dD{constructor(t,n,r,i){super(t,"facet",n,r,i,t.resolve),this.child=u8(t.spec,this,this.getName("child"),void 0,i),this.children=[this.child],this.facet=this.initFacet(t.facet)}initFacet(t){if(!Qf(t))return{facet:this.initFacetFieldDef(t,"facet")};const n=B(t),r={};for(const i of n){if(![Hi,Gi].includes(i)){j(_p(i,"facet"));break}const a=t[i];if(a.field===void 0){j(wy(a,i));break}r[i]=this.initFacetFieldDef(a,i)}return r}initFacetFieldDef(t,n){const r=A6(t,n);return r.header?r.header=gn(r.header):r.header===null&&(r.header=null),r}channelHasField(t){return!!this.facet[t]}fieldDef(t){return this.facet[t]}parseData(){this.component.data=e1(this),this.child.parseData()}parseLayoutSize(){r8(this)}parseSelections(){this.child.parseSelections(),this.component.selection=this.child.component.selection}parseMarkGroup(){this.child.parseMarkGroup()}parseAxesAndHeaders(){this.child.parseAxesAndHeaders(),Sle(this)}assembleSelectionTopLevelSignals(t){return this.child.assembleSelectionTopLevelSignals(t)}assembleSignals(){return this.child.assembleSignals(),[]}assembleSelectionData(t){return this.child.assembleSelectionData(t)}getHeaderLayoutMixins(){const t={};for(const n of Vn)for(const r of Y6){const i=this.component.layoutHeaders[n],a=i[r],{facetFieldDef:s}=i;if(s){const o=Qu("titleOrient",s.header,this.config,n);if(["right","bottom"].includes(o)){const u=jp(n,o);t.titleAnchor??(t.titleAnchor={}),t.titleAnchor[u]="end"}}if(a!=null&&a[0]){const o=n==="row"?"height":"width",u=r==="header"?"headerBand":"footerBand";n!=="facet"&&!this.child.component.layoutSize.get(o)&&(t[u]??(t[u]={}),t[u][n]=.5),i.title&&(t.offset??(t.offset={}),t.offset[n==="row"?"rowTitle":"columnTitle"]=10)}}return t}assembleDefaultLayout(){const{column:t,row:n}=this.facet,r=t?this.columnDistinctSignal():n?1:void 0;let i="all";return(!n&&this.component.resolve.scale.x==="independent"||!t&&this.component.resolve.scale.y==="independent")&&(i="none"),{...this.getHeaderLayoutMixins(),...r?{columns:r}:{},bounds:"full",align:i}}assembleLayoutSignals(){return this.child.assembleLayoutSignals()}columnDistinctSignal(){if(!(this.parent&&this.parent instanceof Dl))return{signal:`length(data('${this.getName("column_domain")}'))`}}assembleGroupStyle(){}assembleGroup(t){return this.parent&&this.parent instanceof Dl?{...this.channelHasField("column")?{encode:{update:{columns:{field:G(this.facet.column,{prefix:"distinct"})}}}}:{},...super.assembleGroup(t)}:super.assembleGroup(t)}getCardinalityAggregateForChild(){const t=[],n=[],r=[];if(this.child instanceof Dl){if(this.child.channelHasField("column")){const i=G(this.child.facet.column);t.push(i),n.push("distinct"),r.push(`distinct_${i}`)}}else for(const i of wi){const a=this.child.component.scales[i];if(a&&!a.merged){const s=a.get("type"),o=a.get("range");if(vt(s)&&ds(o)){const u=Wp(this.child,i),c=e8(u);c?(t.push(c),n.push("distinct"),r.push(`distinct_${c}`)):j(t6(i))}}}return{fields:t,ops:n,as:r}}assembleFacet(){const{name:t,data:n}=this.component.data.facetRoot,{row:r,column:i}=this.facet,{fields:a,ops:s,as:o}=this.getCardinalityAggregateForChild(),u=[];for(const l of Vn){const f=this.facet[l];if(f){u.push(G(f));const{bin:d,sort:h}=f;if(Be(d)&&u.push(G(f,{binSuffix:"end"})),ei(h)){const{field:g,op:p=kp}=h,m=Uy(f,h);r&&i?(a.push(m),s.push("max"),o.push(m)):(a.push(g),s.push(p),o.push(m))}else if(P(h)){const g=Ju(f,l);a.push(g),s.push("max"),o.push(g)}}}const c=!!r&&!!i;return{name:t,data:n,groupby:u,...c||a.length>0?{aggregate:{...c?{cross:c}:{},...a.length?{fields:a,ops:s,as:o}:{}}}:{}}}facetSortFields(t){const{facet:n}=this,r=n[t];return r?ei(r.sort)?[Uy(r,r.sort,{expr:"datum"})]:P(r.sort)?[Ju(r,t,{expr:"datum"})]:[G(r,{expr:"datum"})]:[]}facetSortOrder(t){const{facet:n}=this,r=n[t];if(r){const{sort:i}=r;return[(ei(i)?i.order:!P(i)&&i)||"ascending"]}return[]}assembleLabelTitle(){var i;const{facet:t,config:n}=this;if(t.facet)return Ry(t.facet,"facet",n);const r={row:["top","bottom"],column:["left","right"]};for(const a of G6)if(t[a]){const s=Qu("labelOrient",(i=t[a])==null?void 0:i.header,n,a);if(r[a].includes(s))return Ry(t[a],a,n)}}assembleMarks(){const{child:t}=this,n=this.component.data.facetRoot,r=_le(n),i=t.assembleGroupEncodeEntry(!1),a=this.assembleLabelTitle()||t.assembleTitle(),s=t.assembleGroupStyle();return[{name:this.getName("cell"),type:"group",...a?{title:a}:{},...s?{style:s}:{},from:{facet:this.assembleFacet()},sort:{field:Vn.map(u=>this.facetSortFields(u)).flat(),order:Vn.map(u=>this.facetSortOrder(u)).flat()},...r.length>0?{data:r}:{},...i?{encode:{update:i}}:{},...t.assembleGroup(Boe(this,[]))}]}getMapping(){return this.facet}}function Mle(e,t){const{row:n,column:r}=t;if(n&&r){let i=null;for(const a of[n,r])if(ei(a.sort)){const{field:s,op:o=kp}=a.sort;e=i=new Po(e,{joinaggregate:[{op:o,field:s,as:Uy(a,a.sort,{forAs:!0})}],groupby:[G(a)]})}return i}return null}function pD(e,t){var n,r,i,a;for(const s of t){const o=s.data;if(e.name&&s.hasName()&&e.name!==s.dataName)continue;const u=(n=e.format)==null?void 0:n.mesh,c=(r=o.format)==null?void 0:r.feature;if(u&&c)continue;const l=(i=e.format)==null?void 0:i.feature;if((l||c)&&l!==c)continue;const f=(a=o.format)==null?void 0:a.mesh;if(!((u||f)&&u!==f)){if(ff(e)&&ff(o)){if(Dn(e.values,o.values))return s}else if(Xu(e)&&Xu(o)){if(e.url===o.url)return s}else if(iN(e)&&e.name===s.dataName)return s}}return null}function Tle(e,t){if(e.data||!e.parent){if(e.data===null){const r=new vo({values:[]});return t.push(r),r}const n=pD(e.data,t);if(n)return Da(e.data)||(n.data.format=eM({},e.data.format,n.data.format)),!n.hasName()&&e.data.name&&(n.dataName=e.data.name),n;{const r=new vo(e.data);return t.push(r),r}}else return e.parent.component.data.facetRoot?e.parent.component.data.facetRoot:e.parent.component.data.main}function Nle(e,t,n){let r=0;for(const i of t.transforms){let a,s;if(xoe(i))s=e=new Ku(e,i),a="derived";else if(z6(i)){const o=Ece(i);s=e=zt.makeWithAncestors(e,{},o,n)??e,e=new vc(e,t,i.filter)}else if(ZT(i))s=e=ni.makeFromTransform(e,i,t),a="number";else if(woe(i))a="date",n.getWithExplicit(i.field).value===void 0&&(e=new zt(e,{[i.field]:a}),n.set(i.field,a,!1)),s=e=ti.makeFromTransform(e,i);else if(Eoe(i))s=e=Sr.makeFromTransform(e,i),a="number",H6(t)&&(e=new Qa(e));else if(QT(i))s=e=gf.make(e,t,i,r++),a="derived";else if(boe(i))s=e=new _c(e,i),a="number";else if(yoe(i))s=e=new Po(e,i),a="number";else if(Soe(i))s=e=Xi.makeFromTransform(e,i),a="derived";else if($oe(i))s=e=new Xp(e,i),a="derived";else if(Aoe(i))s=e=new Gp(e,i),a="derived";else if(voe(i))s=e=new Yp(e,i),a="derived";else if(foe(i))s=e=new Qp(e,i),a="derived";else if(moe(i))e=new Zp(e,i);else if(_oe(i))s=e=Ks.makeFromTransform(e,i),a="derived";else if(doe(i))s=e=new Hp(e,i),a="derived";else if(hoe(i))s=e=new Kp(e,i),a="derived";else if(goe(i))s=e=new Jp(e,i),a="derived";else if(poe(i))s=e=new Vp(e,i),a="derived";else{j(Gre(i));continue}if(s&&a!==void 0)for(const o of s.producedFields()??[])n.set(o,a,!1)}return e}function e1(e){var p;let t=Tle(e,e.component.data.sources);const{outputNodes:n,outputNodeRefCounts:r}=e.component.data,i=e.data,s=!(i&&(Da(i)||Xu(i)||ff(i)))&&e.parent?e.parent.component.data.ancestorParse.clone():new Ioe;Da(i)?(aN(i)?t=new id(t,i.sequence):B6(i)&&(t=new rd(t,i.graticule)),s.parseNothing=!0):((p=i==null?void 0:i.format)==null?void 0:p.parse)===null&&(s.parseNothing=!0),t=zt.makeExplicit(t,e,s)??t,t=new Qa(t);const o=e.parent&&wc(e.parent);(Ve(e)||$r(e))&&o&&(t=ni.makeFromEncoding(t,e)??t),e.transforms.length>0&&(t=Nle(t,e,s));const u=$ce(e),c=Sce(e);t=zt.makeWithAncestors(t,{},{...u,...c},s)??t,Ve(e)&&(t=bu.parseAll(t,e),t=hf.parseAll(t,e)),(Ve(e)||$r(e))&&(o||(t=ni.makeFromEncoding(t,e)??t),t=ti.makeFromEncoding(t,e)??t,t=Ku.parseAllForSortIndex(t,e));const l=e.getDataName(ze.Raw),f=new an(t,l,ze.Raw,r);if(n[l]=f,t=f,Ve(e)){const m=Sr.makeFromEncoding(t,e);m&&(t=m,H6(e)&&(t=new Qa(t))),t=Ks.makeFromEncoding(t,e)??t,t=Xi.makeFromEncoding(t,e)??t}Ve(e)&&(t=df.make(t,e)??t);const d=e.getDataName(ze.Main),h=new an(t,d,ze.Main,r);n[d]=h,t=h,Ve(e)&&xue(e,h);let g=null;if($r(e)){const m=e.getName("facet");t=Mle(t,e.facet)??t,g=new xc(t,e,m,h.getSource()),n[m]=g}return{...e.component.data,outputNodes:n,outputNodeRefCounts:r,raw:f,main:h,facetRoot:g,ancestorParse:s}}class Dle extends n8{constructor(t,n,r,i){var a,s,o,u;super(t,"concat",n,r,i,t.resolve),(((s=(a=t.resolve)==null?void 0:a.axis)==null?void 0:s.x)==="shared"||((u=(o=t.resolve)==null?void 0:o.axis)==null?void 0:u.y)==="shared")&&j(qre),this.children=this.getChildren(t).map((c,l)=>u8(c,this,this.getName(`concat_${l}`),void 0,i))}parseData(){this.component.data=e1(this);for(const t of this.children)t.parseData()}parseSelections(){this.component.selection={};for(const t of this.children){t.parseSelections();for(const n of B(t.component.selection))this.component.selection[n]=t.component.selection[n]}}parseMarkGroup(){for(const t of this.children)t.parseMarkGroup()}parseAxesAndHeaders(){for(const t of this.children)t.parseAxesAndHeaders()}getChildren(t){return Rp(t)?t.vconcat:P6(t)?t.hconcat:t.concat}parseLayoutSize(){kle(this)}parseAxisGroup(){return null}assembleSelectionTopLevelSignals(t){return this.children.reduce((n,r)=>r.assembleSelectionTopLevelSignals(n),t)}assembleSignals(){return this.children.forEach(t=>t.assembleSignals()),[]}assembleLayoutSignals(){const t=X6(this);for(const n of this.children)t.push(...n.assembleLayoutSignals());return t}assembleSelectionData(t){return this.children.reduce((n,r)=>r.assembleSelectionData(n),t)}assembleMarks(){return this.children.map(t=>{const n=t.assembleTitle(),r=t.assembleGroupStyle(),i=t.assembleGroupEncodeEntry(!1);return{type:"group",name:t.getName("group"),...n?{title:n}:{},...r?{style:r}:{},...i?{encode:{update:i}}:{},...t.assembleGroup()}})}assembleGroupStyle(){}assembleDefaultLayout(){const t=this.layout.columns;return{...t!=null?{columns:t}:{},bounds:"full",align:"each"}}}function Ole(e){return e===!1||e===null}const Rle={disable:1,gridScale:1,scale:1,...ET,labelExpr:1,encode:1},mD=B(Rle);class i8 extends ua{constructor(t={},n={},r=!1){super(),this.explicit=t,this.implicit=n,this.mainExtracted=r}clone(){return new i8(oe(this.explicit),oe(this.implicit),this.mainExtracted)}hasAxisPart(t){return t==="axis"?!0:t==="grid"||t==="title"?!!this.get(t):!Ole(this.get(t))}hasOrientSignalRef(){return Q(this.explicit.orient)}}function Lle(e,t,n){const{encoding:r,config:i}=e,a=st(r[t])??st(r[_i(t)]),s=e.axis(t)||{},{format:o,formatType:u}=s;if(mo(u))return{text:wr({fieldOrDatumDef:a,field:"datum.value",format:o,formatType:u,config:i}),...n};if(o===void 0&&u===void 0&&i.customFormatTypes){if(Hu(a)==="quantitative"){if(Gu(a)&&a.stack==="normalize"&&i.normalizedNumberFormatType)return{text:wr({fieldOrDatumDef:a,field:"datum.value",format:i.normalizedNumberFormat,formatType:i.normalizedNumberFormatType,config:i}),...n};if(i.numberFormatType)return{text:wr({fieldOrDatumDef:a,field:"datum.value",format:i.numberFormat,formatType:i.numberFormatType,config:i}),...n}}if(Hu(a)==="temporal"&&i.timeFormatType&&U(a)&&!a.timeUnit)return{text:wr({fieldOrDatumDef:a,field:"datum.value",format:i.timeFormat,formatType:i.timeFormatType,config:i}),...n}}return n}function Ple(e){return wi.reduce((t,n)=>(e.component.scales[n]&&(t[n]=[Wle(n,e)]),t),{})}const Ile={bottom:"top",top:"bottom",left:"right",right:"left"};function zle(e){const{axes:t,resolve:n}=e.component,r={top:0,bottom:0,right:0,left:0};for(const i of e.children){i.parseAxesAndHeaders();for(const a of B(i.component.axes))n.axis[a]=V6(e.component.resolve,a),n.axis[a]==="shared"&&(t[a]=Ble(t[a],i.component.axes[a]),t[a]||(n.axis[a]="independent",delete t[a]))}for(const i of wi){for(const a of e.children)if(a.component.axes[i]){if(n.axis[i]==="independent"){t[i]=(t[i]??[]).concat(a.component.axes[i]);for(const s of a.component.axes[i]){const{value:o,explicit:u}=s.getWithExplicit("orient");if(!Q(o)){if(r[o]>0&&!u){const c=Ile[o];r[o]>r[c]&&s.set("orient",c,!1)}r[o]++}}}delete a.component.axes[i]}if(n.axis[i]==="independent"&&t[i]&&t[i].length>1)for(const[a,s]of(t[i]||[]).entries())a>0&&s.get("grid")&&!s.explicit.grid&&(s.implicit.grid=!1)}}function Ble(e,t){if(e){if(e.length!==t.length)return;const n=e.length;for(let r=0;rn.clone());return e}function Ule(e,t){for(const n of mD){const r=Va(e.getWithExplicit(n),t.getWithExplicit(n),n,"axis",(i,a)=>{switch(n){case"title":return CM(i,a);case"gridScale":return{explicit:i.explicit,value:Ze(i.value,a.value)}}return Pp(i,a,n,"axis")});e.setWithExplicit(n,r)}return e}function jle(e,t,n,r,i){if(t==="disable")return n!==void 0;switch(n=n||{},t){case"titleAngle":case"labelAngle":return e===(Q(n.labelAngle)?n.labelAngle:cf(n.labelAngle));case"values":return!!n.values;case"encode":return!!n.encoding||!!n.labelAngle;case"title":if(e===ON(r,i))return!0}return e===n[t]}const qle=new Set(["grid","translate","format","formatType","orient","labelExpr","tickCount","position","tickMinStep"]);function Wle(e,t){var b,y;let n=t.axis(e);const r=new i8,i=st(t.encoding[e]),{mark:a,config:s}=t,o=(n==null?void 0:n.orient)||((b=s[e==="x"?"axisX":"axisY"])==null?void 0:b.orient)||((y=s.axis)==null?void 0:y.orient)||Mue(e),u=t.getScaleComponent(e).get("type"),c=Eue(e,u,o,t.config),l=n!==void 0?!n:Dy("disable",s.style,n==null?void 0:n.style,c).configValue;if(r.set("disable",l,n!==void 0),l)return r;n=n||{};const f=kue(i,n,e,s.style,c),d=uT(n.formatType,i,u),h=oT(i,i.type,n.format,n.formatType,s,!0),g={fieldOrDatumDef:i,axis:n,channel:e,model:t,scaleType:u,orient:o,labelAngle:f,format:h,formatType:d,mark:a,config:s};for(const v of mD){const x=v in Xx?Xx[v](g):_x(v)?n[v]:void 0,_=x!==void 0,E=jle(x,v,n,t,e);if(_&&E)r.set(v,x,E);else{const{configValue:w=void 0,configFrom:S=void 0}=_x(v)&&v!=="values"?Dy(v,s.style,n.style,c):{},$=w!==void 0;_&&!$?r.set(v,x,E):(S!=="vgAxisConfig"||qle.has(v)&&$||td(w)||Q(w))&&r.set(v,w,!1)}}const p=n.encoding??{},m=wT.reduce((v,x)=>{if(!r.hasAxisPart(x))return v;const _=BN(p[x]??{},t),E=x==="labels"?Lle(t,e,_):_;return E!==void 0&&!Oe(E)&&(v[x]={update:E}),v},{});return Oe(m)||r.set("encode",m,!!n.encoding||n.labelAngle!==void 0),r}function Hle({encoding:e,size:t}){for(const n of wi){const r=Sn(n);fi(t[r])&&ka(e[n])&&(delete t[r],j(DM(r)))}return t}const Gle={vgMark:"arc",encodeEntry:e=>({...or(e,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"}),...It("x",e,{defaultPos:"mid"}),...It("y",e,{defaultPos:"mid"}),...Ka(e,"radius"),...Ka(e,"theta")})},Yle={vgMark:"area",encodeEntry:e=>({...or(e,{align:"ignore",baseline:"ignore",color:"include",orient:"include",size:"ignore",theta:"ignore"}),...W0("x",e,{defaultPos:"zeroOrMin",defaultPos2:"zeroOrMin",range:e.markDef.orient==="horizontal"}),...W0("y",e,{defaultPos:"zeroOrMin",defaultPos2:"zeroOrMin",range:e.markDef.orient==="vertical"}),...W6(e)})},Xle={vgMark:"rect",encodeEntry:e=>({...or(e,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"}),...Ka(e,"x"),...Ka(e,"y")})},Vle={vgMark:"shape",encodeEntry:e=>({...or(e,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"})}),postEncodingTransform:e=>{const{encoding:t}=e,n=t.shape;return[{type:"geoshape",projection:e.projectionName(),...n&&U(n)&&n.type===bc?{field:G(n,{expr:"datum"})}:{}}]}},Kle={vgMark:"image",encodeEntry:e=>({...or(e,{align:"ignore",baseline:"ignore",color:"ignore",orient:"ignore",size:"ignore",theta:"ignore"}),...Ka(e,"x"),...Ka(e,"y"),...j6(e,"url")})},Jle={vgMark:"line",encodeEntry:e=>({...or(e,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"}),...It("x",e,{defaultPos:"mid"}),...It("y",e,{defaultPos:"mid"}),...dt("size",e,{vgChannel:"strokeWidth"}),...W6(e)})},Qle={vgMark:"trail",encodeEntry:e=>({...or(e,{align:"ignore",baseline:"ignore",color:"include",size:"include",orient:"ignore",theta:"ignore"}),...It("x",e,{defaultPos:"mid"}),...It("y",e,{defaultPos:"mid"}),...dt("size",e),...W6(e)})};function a8(e,t){const{config:n}=e;return{...or(e,{align:"ignore",baseline:"ignore",color:"include",size:"include",orient:"ignore",theta:"ignore"}),...It("x",e,{defaultPos:"mid"}),...It("y",e,{defaultPos:"mid"}),...dt("size",e),...dt("angle",e),...Zle(e,n,t)}}function Zle(e,t,n){return n?{shape:{value:n}}:dt("shape",e)}const efe={vgMark:"symbol",encodeEntry:e=>a8(e)},tfe={vgMark:"symbol",encodeEntry:e=>a8(e,"circle")},nfe={vgMark:"symbol",encodeEntry:e=>a8(e,"square")},rfe={vgMark:"rect",encodeEntry:e=>({...or(e,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"}),...Ka(e,"x"),...Ka(e,"y")})},ife={vgMark:"rule",encodeEntry:e=>{const{markDef:t}=e,n=t.orient;return!e.encoding.x&&!e.encoding.y&&!e.encoding.latitude&&!e.encoding.longitude?{}:{...or(e,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"}),...W0("x",e,{defaultPos:n==="horizontal"?"zeroOrMax":"mid",defaultPos2:"zeroOrMin",range:n!=="vertical"}),...W0("y",e,{defaultPos:n==="vertical"?"zeroOrMax":"mid",defaultPos2:"zeroOrMin",range:n!=="horizontal"}),...dt("size",e,{vgChannel:"strokeWidth"})}}},afe={vgMark:"text",encodeEntry:e=>{const{config:t,encoding:n}=e;return{...or(e,{align:"include",baseline:"include",color:"include",size:"ignore",orient:"ignore",theta:"include"}),...It("x",e,{defaultPos:"mid"}),...It("y",e,{defaultPos:"mid"}),...j6(e),...dt("size",e,{vgChannel:"fontSize"}),...dt("angle",e),...Wx("align",sfe(e.markDef,n,t)),...Wx("baseline",ofe(e.markDef,n,t)),...It("radius",e,{defaultPos:null}),...It("theta",e,{defaultPos:null})}}};function sfe(e,t,n){if(Te("align",e,n)===void 0)return"center"}function ofe(e,t,n){if(Te("baseline",e,n)===void 0)return"middle"}const ufe={vgMark:"rect",encodeEntry:e=>{const{config:t,markDef:n}=e,r=n.orient,i=r==="horizontal"?"width":"height",a=r==="horizontal"?"height":"width";return{...or(e,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"}),...It("x",e,{defaultPos:"mid",vgChannel:"xc"}),...It("y",e,{defaultPos:"mid",vgChannel:"yc"}),...dt("size",e,{defaultValue:cfe(e),vgChannel:i}),[a]:je(Te("thickness",n,t))}}};function cfe(e){const{config:t,markDef:n}=e,{orient:r}=n,i=r==="horizontal"?"width":"height",a=e.getScaleComponent(r==="horizontal"?"x":"y"),s=Te("size",n,t,{vgChannel:i})??t.tick.bandSize;if(s!==void 0)return s;{const o=a?a.get("range"):void 0;return o&&ds(o)&&we(o.step)?o.step*3/4:j0(t.view,i)*3/4}}const Id={arc:Gle,area:Yle,bar:Xle,circle:tfe,geoshape:Vle,image:Kle,line:Jle,point:efe,rect:rfe,rule:ife,square:nfe,text:afe,tick:ufe,trail:Qle};function lfe(e){if(ye([$p,Ep,yae],e.mark)){const t=CT(e.mark,e.encoding);if(t.length>0)return ffe(e,t)}else if(e.mark===Sp){const t=_y.some(n=>Te(n,e.markDef,e.config));if(e.stack&&!e.fieldDef("size")&&t)return dfe(e)}return s8(e)}const l_="faceted_path_";function ffe(e,t){return[{name:e.getName("pathgroup"),type:"group",from:{facet:{name:l_+e.requestDataName(ze.Main),data:e.requestDataName(ze.Main),groupby:t}},encode:{update:{width:{field:{group:"width"}},height:{field:{group:"height"}}}},marks:s8(e,{fromPrefix:l_})}]}const f_="stack_group_";function dfe(e){var c;const[t]=s8(e,{fromPrefix:f_}),n=e.scaleName(e.stack.fieldChannel),r=(l={})=>e.vgField(e.stack.fieldChannel,l),i=(l,f)=>{const d=[r({prefix:"min",suffix:"start",expr:f}),r({prefix:"max",suffix:"start",expr:f}),r({prefix:"min",suffix:"end",expr:f}),r({prefix:"max",suffix:"end",expr:f})];return`${l}(${d.map(h=>`scale('${n}',${h})`).join(",")})`};let a,s;e.stack.fieldChannel==="x"?(a={...zu(t.encode.update,["y","yc","y2","height",..._y]),x:{signal:i("min","datum")},x2:{signal:i("max","datum")},clip:{value:!0}},s={x:{field:{group:"x"},mult:-1},height:{field:{group:"height"}}},t.encode.update={...bn(t.encode.update,["y","yc","y2"]),height:{field:{group:"height"}}}):(a={...zu(t.encode.update,["x","xc","x2","width"]),y:{signal:i("min","datum")},y2:{signal:i("max","datum")},clip:{value:!0}},s={y:{field:{group:"y"},mult:-1},width:{field:{group:"width"}}},t.encode.update={...bn(t.encode.update,["x","xc","x2"]),width:{field:{group:"width"}}});for(const l of _y){const f=Zi(l,e.markDef,e.config);t.encode.update[l]?(a[l]=t.encode.update[l],delete t.encode.update[l]):f&&(a[l]=je(f)),f&&(t.encode.update[l]={value:0})}const o=[];if(((c=e.stack.groupbyChannels)==null?void 0:c.length)>0)for(const l of e.stack.groupbyChannels){const f=e.fieldDef(l),d=G(f);d&&o.push(d),(f!=null&&f.bin||f!=null&&f.timeUnit)&&o.push(G(f,{binSuffix:"end"}))}return a=["stroke","strokeWidth","strokeJoin","strokeCap","strokeDash","strokeDashOffset","strokeMiterLimit","strokeOpacity"].reduce((l,f)=>{if(t.encode.update[f])return{...l,[f]:t.encode.update[f]};{const d=Zi(f,e.markDef,e.config);return d!==void 0?{...l,[f]:je(d)}:l}},a),a.stroke&&(a.strokeForeground={value:!0},a.strokeOffset={value:0}),[{type:"group",from:{facet:{data:e.requestDataName(ze.Main),name:f_+e.requestDataName(ze.Main),groupby:o,aggregate:{fields:[r({suffix:"start"}),r({suffix:"start"}),r({suffix:"end"}),r({suffix:"end"})],ops:["min","max","min","max"]}}},encode:{update:a},marks:[{type:"group",encode:{update:s},marks:[t]}]}]}function hfe(e){var o;const{encoding:t,stack:n,mark:r,markDef:i,config:a}=e,s=t.order;if(!(!P(s)&&Fr(s)&&vy(s.value)||!s&&vy(Te("order",i,a)))){if((P(s)||U(s))&&!n)return $M(s,{expr:"datum"});if(hs(r)){const u=i.orient==="horizontal"?"y":"x",c=t[u];if(U(c)){const l=c.sort;if(P(l))return{field:G(c,{prefix:u,suffix:"sort_index",expr:"datum"})};if(ei(l))return{field:G({aggregate:k6(e.encoding)?l.op:void 0,field:l.field},{expr:"datum"})};if(lT(l)){const f=e.fieldDef(l.encoding);return{field:G(f,{expr:"datum"}),order:l.order}}else return l===null?void 0:{field:G(c,{binSuffix:(o=e.stack)!=null&&o.impute?"mid":void 0,expr:"datum"})}}return}}}function s8(e,t={fromPrefix:""}){const{mark:n,markDef:r,encoding:i,config:a}=e,s=Ze(r.clip,gfe(e),pfe(e)),o=EM(r),u=i.key,c=hfe(e),l=mfe(e),f=Te("aria",r,a),d=Id[n].postEncodingTransform?Id[n].postEncodingTransform(e):null;return[{name:e.getName("marks"),type:Id[n].vgMark,...s?{clip:!0}:{},...o?{style:o}:{},...u?{key:u.field}:{},...c?{sort:c}:{},...l||{},...f===!1?{aria:f}:{},from:{data:t.fromPrefix+e.requestDataName(ze.Main)},encode:{update:Id[n].encodeEntry(e)},...d?{transform:d}:{}}]}function gfe(e){const t=e.getScaleComponent("x"),n=e.getScaleComponent("y");return t!=null&&t.get("selectionExtent")||n!=null&&n.get("selectionExtent")?!0:void 0}function pfe(e){const t=e.component.projection;return t&&!t.isFit?!0:void 0}function mfe(e){if(!e.component.selection)return null;const t=B(e.component.selection).length;let n=t,r=e.parent;for(;r&&n===0;)n=B(r.component.selection).length,r=r.parent;return n?{interactive:t>0||e.mark==="geoshape"||!!e.encoding.tooltip}:null}class bD extends dD{constructor(t,n,r,i={},a){super(t,"unit",n,r,a,void 0,Ex(t)?t.view:void 0),this.specifiedScales={},this.specifiedAxes={},this.specifiedLegends={},this.specifiedProjection={},this.selection=[],this.children=[];const s=ci(t.mark)?{...t.mark}:{type:t.mark},o=s.type;s.filled===void 0&&(s.filled=eoe(s,a,{graticule:t.data&&B6(t.data)}));const u=this.encoding=ise(t.encoding||{},o,s.filled,a);this.markDef=VT(s,u,a),this.size=Hle({encoding:u,size:Ex(t)?{...i,...t.width?{width:t.width}:{},...t.height?{height:t.height}:{}}:i}),this.stack=XT(this.markDef,u),this.specifiedScales=this.initScales(o,u),this.specifiedAxes=this.initAxes(u),this.specifiedLegends=this.initLegends(u),this.specifiedProjection=t.projection,this.selection=(t.params??[]).filter(c=>R6(c))}get hasProjection(){const{encoding:t}=this,n=this.mark===nT,r=t&&rre.some(i=>ue(t[i]));return n||r}scaleDomain(t){const n=this.specifiedScales[t];return n?n.domain:void 0}axis(t){return this.specifiedAxes[t]}legend(t){return this.specifiedLegends[t]}initScales(t,n){return vp.reduce((r,i)=>{const a=st(n[i]);return a&&(r[i]=this.initScale(a.scale??{})),r},{})}initScale(t){const{domain:n,range:r}=t,i=gn(t);return P(n)&&(i.domain=n.map(Mn)),P(r)&&(i.range=r.map(Mn)),i}initAxes(t){return wi.reduce((n,r)=>{const i=t[r];if(ue(i)||r===He&&ue(t.x2)||r===_t&&ue(t.y2)){const a=ue(i)?i.axis:void 0;n[r]=a&&this.initAxis({...a})}return n},{})}initAxis(t){const n=B(t),r={};for(const i of n){const a=t[i];r[i]=td(a)?wM(a):Mn(a)}return r}initLegends(t){return hre.reduce((n,r)=>{const i=st(t[r]);if(i&&pre(r)){const a=i.legend;n[r]=a&&gn(a)}return n},{})}parseData(){this.component.data=e1(this)}parseLayoutSize(){Cle(this)}parseSelections(){this.component.selection=vue(this,this.selection)}parseMarkGroup(){this.component.mark=lfe(this)}parseAxesAndHeaders(){this.component.axes=Ple(this)}assembleSelectionTopLevelSignals(t){return Uoe(this,t)}assembleSignals(){return[...TN(this),...zoe(this,[])]}assembleSelectionData(t){return joe(this,t)}assembleLayout(){return null}assembleLayoutSignals(){return X6(this)}assembleMarks(){let t=this.component.mark??[];return(!this.parent||!wc(this.parent))&&(t=uN(this,t)),t.map(this.correctDataNames)}assembleGroupStyle(){const{style:t}=this.view||{};return t!==void 0?t:this.encoding.x||this.encoding.y?"cell":"view"}getMapping(){return this.encoding}get mark(){return this.markDef.type}channelHasField(t){return Xs(this.encoding,t)}fieldDef(t){const n=this.encoding[t];return li(n)}typedFieldDef(t){const n=this.fieldDef(t);return un(n)?n:null}}class o8 extends n8{constructor(t,n,r,i,a){super(t,"layer",n,r,a,t.resolve,t.view);const s={...i,...t.width?{width:t.width}:{},...t.height?{height:t.height}:{}};this.children=t.layer.map((o,u)=>{if(Lp(o))return new o8(o,this,this.getName(`layer_${u}`),s,a);if(oa(o))return new bD(o,this,this.getName(`layer_${u}`),s,a);throw new Error(e6(o))})}parseData(){this.component.data=e1(this);for(const t of this.children)t.parseData()}parseLayoutSize(){Ale(this)}parseSelections(){this.component.selection={};for(const t of this.children){t.parseSelections();for(const n of B(t.component.selection))this.component.selection[n]=t.component.selection[n]}}parseMarkGroup(){for(const t of this.children)t.parseMarkGroup()}parseAxesAndHeaders(){zle(this)}assembleSelectionTopLevelSignals(t){return this.children.reduce((n,r)=>r.assembleSelectionTopLevelSignals(n),t)}assembleSignals(){return this.children.reduce((t,n)=>t.concat(n.assembleSignals()),TN(this))}assembleLayoutSignals(){return this.children.reduce((t,n)=>t.concat(n.assembleLayoutSignals()),X6(this))}assembleSelectionData(t){return this.children.reduce((n,r)=>r.assembleSelectionData(n),t)}assembleGroupStyle(){const t=new Set;for(const r of this.children)for(const i of Y(r.assembleGroupStyle()))t.add(i);const n=Array.from(t);return n.length>1?n:n.length===1?n[0]:void 0}assembleTitle(){let t=super.assembleTitle();if(t)return t;for(const n of this.children)if(t=n.assembleTitle(),t)return t}assembleLayout(){return null}assembleMarks(){return qoe(this,this.children.flatMap(t=>t.assembleMarks()))}assembleLegends(){return this.children.reduce((t,n)=>t.concat(n.assembleLegends()),XN(this))}}function u8(e,t,n,r,i){if(Cp(e))return new Dl(e,t,n,i);if(Lp(e))return new o8(e,t,n,r,i);if(oa(e))return new bD(e,t,n,r,i);if(Cse(e))return new Dle(e,t,n,i);throw new Error(e6(e))}function bfe(e,t={}){t.logger&&Die(t.logger),t.fieldTitle&&vT(t.fieldTitle);try{const n=YT(ec(t.config,e.config)),r=nN(e,n),i=u8(r,null,"",void 0,n);return i.parse(),Uce(i.component.data,i),{spec:vfe(i,yfe(e,r.autosize,n,i),e.datasets,e.usermeta),normalized:r}}finally{t.logger&&Oie(),t.fieldTitle&&Vae()}}function yfe(e,t,n,r){const i=r.component.layoutSize.get("width"),a=r.component.layoutSize.get("height");if(t===void 0?(t={type:"pad"},r.hasAxisOrientSignalRef()&&(t.resize=!0)):X(t)&&(t={type:t}),i&&a&&Roe(t.type)){if(i==="step"&&a==="step")j(ox()),t.type="pad";else if(i==="step"||a==="step"){const s=i==="step"?"width":"height";j(ox(yp(s)));const o=s==="width"?"height":"width";t.type=Loe(o)}}return{...B(t).length===1&&t.type?t.type==="pad"?{}:{autosize:t.type}:{autosize:t},...Rx(n,!1),...Rx(e,!0)}}function vfe(e,t,n={},r){const i=e.config?jse(e.config):void 0,a=[].concat(e.assembleSelectionData([]),wle(e.component.data,n)),s=e.assembleProjections(),o=e.assembleTitle(),u=e.assembleGroupStyle(),c=e.assembleGroupEncodeEntry(!0);let l=e.assembleLayoutSignals();l=l.filter(h=>(h.name==="width"||h.name==="height")&&h.value!==void 0?(t[h.name]=+h.value,!1):!0);const{params:f,...d}=t;return{$schema:"https://vega.github.io/schema/vega/v5.json",...e.description?{description:e.description}:{},...d,...o?{title:o}:{},...u?{style:u}:{},...c?{encode:{update:c}}:{},data:a,...s.length>0?{projections:s}:{},...e.assembleGroup([...l,...e.assembleSelectionTopLevelSignals([]),...qT(f)]),...i?{config:i}:{},...r?{usermeta:r}:{}}}const xfe=Jne.version,_fe=Object.freeze(Object.defineProperty({__proto__:null,accessPathDepth:Bu,accessPathWithDatum:W7,compile:bfe,contains:ye,deepEqual:Dn,deleteNestedProperty:N0,duplicate:oe,entries:Ga,every:U7,fieldIntersection:q7,flatAccessWithDatum:nM,getFirstDefined:Ze,hasIntersection:j7,hash:be,internalField:aM,isBoolean:uf,isEmpty:Oe,isEqual:Zne,isInternalField:sM,isNullOrFalse:vy,isNumeric:dp,keys:B,logicalExpr:Tl,mergeDeep:eM,never:ZF,normalize:nN,normalizeAngle:cf,omit:bn,pick:zu,prefixGenerator:xy,removePathFromField:H7,replaceAll:lo,replacePathInField:rr,resetIdCounter:tre,setEqual:tM,some:co,stringify:Re,titleCase:Hf,unique:Kr,uniqueId:iM,vals:kt,varName:We,version:xfe},Symbol.toStringTag,{value:"Module"}));function yD(e){const[t,n]=/schema\/([\w-]+)\/([\w\.\-]+)\.json$/g.exec(e).slice(1,3);return{library:t,version:n}}var wfe="vega-themes",Efe="2.14.0",Sfe="Themes for stylized Vega and Vega-Lite visualizations.",$fe=["vega","vega-lite","themes","style"],Afe="BSD-3-Clause",kfe={name:"UW Interactive Data Lab",url:"https://idl.cs.washington.edu"},Cfe=[{name:"Emily Gu",url:"https://github.com/emilygu"},{name:"Arvind Satyanarayan",url:"http://arvindsatya.com"},{name:"Jeffrey Heer",url:"https://idl.cs.washington.edu"},{name:"Dominik Moritz",url:"https://www.domoritz.de"}],Ffe="build/vega-themes.js",Mfe="build/vega-themes.module.js",Tfe="build/vega-themes.min.js",Nfe="build/vega-themes.min.js",Dfe="build/vega-themes.module.d.ts",Ofe={type:"git",url:"https://github.com/vega/vega-themes.git"},Rfe=["src","build"],Lfe={prebuild:"yarn clean",build:"rollup -c",clean:"rimraf build && rimraf examples/build","copy:data":"rsync -r node_modules/vega-datasets/data/* examples/data","copy:build":"rsync -r build/* examples/build","deploy:gh":"yarn build && mkdir -p examples/build && rsync -r build/* examples/build && gh-pages -d examples",preversion:"yarn lint",serve:"browser-sync start -s -f build examples --serveStatic examples",start:"yarn build && concurrently --kill-others -n Server,Rollup 'yarn serve' 'rollup -c -w'",format:"eslint . --fix",lint:"eslint .",release:"release-it"},Pfe={"@babel/core":"^7.22.9","@babel/plugin-proposal-async-generator-functions":"^7.20.7","@babel/plugin-proposal-json-strings":"^7.18.6","@babel/plugin-proposal-object-rest-spread":"^7.20.7","@babel/plugin-proposal-optional-catch-binding":"^7.18.6","@babel/plugin-transform-runtime":"^7.22.9","@babel/preset-env":"^7.22.9","@babel/preset-typescript":"^7.22.5","@release-it/conventional-changelog":"^7.0.0","@rollup/plugin-json":"^6.0.0","@rollup/plugin-node-resolve":"^15.1.0","@rollup/plugin-terser":"^0.4.3","@typescript-eslint/eslint-plugin":"^6.0.0","@typescript-eslint/parser":"^6.0.0","browser-sync":"^2.29.3",concurrently:"^8.2.0",eslint:"^8.45.0","eslint-config-prettier":"^8.8.0","eslint-plugin-prettier":"^5.0.0","gh-pages":"^5.0.0",prettier:"^3.0.0","release-it":"^16.1.0",rollup:"^3.26.2","rollup-plugin-bundle-size":"^1.0.3","rollup-plugin-ts":"^3.2.0",typescript:"^5.1.6",vega:"^5.25.0","vega-lite":"^5.9.3"},Ife={vega:"*","vega-lite":"*"},zfe={},Bfe={name:wfe,version:Efe,description:Sfe,keywords:$fe,license:Afe,author:kfe,contributors:Cfe,main:Ffe,module:Mfe,unpkg:Tfe,jsdelivr:Nfe,types:Dfe,repository:Ofe,files:Rfe,scripts:Lfe,devDependencies:Pfe,peerDependencies:Ife,dependencies:zfe};const Ko="#fff",d_="#888",Ufe={background:"#333",view:{stroke:d_},title:{color:Ko,subtitleColor:Ko},style:{"guide-label":{fill:Ko},"guide-title":{fill:Ko}},axis:{domainColor:Ko,gridColor:d_,tickColor:Ko}},xs="#4572a7",jfe={background:"#fff",arc:{fill:xs},area:{fill:xs},line:{stroke:xs,strokeWidth:2},path:{stroke:xs},rect:{fill:xs},shape:{stroke:xs},symbol:{fill:xs,strokeWidth:1.5,size:50},axis:{bandPosition:.5,grid:!0,gridColor:"#000000",gridOpacity:1,gridWidth:.5,labelPadding:10,tickSize:5,tickWidth:.5},axisBand:{grid:!1,tickExtra:!0},legend:{labelBaseline:"middle",labelFontSize:11,symbolSize:50,symbolType:"square"},range:{category:["#4572a7","#aa4643","#8aa453","#71598e","#4598ae","#d98445","#94aace","#d09393","#b9cc98","#a99cbc"]}},_s="#30a2da",_m="#cbcbcb",qfe="#999",Wfe="#333",h_="#f0f0f0",g_="#333",Hfe={arc:{fill:_s},area:{fill:_s},axis:{domainColor:_m,grid:!0,gridColor:_m,gridWidth:1,labelColor:qfe,labelFontSize:10,titleColor:Wfe,tickColor:_m,tickSize:10,titleFontSize:14,titlePadding:10,labelPadding:4},axisBand:{grid:!1},background:h_,group:{fill:h_},legend:{labelColor:g_,labelFontSize:11,padding:1,symbolSize:30,symbolType:"square",titleColor:g_,titleFontSize:14,titlePadding:10},line:{stroke:_s,strokeWidth:2},path:{stroke:_s,strokeWidth:.5},rect:{fill:_s},range:{category:["#30a2da","#fc4f30","#e5ae38","#6d904f","#8b8b8b","#b96db8","#ff9e27","#56cc60","#52d2ca","#52689e","#545454","#9fe4f8"],diverging:["#cc0020","#e77866","#f6e7e1","#d6e8ed","#91bfd9","#1d78b5"],heatmap:["#d6e8ed","#cee0e5","#91bfd9","#549cc6","#1d78b5"]},point:{filled:!0,shape:"circle"},shape:{stroke:_s},bar:{binSpacing:2,fill:_s,stroke:null},title:{anchor:"start",fontSize:24,fontWeight:600,offset:20}},ws="#000",Gfe={group:{fill:"#e5e5e5"},arc:{fill:ws},area:{fill:ws},line:{stroke:ws},path:{stroke:ws},rect:{fill:ws},shape:{stroke:ws},symbol:{fill:ws,size:40},axis:{domain:!1,grid:!0,gridColor:"#FFFFFF",gridOpacity:1,labelColor:"#7F7F7F",labelPadding:4,tickColor:"#7F7F7F",tickSize:5.67,titleFontSize:16,titleFontWeight:"normal"},legend:{labelBaseline:"middle",labelFontSize:11,symbolSize:40},range:{category:["#000000","#7F7F7F","#1A1A1A","#999999","#333333","#B0B0B0","#4D4D4D","#C9C9C9","#666666","#DCDCDC"]}},Yfe=22,Xfe="normal",p_="Benton Gothic, sans-serif",m_=11.5,Vfe="normal",Es="#82c6df",wm="Benton Gothic Bold, sans-serif",b_="normal",y_=13,Hc={"category-6":["#ec8431","#829eb1","#c89d29","#3580b1","#adc839","#ab7fb4"],"fire-7":["#fbf2c7","#f9e39c","#f8d36e","#f4bb6a","#e68a4f","#d15a40","#ab4232"],"fireandice-6":["#e68a4f","#f4bb6a","#f9e39c","#dadfe2","#a6b7c6","#849eae"],"ice-7":["#edefee","#dadfe2","#c4ccd2","#a6b7c6","#849eae","#607785","#47525d"]},Kfe={background:"#ffffff",title:{anchor:"start",color:"#000000",font:wm,fontSize:Yfe,fontWeight:Xfe},arc:{fill:Es},area:{fill:Es},line:{stroke:Es,strokeWidth:2},path:{stroke:Es},rect:{fill:Es},shape:{stroke:Es},symbol:{fill:Es,size:30},axis:{labelFont:p_,labelFontSize:m_,labelFontWeight:Vfe,titleFont:wm,titleFontSize:y_,titleFontWeight:b_},axisX:{labelAngle:0,labelPadding:4,tickSize:3},axisY:{labelBaseline:"middle",maxExtent:45,minExtent:45,tickSize:2,titleAlign:"left",titleAngle:0,titleX:-45,titleY:-11},legend:{labelFont:p_,labelFontSize:m_,symbolType:"square",titleFont:wm,titleFontSize:y_,titleFontWeight:b_},range:{category:Hc["category-6"],diverging:Hc["fireandice-6"],heatmap:Hc["fire-7"],ordinal:Hc["fire-7"],ramp:Hc["fire-7"]}},Ss="#ab5787",zd="#979797",Jfe={background:"#f9f9f9",arc:{fill:Ss},area:{fill:Ss},line:{stroke:Ss},path:{stroke:Ss},rect:{fill:Ss},shape:{stroke:Ss},symbol:{fill:Ss,size:30},axis:{domainColor:zd,domainWidth:.5,gridWidth:.2,labelColor:zd,tickColor:zd,tickWidth:.2,titleColor:zd},axisBand:{grid:!1},axisX:{grid:!0,tickSize:10},axisY:{domain:!1,grid:!0,tickSize:0},legend:{labelFontSize:11,padding:1,symbolSize:30,symbolType:"square"},range:{category:["#ab5787","#51b2e5","#703c5c","#168dd9","#d190b6","#00609f","#d365ba","#154866","#666666","#c4c4c4"]}},$s="#3e5c69",Qfe={background:"#fff",arc:{fill:$s},area:{fill:$s},line:{stroke:$s},path:{stroke:$s},rect:{fill:$s},shape:{stroke:$s},symbol:{fill:$s},axis:{domainWidth:.5,grid:!0,labelPadding:2,tickSize:5,tickWidth:.5,titleFontWeight:"normal"},axisBand:{grid:!1},axisX:{gridWidth:.2},axisY:{gridDash:[3],gridWidth:.4},legend:{labelFontSize:11,padding:1,symbolType:"square"},range:{category:["#3e5c69","#6793a6","#182429","#0570b0","#3690c0","#74a9cf","#a6bddb","#e2ddf2"]}},qn="#1696d2",v_="#000000",Zfe="#FFFFFF",Bd="Lato",Em="Lato",ede="Lato",tde="#DEDDDD",nde=18,Gc={"main-colors":["#1696d2","#d2d2d2","#000000","#fdbf11","#ec008b","#55b748","#5c5859","#db2b27"],"shades-blue":["#CFE8F3","#A2D4EC","#73BFE2","#46ABDB","#1696D2","#12719E","#0A4C6A","#062635"],"shades-gray":["#F5F5F5","#ECECEC","#E3E3E3","#DCDBDB","#D2D2D2","#9D9D9D","#696969","#353535"],"shades-yellow":["#FFF2CF","#FCE39E","#FDD870","#FCCB41","#FDBF11","#E88E2D","#CA5800","#843215"],"shades-magenta":["#F5CBDF","#EB99C2","#E46AA7","#E54096","#EC008B","#AF1F6B","#761548","#351123"],"shades-green":["#DCEDD9","#BCDEB4","#98CF90","#78C26D","#55B748","#408941","#2C5C2D","#1A2E19"],"shades-black":["#D5D5D4","#ADABAC","#848081","#5C5859","#332D2F","#262223","#1A1717","#0E0C0D"],"shades-red":["#F8D5D4","#F1AAA9","#E9807D","#E25552","#DB2B27","#A4201D","#6E1614","#370B0A"],"one-group":["#1696d2","#000000"],"two-groups-cat-1":["#1696d2","#000000"],"two-groups-cat-2":["#1696d2","#fdbf11"],"two-groups-cat-3":["#1696d2","#db2b27"],"two-groups-seq":["#a2d4ec","#1696d2"],"three-groups-cat":["#1696d2","#fdbf11","#000000"],"three-groups-seq":["#a2d4ec","#1696d2","#0a4c6a"],"four-groups-cat-1":["#000000","#d2d2d2","#fdbf11","#1696d2"],"four-groups-cat-2":["#1696d2","#ec0008b","#fdbf11","#5c5859"],"four-groups-seq":["#cfe8f3","#73bf42","#1696d2","#0a4c6a"],"five-groups-cat-1":["#1696d2","#fdbf11","#d2d2d2","#ec008b","#000000"],"five-groups-cat-2":["#1696d2","#0a4c6a","#d2d2d2","#fdbf11","#332d2f"],"five-groups-seq":["#cfe8f3","#73bf42","#1696d2","#0a4c6a","#000000"],"six-groups-cat-1":["#1696d2","#ec008b","#fdbf11","#000000","#d2d2d2","#55b748"],"six-groups-cat-2":["#1696d2","#d2d2d2","#ec008b","#fdbf11","#332d2f","#0a4c6a"],"six-groups-seq":["#cfe8f3","#a2d4ec","#73bfe2","#46abdb","#1696d2","#12719e"],"diverging-colors":["#ca5800","#fdbf11","#fdd870","#fff2cf","#cfe8f3","#73bfe2","#1696d2","#0a4c6a"]},rde={background:Zfe,title:{anchor:"start",fontSize:nde,font:Bd},axisX:{domain:!0,domainColor:v_,domainWidth:1,grid:!1,labelFontSize:12,labelFont:Em,labelAngle:0,tickColor:v_,tickSize:5,titleFontSize:12,titlePadding:10,titleFont:Bd},axisY:{domain:!1,domainWidth:1,grid:!0,gridColor:tde,gridWidth:1,labelFontSize:12,labelFont:Em,labelPadding:8,ticks:!1,titleFontSize:12,titlePadding:10,titleFont:Bd,titleAngle:0,titleY:-10,titleX:18},legend:{labelFontSize:12,labelFont:Em,symbolSize:100,titleFontSize:12,titlePadding:10,titleFont:Bd,orient:"right",offset:10},view:{stroke:"transparent"},range:{category:Gc["six-groups-cat-1"],diverging:Gc["diverging-colors"],heatmap:Gc["diverging-colors"],ordinal:Gc["six-groups-seq"],ramp:Gc["shades-blue"]},area:{fill:qn},rect:{fill:qn},line:{color:qn,stroke:qn,strokeWidth:5},trail:{color:qn,stroke:qn,strokeWidth:0,size:1},path:{stroke:qn,strokeWidth:.5},point:{filled:!0},text:{font:ede,color:qn,fontSize:11,align:"center",fontWeight:400,size:11},style:{bar:{fill:qn,stroke:null}},arc:{fill:qn},shape:{stroke:qn},symbol:{fill:qn,size:30}},As="#3366CC",x_="#ccc",Ud="Arial, sans-serif",ide={arc:{fill:As},area:{fill:As},path:{stroke:As},rect:{fill:As},shape:{stroke:As},symbol:{stroke:As},circle:{fill:As},background:"#fff",padding:{top:10,right:10,bottom:10,left:10},style:{"guide-label":{font:Ud,fontSize:12},"guide-title":{font:Ud,fontSize:12},"group-title":{font:Ud,fontSize:12}},title:{font:Ud,fontSize:14,fontWeight:"bold",dy:-3,anchor:"start"},axis:{gridColor:x_,tickColor:x_,domain:!1,grid:!0},range:{category:["#4285F4","#DB4437","#F4B400","#0F9D58","#AB47BC","#00ACC1","#FF7043","#9E9D24","#5C6BC0","#F06292","#00796B","#C2185B"],heatmap:["#c6dafc","#5e97f6","#2a56c6"]}},c8=e=>e*(1/3+1),__=c8(9),w_=c8(10),E_=c8(12),Yc="Segoe UI",S_="wf_standard-font, helvetica, arial, sans-serif",$_="#252423",Xc="#605E5C",A_="transparent",ade="#C8C6C4",lr="#118DFF",sde="#12239E",ode="#E66C37",ude="#6B007B",cde="#E044A7",lde="#744EC2",fde="#D9B300",dde="#D64550",vD=lr,xD="#DEEFFF",k_=[xD,vD],hde=[xD,"#c7e4ff","#b0d9ff","#9aceff","#83c3ff","#6cb9ff","#55aeff","#3fa3ff","#2898ff",vD],gde={view:{stroke:A_},background:A_,font:Yc,header:{titleFont:S_,titleFontSize:E_,titleColor:$_,labelFont:Yc,labelFontSize:w_,labelColor:Xc},axis:{ticks:!1,grid:!1,domain:!1,labelColor:Xc,labelFontSize:__,titleFont:S_,titleColor:$_,titleFontSize:E_,titleFontWeight:"normal"},axisQuantitative:{tickCount:3,grid:!0,gridColor:ade,gridDash:[1,5],labelFlush:!1},axisBand:{tickExtra:!0},axisX:{labelPadding:5},axisY:{labelPadding:10},bar:{fill:lr},line:{stroke:lr,strokeWidth:3,strokeCap:"round",strokeJoin:"round"},text:{font:Yc,fontSize:__,fill:Xc},arc:{fill:lr},area:{fill:lr,line:!0,opacity:.6},path:{stroke:lr},rect:{fill:lr},point:{fill:lr,filled:!0,size:75},shape:{stroke:lr},symbol:{fill:lr,strokeWidth:1.5,size:50},legend:{titleFont:Yc,titleFontWeight:"bold",titleColor:Xc,labelFont:Yc,labelFontSize:w_,labelColor:Xc,symbolType:"circle",symbolSize:75},range:{category:[lr,sde,ode,ude,cde,lde,fde,dde],diverging:k_,heatmap:k_,ordinal:hde}},Sm='IBM Plex Sans,system-ui,-apple-system,BlinkMacSystemFont,".sfnstext-regular",sans-serif',C_=400,pde=["#8a3ffc","#33b1ff","#007d79","#ff7eb6","#fa4d56","#fff1f1","#6fdc8c","#4589ff","#d12771","#d2a106","#08bdba","#bae6ff","#ba4e00","#d4bbff"],mde=["#6929c4","#1192e8","#005d5d","#9f1853","#fa4d56","#570408","#198038","#002d9c","#ee538b","#b28600","#009d9a","#012749","#8a3800","#a56eff"];function t1({type:e,background:t}){const n=e==="dark"?"#161616":"#ffffff",r=e==="dark"?"#f4f4f4":"#161616",i=e==="dark"?pde:mde,a=e==="dark"?"#d4bbff":"#6929c4";return{background:t,arc:{fill:a},area:{fill:a},path:{stroke:a},rect:{fill:a},shape:{stroke:a},symbol:{stroke:a},circle:{fill:a},view:{fill:n,stroke:n},group:{fill:n},title:{color:r,anchor:"start",dy:-15,fontSize:16,font:Sm,fontWeight:600},axis:{labelColor:r,labelFontSize:12,grid:!0,gridColor:"#525252",titleColor:r,labelAngle:0},style:{"guide-label":{font:Sm,fill:r,fontWeight:C_},"guide-title":{font:Sm,fill:r,fontWeight:C_}},range:{category:i,diverging:["#750e13","#a2191f","#da1e28","#fa4d56","#ff8389","#ffb3b8","#ffd7d9","#fff1f1","#e5f6ff","#bae6ff","#82cfff","#33b1ff","#1192e8","#0072c3","#00539a","#003a6d"],heatmap:["#f6f2ff","#e8daff","#d4bbff","#be95ff","#a56eff","#8a3ffc","#6929c4","#491d8b","#31135e","#1c0f30"]}}}const bde=t1({type:"light",background:"#ffffff"}),yde=t1({type:"light",background:"#f4f4f4"}),vde=t1({type:"dark",background:"#262626"}),xde=t1({type:"dark",background:"#161616"}),_de=Bfe.version,wde=Object.freeze(Object.defineProperty({__proto__:null,carbong10:yde,carbong100:xde,carbong90:vde,carbonwhite:bde,dark:Ufe,excel:jfe,fivethirtyeight:Hfe,ggplot2:Gfe,googlecharts:ide,latimes:Kfe,powerbi:gde,quartz:Jfe,urbaninstitute:rde,version:_de,vox:Qfe},Symbol.toStringTag,{value:"Module"}));function Ede(e,t,n,r){if(P(e))return`[${e.map(i=>t(X(i)?i:F_(i,n))).join(", ")}]`;if(V(e)){let i="";const{title:a,image:s,...o}=e;a&&(i+=`

${t(a)}

`),s&&(i+=``);const u=Object.keys(o);if(u.length>0){i+="";for(const c of u){let l=o[c];l!==void 0&&(V(l)&&(l=F_(l,n)),i+=``)}i+="
${t(c)}${t(l)}
"}return i||"{}"}return t(e)}function Sde(e){const t=[];return function(n,r){if(typeof r!="object"||r===null)return r;const i=t.indexOf(this)+1;return t.length=i,t.length>e?"[Object]":t.indexOf(r)>=0?"[Circular]":(t.push(r),r)}}function F_(e,t){return JSON.stringify(e,Sde(t))}var $de=`#vg-tooltip-element { +`)}function gF(e){return"["+e.map(pF).join(", ")+"]"}function pF(e){return P(e)?"[…]":V(e)&&!Ca(e)?"{…}":e}function cZ(){if(this.renderer()==="canvas"&&this._renderer._canvas){let e=null;const t=()=>{e!=null&&e();const n=matchMedia(`(resolution: ${window.devicePixelRatio}dppx)`);n.addEventListener("change",t),e=()=>{n.removeEventListener("change",t)},this._renderer._canvas.getContext("2d").pixelRatio=window.devicePixelRatio||1,this._redraw=!0,this._resize=1,this.resize().runAsync()};t()}}function mF(e,t){const n=this;if(t=t||{},uu.call(n),t.loader&&n.loader(t.loader),t.logger&&n.logger(t.logger),t.logLevel!=null&&n.logLevel(t.logLevel),t.locale||e.locale){const a=ce({},e.locale,t.locale);n.locale(pE(a.number,a.time))}n._el=null,n._elBind=null,n._renderType=t.renderer||wa.Canvas,n._scenegraph=new n9;const r=n._scenegraph.root;n._renderer=null,n._tooltip=t.tooltip||sZ,n._redraw=!0,n._handler=new qa().scene(r),n._globalCursor=!1,n._preventDefault=!1,n._timers=[],n._eventListeners=[],n._resizeListeners=[],n._eventConfig=kQ(e.eventConfig),n.globalCursor(n._eventConfig.globalCursor);const i=JQ(n,e,t.expr);n._runtime=i,n._signals=i.signals,n._bind=(e.bindings||[]).map(a=>({state:null,param:ce({},a)})),i.root&&i.root.set(r),r.source=i.data.root.input,n.pulse(i.data.root.input,n.changeset().insert(r.items)),n._width=n.width(),n._height=n.height(),n._viewWidth=dF(n,n._width),n._viewHeight=hF(n,n._height),n._origin=[0,0],n._resize=0,n._autosize=1,ZQ(n),mQ(n),bQ(n),n.description(e.description),t.hover&&n.hover(),t.container&&n.initialize(t.container,t.bind),t.watchPixelRatio&&n._watchPixelRatio()}function Nd(e,t){return ie(e._signals,t)?e._signals[t]:R("Unrecognized signal name: "+H(t))}function bF(e,t){const n=(e._targets||[]).filter(r=>r._update&&r._update.handler===t);return n.length?n[0]:null}function O5(e,t,n,r){let i=bF(n,r);return i||(i=x7(e,()=>r(t,n.value)),i.handler=r,e.on(n,null,i)),e}function R5(e,t,n){const r=bF(t,n);return r&&t._targets.remove(r),e}W(mF,uu,{async evaluate(e,t,n){if(await uu.prototype.evaluate.call(this,e,t),this._redraw||this._resize)try{this._renderer&&(this._resize&&(this._resize=0,_Q(this)),await this._renderer.renderAsync(this._scenegraph.root)),this._redraw=!1}catch(r){this.error(r)}return n&&Gd(this,n),this},dirty(e){this._redraw=!0,this._renderer&&this._renderer.dirty(e)},description(e){if(arguments.length){const t=e!=null?e+"":null;return t!==this._desc&&aF(this._el,this._desc=t),this}return this._desc},container(){return this._el},scenegraph(){return this._scenegraph},origin(){return this._origin.slice()},signal(e,t,n){const r=Nd(this,e);return arguments.length===1?r.value:this.update(r,t,n)},width(e){return arguments.length?this.signal("width",e):this.signal("width")},height(e){return arguments.length?this.signal("height",e):this.signal("height")},padding(e){return arguments.length?this.signal("padding",N5(e)):N5(this.signal("padding"))},autosize(e){return arguments.length?this.signal("autosize",e):this.signal("autosize")},background(e){return arguments.length?this.signal("background",e):this.signal("background")},renderer(e){return arguments.length?(qg(e)||R("Unrecognized renderer type: "+e),e!==this._renderType&&(this._renderType=e,this._resetRenderer()),this):this._renderType},tooltip(e){return arguments.length?(e!==this._tooltip&&(this._tooltip=e,this._resetRenderer()),this):this._tooltip},loader(e){return arguments.length?(e!==this._loader&&(uu.prototype.loader.call(this,e),this._resetRenderer()),this):this._loader},resize(){return this._autosize=1,this.touch(Nd(this,"autosize"))},_resetRenderer(){this._renderer&&(this._renderer=null,this.initialize(this._el,this._elBind))},_resizeView:eZ,addEventListener(e,t,n){let r=t;return n&&n.trap===!1||(r=x7(this,t),r.raw=t),this._handler.on(e,r),this},removeEventListener(e,t){for(var n=this._handler.handlers(e),r=n.length,i,a;--r>=0;)if(a=n[r].type,i=n[r].handler,e===a&&(t===i||t===i.raw)){this._handler.off(a,i);break}return this},addResizeListener(e){const t=this._resizeListeners;return t.includes(e)||t.push(e),this},removeResizeListener(e){var t=this._resizeListeners,n=t.indexOf(e);return n>=0&&t.splice(n,1),this},addSignalListener(e,t){return O5(this,e,Nd(this,e),t)},removeSignalListener(e,t){return R5(this,Nd(this,e),t)},addDataListener(e,t){return O5(this,e,k0(this,e).values,t)},removeDataListener(e,t){return R5(this,k0(this,e).values,t)},globalCursor(e){if(arguments.length){if(this._globalCursor!==!!e){const t=cy(this,null);this._globalCursor=!!e,t&&cy(this,t)}return this}else return this._globalCursor},preventDefault(e){return arguments.length?(this._preventDefault=e,this):this._preventDefault},timer:aZ,events:FQ,finalize:TQ,hover:MQ,data:yQ,change:tp,insert:vQ,remove:xQ,scale:QQ,initialize:HQ,toImageURL:YQ,toCanvas:VQ,toSVG:KQ,getState:tZ,setState:iZ,_watchPixelRatio:cZ});const lZ="view",F0="[",M0="]",yF="{",vF="}",fZ=":",xF=",",dZ="@",hZ=">",gZ=/[[\]{}]/,pZ={"*":1,arc:1,area:1,group:1,image:1,line:1,path:1,rect:1,rule:1,shape:1,symbol:1,text:1,trail:1};let _F,wF;function as(e,t,n){return _F=t||lZ,wF=n||pZ,EF(e.trim()).map(ly)}function mZ(e){return wF[e]}function Ml(e,t,n,r,i){const a=e.length;let s=0,o;for(;t=0?--s:r&&r.indexOf(o)>=0&&++s}return t}function EF(e){const t=[],n=e.length;let r=0,i=0;for(;i' after between selector: "+e;r=r.map(ly);const i=ly(e.slice(1).trim());return i.between?{between:r,stream:i}:(i.between=r,i)}function yZ(e){const t={source:_F},n=[];let r=[0,0],i=0,a=0,s=e.length,o=0,u,c;if(e[s-1]===vF){if(o=e.lastIndexOf(yF),o>=0){try{r=vZ(e.substring(o+1,s-1))}catch{throw"Invalid throttle specification: "+e}e=e.slice(0,o).trim(),s=e.length}else throw"Unmatched right brace: "+e;o=0}if(!s)throw e;if(e[0]===dZ&&(i=++o),u=Ml(e,o,fZ),u1?(t.type=n[1],i?t.markname=n[0].slice(1):mZ(n[0])?t.marktype=n[0]:t.source=n[0]):t.type=n[0],t.type.slice(-1)==="!"&&(t.consume=!0,t.type=t.type.slice(0,-1)),c!=null&&(t.filter=c),r[0]&&(t.throttle=r[0]),r[1]&&(t.debounce=r[1]),t}function vZ(e){const t=e.split(xF);if(!e.length||t.length>2)throw e;return t.map(n=>{const r=+n;if(r!==r)throw e;return r})}function xZ(e){return V(e)?e:{type:e||"pad"}}const Bc=e=>+e||0,_Z=e=>({top:e,bottom:e,left:e,right:e});function wZ(e){return V(e)?e.signal?e:{top:Bc(e.top),bottom:Bc(e.bottom),left:Bc(e.left),right:Bc(e.right)}:_Z(Bc(e))}const mt=e=>V(e)&&!P(e)?ce({},e):{value:e};function L5(e,t,n,r){return n!=null?(V(n)&&!P(n)||P(n)&&n.length&&V(n[0])?e.update[t]=n:e[r||"enter"][t]={value:n},1):0}function Ct(e,t,n){for(const r in t)L5(e,r,t[r]);for(const r in n)L5(e,r,n[r],"update")}function hc(e,t,n){for(const r in t)n&&ie(n,r)||(e[r]=ce(e[r]||{},t[r]));return e}function eu(e,t){return t&&(t.enter&&t.enter[e]||t.update&&t.update[e])}const E7="mark",S7="frame",$7="scope",EZ="axis",SZ="axis-domain",$Z="axis-grid",AZ="axis-label",kZ="axis-tick",CZ="axis-title",FZ="legend",MZ="legend-band",TZ="legend-entry",NZ="legend-gradient",SF="legend-label",DZ="legend-symbol",OZ="legend-title",RZ="title",LZ="title-text",PZ="title-subtitle";function IZ(e,t,n,r,i){const a={},s={};let o,u,c,l;u="lineBreak",t==="text"&&i[u]!=null&&!eu(u,e)&&om(a,u,i[u]),(n=="legend"||String(n).startsWith("axis"))&&(n=null),l=n===S7?i.group:n===E7?ce({},i.mark,i[t]):null;for(u in l)c=eu(u,e)||(u==="fill"||u==="stroke")&&(eu("fill",e)||eu("stroke",e)),c||om(a,u,l[u]);Y(r).forEach(f=>{const d=i.style&&i.style[f];for(const h in d)eu(h,e)||om(a,h,d[h])}),e=ce({},e);for(u in a)l=a[u],l.signal?(o=o||{})[u]=l:s[u]=l;return e.enter=ce(s,e.enter),o&&(e.update=ce(o,e.update)),e}function om(e,t,n){e[t]=n&&n.signal?{signal:n.signal}:{value:n}}const $F=e=>X(e)?H(e):e.signal?`(${e.signal})`:AF(e);function rp(e){if(e.gradient!=null)return BZ(e);let t=e.signal?`(${e.signal})`:e.color?zZ(e.color):e.field!=null?AF(e.field):e.value!==void 0?H(e.value):void 0;return e.scale!=null&&(t=UZ(e,t)),t===void 0&&(t=null),e.exponent!=null&&(t=`pow(${t},${ch(e.exponent)})`),e.mult!=null&&(t+=`*${ch(e.mult)}`),e.offset!=null&&(t+=`+${ch(e.offset)}`),e.round&&(t=`round(${t})`),t}const Dd=(e,t,n,r)=>`(${e}(${[t,n,r].map(rp).join(",")})+'')`;function zZ(e){return e.c?Dd("hcl",e.h,e.c,e.l):e.h||e.s?Dd("hsl",e.h,e.s,e.l):e.l||e.a?Dd("lab",e.l,e.a,e.b):e.r||e.g||e.b?Dd("rgb",e.r,e.g,e.b):null}function BZ(e){const t=[e.start,e.stop,e.count].map(n=>n==null?null:H(n));for(;t.length&&xe(t)==null;)t.pop();return t.unshift($F(e.gradient)),`gradient(${t.join(",")})`}function ch(e){return V(e)?"("+rp(e)+")":e}function AF(e){return kF(V(e)?e:{datum:e})}function kF(e){let t,n,r;if(e.signal)t="datum",r=e.signal;else if(e.group||e.parent){for(n=Math.max(1,e.level||1),t="item";n-- >0;)t+=".mark.group";e.parent?(r=e.parent,t+=".datum"):r=e.group}else e.datum?(t="datum",r=e.datum):R("Invalid field reference: "+H(e));return e.signal||(r=X(r)?di(r).map(H).join("]["):kF(r)),t+"["+r+"]"}function UZ(e,t){const n=$F(e.scale);return e.range!=null?t=`lerp(_range(${n}), ${+e.range})`:(t!==void 0&&(t=`_scale(${n}, ${t})`),e.band&&(t=(t?t+"+":"")+`_bandwidth(${n})`+(+e.band==1?"":"*"+ch(e.band)),e.extra&&(t=`(datum.extra ? _scale(${n}, datum.extra.value) : ${t})`)),t==null&&(t="0")),t}function jZ(e){let t="";return e.forEach(n=>{const r=rp(n);t+=n.test?`(${n.test})?${r}:`:r}),xe(t)===":"&&(t+="null"),t}function CF(e,t,n,r,i,a){const s={};a=a||{},a.encoders={$encode:s},e=IZ(e,t,n,r,i.config);for(const o in e)s[o]=qZ(e[o],t,a,i);return a}function qZ(e,t,n,r){const i={},a={};for(const s in e)e[s]!=null&&(i[s]=HZ(WZ(e[s]),r,n,a));return{$expr:{marktype:t,channels:i},$fields:Object.keys(a),$output:Object.keys(e)}}function WZ(e){return P(e)?jZ(e):rp(e)}function HZ(e,t,n,r){const i=ui(e,t);return i.$fields.forEach(a=>r[a]=1),ce(n,i.$params),i.$expr}const GZ="outer",YZ=["value","update","init","react","bind"];function P5(e,t){R(e+' for "outer" push: '+H(t))}function FF(e,t){const n=e.name;if(e.push===GZ)t.signals[n]||P5("No prior signal definition",n),YZ.forEach(r=>{e[r]!==void 0&&P5("Invalid property ",r)});else{const r=t.addSignal(n,e.value);e.react===!1&&(r.react=!1),e.bind&&t.addBinding(n,e.bind)}}function fy(e,t,n,r){this.id=-1,this.type=e,this.value=t,this.params=n,r&&(this.parent=r)}function ip(e,t,n,r){return new fy(e,t,n,r)}function T0(e,t){return ip("operator",e,t)}function te(e){const t={$ref:e.id};return e.id<0&&(e.refs=e.refs||[]).push(t),t}function af(e,t){return t?{$field:e,$name:t}:{$field:e}}const dy=af("key");function I5(e,t){return{$compare:e,$order:t}}function XZ(e,t){const n={$key:e};return t&&(n.$flat=!0),n}const VZ="ascending",KZ="descending";function JZ(e){return V(e)?(e.order===KZ?"-":"+")+ap(e.op,e.field):""}function ap(e,t){return(e&&e.signal?"$"+e.signal:e||"")+(e&&t?"_":"")+(t&&t.signal?"$"+t.signal:t||"")}const A7="scope",hy="view";function ot(e){return e&&e.signal}function QZ(e){return e&&e.expr}function lh(e){if(ot(e))return!0;if(V(e)){for(const t in e)if(lh(e[t]))return!0}return!1}function hr(e,t){return e??t}function Gs(e){return e&&e.signal||e}const z5="timer";function sf(e,t){return(e.merge?eee:e.stream?tee:e.type?nee:R("Invalid stream specification: "+H(e)))(e,t)}function ZZ(e){return e===A7?hy:e||hy}function eee(e,t){const n=e.merge.map(i=>sf(i,t)),r=k7({merge:n},e,t);return t.addStream(r).id}function tee(e,t){const n=sf(e.stream,t),r=k7({stream:n},e,t);return t.addStream(r).id}function nee(e,t){let n;e.type===z5?(n=t.event(z5,e.throttle),e={between:e.between,filter:e.filter}):n=t.event(ZZ(e.source),e.type);const r=k7({stream:n},e,t);return Object.keys(r).length===1?n:t.addStream(r).id}function k7(e,t,n){let r=t.between;return r&&(r.length!==2&&R('Stream "between" parameter must have 2 entries: '+H(t)),e.between=[sf(r[0],n),sf(r[1],n)]),r=t.filter?[].concat(t.filter):[],(t.marktype||t.markname||t.markrole)&&r.push(ree(t.marktype,t.markname,t.markrole)),t.source===A7&&r.push("inScope(event.item)"),r.length&&(e.filter=ui("("+r.join(")&&(")+")",n).$expr),(r=t.throttle)!=null&&(e.throttle=+r),(r=t.debounce)!=null&&(e.debounce=+r),t.consume&&(e.consume=!0),e}function ree(e,t,n){const r="event.item";return r+(e&&e!=="*"?"&&"+r+".mark.marktype==='"+e+"'":"")+(n?"&&"+r+".mark.role==='"+n+"'":"")+(t?"&&"+r+".mark.name==='"+t+"'":"")}const iee={code:"_.$value",ast:{type:"Identifier",value:"value"}};function aee(e,t,n){const r=e.encode,i={target:n};let a=e.events,s=e.update,o=[];a||R("Signal update missing events specification."),X(a)&&(a=as(a,t.isSubscope()?A7:hy)),a=Y(a).filter(u=>u.signal||u.scale?(o.push(u),0):1),o.length>1&&(o=[oee(o)]),a.length&&o.push(a.length>1?{merge:a}:a[0]),r!=null&&(s&&R("Signal encode and update are mutually exclusive."),s="encode(item(),"+H(r)+")"),i.update=X(s)?ui(s,t):s.expr!=null?ui(s.expr,t):s.value!=null?s.value:s.signal!=null?{$expr:iee,$params:{$value:t.signalRef(s.signal)}}:R("Invalid signal update specification."),e.force&&(i.options={force:!0}),o.forEach(u=>t.addUpdate(ce(see(u,t),i)))}function see(e,t){return{source:e.signal?t.signalRef(e.signal):e.scale?t.scaleRef(e.scale):sf(e,t)}}function oee(e){return{signal:"["+e.map(t=>t.scale?'scale("'+t.scale+'")':t.signal)+"]"}}function uee(e,t){const n=t.getSignal(e.name);let r=e.update;e.init&&(r?R("Signals can not include both init and update expressions."):(r=e.init,n.initonly=!0)),r&&(r=ui(r,t),n.update=r.$expr,n.params=r.$params),e.on&&e.on.forEach(i=>aee(i,t,n.id))}const Le=e=>(t,n,r)=>ip(e,n,t||void 0,r),MF=Le("aggregate"),cee=Le("axisticks"),TF=Le("bound"),Nr=Le("collect"),B5=Le("compare"),lee=Le("datajoin"),NF=Le("encode"),fee=Le("expression"),dee=Le("facet"),hee=Le("field"),gee=Le("key"),pee=Le("legendentries"),mee=Le("load"),bee=Le("mark"),yee=Le("multiextent"),vee=Le("multivalues"),xee=Le("overlap"),_ee=Le("params"),DF=Le("prefacet"),wee=Le("projection"),Eee=Le("proxy"),See=Le("relay"),OF=Le("render"),$ee=Le("scale"),Co=Le("sieve"),Aee=Le("sortitems"),RF=Le("viewlayout"),kee=Le("values");let Cee=0;const LF={min:"min",max:"max",count:"sum"};function Fee(e,t){const n=e.type||"linear";A$(n)||R("Unrecognized scale type: "+H(n)),t.addScale(e.name,{type:n,domain:void 0})}function Mee(e,t){const n=t.getScale(e.name).params;let r;n.domain=PF(e.domain,e,t),e.range!=null&&(n.range=zF(e,t,n)),e.interpolate!=null&&Bee(e.interpolate,n),e.nice!=null&&(n.nice=zee(e.nice,t)),e.bins!=null&&(n.bins=Iee(e.bins,t));for(r in e)ie(n,r)||r==="name"||(n[r]=Xn(e[r],t))}function Xn(e,t){return V(e)?e.signal?t.signalRef(e.signal):R("Unsupported object: "+H(e)):e}function fh(e,t){return e.signal?t.signalRef(e.signal):e.map(n=>Xn(n,t))}function sp(e){R("Can not find data set: "+H(e))}function PF(e,t,n){if(!e){(t.domainMin!=null||t.domainMax!=null)&&R("No scale domain defined for domainMin/domainMax to override.");return}return e.signal?n.signalRef(e.signal):(P(e)?Tee:e.fields?Dee:Nee)(e,t,n)}function Tee(e,t,n){return e.map(r=>Xn(r,n))}function Nee(e,t,n){const r=n.getData(e.data);return r||sp(e.data),Fu(t.type)?r.valuesRef(n,e.field,IF(e.sort,!1)):F$(t.type)?r.domainRef(n,e.field):r.extentRef(n,e.field)}function Dee(e,t,n){const r=e.data,i=e.fields.reduce((a,s)=>(s=X(s)?{data:r,field:s}:P(s)||s.signal?Oee(s,n):s,a.push(s),a),[]);return(Fu(t.type)?Ree:F$(t.type)?Lee:Pee)(e,n,i)}function Oee(e,t){const n="_:vega:_"+Cee++,r=Nr({});if(P(e))r.value={$ingest:e};else if(e.signal){const i="setdata("+H(n)+","+e.signal+")";r.params.input=t.signalRef(i)}return t.addDataPipeline(n,[r,Co({})]),{data:n,field:"data"}}function Ree(e,t,n){const r=IF(e.sort,!0);let i,a;const s=n.map(c=>{const l=t.getData(c.data);return l||sp(c.data),l.countsRef(t,c.field,r)}),o={groupby:dy,pulse:s};r&&(i=r.op||"count",a=r.field?ap(i,r.field):"count",o.ops=[LF[i]],o.fields=[t.fieldRef(a)],o.as=[a]),i=t.add(MF(o));const u=t.add(Nr({pulse:te(i)}));return a=t.add(kee({field:dy,sort:t.sortRef(r),pulse:te(u)})),te(a)}function IF(e,t){return e&&(!e.field&&!e.op?V(e)?e.field="key":e={field:"key"}:!e.field&&e.op!=="count"?R("No field provided for sort aggregate op: "+e.op):t&&e.field&&e.op&&!LF[e.op]&&R("Multiple domain scales can not be sorted using "+e.op)),e}function Lee(e,t,n){const r=n.map(i=>{const a=t.getData(i.data);return a||sp(i.data),a.domainRef(t,i.field)});return te(t.add(vee({values:r})))}function Pee(e,t,n){const r=n.map(i=>{const a=t.getData(i.data);return a||sp(i.data),a.extentRef(t,i.field)});return te(t.add(yee({extents:r})))}function Iee(e,t){return e.signal||P(e)?fh(e,t):t.objectProperty(e)}function zee(e,t){return e.signal?t.signalRef(e.signal):V(e)?{interval:Xn(e.interval),step:Xn(e.step)}:Xn(e)}function Bee(e,t){t.interpolate=Xn(e.type||e),e.gamma!=null&&(t.interpolateGamma=Xn(e.gamma))}function zF(e,t,n){const r=t.config.range;let i=e.range;if(i.signal)return t.signalRef(i.signal);if(X(i)){if(r&&ie(r,i))return e=ce({},e,{range:r[i]}),zF(e,t,n);i==="width"?i=[0,{signal:"width"}]:i==="height"?i=Fu(e.type)?[0,{signal:"height"}]:[{signal:"height"},0]:R("Unrecognized scale range value: "+H(i))}else if(i.scheme){n.scheme=P(i.scheme)?fh(i.scheme,t):Xn(i.scheme,t),i.extent&&(n.schemeExtent=fh(i.extent,t)),i.count&&(n.schemeCount=Xn(i.count,t));return}else if(i.step){n.rangeStep=Xn(i.step,t);return}else{if(Fu(e.type)&&!P(i))return PF(i,e,t);P(i)||R("Unsupported range type: "+H(i))}return i.map(a=>(P(a)?fh:Xn)(a,t))}function Uee(e,t){const n=t.config.projection||{},r={};for(const i in e)i!=="name"&&(r[i]=gy(e[i],i,t));for(const i in n)r[i]==null&&(r[i]=gy(n[i],i,t));t.addProjection(e.name,r)}function gy(e,t,n){return P(e)?e.map(r=>gy(r,t,n)):V(e)?e.signal?n.signalRef(e.signal):t==="fit"?e:R("Unsupported parameter object: "+H(e)):e}const Dr="top",gc="left",pc="right",Ha="bottom",BF="center",jee="vertical",qee="start",Wee="middle",Hee="end",py="index",C7="label",Gee="offset",Iu="perc",Yee="perc2",Kn="value",qf="guide-label",F7="guide-title",Xee="group-title",Vee="group-subtitle",U5="symbol",dh="gradient",my="discrete",by="size",Kee="shape",Jee="fill",Qee="stroke",Zee="strokeWidth",ete="strokeDash",tte="opacity",M7=[by,Kee,Jee,Qee,Zee,ete,tte],Wf={name:1,style:1,interactive:1},_e={value:0},Jn={value:1},op="group",UF="rect",T7="rule",nte="symbol",Fo="text";function of(e){return e.type=op,e.interactive=e.interactive||!1,e}function An(e,t){const n=(r,i)=>hr(e[r],hr(t[r],i));return n.isVertical=r=>jee===hr(e.direction,t.direction||(r?t.symbolDirection:t.gradientDirection)),n.gradientLength=()=>hr(e.gradientLength,t.gradientLength||t.gradientWidth),n.gradientThickness=()=>hr(e.gradientThickness,t.gradientThickness||t.gradientHeight),n.entryColumns=()=>hr(e.columns,hr(t.columns,+n.isVertical(!0))),n}function jF(e,t){const n=t&&(t.update&&t.update[e]||t.enter&&t.enter[e]);return n&&n.signal?n:n?n.value:null}function rte(e,t,n){const r=t.config.style[n];return r&&r[e]}function up(e,t,n){return`item.anchor === '${qee}' ? ${e} : item.anchor === '${Hee}' ? ${t} : ${n}`}const N7=up(H(gc),H(pc),H(BF));function ite(e){const t=e("tickBand");let n=e("tickOffset"),r,i;return t?t.signal?(r={signal:`(${t.signal}) === 'extent' ? 1 : 0.5`},i={signal:`(${t.signal}) === 'extent'`},V(n)||(n={signal:`(${t.signal}) === 'extent' ? 0 : ${n}`})):t==="extent"?(r=1,i=!0,n=0):(r=.5,i=!1):(r=e("bandPosition"),i=e("tickExtra")),{extra:i,band:r,offset:n}}function qF(e,t){return t?e?V(e)?Object.assign({},e,{offset:qF(e.offset,t)}):{value:e,offset:t}:t:e}function zn(e,t){return t?(e.name=t.name,e.style=t.style||e.style,e.interactive=!!t.interactive,e.encode=hc(e.encode,t,Wf)):e.interactive=!1,e}function ate(e,t,n,r){const i=An(e,n),a=i.isVertical(),s=i.gradientThickness(),o=i.gradientLength();let u,c,l,f,d;a?(c=[0,1],l=[0,0],f=s,d=o):(c=[0,0],l=[1,0],f=o,d=s);const h={enter:u={opacity:_e,x:_e,y:_e,width:mt(f),height:mt(d)},update:ce({},u,{opacity:Jn,fill:{gradient:t,start:c,stop:l}}),exit:{opacity:_e}};return Ct(h,{stroke:i("gradientStrokeColor"),strokeWidth:i("gradientStrokeWidth")},{opacity:i("gradientOpacity")}),zn({type:UF,role:NZ,encode:h},r)}function ste(e,t,n,r,i){const a=An(e,n),s=a.isVertical(),o=a.gradientThickness(),u=a.gradientLength();let c,l,f,d,h="";s?(c="y",f="y2",l="x",d="width",h="1-"):(c="x",f="x2",l="y",d="height");const g={opacity:_e,fill:{scale:t,field:Kn}};g[c]={signal:h+"datum."+Iu,mult:u},g[l]=_e,g[f]={signal:h+"datum."+Yee,mult:u},g[d]=mt(o);const p={enter:g,update:ce({},g,{opacity:Jn}),exit:{opacity:_e}};return Ct(p,{stroke:a("gradientStrokeColor"),strokeWidth:a("gradientStrokeWidth")},{opacity:a("gradientOpacity")}),zn({type:UF,role:MZ,key:Kn,from:i,encode:p},r)}const ote=`datum.${Iu}<=0?"${gc}":datum.${Iu}>=1?"${pc}":"${BF}"`,ute=`datum.${Iu}<=0?"${Ha}":datum.${Iu}>=1?"${Dr}":"${Wee}"`;function j5(e,t,n,r){const i=An(e,t),a=i.isVertical(),s=mt(i.gradientThickness()),o=i.gradientLength();let u=i("labelOverlap"),c,l,f,d,h="";const g={enter:c={opacity:_e},update:l={opacity:Jn,text:{field:C7}},exit:{opacity:_e}};return Ct(g,{fill:i("labelColor"),fillOpacity:i("labelOpacity"),font:i("labelFont"),fontSize:i("labelFontSize"),fontStyle:i("labelFontStyle"),fontWeight:i("labelFontWeight"),limit:hr(e.labelLimit,t.gradientLabelLimit)}),a?(c.align={value:"left"},c.baseline=l.baseline={signal:ute},f="y",d="x",h="1-"):(c.align=l.align={signal:ote},c.baseline={value:"top"},f="x",d="y"),c[f]=l[f]={signal:h+"datum."+Iu,mult:o},c[d]=l[d]=s,s.offset=hr(e.labelOffset,t.gradientLabelOffset)||0,u=u?{separation:i("labelSeparation"),method:u,order:"datum."+py}:void 0,zn({type:Fo,role:SF,style:qf,key:Kn,from:r,encode:g,overlap:u},n)}function cte(e,t,n,r,i){const a=An(e,t),s=n.entries,o=!!(s&&s.interactive),u=s?s.name:void 0,c=a("clipHeight"),l=a("symbolOffset"),f={data:"value"},d=`(${i}) ? datum.${Gee} : datum.${by}`,h=c?mt(c):{field:by},g=`datum.${py}`,p=`max(1, ${i})`;let m,b,y,v,x;h.mult=.5,m={enter:b={opacity:_e,x:{signal:d,mult:.5,offset:l},y:h},update:y={opacity:Jn,x:b.x,y:b.y},exit:{opacity:_e}};let _=null,E=null;e.fill||(_=t.symbolBaseFillColor,E=t.symbolBaseStrokeColor),Ct(m,{fill:a("symbolFillColor",_),shape:a("symbolType"),size:a("symbolSize"),stroke:a("symbolStrokeColor",E),strokeDash:a("symbolDash"),strokeDashOffset:a("symbolDashOffset"),strokeWidth:a("symbolStrokeWidth")},{opacity:a("symbolOpacity")}),M7.forEach(F=>{e[F]&&(y[F]=b[F]={scale:e[F],field:Kn})});const w=zn({type:nte,role:DZ,key:Kn,from:f,clip:c?!0:void 0,encode:m},n.symbols),S=mt(l);S.offset=a("labelOffset"),m={enter:b={opacity:_e,x:{signal:d,offset:S},y:h},update:y={opacity:Jn,text:{field:C7},x:b.x,y:b.y},exit:{opacity:_e}},Ct(m,{align:a("labelAlign"),baseline:a("labelBaseline"),fill:a("labelColor"),fillOpacity:a("labelOpacity"),font:a("labelFont"),fontSize:a("labelFontSize"),fontStyle:a("labelFontStyle"),fontWeight:a("labelFontWeight"),limit:a("labelLimit")});const $=zn({type:Fo,role:SF,style:qf,key:Kn,from:f,encode:m},n.labels);return m={enter:{noBound:{value:!c},width:_e,height:c?mt(c):_e,opacity:_e},exit:{opacity:_e},update:y={opacity:Jn,row:{signal:null},column:{signal:null}}},a.isVertical(!0)?(v=`ceil(item.mark.items.length / ${p})`,y.row.signal=`${g}%${v}`,y.column.signal=`floor(${g} / ${v})`,x={field:["row",g]}):(y.row.signal=`floor(${g} / ${p})`,y.column.signal=`${g} % ${p}`,x={field:g}),y.column.signal=`(${i})?${y.column.signal}:${g}`,r={facet:{data:r,name:"value",groupby:py}},of({role:$7,from:r,encode:hc(m,s,Wf),marks:[w,$],name:u,interactive:o,sort:x})}function lte(e,t){const n=An(e,t);return{align:n("gridAlign"),columns:n.entryColumns(),center:{row:!0,column:!1},padding:{row:n("rowPadding"),column:n("columnPadding")}}}const D7='item.orient === "left"',O7='item.orient === "right"',cp=`(${D7} || ${O7})`,fte=`datum.vgrad && ${cp}`,dte=up('"top"','"bottom"','"middle"'),hte=up('"right"','"left"','"center"'),gte=`datum.vgrad && ${O7} ? (${hte}) : (${cp} && !(datum.vgrad && ${D7})) ? "left" : ${N7}`,pte=`item._anchor || (${cp} ? "middle" : "start")`,mte=`${fte} ? (${D7} ? -90 : 90) : 0`,bte=`${cp} ? (datum.vgrad ? (${O7} ? "bottom" : "top") : ${dte}) : "top"`;function yte(e,t,n,r){const i=An(e,t),a={enter:{opacity:_e},update:{opacity:Jn,x:{field:{group:"padding"}},y:{field:{group:"padding"}}},exit:{opacity:_e}};return Ct(a,{orient:i("titleOrient"),_anchor:i("titleAnchor"),anchor:{signal:pte},angle:{signal:mte},align:{signal:gte},baseline:{signal:bte},text:e.title,fill:i("titleColor"),fillOpacity:i("titleOpacity"),font:i("titleFont"),fontSize:i("titleFontSize"),fontStyle:i("titleFontStyle"),fontWeight:i("titleFontWeight"),limit:i("titleLimit"),lineHeight:i("titleLineHeight")},{align:i("titleAlign"),baseline:i("titleBaseline")}),zn({type:Fo,role:OZ,style:F7,from:r,encode:a},n)}function vte(e,t){let n;return V(e)&&(e.signal?n=e.signal:e.path?n="pathShape("+q5(e.path)+")":e.sphere&&(n="geoShape("+q5(e.sphere)+', {type: "Sphere"})')),n?t.signalRef(n):!!e}function q5(e){return V(e)&&e.signal?e.signal:H(e)}function WF(e){const t=e.role||"";return t.startsWith("axis")||t.startsWith("legend")||t.startsWith("title")?t:e.type===op?$7:t||E7}function xte(e){return{marktype:e.type,name:e.name||void 0,role:e.role||WF(e),zindex:+e.zindex||void 0,aria:e.aria,description:e.description}}function _te(e,t){return e&&e.signal?t.signalRef(e.signal):e!==!1}function R7(e,t){const n=CE(e.type);n||R("Unrecognized transform type: "+H(e.type));const r=ip(n.type.toLowerCase(),null,HF(n,e,t));return e.signal&&t.addSignal(e.signal,t.proxy(r)),r.metadata=n.metadata||{},r}function HF(e,t,n){const r={},i=e.params.length;for(let a=0;aW5(e,a,n)):W5(e,i,n)}function W5(e,t,n){const r=e.type;if(ot(t))return G5(r)?R("Expression references can not be signals."):um(r)?n.fieldRef(t):Y5(r)?n.compareRef(t):n.signalRef(t.signal);{const i=e.expr||um(r);return i&&$te(t)?n.exprRef(t.expr,t.as):i&&Ate(t)?af(t.field,t.as):G5(r)?ui(t,n):kte(r)?te(n.getData(t).values):um(r)?af(t):Y5(r)?n.compareRef(t):t}}function Ete(e,t,n){return X(t.from)||R('Lookup "from" parameter must be a string literal.'),n.getData(t.from).lookupRef(n,t.key)}function Ste(e,t,n){const r=t[e.name];return e.array?(P(r)||R("Expected an array of sub-parameters. Instead: "+H(r)),r.map(i=>H5(e,i,n))):H5(e,r,n)}function H5(e,t,n){const r=e.params.length;let i;for(let s=0;se&&e.expr,Ate=e=>e&&e.field,kte=e=>e==="data",G5=e=>e==="expr",um=e=>e==="field",Y5=e=>e==="compare";function Cte(e,t,n){let r,i,a,s,o;return e?(r=e.facet)&&(t||R("Only group marks can be faceted."),r.field!=null?s=o=hh(r,n):(e.data?o=te(n.getData(e.data).aggregate):(a=R7(ce({type:"aggregate",groupby:Y(r.groupby)},r.aggregate),n),a.params.key=n.keyRef(r.groupby),a.params.pulse=hh(r,n),s=o=te(n.add(a))),i=n.keyRef(r.groupby,!0))):s=te(n.add(Nr(null,[{}]))),s||(s=hh(e,n)),{key:i,pulse:s,parent:o}}function hh(e,t){return e.$ref?e:e.data&&e.data.$ref?e.data:te(t.getData(e.data).output)}function uo(e,t,n,r,i){this.scope=e,this.input=t,this.output=n,this.values=r,this.aggregate=i,this.index={}}uo.fromEntries=function(e,t){const n=t.length,r=t[n-1],i=t[n-2];let a=t[0],s=null,o=1;for(a&&a.type==="load"&&(a=t[1]),e.add(t[0]);of??"null").join(",")+"),0)",l=ui(c,t);u.update=l.$expr,u.params=l.$params}function lp(e,t){const n=WF(e),r=e.type===op,i=e.from&&e.from.facet,a=e.overlap;let s=e.layout||n===$7||n===S7,o,u,c,l,f,d,h;const g=n===E7||s||i,p=Cte(e.from,r,t);u=t.add(lee({key:p.key||(e.key?af(e.key):void 0),pulse:p.pulse,clean:!r}));const m=te(u);u=c=t.add(Nr({pulse:m})),u=t.add(bee({markdef:xte(e),interactive:_te(e.interactive,t),clip:vte(e.clip,t),context:{$context:!0},groups:t.lookup(),parent:t.signals.parent?t.signalRef("parent"):null,index:t.markpath(),pulse:te(u)}));const b=te(u);u=l=t.add(NF(CF(e.encode,e.type,n,e.style,t,{mod:!1,pulse:b}))),u.params.parent=t.encode(),e.transform&&e.transform.forEach(E=>{const w=R7(E,t),S=w.metadata;(S.generates||S.changes)&&R("Mark transforms should not generate new data."),S.nomod||(l.params.mod=!0),w.params.pulse=te(u),t.add(u=w)}),e.sort&&(u=t.add(Aee({sort:t.compareRef(e.sort),pulse:te(u)})));const y=te(u);(i||s)&&(s=t.add(RF({layout:t.objectProperty(e.layout),legends:t.legends,mark:b,pulse:y})),d=te(s));const v=t.add(TF({mark:b,pulse:d||y}));h=te(v),r&&(g&&(o=t.operators,o.pop(),s&&o.pop()),t.pushState(y,d||h,m),i?Fte(e,t,p):g?Mte(e,t,p):t.parse(e),t.popState(),g&&(s&&o.push(s),o.push(v))),a&&(h=Tte(a,h,t));const x=t.add(OF({pulse:h})),_=t.add(Co({pulse:te(x)},void 0,t.parent()));e.name!=null&&(f=e.name,t.addData(f,new uo(t,c,x,_)),e.on&&e.on.forEach(E=>{(E.insert||E.remove||E.toggle)&&R("Marks only support modify triggers."),YF(E,t,f)}))}function Tte(e,t,n){const r=e.method,i=e.bound,a=e.separation,s={separation:ot(a)?n.signalRef(a.signal):a,method:ot(r)?n.signalRef(r.signal):r,pulse:t};if(e.order&&(s.sort=n.compareRef({field:e.order})),i){const o=i.tolerance;s.boundTolerance=ot(o)?n.signalRef(o.signal):+o,s.boundScale=n.scaleRef(i.scale),s.boundOrient=i.orient}return te(n.add(xee(s)))}function Nte(e,t){const n=t.config.legend,r=e.encode||{},i=An(e,n),a=r.legend||{},s=a.name||void 0,o=a.interactive,u=a.style,c={};let l=0,f,d,h;M7.forEach(v=>e[v]?(c[v]=e[v],l=l||e[v]):0),l||R("Missing valid scale for legend.");const g=Dte(e,t.scaleType(l)),p={title:e.title!=null,scales:c,type:g,vgrad:g!=="symbol"&&i.isVertical()},m=te(t.add(Nr(null,[p]))),b={enter:{x:{value:0},y:{value:0}}},y=te(t.add(pee(d={type:g,scale:t.scaleRef(l),count:t.objectProperty(i("tickCount")),limit:t.property(i("symbolLimit")),values:t.objectProperty(e.values),minstep:t.property(e.tickMinStep),formatType:t.property(e.formatType),formatSpecifier:t.property(e.format)})));return g===dh?(h=[ate(e,l,n,r.gradient),j5(e,n,r.labels,y)],d.count=d.count||t.signalRef(`max(2,2*floor((${Gs(i.gradientLength())})/100))`)):g===my?h=[ste(e,l,n,r.gradient,y),j5(e,n,r.labels,y)]:(f=lte(e,n),h=[cte(e,n,r,y,Gs(f.columns))],d.size=Lte(e,t,h[0].marks)),h=[of({role:TZ,from:m,encode:b,marks:h,layout:f,interactive:o})],p.title&&h.push(yte(e,n,r.title,m)),lp(of({role:FZ,from:m,encode:hc(Rte(i,e,n),a,Wf),marks:h,aria:i("aria"),description:i("description"),zindex:i("zindex"),name:s,interactive:o,style:u}),t)}function Dte(e,t){let n=e.type||U5;return!e.type&&Ote(e)===1&&(e.fill||e.stroke)&&(n=T4(t)?dh:ob(t)?my:U5),n!==dh?n:ob(t)?my:dh}function Ote(e){return M7.reduce((t,n)=>t+(e[n]?1:0),0)}function Rte(e,t,n){const r={enter:{},update:{}};return Ct(r,{orient:e("orient"),offset:e("offset"),padding:e("padding"),titlePadding:e("titlePadding"),cornerRadius:e("cornerRadius"),fill:e("fillColor"),stroke:e("strokeColor"),strokeWidth:n.strokeWidth,strokeDash:n.strokeDash,x:e("legendX"),y:e("legendY"),format:t.format,formatType:t.formatType}),r}function Lte(e,t,n){const r=Gs(V5("size",e,n)),i=Gs(V5("strokeWidth",e,n)),a=Gs(Pte(n[1].encode,t,qf));return ui(`max(ceil(sqrt(${r})+${i}),${a})`,t)}function V5(e,t,n){return t[e]?`scale("${t[e]}",datum)`:jF(e,n[0].encode)}function Pte(e,t,n){return jF("fontSize",e)||rte("fontSize",t,n)}const Ite=`item.orient==="${gc}"?-90:item.orient==="${pc}"?90:0`;function zte(e,t){e=X(e)?{text:e}:e;const n=An(e,t.config.title),r=e.encode||{},i=r.group||{},a=i.name||void 0,s=i.interactive,o=i.style,u=[],c={},l=te(t.add(Nr(null,[c])));return u.push(jte(e,n,Bte(e),l)),e.subtitle&&u.push(qte(e,n,r.subtitle,l)),lp(of({role:RZ,from:l,encode:Ute(n,i),marks:u,aria:n("aria"),description:n("description"),zindex:n("zindex"),name:a,interactive:s,style:o}),t)}function Bte(e){const t=e.encode;return t&&t.title||ce({name:e.name,interactive:e.interactive,style:e.style},t)}function Ute(e,t){const n={enter:{},update:{}};return Ct(n,{orient:e("orient"),anchor:e("anchor"),align:{signal:N7},angle:{signal:Ite},limit:e("limit"),frame:e("frame"),offset:e("offset")||0,padding:e("subtitlePadding")}),hc(n,t,Wf)}function jte(e,t,n,r){const i={value:0},a=e.text,s={enter:{opacity:i},update:{opacity:{value:1}},exit:{opacity:i}};return Ct(s,{text:a,align:{signal:"item.mark.group.align"},angle:{signal:"item.mark.group.angle"},limit:{signal:"item.mark.group.limit"},baseline:"top",dx:t("dx"),dy:t("dy"),fill:t("color"),font:t("font"),fontSize:t("fontSize"),fontStyle:t("fontStyle"),fontWeight:t("fontWeight"),lineHeight:t("lineHeight")},{align:t("align"),angle:t("angle"),baseline:t("baseline")}),zn({type:Fo,role:LZ,style:Xee,from:r,encode:s},n)}function qte(e,t,n,r){const i={value:0},a=e.subtitle,s={enter:{opacity:i},update:{opacity:{value:1}},exit:{opacity:i}};return Ct(s,{text:a,align:{signal:"item.mark.group.align"},angle:{signal:"item.mark.group.angle"},limit:{signal:"item.mark.group.limit"},baseline:"top",dx:t("dx"),dy:t("dy"),fill:t("subtitleColor"),font:t("subtitleFont"),fontSize:t("subtitleFontSize"),fontStyle:t("subtitleFontStyle"),fontWeight:t("subtitleFontWeight"),lineHeight:t("subtitleLineHeight")},{align:t("align"),angle:t("angle"),baseline:t("baseline")}),zn({type:Fo,role:PZ,style:Vee,from:r,encode:s},n)}function Wte(e,t){const n=[];e.transform&&e.transform.forEach(r=>{n.push(R7(r,t))}),e.on&&e.on.forEach(r=>{YF(r,t,e.name)}),t.addDataPipeline(e.name,Hte(e,t,n))}function Hte(e,t,n){const r=[];let i=null,a=!1,s=!1,o,u,c,l,f;for(e.values?ot(e.values)||lh(e.format)?(r.push(K5(t,e)),r.push(i=ys())):r.push(i=ys({$ingest:e.values,$format:e.format})):e.url?lh(e.url)||lh(e.format)?(r.push(K5(t,e)),r.push(i=ys())):r.push(i=ys({$request:e.url,$format:e.format})):e.source&&(i=o=Y(e.source).map(d=>te(t.getData(d).output)),r.push(null)),u=0,c=n.length;ue===Ha||e===Dr,fp=(e,t,n)=>ot(e)?Vte(e.signal,t,n):e===gc||e===Dr?t:n,bt=(e,t,n)=>ot(e)?Yte(e.signal,t,n):XF(e)?t:n,Er=(e,t,n)=>ot(e)?Xte(e.signal,t,n):XF(e)?n:t,VF=(e,t,n)=>ot(e)?Kte(e.signal,t,n):e===Dr?{value:t}:{value:n},Gte=(e,t,n)=>ot(e)?Jte(e.signal,t,n):e===pc?{value:t}:{value:n},Yte=(e,t,n)=>KF(`${e} === '${Dr}' || ${e} === '${Ha}'`,t,n),Xte=(e,t,n)=>KF(`${e} !== '${Dr}' && ${e} !== '${Ha}'`,t,n),Vte=(e,t,n)=>L7(`${e} === '${gc}' || ${e} === '${Dr}'`,t,n),Kte=(e,t,n)=>L7(`${e} === '${Dr}'`,t,n),Jte=(e,t,n)=>L7(`${e} === '${pc}'`,t,n),KF=(e,t,n)=>(t=t!=null?mt(t):t,n=n!=null?mt(n):n,J5(t)&&J5(n)?(t=t?t.signal||H(t.value):null,n=n?n.signal||H(n.value):null,{signal:`${e} ? (${t}) : (${n})`}):[ce({test:e},t)].concat(n||[])),J5=e=>e==null||Object.keys(e).length===1,L7=(e,t,n)=>({signal:`${e} ? (${ou(t)}) : (${ou(n)})`}),Qte=(e,t,n,r,i)=>({signal:(r!=null?`${e} === '${gc}' ? (${ou(r)}) : `:"")+(n!=null?`${e} === '${Ha}' ? (${ou(n)}) : `:"")+(i!=null?`${e} === '${pc}' ? (${ou(i)}) : `:"")+(t!=null?`${e} === '${Dr}' ? (${ou(t)}) : `:"")+"(null)"}),ou=e=>ot(e)?e.signal:e==null?null:H(e),Zte=(e,t)=>t===0?0:ot(e)?{signal:`(${e.signal}) * ${t}`}:{value:e*t},du=(e,t)=>{const n=e.signal;return n&&n.endsWith("(null)")?{signal:n.slice(0,-6)+t.signal}:e};function Yo(e,t,n,r){let i;if(t&&ie(t,e))return t[e];if(ie(n,e))return n[e];if(e.startsWith("title")){switch(e){case"titleColor":i="fill";break;case"titleFont":case"titleFontSize":case"titleFontWeight":i=e[5].toLowerCase()+e.slice(6)}return r[F7][i]}else if(e.startsWith("label")){switch(e){case"labelColor":i="fill";break;case"labelFont":case"labelFontSize":i=e[5].toLowerCase()+e.slice(6)}return r[qf][i]}return null}function Q5(e){const t={};for(const n of e)if(n)for(const r in n)t[r]=1;return Object.keys(t)}function ene(e,t){var n=t.config,r=n.style,i=n.axis,a=t.scaleType(e.scale)==="band"&&n.axisBand,s=e.orient,o,u,c;if(ot(s)){const f=Q5([n.axisX,n.axisY]),d=Q5([n.axisTop,n.axisBottom,n.axisLeft,n.axisRight]);o={};for(c of f)o[c]=bt(s,Yo(c,n.axisX,i,r),Yo(c,n.axisY,i,r));u={};for(c of d)u[c]=Qte(s.signal,Yo(c,n.axisTop,i,r),Yo(c,n.axisBottom,i,r),Yo(c,n.axisLeft,i,r),Yo(c,n.axisRight,i,r))}else o=s===Dr||s===Ha?n.axisX:n.axisY,u=n["axis"+s[0].toUpperCase()+s.slice(1)];return o||u||a?ce({},i,o,u,a):i}function tne(e,t,n,r){const i=An(e,t),a=e.orient;let s,o;const u={enter:s={opacity:_e},update:o={opacity:Jn},exit:{opacity:_e}};Ct(u,{stroke:i("domainColor"),strokeCap:i("domainCap"),strokeDash:i("domainDash"),strokeDashOffset:i("domainDashOffset"),strokeWidth:i("domainWidth"),strokeOpacity:i("domainOpacity")});const c=Z5(e,0),l=Z5(e,1);return s.x=o.x=bt(a,c,_e),s.x2=o.x2=bt(a,l),s.y=o.y=Er(a,c,_e),s.y2=o.y2=Er(a,l),zn({type:T7,role:SZ,from:r,encode:u},n)}function Z5(e,t){return{scale:e.scale,range:t}}function nne(e,t,n,r,i){const a=An(e,t),s=e.orient,o=e.gridScale,u=fp(s,1,-1),c=rne(e.offset,u);let l,f,d;const h={enter:l={opacity:_e},update:d={opacity:Jn},exit:f={opacity:_e}};Ct(h,{stroke:a("gridColor"),strokeCap:a("gridCap"),strokeDash:a("gridDash"),strokeDashOffset:a("gridDashOffset"),strokeOpacity:a("gridOpacity"),strokeWidth:a("gridWidth")});const g={scale:e.scale,field:Kn,band:i.band,extra:i.extra,offset:i.offset,round:a("tickRound")},p=bt(s,{signal:"height"},{signal:"width"}),m=o?{scale:o,range:0,mult:u,offset:c}:{value:0,offset:c},b=o?{scale:o,range:1,mult:u,offset:c}:ce(p,{mult:u,offset:c});return l.x=d.x=bt(s,g,m),l.y=d.y=Er(s,g,m),l.x2=d.x2=Er(s,b),l.y2=d.y2=bt(s,b),f.x=bt(s,g),f.y=Er(s,g),zn({type:T7,role:$Z,key:Kn,from:r,encode:h},n)}function rne(e,t){if(t!==1)if(!V(e))e=ot(t)?{signal:`(${t.signal}) * (${e||0})`}:t*(e||0);else{let n=e=ce({},e);for(;n.mult!=null;)if(V(n.mult))n=n.mult=ce({},n.mult);else return n.mult=ot(t)?{signal:`(${n.mult}) * (${t.signal})`}:n.mult*t,e;n.mult=t}return e}function ine(e,t,n,r,i,a){const s=An(e,t),o=e.orient,u=fp(o,-1,1);let c,l,f;const d={enter:c={opacity:_e},update:f={opacity:Jn},exit:l={opacity:_e}};Ct(d,{stroke:s("tickColor"),strokeCap:s("tickCap"),strokeDash:s("tickDash"),strokeDashOffset:s("tickDashOffset"),strokeOpacity:s("tickOpacity"),strokeWidth:s("tickWidth")});const h=mt(i);h.mult=u;const g={scale:e.scale,field:Kn,band:a.band,extra:a.extra,offset:a.offset,round:s("tickRound")};return f.y=c.y=bt(o,_e,g),f.y2=c.y2=bt(o,h),l.x=bt(o,g),f.x=c.x=Er(o,_e,g),f.x2=c.x2=Er(o,h),l.y=Er(o,g),zn({type:T7,role:kZ,key:Kn,from:r,encode:d},n)}function cm(e,t,n,r,i){return{signal:'flush(range("'+e+'"), scale("'+e+'", datum.value), '+t+","+n+","+r+","+i+")"}}function ane(e,t,n,r,i,a){const s=An(e,t),o=e.orient,u=e.scale,c=fp(o,-1,1),l=Gs(s("labelFlush")),f=Gs(s("labelFlushOffset")),d=s("labelAlign"),h=s("labelBaseline");let g=l===0||!!l,p;const m=mt(i);m.mult=c,m.offset=mt(s("labelPadding")||0),m.offset.mult=c;const b={scale:u,field:Kn,band:.5,offset:qF(a.offset,s("labelOffset"))},y=bt(o,g?cm(u,l,'"left"','"right"','"center"'):{value:"center"},Gte(o,"left","right")),v=bt(o,VF(o,"bottom","top"),g?cm(u,l,'"top"','"bottom"','"middle"'):{value:"middle"}),x=cm(u,l,`-(${f})`,f,0);g=g&&f;const _={opacity:_e,x:bt(o,b,m),y:Er(o,b,m)},E={enter:_,update:p={opacity:Jn,text:{field:C7},x:_.x,y:_.y,align:y,baseline:v},exit:{opacity:_e,x:_.x,y:_.y}};Ct(E,{dx:!d&&g?bt(o,x):null,dy:!h&&g?Er(o,x):null}),Ct(E,{angle:s("labelAngle"),fill:s("labelColor"),fillOpacity:s("labelOpacity"),font:s("labelFont"),fontSize:s("labelFontSize"),fontWeight:s("labelFontWeight"),fontStyle:s("labelFontStyle"),limit:s("labelLimit"),lineHeight:s("labelLineHeight")},{align:d,baseline:h});const w=s("labelBound");let S=s("labelOverlap");return S=S||w?{separation:s("labelSeparation"),method:S,order:"datum.index",bound:w?{scale:u,orient:o,tolerance:w}:null}:void 0,p.align!==y&&(p.align=du(p.align,y)),p.baseline!==v&&(p.baseline=du(p.baseline,v)),zn({type:Fo,role:AZ,style:qf,key:Kn,from:r,encode:E,overlap:S},n)}function sne(e,t,n,r){const i=An(e,t),a=e.orient,s=fp(a,-1,1);let o,u;const c={enter:o={opacity:_e,anchor:mt(i("titleAnchor",null)),align:{signal:N7}},update:u=ce({},o,{opacity:Jn,text:mt(e.title)}),exit:{opacity:_e}},l={signal:`lerp(range("${e.scale}"), ${up(0,1,.5)})`};return u.x=bt(a,l),u.y=Er(a,l),o.angle=bt(a,_e,Zte(s,90)),o.baseline=bt(a,VF(a,Ha,Dr),{value:Ha}),u.angle=o.angle,u.baseline=o.baseline,Ct(c,{fill:i("titleColor"),fillOpacity:i("titleOpacity"),font:i("titleFont"),fontSize:i("titleFontSize"),fontStyle:i("titleFontStyle"),fontWeight:i("titleFontWeight"),limit:i("titleLimit"),lineHeight:i("titleLineHeight")},{align:i("titleAlign"),angle:i("titleAngle"),baseline:i("titleBaseline")}),one(i,a,c,n),c.update.align=du(c.update.align,o.align),c.update.angle=du(c.update.angle,o.angle),c.update.baseline=du(c.update.baseline,o.baseline),zn({type:Fo,role:CZ,style:F7,from:r,encode:c},n)}function one(e,t,n,r){const i=(o,u)=>o!=null?(n.update[u]=du(mt(o),n.update[u]),!1):!eu(u,r),a=i(e("titleX"),"x"),s=i(e("titleY"),"y");n.enter.auto=s===a?mt(s):bt(t,mt(s),mt(a))}function une(e,t){const n=ene(e,t),r=e.encode||{},i=r.axis||{},a=i.name||void 0,s=i.interactive,o=i.style,u=An(e,n),c=ite(u),l={scale:e.scale,ticks:!!u("ticks"),labels:!!u("labels"),grid:!!u("grid"),domain:!!u("domain"),title:e.title!=null},f=te(t.add(Nr({},[l]))),d=te(t.add(cee({scale:t.scaleRef(e.scale),extra:t.property(c.extra),count:t.objectProperty(e.tickCount),values:t.objectProperty(e.values),minstep:t.property(e.tickMinStep),formatType:t.property(e.formatType),formatSpecifier:t.property(e.format)}))),h=[];let g;return l.grid&&h.push(nne(e,n,r.grid,d,c)),l.ticks&&(g=u("tickSize"),h.push(ine(e,n,r.ticks,d,g,c))),l.labels&&(g=l.ticks?g:0,h.push(ane(e,n,r.labels,d,g,c))),l.domain&&h.push(tne(e,n,r.domain,f)),l.title&&h.push(sne(e,n,r.title,f)),lp(of({role:EZ,from:f,encode:hc(cne(u,e),i,Wf),marks:h,aria:u("aria"),description:u("description"),zindex:u("zindex"),name:a,interactive:s,style:o}),t)}function cne(e,t){const n={enter:{},update:{}};return Ct(n,{orient:e("orient"),offset:e("offset")||0,position:hr(t.position,0),titlePadding:e("titlePadding"),minExtent:e("minExtent"),maxExtent:e("maxExtent"),range:{signal:`abs(span(range("${t.scale}")))`},translate:e("translate"),format:t.format,formatType:t.formatType}),n}function JF(e,t,n){const r=Y(e.signals),i=Y(e.scales);return n||r.forEach(a=>FF(a,t)),Y(e.projections).forEach(a=>Uee(a,t)),i.forEach(a=>Fee(a,t)),Y(e.data).forEach(a=>Wte(a,t)),i.forEach(a=>Mee(a,t)),(n||r).forEach(a=>uee(a,t)),Y(e.axes).forEach(a=>une(a,t)),Y(e.marks).forEach(a=>lp(a,t)),Y(e.legends).forEach(a=>Nte(a,t)),e.title&&zte(e.title,t),t.parseLambdas(),t}const lne=e=>hc({enter:{x:{value:0},y:{value:0}},update:{width:{signal:"width"},height:{signal:"height"}}},e);function fne(e,t){const n=t.config,r=te(t.root=t.add(T0())),i=dne(e,n);i.forEach(c=>FF(c,t)),t.description=e.description||n.description,t.eventConfig=n.events,t.legends=t.objectProperty(n.legend&&n.legend.layout),t.locale=n.locale;const a=t.add(Nr()),s=t.add(NF(CF(lne(e.encode),op,S7,e.style,t,{pulse:te(a)}))),o=t.add(RF({layout:t.objectProperty(e.layout),legends:t.legends,autosize:t.signalRef("autosize"),mark:r,pulse:te(s)}));t.operators.pop(),t.pushState(te(s),te(o),null),JF(e,t,i),t.operators.push(o);let u=t.add(TF({mark:r,pulse:te(o)}));return u=t.add(OF({pulse:te(u)})),u=t.add(Co({pulse:te(u)})),t.addData("root",new uo(t,a,a,u)),t}function jc(e,t){return t&&t.signal?{name:e,update:t.signal}:{name:e,value:t}}function dne(e,t){const n=s=>hr(e[s],t[s]),r=[jc("background",n("background")),jc("autosize",xZ(n("autosize"))),jc("padding",wZ(n("padding"))),jc("width",n("width")||0),jc("height",n("height")||0)],i=r.reduce((s,o)=>(s[o.name]=o,s),{}),a={};return Y(e.signals).forEach(s=>{ie(i,s.name)?s=ce(i[s.name],s):r.push(s),a[s.name]=s}),Y(t.signals).forEach(s=>{!ie(a,s.name)&&!ie(i,s.name)&&r.push(s)}),r}function QF(e,t){this.config=e||{},this.options=t||{},this.bindings=[],this.field={},this.signals={},this.lambdas={},this.scales={},this.events={},this.data={},this.streams=[],this.updates=[],this.operators=[],this.eventConfig=null,this.locale=null,this._id=0,this._subid=0,this._nextsub=[0],this._parent=[],this._encode=[],this._lookup=[],this._markpath=[]}function ex(e){this.config=e.config,this.options=e.options,this.legends=e.legends,this.field=Object.create(e.field),this.signals=Object.create(e.signals),this.lambdas=Object.create(e.lambdas),this.scales=Object.create(e.scales),this.events=Object.create(e.events),this.data=Object.create(e.data),this.streams=[],this.updates=[],this.operators=[],this._id=0,this._subid=++e._nextsub[0],this._nextsub=e._nextsub,this._parent=e._parent.slice(),this._encode=e._encode.slice(),this._lookup=e._lookup.slice(),this._markpath=e._markpath}QF.prototype=ex.prototype={parse(e){return JF(e,this)},fork(){return new ex(this)},isSubscope(){return this._subid>0},toRuntime(){return this.finish(),{description:this.description,operators:this.operators,streams:this.streams,updates:this.updates,bindings:this.bindings,eventConfig:this.eventConfig,locale:this.locale}},id(){return(this._subid?this._subid+":":0)+this._id++},add(e){return this.operators.push(e),e.id=this.id(),e.refs&&(e.refs.forEach(t=>{t.$ref=e.id}),e.refs=null),e},proxy(e){const t=e instanceof fy?te(e):e;return this.add(Eee({value:t}))},addStream(e){return this.streams.push(e),e.id=this.id(),e},addUpdate(e){return this.updates.push(e),e},finish(){let e,t;this.root&&(this.root.root=!0);for(e in this.signals)this.signals[e].signal=e;for(e in this.scales)this.scales[e].scale=e;function n(r,i,a){let s,o;r&&(s=r.data||(r.data={}),o=s[i]||(s[i]=[]),o.push(a))}for(e in this.data){t=this.data[e],n(t.input,e,"input"),n(t.output,e,"output"),n(t.values,e,"values");for(const r in t.index)n(t.index[r],e,"index:"+r)}return this},pushState(e,t,n){this._encode.push(te(this.add(Co({pulse:e})))),this._parent.push(t),this._lookup.push(n?te(this.proxy(n)):null),this._markpath.push(-1)},popState(){this._encode.pop(),this._parent.pop(),this._lookup.pop(),this._markpath.pop()},parent(){return xe(this._parent)},encode(){return xe(this._encode)},lookup(){return xe(this._lookup)},markpath(){const e=this._markpath;return++e[e.length-1]},fieldRef(e,t){if(X(e))return af(e,t);e.signal||R("Unsupported field reference: "+H(e));const n=e.signal;let r=this.field[n];if(!r){const i={name:this.signalRef(n)};t&&(i.as=t),this.field[n]=r=te(this.add(hee(i)))}return r},compareRef(e){let t=!1;const n=a=>ot(a)?(t=!0,this.signalRef(a.signal)):QZ(a)?(t=!0,this.exprRef(a.expr)):a,r=Y(e.field).map(n),i=Y(e.order).map(n);return t?te(this.add(B5({fields:r,orders:i}))):I5(r,i)},keyRef(e,t){let n=!1;const r=a=>ot(a)?(n=!0,te(i[a.signal])):a,i=this.signals;return e=Y(e).map(r),n?te(this.add(gee({fields:e,flat:t}))):XZ(e,t)},sortRef(e){if(!e)return e;const t=ap(e.op,e.field),n=e.order||VZ;return n.signal?te(this.add(B5({fields:t,orders:this.signalRef(n.signal)}))):I5(t,n)},event(e,t){const n=e+":"+t;if(!this.events[n]){const r=this.id();this.streams.push({id:r,source:e,type:t}),this.events[n]=r}return this.events[n]},hasOwnSignal(e){return ie(this.signals,e)},addSignal(e,t){this.hasOwnSignal(e)&&R("Duplicate signal name: "+H(e));const n=t instanceof fy?t:this.add(T0(t));return this.signals[e]=n},getSignal(e){return this.signals[e]||R("Unrecognized signal name: "+H(e)),this.signals[e]},signalRef(e){return this.signals[e]?te(this.signals[e]):(ie(this.lambdas,e)||(this.lambdas[e]=this.add(T0(null))),te(this.lambdas[e]))},parseLambdas(){const e=Object.keys(this.lambdas);for(let t=0,n=e.length;t0?",":"")+(V(i)?i.signal||P7(i):H(i))}return n+"]"}function gne(e){let t="{",n=0,r,i;for(r in e)i=e[r],t+=(++n>1?",":"")+H(r)+":"+(V(i)?i.signal||P7(i):H(i));return t+"}"}function pne(){const e="sans-serif",r="#4c78a8",i="#000",a="#888",s="#ddd";return{description:"Vega visualization",padding:0,autosize:"pad",background:null,events:{defaults:{allow:["wheel"]}},group:null,mark:null,arc:{fill:r},area:{fill:r},image:null,line:{stroke:r,strokeWidth:2},path:{stroke:r},rect:{fill:r},rule:{stroke:i},shape:{stroke:r},symbol:{fill:r,size:64},text:{fill:i,font:e,fontSize:11},trail:{fill:r,size:2},style:{"guide-label":{fill:i,font:e,fontSize:10},"guide-title":{fill:i,font:e,fontSize:11,fontWeight:"bold"},"group-title":{fill:i,font:e,fontSize:13,fontWeight:"bold"},"group-subtitle":{fill:i,font:e,fontSize:12},point:{size:30,strokeWidth:2,shape:"circle"},circle:{size:30,strokeWidth:2},square:{size:30,strokeWidth:2,shape:"square"},cell:{fill:"transparent",stroke:s},view:{fill:"transparent"}},title:{orient:"top",anchor:"middle",offset:4,subtitlePadding:3},axis:{minExtent:0,maxExtent:200,bandPosition:.5,domain:!0,domainWidth:1,domainColor:a,grid:!1,gridWidth:1,gridColor:s,labels:!0,labelAngle:0,labelLimit:180,labelOffset:0,labelPadding:2,ticks:!0,tickColor:a,tickOffset:0,tickRound:!0,tickSize:5,tickWidth:1,titlePadding:4},axisBand:{tickOffset:-.5},projection:{type:"mercator"},legend:{orient:"right",padding:0,gridAlign:"each",columnPadding:10,rowPadding:2,symbolDirection:"vertical",gradientDirection:"vertical",gradientLength:200,gradientThickness:16,gradientStrokeColor:s,gradientStrokeWidth:0,gradientLabelOffset:2,labelAlign:"left",labelBaseline:"middle",labelLimit:160,labelOffset:4,labelOverlap:!0,symbolLimit:30,symbolType:"circle",symbolSize:100,symbolOffset:0,symbolStrokeWidth:1.5,symbolBaseFillColor:"transparent",symbolBaseStrokeColor:a,titleLimit:180,titleOrient:"top",titlePadding:5,layout:{offset:18,direction:"horizontal",left:{direction:"vertical"},right:{direction:"vertical"}}},range:{category:{scheme:"tableau10"},ordinal:{scheme:"blues"},heatmap:{scheme:"yellowgreenblue"},ramp:{scheme:"blues"},diverging:{scheme:"blueorange",extent:[1,0]},symbol:["circle","square","triangle-up","cross","diamond","triangle-right","triangle-down","triangle-left"]}}}function mne(e,t,n){return V(e)||R("Input Vega specification must be an object."),t=ec(pne(),t,e.config),fne(e,new QF(t,n)).toRuntime()}var bne="5.28.0";ce(Su,wI,qq,_W,sG,eY,kX,sX,FX,ZX,cV,mV);const yne=Object.freeze(Object.defineProperty({__proto__:null,Bounds:nt,CanvasHandler:qa,CanvasRenderer:Xl,DATE:xn,DAY:Lt,DAYOFYEAR:si,Dataflow:uu,Debug:K_,Error:Hy,EventStream:fg,Gradient:W$,GroupItem:Og,HOURS:Ln,Handler:ja,HybridHandler:f9,HybridRenderer:Yh,Info:V_,Item:Dg,MILLISECONDS:kr,MINUTES:Pn,MONTH:Ut,Marks:In,MultiPulse:m2,None:X_,Operator:Pe,Parameters:lg,Pulse:Ma,QUARTER:vn,RenderType:wa,Renderer:Un,ResourceLoader:B4,SECONDS:er,SVGHandler:i9,SVGRenderer:jg,SVGStringRenderer:l9,Scenegraph:n9,TIME_UNITS:s2,Transform:N,View:mF,WEEK:at,Warn:Gy,YEAR:At,accessor:$n,accessorFields:Bt,accessorName:Je,array:Y,ascending:Z0,bandwidthNRD:x2,bin:TE,bootstrapCI:NE,boundClip:UA,boundContext:Tf,boundItem:hb,boundMark:cA,boundStroke:ea,changeset:So,clampRange:ow,codegenExpression:qC,compare:Jy,constant:Ht,cumulativeLogNormal:A2,cumulativeNormal:hg,cumulativeUniform:M2,dayofyear:Iw,debounce:Qy,defaultLocale:f2,definition:CE,densityLogNormal:$2,densityNormal:_2,densityUniform:F2,domChild:it,domClear:Wn,domCreate:xa,domFind:r9,dotbin:DE,error:R,expressionFunction:tt,extend:ce,extent:ri,extentIndex:uw,falsy:la,fastmap:nc,field:Qn,flush:cw,font:zg,fontFamily:Of,fontSize:gi,format:Hd,formatLocale:Sh,formats:g2,hasOwnProperty:ie,id:mf,identity:Wt,inferType:bE,inferTypes:yE,ingest:Fe,inherits:W,inrange:nu,interpolate:N4,interpolateColors:Tg,interpolateRange:M$,intersect:PA,intersectBoxLine:ru,intersectPath:U4,intersectPoint:j4,intersectRule:Q$,isArray:P,isBoolean:Za,isDate:Ca,isFunction:le,isIterable:lw,isNumber:we,isObject:V,isRegExp:fw,isString:X,isTuple:ug,key:Zy,lerp:dw,lineHeight:Ba,loader:sg,locale:pE,logger:Yy,lruCache:hw,markup:c9,merge:gw,mergeConfig:ec,multiLineOffset:Z4,one:Zu,pad:pw,panLinear:tw,panLog:nw,panPow:rw,panSymlog:iw,parse:mne,parseExpression:l7,parseSelector:as,path:yg,pathCurves:P4,pathEqual:jA,pathParse:Mu,pathRectangle:Y$,pathRender:Wl,pathSymbols:G$,pathTrail:X$,peek:xe,point:Ug,projection:M9,quantileLogNormal:k2,quantileNormal:gg,quantileUniform:T2,quantiles:y2,quantizeInterpolator:T$,quarter:aw,quartiles:v2,get random(){return tr},randomInteger:AP,randomKDE:E2,randomLCG:$P,randomLogNormal:RE,randomMixture:LE,randomNormal:w2,randomUniform:PE,read:_E,regressionConstant:N2,regressionExp:zE,regressionLinear:D2,regressionLoess:jE,regressionLog:IE,regressionPoly:UE,regressionPow:BE,regressionQuad:O2,renderModule:qg,repeat:Kc,resetDefaultLocale:wL,resetSVGClipId:K$,resetSVGDefIds:oq,responseType:xE,runtimeContext:rF,sampleCurve:mg,sampleLogNormal:S2,sampleNormal:dg,sampleUniform:C2,scale:Ae,sceneEqual:d9,sceneFromJSON:fA,scenePickVisit:Ih,sceneToJSON:lA,sceneVisit:Cr,sceneZOrder:q4,scheme:D4,serializeXML:CA,setHybridRendererOptions:rq,setRandom:EP,span:bf,splitAccessPath:di,stringValue:H,textMetrics:On,timeBin:tE,timeFloor:Hw,timeFormatLocale:Il,timeInterval:sc,timeOffset:Xw,timeSequence:Jw,timeUnitSpecifier:Pw,timeUnits:o2,toBoolean:e2,toDate:t2,toNumber:Pt,toSet:Ar,toString:n2,transform:FE,transforms:Su,truncate:mw,truthy:Zn,tupleid:ne,typeParsers:Vm,utcFloor:Gw,utcInterval:oc,utcOffset:Vw,utcSequence:Qw,utcdayofyear:Uw,utcquarter:sw,utcweek:jw,version:bne,visitArray:ha,week:zw,writeConfig:tc,zero:ya,zoomLinear:Xy,zoomLog:Vy,zoomPow:yh,zoomSymlog:Ky},Symbol.toStringTag,{value:"Module"}));function vne(e,t,n){let r;t.x2&&(t.x?(n&&e.x>e.x2&&(r=e.x,e.x=e.x2,e.x2=r),e.width=e.x2-e.x):e.x=e.x2-(e.width||0)),t.xc&&(e.x=e.xc-(e.width||0)/2),t.y2&&(t.y?(n&&e.y>e.y2&&(r=e.y,e.y=e.y2,e.y2=r),e.height=e.y2-e.y):e.y=e.y2-(e.height||0)),t.yc&&(e.y=e.yc-(e.height||0)/2)}var xne={NaN:NaN,E:Math.E,LN2:Math.LN2,LN10:Math.LN10,LOG2E:Math.LOG2E,LOG10E:Math.LOG10E,PI:Math.PI,SQRT1_2:Math.SQRT1_2,SQRT2:Math.SQRT2,MIN_VALUE:Number.MIN_VALUE,MAX_VALUE:Number.MAX_VALUE},_ne={"*":(e,t)=>e*t,"+":(e,t)=>e+t,"-":(e,t)=>e-t,"/":(e,t)=>e/t,"%":(e,t)=>e%t,">":(e,t)=>e>t,"<":(e,t)=>ee<=t,">=":(e,t)=>e>=t,"==":(e,t)=>e==t,"!=":(e,t)=>e!=t,"===":(e,t)=>e===t,"!==":(e,t)=>e!==t,"&":(e,t)=>e&t,"|":(e,t)=>e|t,"^":(e,t)=>e^t,"<<":(e,t)=>e<>":(e,t)=>e>>t,">>>":(e,t)=>e>>>t},wne={"+":e=>+e,"-":e=>-e,"~":e=>~e,"!":e=>!e};const Ene=Array.prototype.slice,vs=(e,t,n)=>{const r=n?n(t[0]):t[0];return r[e].apply(r,Ene.call(t,1))},Sne=(e,t,n,r,i,a,s)=>new Date(e,t||0,n??1,r||0,i||0,a||0,s||0);var $ne={isNaN:Number.isNaN,isFinite:Number.isFinite,abs:Math.abs,acos:Math.acos,asin:Math.asin,atan:Math.atan,atan2:Math.atan2,ceil:Math.ceil,cos:Math.cos,exp:Math.exp,floor:Math.floor,log:Math.log,max:Math.max,min:Math.min,pow:Math.pow,random:Math.random,round:Math.round,sin:Math.sin,sqrt:Math.sqrt,tan:Math.tan,clamp:(e,t,n)=>Math.max(t,Math.min(n,e)),now:Date.now,utc:Date.UTC,datetime:Sne,date:e=>new Date(e).getDate(),day:e=>new Date(e).getDay(),year:e=>new Date(e).getFullYear(),month:e=>new Date(e).getMonth(),hours:e=>new Date(e).getHours(),minutes:e=>new Date(e).getMinutes(),seconds:e=>new Date(e).getSeconds(),milliseconds:e=>new Date(e).getMilliseconds(),time:e=>new Date(e).getTime(),timezoneoffset:e=>new Date(e).getTimezoneOffset(),utcdate:e=>new Date(e).getUTCDate(),utcday:e=>new Date(e).getUTCDay(),utcyear:e=>new Date(e).getUTCFullYear(),utcmonth:e=>new Date(e).getUTCMonth(),utchours:e=>new Date(e).getUTCHours(),utcminutes:e=>new Date(e).getUTCMinutes(),utcseconds:e=>new Date(e).getUTCSeconds(),utcmilliseconds:e=>new Date(e).getUTCMilliseconds(),length:e=>e.length,join:function(){return vs("join",arguments)},indexof:function(){return vs("indexOf",arguments)},lastindexof:function(){return vs("lastIndexOf",arguments)},slice:function(){return vs("slice",arguments)},reverse:e=>e.slice().reverse(),parseFloat,parseInt,upper:e=>String(e).toUpperCase(),lower:e=>String(e).toLowerCase(),substring:function(){return vs("substring",arguments,String)},split:function(){return vs("split",arguments,String)},replace:function(){return vs("replace",arguments,String)},trim:e=>String(e).trim(),regexp:RegExp,test:(e,t)=>RegExp(e).test(t)};const Ane=["view","item","group","xy","x","y"],yy=new Set([Function,eval,setTimeout,setInterval]);typeof setImmediate=="function"&&yy.add(setImmediate);const kne={Literal:(e,t)=>t.value,Identifier:(e,t)=>{const n=t.name;return e.memberDepth>0?n:n==="datum"?e.datum:n==="event"?e.event:n==="item"?e.item:xne[n]||e.params["$"+n]},MemberExpression:(e,t)=>{const n=!t.computed,r=e(t.object);n&&(e.memberDepth+=1);const i=e(t.property);if(n&&(e.memberDepth-=1),yy.has(r[i])){console.error(`Prevented interpretation of member "${i}" which could lead to insecure code execution`);return}return r[i]},CallExpression:(e,t)=>{const n=t.arguments;let r=t.callee.name;return r.startsWith("_")&&(r=r.slice(1)),r==="if"?e(n[0])?e(n[1]):e(n[2]):(e.fn[r]||$ne[r]).apply(e.fn,n.map(e))},ArrayExpression:(e,t)=>t.elements.map(e),BinaryExpression:(e,t)=>_ne[t.operator](e(t.left),e(t.right)),UnaryExpression:(e,t)=>wne[t.operator](e(t.argument)),ConditionalExpression:(e,t)=>e(t.test)?e(t.consequent):e(t.alternate),LogicalExpression:(e,t)=>t.operator==="&&"?e(t.left)&&e(t.right):e(t.left)||e(t.right),ObjectExpression:(e,t)=>t.properties.reduce((n,r)=>{e.memberDepth+=1;const i=e(r.key);return e.memberDepth-=1,yy.has(e(r.value))?console.error(`Prevented interpretation of property "${i}" which could lead to insecure code execution`):n[i]=e(r.value),n},{})};function qc(e,t,n,r,i,a){const s=o=>kne[o.type](s,o);return s.memberDepth=0,s.fn=Object.create(t),s.params=n,s.datum=r,s.event=i,s.item=a,Ane.forEach(o=>s.fn[o]=function(){return i.vega[o](...arguments)}),s(e)}var Cne={operator(e,t){const n=t.ast,r=e.functions;return i=>qc(n,r,i)},parameter(e,t){const n=t.ast,r=e.functions;return(i,a)=>qc(n,r,a,i)},event(e,t){const n=t.ast,r=e.functions;return i=>qc(n,r,void 0,void 0,i)},handler(e,t){const n=t.ast,r=e.functions;return(i,a)=>{const s=a.item&&a.item.datum;return qc(n,r,i,s,a)}},encode(e,t){const{marktype:n,channels:r}=t,i=e.functions,a=n==="group"||n==="image"||n==="rect";return(s,o)=>{const u=s.datum;let c=0,l;for(const f in r)l=qc(r[f].ast,i,o,u,void 0,s),s[f]!==l&&(s[f]=l,c=1);return n!=="rule"&&vne(s,r,a),c}}};const Fne="vega-lite",Mne='Dominik Moritz, Kanit "Ham" Wongsuphasawat, Arvind Satyanarayan, Jeffrey Heer',Tne="5.16.3",Nne=["Kanit Wongsuphasawat (http://kanitw.yellowpigz.com)","Dominik Moritz (https://www.domoritz.de)","Arvind Satyanarayan (https://arvindsatya.com)","Jeffrey Heer (https://jheer.org)"],Dne="https://vega.github.io/vega-lite/",One="Vega-Lite is a concise high-level language for interactive visualization.",Rne=["vega","chart","visualization"],Lne="build/vega-lite.js",Pne="build/vega-lite.min.js",Ine="build/vega-lite.min.js",zne="build/src/index",Bne="build/src/index.d.ts",Une={vl2pdf:"./bin/vl2pdf",vl2png:"./bin/vl2png",vl2svg:"./bin/vl2svg",vl2vg:"./bin/vl2vg"},jne=["bin","build","src","vega-lite*","tsconfig.json"],qne={changelog:"conventional-changelog -p angular -r 2",prebuild:"yarn clean:build",build:"yarn build:only","build:only":"tsc -p tsconfig.build.json && rollup -c","prebuild:examples":"yarn build:only","build:examples":"yarn data && TZ=America/Los_Angeles scripts/build-examples.sh","prebuild:examples-full":"yarn build:only","build:examples-full":"TZ=America/Los_Angeles scripts/build-examples.sh 1","build:example":"TZ=America/Los_Angeles scripts/build-example.sh","build:toc":"yarn build:jekyll && scripts/generate-toc","build:site":"rollup -c site/rollup.config.mjs","build:jekyll":"pushd site && bundle exec jekyll build -q && popd","build:versions":"scripts/update-version.sh",clean:"yarn clean:build && del-cli 'site/data/*' 'examples/compiled/*.png' && find site/examples ! -name 'index.md' ! -name 'data' -type f -delete","clean:build":"del-cli 'build/*' !build/vega-lite-schema.json",data:"rsync -r node_modules/vega-datasets/data/* site/data",schema:"mkdir -p build && ts-json-schema-generator -f tsconfig.json -p src/index.ts -t TopLevelSpec --no-type-check --no-ref-encode > build/vega-lite-schema.json && yarn renameschema && cp build/vega-lite-schema.json site/_data/",renameschema:"scripts/rename-schema.sh",presite:"yarn data && yarn schema && yarn build:site && yarn build:versions && scripts/create-example-pages.sh",site:"yarn site:only","site:only":"pushd site && bundle exec jekyll serve -I -l && popd",prettierbase:"prettier '**/*.{md,css,yml}'",format:"eslint . --fix && yarn prettierbase --write",lint:"eslint . && yarn prettierbase --check",jest:"NODE_OPTIONS=--experimental-vm-modules npx jest",test:"yarn jest test/ && yarn lint && yarn schema && yarn jest examples/ && yarn test:runtime","test:cover":"yarn jest --collectCoverage test/","test:inspect":"node --inspect-brk --experimental-vm-modules ./node_modules/.bin/jest --runInBand test","test:runtime":"NODE_OPTIONS=--experimental-vm-modules TZ=America/Los_Angeles npx jest test-runtime/ --config test-runtime/jest-config.json","test:runtime:generate":"yarn build:only && del-cli test-runtime/resources && VL_GENERATE_TESTS=true yarn test:runtime",watch:"tsc -p tsconfig.build.json -w","watch:site":"yarn build:site -w","watch:test":"yarn jest --watch test/","watch:test:runtime":"NODE_OPTIONS=--experimental-vm-modules TZ=America/Los_Angeles npx jest --watch test-runtime/ --config test-runtime/jest-config.json",release:"release-it"},Wne={type:"git",url:"https://github.com/vega/vega-lite.git"},Hne="BSD-3-Clause",Gne={url:"https://github.com/vega/vega-lite/issues"},Yne={"@babel/core":"^7.22.10","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/preset-env":"^7.22.10","@babel/preset-typescript":"^7.22.5","@release-it/conventional-changelog":"^7.0.0","@rollup/plugin-alias":"^5.0.0","@rollup/plugin-babel":"^6.0.3","@rollup/plugin-commonjs":"^25.0.4","@rollup/plugin-json":"^6.0.0","@rollup/plugin-node-resolve":"^15.2.1","@rollup/plugin-terser":"^0.4.3","@types/chai":"^4.3.5","@types/d3":"^7.4.0","@types/jest":"^29.5.4","@types/pako":"^2.0.0","@typescript-eslint/eslint-plugin":"^6.4.1","@typescript-eslint/parser":"^6.4.1",ajv:"^8.12.0","ajv-formats":"^2.1.1",chai:"^4.3.7",cheerio:"^1.0.0-rc.12","conventional-changelog-cli":"^4.0.0",d3:"^7.8.5","del-cli":"^5.0.0",eslint:"^8.47.0","eslint-config-prettier":"^9.0.0","eslint-plugin-jest":"^27.2.3","eslint-plugin-prettier":"^5.0.0","fast-json-stable-stringify":"~2.1.0","highlight.js":"^11.8.0",jest:"^29.6.3","jest-dev-server":"^9.0.0",mkdirp:"^3.0.1",pako:"^2.1.0",prettier:"^3.0.2",puppeteer:"^15.0.0","release-it":"^16.1.5",rollup:"^3.28.1","rollup-plugin-bundle-size":"^1.0.3","rollup-plugin-sourcemaps":"^0.6.3",serve:"^14.2.1",terser:"^5.19.2","ts-jest":"^29.1.1","ts-json-schema-generator":"^1.3.0",typescript:"~5.2.2","vega-cli":"^5.25.0","vega-datasets":"^2.7.0","vega-embed":"^6.22.2","vega-tooltip":"^0.33.0","yaml-front-matter":"^4.1.1"},Xne={"json-stringify-pretty-compact":"~3.0.0",tslib:"~2.6.2","vega-event-selector":"~3.0.1","vega-expression":"~5.1.0","vega-util":"~1.17.2",yargs:"~17.7.2"},Vne={vega:"^5.24.0"},Kne={node:">=18"},Jne={name:Fne,author:Mne,version:Tne,collaborators:Nne,homepage:Dne,description:One,keywords:Rne,main:Lne,unpkg:Pne,jsdelivr:Ine,module:zne,types:Bne,bin:Une,files:jne,scripts:qne,repository:Wne,license:Hne,bugs:Gne,devDependencies:Yne,dependencies:Xne,peerDependencies:Vne,engines:Kne};function I7(e){return!!e.or}function z7(e){return!!e.and}function B7(e){return!!e.not}function gh(e,t){if(B7(e))gh(e.not,t);else if(z7(e))for(const n of e.and)gh(n,t);else if(I7(e))for(const n of e.or)gh(n,t);else t(e)}function hu(e,t){return B7(e)?{not:hu(e.not,t)}:z7(e)?{and:e.and.map(n=>hu(n,t))}:I7(e)?{or:e.or.map(n=>hu(n,t))}:t(e)}const oe=structuredClone;function ZF(e){throw new Error(e)}function zu(e,t){const n={};for(const r of t)ie(e,r)&&(n[r]=e[r]);return n}function bn(e,t){const n={...e};for(const r of t)delete n[r];return n}Set.prototype.toJSON=function(){return`Set(${[...this].map(e=>Re(e)).join(",")})`};function be(e){if(we(e))return e;const t=X(e)?e:Re(e);if(t.length<250)return t;let n=0;for(let r=0;ro===0?s:`[${s}]`),a=i.map((s,o)=>i.slice(0,o+1).join(""));for(const s of a)t.add(s)}return t}function q7(e,t){return e===void 0||t===void 0?!0:j7(xy(e),xy(t))}function Oe(e){return B(e).length===0}const B=Object.keys,kt=Object.values,Ga=Object.entries;function uf(e){return e===!0||e===!1}function We(e){const t=e.replace(/\W/g,"_");return(e.match(/^\d+/)?"_":"")+t}function Tl(e,t){return B7(e)?`!(${Tl(e.not,t)})`:z7(e)?`(${e.and.map(n=>Tl(n,t)).join(") && (")})`:I7(e)?`(${e.or.map(n=>Tl(n,t)).join(") || (")})`:t(e)}function N0(e,t){if(t.length===0)return!0;const n=t.shift();return n in e&&N0(e[n],t)&&delete e[n],Oe(e)}function Hf(e){return e.charAt(0).toUpperCase()+e.substr(1)}function W7(e,t="datum"){const n=di(e),r=[];for(let i=1;i<=n.length;i++){const a=`[${n.slice(0,i).map(H).join("][")}]`;r.push(`${t}${a}`)}return r.join(" && ")}function nM(e,t="datum"){return`${t}[${H(di(e).join("."))}]`}function ere(e){return e.replace(/(\[|\]|\.|'|")/g,"\\$1")}function rr(e){return`${di(e).map(ere).join("\\.")}`}function lo(e,t,n){return e.replace(new RegExp(t.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),"g"),n)}function H7(e){return`${di(e).join(".")}`}function Bu(e){return e?di(e).length:0}function Ze(...e){for(const t of e)if(t!==void 0)return t}let rM=42;function iM(e){const t=++rM;return e?String(e)+t:t}function tre(){rM=42}function aM(e){return sM(e)?e:`__${e}`}function sM(e){return e.startsWith("__")}function cf(e){if(e!==void 0)return(e%360+360)%360}function dp(e){return we(e)?!0:!isNaN(e)&&!isNaN(parseFloat(e))}const tx=Object.getPrototypeOf(structuredClone({}));function Dn(e,t){if(e===t)return!0;if(e&&t&&typeof e=="object"&&typeof t=="object"){if(e.constructor.name!==t.constructor.name)return!1;let n,r;if(Array.isArray(e)){if(n=e.length,n!=t.length)return!1;for(r=n;r--!==0;)if(!Dn(e[r],t[r]))return!1;return!0}if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(r of e.entries())if(!t.has(r[0]))return!1;for(r of e.entries())if(!Dn(r[1],t.get(r[0])))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(r of e.entries())if(!t.has(r[0]))return!1;return!0}if(ArrayBuffer.isView(e)&&ArrayBuffer.isView(t)){if(n=e.length,n!=t.length)return!1;for(r=n;r--!==0;)if(e[r]!==t[r])return!1;return!0}if(e.constructor===RegExp)return e.source===t.source&&e.flags===t.flags;if(e.valueOf!==Object.prototype.valueOf&&e.valueOf!==tx.valueOf)return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString&&e.toString!==tx.toString)return e.toString()===t.toString();const i=Object.keys(e);if(n=i.length,n!==Object.keys(t).length)return!1;for(r=n;r--!==0;)if(!Object.prototype.hasOwnProperty.call(t,i[r]))return!1;for(r=n;r--!==0;){const a=i[r];if(!Dn(e[a],t[a]))return!1}return!0}return e!==e&&t!==t}function Re(e){const t=[];return function n(r){if(r&&r.toJSON&&typeof r.toJSON=="function"&&(r=r.toJSON()),r===void 0)return;if(typeof r=="number")return isFinite(r)?""+r:"null";if(typeof r!="object")return JSON.stringify(r);let i,a;if(Array.isArray(r)){for(a="[",i=0;ixp(e[t])?We(`_${t}_${Ga(e[t])}`):We(`_${t}_${e[t]}`)).join("")}function Be(e){return e===!0||No(e)&&!e.binned}function Et(e){return e==="binned"||No(e)&&e.binned===!0}function No(e){return V(e)}function xp(e){return e==null?void 0:e.param}function nx(e){switch(e){case Hi:case Gi:case ia:case wn:case vi:case xi:case cs:case aa:case os:case us:case En:return 6;case ls:return 4;default:return 10}}function Vf(e){return!!(e!=null&&e.expr)}function gn(e){const t=B(e||{}),n={};for(const r of t)n[r]=Mn(e[r]);return n}function _M(e){const{anchor:t,frame:n,offset:r,orient:i,angle:a,limit:s,color:o,subtitleColor:u,subtitleFont:c,subtitleFontSize:l,subtitleFontStyle:f,subtitleFontWeight:d,subtitleLineHeight:h,subtitlePadding:g,...p}=e,m={...p,...o?{fill:o}:{}},b={...t?{anchor:t}:{},...n?{frame:n}:{},...r?{offset:r}:{},...i?{orient:i}:{},...a!==void 0?{angle:a}:{},...s!==void 0?{limit:s}:{}},y={...u?{subtitleColor:u}:{},...c?{subtitleFont:c}:{},...l?{subtitleFontSize:l}:{},...f?{subtitleFontStyle:f}:{},...d?{subtitleFontWeight:d}:{},...h?{subtitleLineHeight:h}:{},...g?{subtitlePadding:g}:{}},v=zu(e,["align","baseline","dx","dy","limit"]);return{titleMarkConfig:m,subtitleMarkConfig:v,nonMarkTitleProperties:b,subtitle:y}}function ba(e){return X(e)||P(e)&&X(e[0])}function Q(e){return!!(e!=null&&e.signal)}function ds(e){return!!e.step}function $re(e){return P(e)?!1:"fields"in e&&!("data"in e)}function Are(e){return P(e)?!1:"fields"in e&&"data"in e}function Ui(e){return P(e)?!1:"field"in e&&"data"in e}const kre={aria:1,description:1,ariaRole:1,ariaRoleDescription:1,blend:1,opacity:1,fill:1,fillOpacity:1,stroke:1,strokeCap:1,strokeWidth:1,strokeOpacity:1,strokeDash:1,strokeDashOffset:1,strokeJoin:1,strokeOffset:1,strokeMiterLimit:1,startAngle:1,endAngle:1,padAngle:1,innerRadius:1,outerRadius:1,size:1,shape:1,interpolate:1,tension:1,orient:1,align:1,baseline:1,text:1,dir:1,dx:1,dy:1,ellipsis:1,limit:1,radius:1,theta:1,angle:1,font:1,fontSize:1,fontWeight:1,fontStyle:1,lineBreak:1,lineHeight:1,cursor:1,href:1,tooltip:1,cornerRadius:1,cornerRadiusTopLeft:1,cornerRadiusTopRight:1,cornerRadiusBottomLeft:1,cornerRadiusBottomRight:1,aspect:1,width:1,height:1,url:1,smooth:1},Cre=B(kre),Fre={arc:1,area:1,group:1,image:1,line:1,path:1,rect:1,rule:1,shape:1,symbol:1,text:1,trail:1},_y=["cornerRadius","cornerRadiusTopLeft","cornerRadiusTopRight","cornerRadiusBottomLeft","cornerRadiusBottomRight"];function wM(e){const t=P(e.condition)?e.condition.map(rx):rx(e.condition);return{...Mn(e),condition:t}}function Mn(e){if(Vf(e)){const{expr:t,...n}=e;return{signal:t,...n}}return e}function rx(e){if(Vf(e)){const{expr:t,...n}=e;return{signal:t,...n}}return e}function je(e){if(Vf(e)){const{expr:t,...n}=e;return{signal:t,...n}}return Q(e)?e:e!==void 0?{value:e}:void 0}function Mre(e){return Q(e)?e.signal:H(e)}function ix(e){return Q(e)?e.signal:H(e.value)}function xr(e){return Q(e)?e.signal:e==null?null:H(e)}function Tre(e,t,n){for(const r of n){const i=Zi(r,t.markDef,t.config);i!==void 0&&(e[r]=je(i))}return e}function EM(e){return[].concat(e.type,e.style??[])}function Te(e,t,n,r={}){const{vgChannel:i,ignoreVgConfig:a}=r;return i&&t[i]!==void 0?t[i]:t[e]!==void 0?t[e]:a&&(!i||i===e)?void 0:Zi(e,t,n,r)}function Zi(e,t,n,{vgChannel:r}={}){return Ze(r?D0(e,t,n.style):void 0,D0(e,t,n.style),r?n[t.type][r]:void 0,n[t.type][e],r?n.mark[r]:n.mark[e])}function D0(e,t,n){return SM(e,EM(t),n)}function SM(e,t,n){t=Y(t);let r;for(const i of t){const a=n[i];a&&a[e]!==void 0&&(r=a[e])}return r}function $M(e,t){return Y(e).reduce((n,r)=>(n.field.push(G(r,t)),n.order.push(r.sort??"ascending"),n),{field:[],order:[]})}function AM(e,t){const n=[...e];return t.forEach(r=>{for(const i of n)if(Dn(i,r))return;n.push(r)}),n}function kM(e,t){return Dn(e,t)||!t?e:e?[...Y(e),...Y(t)].join(", "):t}function CM(e,t){const n=e.value,r=t.value;if(n==null||r===null)return{explicit:e.explicit,value:null};if((ba(n)||Q(n))&&(ba(r)||Q(r)))return{explicit:e.explicit,value:kM(n,r)};if(ba(n)||Q(n))return{explicit:e.explicit,value:n};if(ba(r)||Q(r))return{explicit:e.explicit,value:r};if(!ba(n)&&!Q(n)&&!ba(r)&&!Q(r))return{explicit:e.explicit,value:AM(n,r)};throw new Error("It should never reach here")}function e6(e){return`Invalid specification ${Re(e)}. Make sure the specification includes at least one of the following properties: "mark", "layer", "facet", "hconcat", "vconcat", "concat", or "repeat".`}const Nre='Autosize "fit" only works for single views and layered views.';function ax(e){return`${e=="width"?"Width":"Height"} "container" only works for single views and layered views.`}function sx(e){const t=e=="width"?"Width":"Height",n=e=="width"?"x":"y";return`${t} "container" only works well with autosize "fit" or "fit-${n}".`}function ox(e){return e?`Dropping "fit-${e}" because spec has discrete ${Sn(e)}.`:'Dropping "fit" because spec has discrete size.'}function t6(e){return`Unknown field for ${e}. Cannot calculate view size.`}function ux(e){return`Cannot project a selection on encoding channel "${e}", which has no field.`}function Dre(e,t){return`Cannot project a selection on encoding channel "${e}" as it uses an aggregate function ("${t}").`}function Ore(e){return`The "nearest" transform is not supported for ${e} marks.`}function FM(e){return`Selection not supported for ${e} yet.`}function Rre(e){return`Cannot find a selection named "${e}".`}const Lre="Scale bindings are currently only supported for scales with unbinned, continuous domains.",Pre="Legend bindings are only supported for selections over an individual field or encoding channel.";function Ire(e){return`Lookups can only be performed on selection parameters. "${e}" is a variable parameter.`}function zre(e){return`Cannot define and lookup the "${e}" selection in the same view. Try moving the lookup into a second, layered view?`}const Bre="The same selection must be used to override scale domains in a layered view.",Ure='Interval selections should be initialized using "x", "y", "longitude", or "latitude" keys.';function jre(e){return`Unknown repeated value "${e}".`}function cx(e){return`The "columns" property cannot be used when "${e}" has nested row/column.`}const qre="Axes cannot be shared in concatenated or repeated views yet (https://github.com/vega/vega-lite/issues/2415).";function Wre(e){return`Unrecognized parse "${e}".`}function lx(e,t,n){return`An ancestor parsed field "${e}" as ${n} but a child wants to parse the field as ${t}.`}const Hre="Attempt to add the same child twice.";function Gre(e){return`Ignoring an invalid transform: ${Re(e)}.`}const Yre='If "from.fields" is not specified, "as" has to be a string that specifies the key to be used for the data from the secondary source.';function fx(e){return`Config.customFormatTypes is not true, thus custom format type and format for channel ${e} are dropped.`}function Xre(e){const{parentProjection:t,projection:n}=e;return`Layer's shared projection ${Re(t)} is overridden by a child projection ${Re(n)}.`}const Vre="Arc marks uses theta channel rather than angle, replacing angle with theta.";function Kre(e){return`${e}Offset dropped because ${e} is continuous`}function Jre(e,t,n){return`Channel ${e} is a ${t}. Converted to {value: ${Re(n)}}.`}function MM(e){return`Invalid field type "${e}".`}function Qre(e,t){return`Invalid field type "${e}" for aggregate: "${t}", using "quantitative" instead.`}function Zre(e){return`Invalid aggregation operator "${e}".`}function TM(e,t){const{fill:n,stroke:r}=t;return`Dropping color ${e} as the plot also has ${n&&r?"fill and stroke":n?"fill":"stroke"}.`}function eie(e){return`Position range does not support relative band size for ${e}.`}function wy(e,t){return`Dropping ${Re(e)} from channel "${t}" since it does not contain any data field, datum, value, or signal.`}const tie="Line marks cannot encode size with a non-groupby field. You may want to use trail marks instead.";function _p(e,t,n){return`${e} dropped as it is incompatible with "${t}"${n?` when ${n}`:""}.`}function nie(e){return`${e}-encoding is dropped as ${e} is not a valid encoding channel.`}function rie(e){return`${e} encoding should be discrete (ordinal / nominal / binned).`}function iie(e){return`${e} encoding should be discrete (ordinal / nominal / binned) or use a discretizing scale (e.g. threshold).`}function aie(e){return`Facet encoding dropped as ${e.join(" and ")} ${e.length>1?"are":"is"} also specified.`}function fm(e,t){return`Using discrete channel "${e}" to encode "${t}" field can be misleading as it does not encode ${t==="ordinal"?"order":"magnitude"}.`}function sie(e){return`The ${e} for range marks cannot be an expression`}function oie(e,t){return`Line mark is for continuous lines and thus cannot be used with ${e&&t?"x2 and y2":e?"x2":"y2"}. We will use the rule mark (line segments) instead.`}function uie(e,t){return`Specified orient "${e}" overridden with "${t}".`}function cie(e){return`Cannot use the scale property "${e}" with non-color channel.`}function lie(e){return`Cannot use the relative band size with ${e} scale.`}function fie(e){return`Using unaggregated domain with raw field has no effect (${Re(e)}).`}function die(e){return`Unaggregated domain not applicable for "${e}" since it produces values outside the origin domain of the source data.`}function hie(e){return`Unaggregated domain is currently unsupported for log scale (${Re(e)}).`}function gie(e){return`Cannot apply size to non-oriented mark "${e}".`}function pie(e,t,n){return`Channel "${e}" does not work with "${t}" scale. We are using "${n}" scale instead.`}function mie(e,t){return`FieldDef does not work with "${e}" scale. We are using "${t}" scale instead.`}function NM(e,t,n){return`${n}-scale's "${t}" is dropped as it does not work with ${e} scale.`}function DM(e){return`The step for "${e}" is dropped because the ${e==="width"?"x":"y"} is continuous.`}function bie(e,t,n,r){return`Conflicting ${t.toString()} property "${e.toString()}" (${Re(n)} and ${Re(r)}). Using ${Re(n)}.`}function yie(e,t,n,r){return`Conflicting ${t.toString()} property "${e.toString()}" (${Re(n)} and ${Re(r)}). Using the union of the two domains.`}function vie(e){return`Setting the scale to be independent for "${e}" means we also have to set the guide (axis or legend) to be independent.`}function xie(e){return`Dropping sort property ${Re(e)} as unioned domains only support boolean or op "count", "min", and "max".`}const dx="Domains that should be unioned has conflicting sort properties. Sort will be set to true.",_ie="Detected faceted independent scales that union domain of multiple fields from different data sources. We will use the first field. The result view size may be incorrect.",wie="Detected faceted independent scales that union domain of the same fields from different source. We will assume that this is the same field from a different fork of the same data source. However, if this is not the case, the result view size may be incorrect.",Eie="Detected faceted independent scales that union domain of multiple fields from the same data source. We will use the first field. The result view size may be incorrect.";function Sie(e){return`Cannot stack "${e}" if there is already "${e}2".`}function $ie(e){return`Cannot stack non-linear scale (${e}).`}function Aie(e){return`Stacking is applied even though the aggregate function is non-summative ("${e}").`}function O0(e,t){return`Invalid ${e}: ${Re(t)}.`}function kie(e){return`Dropping day from datetime ${Re(e)} as day cannot be combined with other units.`}function Cie(e,t){return`${t?"extent ":""}${t&&e?"and ":""}${e?"center ":""}${t&&e?"are ":"is "}not needed when data are aggregated.`}function Fie(e,t,n){return`${e} is not usually used with ${t} for ${n}.`}function Mie(e,t){return`Continuous axis should not have customized aggregation function ${e}; ${t} already agregates the axis.`}function hx(e){return`1D error band does not support ${e}.`}function OM(e){return`Channel ${e} is required for "binned" bin.`}function Tie(e){return`Channel ${e} should not be used with "binned" bin.`}function Nie(e){return`Domain for ${e} is required for threshold scale.`}const RM=Yy(Gy);let ju=RM;function Die(e){return ju=e,ju}function Oie(){return ju=RM,ju}function j(...e){ju.warn(...e)}function Rie(...e){ju.debug(...e)}function Do(e){if(e&&V(e)){for(const t of r6)if(t in e)return!0}return!1}const LM=["january","february","march","april","may","june","july","august","september","october","november","december"],Lie=LM.map(e=>e.substr(0,3)),PM=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"],Pie=PM.map(e=>e.substr(0,3));function Iie(e){if(dp(e)&&(e=+e),we(e))return e>4&&j(O0("quarter",e)),e-1;throw new Error(O0("quarter",e))}function zie(e){if(dp(e)&&(e=+e),we(e))return e-1;{const t=e.toLowerCase(),n=LM.indexOf(t);if(n!==-1)return n;const r=t.substr(0,3),i=Lie.indexOf(r);if(i!==-1)return i;throw new Error(O0("month",e))}}function Bie(e){if(dp(e)&&(e=+e),we(e))return e%7;{const t=e.toLowerCase(),n=PM.indexOf(t);if(n!==-1)return n;const r=t.substr(0,3),i=Pie.indexOf(r);if(i!==-1)return i;throw new Error(O0("day",e))}}function n6(e,t){const n=[];if(t&&e.day!==void 0&&B(e).length>1&&(j(kie(e)),e=oe(e),delete e.day),e.year!==void 0?n.push(e.year):n.push(2012),e.month!==void 0){const r=t?zie(e.month):e.month;n.push(r)}else if(e.quarter!==void 0){const r=t?Iie(e.quarter):e.quarter;n.push(we(r)?r*3:`${r}*3`)}else n.push(0);if(e.date!==void 0)n.push(e.date);else if(e.day!==void 0){const r=t?Bie(e.day):e.day;n.push(we(r)?r+1:`${r}+1`)}else n.push(1);for(const r of["hours","minutes","seconds","milliseconds"]){const i=e[r];n.push(typeof i>"u"?0:i)}return n}function ho(e){const n=n6(e,!0).join(", ");return e.utc?`utc(${n})`:`datetime(${n})`}function Uie(e){const n=n6(e,!1).join(", ");return e.utc?`utc(${n})`:`datetime(${n})`}function jie(e){const t=n6(e,!0);return e.utc?+new Date(Date.UTC(...t)):+new Date(...t)}const IM={year:1,quarter:1,month:1,week:1,day:1,dayofyear:1,date:1,hours:1,minutes:1,seconds:1,milliseconds:1},r6=B(IM);function qie(e){return!!IM[e]}function Oo(e){return V(e)?e.binned:zM(e)}function zM(e){return e&&e.startsWith("binned")}function i6(e){return e.startsWith("utc")}function Wie(e){return e.substring(3)}const Hie={"year-month":"%b %Y ","year-month-date":"%b %d, %Y "};function wp(e){return r6.filter(t=>UM(e,t))}function BM(e){const t=wp(e);return t[t.length-1]}function UM(e,t){const n=e.indexOf(t);return!(n<0||n>0&&t==="seconds"&&e.charAt(n-1)==="i"||e.length>n+3&&t==="day"&&e.charAt(n+3)==="o"||n>0&&t==="year"&&e.charAt(n-1)==="f")}function Gie(e,t,{end:n}={end:!1}){const r=W7(t),i=i6(e)?"utc":"";function a(u){return u==="quarter"?`(${i}quarter(${r})-1)`:`${i}${u}(${r})`}let s;const o={};for(const u of r6)UM(e,u)&&(o[u]=a(u),s=u);return n&&(o[s]+="+1"),Uie(o)}function jM(e){if(!e)return;const t=wp(e);return`timeUnitSpecifier(${Re(t)}, ${Re(Hie)})`}function Yie(e,t,n){if(!e)return;const r=jM(e);return`${n||i6(e)?"utc":"time"}Format(${t}, ${r})`}function yt(e){if(!e)return;let t;return X(e)?zM(e)?t={unit:e.substring(6),binned:!0}:t={unit:e}:V(e)&&(t={...e,...e.unit?{unit:e.unit}:{}}),i6(t.unit)&&(t.utc=!0,t.unit=Wie(t.unit)),t}function Xie(e){const{utc:t,...n}=yt(e);return n.unit?(t?"utc":"")+B(n).map(r=>We(`${r==="unit"?"":`_${r}_`}${n[r]}`)).join(""):(t?"utc":"")+"timeunit"+B(n).map(r=>We(`_${r}_${n[r]}`)).join("")}function qM(e,t=n=>n){const n=yt(e),r=BM(n.unit);if(r&&r!=="day"){const i={year:2001,month:1,date:1,hours:0,minutes:0,seconds:0,milliseconds:0},{step:a,part:s}=WM(r,n.step),o={...i,[s]:+i[s]+a};return`${t(ho(o))} - ${t(ho(i))}`}}const Vie={year:1,month:1,date:1,hours:1,minutes:1,seconds:1,milliseconds:1};function Kie(e){return!!Vie[e]}function WM(e,t=1){if(Kie(e))return{part:e,step:t};switch(e){case"day":case"dayofyear":return{part:"date",step:t};case"quarter":return{part:"month",step:t*3};case"week":return{part:"date",step:t*7}}}function Jie(e){return e==null?void 0:e.param}function a6(e){return!!(e!=null&&e.field)&&e.equal!==void 0}function s6(e){return!!(e!=null&&e.field)&&e.lt!==void 0}function o6(e){return!!(e!=null&&e.field)&&e.lte!==void 0}function u6(e){return!!(e!=null&&e.field)&&e.gt!==void 0}function c6(e){return!!(e!=null&&e.field)&&e.gte!==void 0}function l6(e){if(e!=null&&e.field){if(P(e.range)&&e.range.length===2)return!0;if(Q(e.range))return!0}return!1}function f6(e){return!!(e!=null&&e.field)&&(P(e.oneOf)||P(e.in))}function Qie(e){return!!(e!=null&&e.field)&&e.valid!==void 0}function HM(e){return f6(e)||a6(e)||l6(e)||s6(e)||u6(e)||o6(e)||c6(e)}function Ur(e,t){return Np(e,{timeUnit:t,wrapTime:!0})}function Zie(e,t){return e.map(n=>Ur(n,t))}function GM(e,t=!0){const{field:n}=e,r=yt(e.timeUnit),{unit:i,binned:a}=r||{},s=G(e,{expr:"datum"}),o=i?`time(${a?s:Gie(i,n)})`:s;if(a6(e))return`${o}===${Ur(e.equal,i)}`;if(s6(e)){const u=e.lt;return`${o}<${Ur(u,i)}`}else if(u6(e)){const u=e.gt;return`${o}>${Ur(u,i)}`}else if(o6(e)){const u=e.lte;return`${o}<=${Ur(u,i)}`}else if(c6(e)){const u=e.gte;return`${o}>=${Ur(u,i)}`}else{if(f6(e))return`indexof([${Zie(e.oneOf,i).join(",")}], ${o}) !== -1`;if(Qie(e))return d6(o,e.valid);if(l6(e)){const{range:u}=e,c=Q(u)?{signal:`${u.signal}[0]`}:u[0],l=Q(u)?{signal:`${u.signal}[1]`}:u[1];if(c!==null&&l!==null&&t)return"inrange("+o+", ["+Ur(c,i)+", "+Ur(l,i)+"])";const f=[];return c!==null&&f.push(`${o} >= ${Ur(c,i)}`),l!==null&&f.push(`${o} <= ${Ur(l,i)}`),f.length>0?f.join(" && "):"true"}}throw new Error(`Invalid field predicate: ${Re(e)}`)}function d6(e,t=!0){return t?`isValid(${e}) && isFinite(+${e})`:`!isValid(${e}) || !isFinite(+${e})`}function eae(e){return HM(e)&&e.timeUnit?{...e,timeUnit:yt(e.timeUnit)}:e}const Kf={quantitative:"quantitative",ordinal:"ordinal",temporal:"temporal",nominal:"nominal",geojson:"geojson"};function tae(e){return e==="quantitative"||e==="temporal"}function YM(e){return e==="ordinal"||e==="nominal"}const go=Kf.quantitative,h6=Kf.ordinal,qu=Kf.temporal,g6=Kf.nominal,bc=Kf.geojson;function nae(e){if(e)switch(e=e.toLowerCase(),e){case"q":case go:return"quantitative";case"t":case qu:return"temporal";case"o":case h6:return"ordinal";case"n":case g6:return"nominal";case bc:return"geojson"}}const yn={LINEAR:"linear",LOG:"log",POW:"pow",SQRT:"sqrt",SYMLOG:"symlog",IDENTITY:"identity",SEQUENTIAL:"sequential",TIME:"time",UTC:"utc",QUANTILE:"quantile",QUANTIZE:"quantize",THRESHOLD:"threshold",BIN_ORDINAL:"bin-ordinal",ORDINAL:"ordinal",POINT:"point",BAND:"band"},Ey={linear:"numeric",log:"numeric",pow:"numeric",sqrt:"numeric",symlog:"numeric",identity:"numeric",sequential:"numeric",time:"time",utc:"time",ordinal:"ordinal","bin-ordinal":"bin-ordinal",point:"ordinal-position",band:"ordinal-position",quantile:"discretizing",quantize:"discretizing",threshold:"discretizing"};function rae(e,t){const n=Ey[e],r=Ey[t];return n===r||n==="ordinal-position"&&r==="time"||r==="ordinal-position"&&n==="time"}const iae={linear:0,log:1,pow:1,sqrt:1,symlog:1,identity:1,sequential:1,time:0,utc:0,point:10,band:11,ordinal:0,"bin-ordinal":0,quantile:0,quantize:0,threshold:0};function gx(e){return iae[e]}const XM=new Set(["linear","log","pow","sqrt","symlog"]),VM=new Set([...XM,"time","utc"]);function KM(e){return XM.has(e)}const JM=new Set(["quantile","quantize","threshold"]),aae=new Set([...VM,...JM,"sequential","identity"]),sae=new Set(["ordinal","bin-ordinal","point","band"]);function vt(e){return sae.has(e)}function Bn(e){return aae.has(e)}function _r(e){return VM.has(e)}function Wu(e){return JM.has(e)}const oae={pointPadding:.5,barBandPaddingInner:.1,rectBandPaddingInner:0,bandWithNestedOffsetPaddingInner:.2,bandWithNestedOffsetPaddingOuter:.2,minBandSize:2,minFontSize:8,maxFontSize:40,minOpacity:.3,maxOpacity:.8,minSize:9,minStrokeWidth:1,maxStrokeWidth:4,quantileCount:4,quantizeCount:4,zero:!0};function uae(e){return!X(e)&&!!e.name}function QM(e){return e==null?void 0:e.param}function cae(e){return e==null?void 0:e.unionWith}function lae(e){return V(e)&&"field"in e}const fae={type:1,domain:1,domainMax:1,domainMin:1,domainMid:1,domainRaw:1,align:1,range:1,rangeMax:1,rangeMin:1,scheme:1,bins:1,reverse:1,round:1,clamp:1,nice:1,base:1,exponent:1,constant:1,interpolate:1,zero:1,padding:1,paddingInner:1,paddingOuter:1},{type:T0e,domain:N0e,range:D0e,rangeMax:O0e,rangeMin:R0e,scheme:L0e,...dae}=fae,hae=B(dae);function Sy(e,t){switch(t){case"type":case"domain":case"reverse":case"range":return!0;case"scheme":case"interpolate":return!["point","band","identity"].includes(e);case"bins":return!["point","band","identity","ordinal"].includes(e);case"round":return _r(e)||e==="band"||e==="point";case"padding":case"rangeMin":case"rangeMax":return _r(e)||["point","band"].includes(e);case"paddingOuter":case"align":return["point","band"].includes(e);case"paddingInner":return e==="band";case"domainMax":case"domainMid":case"domainMin":case"domainRaw":case"clamp":return _r(e);case"nice":return _r(e)||e==="quantize"||e==="threshold";case"exponent":return e==="pow";case"base":return e==="log";case"constant":return e==="symlog";case"zero":return Bn(e)&&!ye(["log","time","utc","threshold","quantile"],e)}}function ZM(e,t){switch(t){case"interpolate":case"scheme":case"domainMid":return gu(e)?void 0:cie(t);case"align":case"type":case"bins":case"domain":case"domainMax":case"domainMin":case"domainRaw":case"range":case"base":case"exponent":case"constant":case"nice":case"padding":case"paddingInner":case"paddingOuter":case"rangeMax":case"rangeMin":case"reverse":case"round":case"clamp":case"zero":return}}function gae(e,t){return ye([h6,g6],t)?e===void 0||vt(e):t===qu?ye([yn.TIME,yn.UTC,void 0],e):t===go?KM(e)||Wu(e)||e===void 0:!0}function pae(e,t,n=!1){if(!sa(e))return!1;switch(e){case He:case _t:case ss:case mc:case sr:case Rr:return _r(t)||t==="band"?!0:t==="point"?!n:!1;case ia:case cs:case aa:case os:case us:case Mo:return _r(t)||Wu(t)||ye(["band","point","ordinal"],t);case wn:case vi:case xi:return t!=="band";case ls:case En:return t==="ordinal"||Wu(t)}}const ln={arc:"arc",area:"area",bar:"bar",image:"image",line:"line",point:"point",rect:"rect",rule:"rule",text:"text",tick:"tick",trail:"trail",circle:"circle",square:"square",geoshape:"geoshape"},eT=ln.arc,Ep=ln.area,Sp=ln.bar,mae=ln.image,$p=ln.line,Ap=ln.point,bae=ln.rect,R0=ln.rule,tT=ln.text,p6=ln.tick,yae=ln.trail,m6=ln.circle,b6=ln.square,nT=ln.geoshape;function hs(e){return["line","area","trail"].includes(e)}function lf(e){return["rect","bar","image","arc"].includes(e)}const vae=new Set(B(ln));function ci(e){return e.type}const xae=["stroke","strokeWidth","strokeDash","strokeDashOffset","strokeOpacity","strokeJoin","strokeMiterLimit"],_ae=["fill","fillOpacity"],wae=[...xae,..._ae],Eae={color:1,filled:1,invalid:1,order:1,radius2:1,theta2:1,timeUnitBandSize:1,timeUnitBandPosition:1},px=B(Eae),Sae={area:["line","point"],bar:["binSpacing","continuousBandSize","discreteBandSize","minBandSize"],rect:["binSpacing","continuousBandSize","discreteBandSize","minBandSize"],line:["point"],tick:["bandSize","thickness"]},$ae={color:"#4c78a8",invalid:"filter",timeUnitBandSize:1},Aae={mark:1,arc:1,area:1,bar:1,circle:1,image:1,line:1,point:1,rect:1,rule:1,square:1,text:1,tick:1,trail:1,geoshape:1},rT=B(Aae);function po(e){return e&&e.band!=null}const kae={horizontal:["cornerRadiusTopRight","cornerRadiusBottomRight"],vertical:["cornerRadiusTopLeft","cornerRadiusTopRight"]},iT=5,Cae={binSpacing:1,continuousBandSize:iT,minBandSize:.25,timeUnitBandPosition:.5},Fae={binSpacing:0,continuousBandSize:iT,minBandSize:.25,timeUnitBandPosition:.5},Mae={thickness:1};function Tae(e){return ci(e)?e.type:e}function y6(e){const{channel:t,channelDef:n,markDef:r,scale:i,config:a}=e,s=x6(e);return U(n)&&!vM(n.aggregate)&&i&&_r(i.get("type"))?Nae({fieldDef:n,channel:t,markDef:r,ref:s,config:a}):s}function Nae({fieldDef:e,channel:t,markDef:n,ref:r,config:i}){return hs(n.type)?r:Te("invalid",n,i)===null?[Dae(e,t),r]:r}function Dae(e,t){const n=v6(e,!0),i=To(t)==="y"?{field:{group:"height"}}:{value:0};return{test:n,...i}}function v6(e,t=!0){return d6(X(e)?e:G(e,{expr:"datum"}),!t)}function Oae(e){const{datum:t}=e;return Do(t)?ho(t):`${Re(t)}`}function Ys(e,t,n,r){const i={};if(t&&(i.scale=t),Ei(e)){const{datum:a}=e;Do(a)?i.signal=ho(a):Q(a)?i.signal=a.signal:Vf(a)?i.signal=a.expr:i.value=a}else i.field=G(e,n);if(r){const{offset:a,band:s}=r;a&&(i.offset=a),s&&(i.band=s)}return i}function L0({scaleName:e,fieldOrDatumDef:t,fieldOrDatumDef2:n,offset:r,startSuffix:i,endSuffix:a="end",bandPosition:s=.5}){const o=!Q(s)&&0{switch(t.fieldTitle){case"plain":return e.field;case"functional":return Xae(e);default:return Yae(e,t)}};let yT=bT;function vT(e){yT=e}function Vae(){vT(bT)}function pu(e,t,{allowDisabling:n,includeDefault:r=!0}){var o;const i=(o=S6(e))==null?void 0:o.title;if(!U(e))return i??e.title;const a=e,s=r?$6(a,t):void 0;return n?Ze(i,a.title,s):i??a.title??s}function S6(e){if(Gu(e)&&e.axis)return e.axis;if(pT(e)&&e.legend)return e.legend;if(w6(e)&&e.header)return e.header}function $6(e,t){return yT(e,t)}function z0(e){if(mT(e)){const{format:t,formatType:n}=e;return{format:t,formatType:n}}else{const t=S6(e)??{},{format:n,formatType:r}=t;return{format:n,formatType:r}}}function Kae(e,t){var a;switch(t){case"latitude":case"longitude":return"quantitative";case"row":case"column":case"facet":case"shape":case"strokeDash":return"nominal";case"order":return"ordinal"}if(E6(e)&&P(e.sort))return"ordinal";const{aggregate:n,bin:r,timeUnit:i}=e;if(i)return"temporal";if(r||n&&!fs(n)&&!Qi(n))return"quantitative";if(Ro(e)&&((a=e.scale)!=null&&a.type))switch(Ey[e.scale.type]){case"numeric":case"discretizing":return"quantitative";case"time":return"temporal"}return"nominal"}function li(e){if(U(e))return e;if(Mp(e))return e.condition}function st(e){if(ue(e))return e;if(Zf(e))return e.condition}function xT(e,t,n,r={}){if(X(e)||we(e)||Za(e)){const i=X(e)?"string":we(e)?"number":"boolean";return j(Jre(t,i,e)),{value:e}}return ue(e)?B0(e,t,n,r):Zf(e)?{...e,condition:B0(e.condition,t,n,r)}:e}function B0(e,t,n,r){if(mT(e)){const{format:i,formatType:a,...s}=e;if(mo(a)&&!n.customFormatTypes)return j(fx(t)),B0(s,t,n,r)}else{const i=Gu(e)?"axis":pT(e)?"legend":w6(e)?"header":null;if(i&&e[i]){const{format:a,formatType:s,...o}=e[i];if(mo(s)&&!n.customFormatTypes)return j(fx(t)),B0({...e,[i]:o},t,n,r)}}return U(e)?A6(e,t,r):Jae(e)}function Jae(e){let t=e.type;if(t)return e;const{datum:n}=e;return t=we(n)?"quantitative":X(n)?"nominal":Do(n)?"temporal":void 0,{...e,type:t}}function A6(e,t,{compositeMark:n=!1}={}){const{aggregate:r,timeUnit:i,bin:a,field:s}=e,o={...e};if(!n&&r&&!Z7(r)&&!fs(r)&&!Qi(r)&&(j(Zre(r)),delete o.aggregate),i&&(o.timeUnit=yt(i)),s&&(o.field=`${s}`),Be(a)&&(o.bin=Tp(a,t)),Et(a)&&!et(t)&&j(Tie(t)),un(o)){const{type:u}=o,c=nae(u);u!==c&&(o.type=c),u!=="quantitative"&&vM(r)&&(j(Qre(u,r)),o.type="quantitative")}else if(!hM(t)){const u=Kae(o,t);o.type=u}if(un(o)){const{compatible:u,warning:c}=Qae(o,t)||{};u===!1&&j(c)}if(E6(o)&&X(o.sort)){const{sort:u}=o;if(bx(u))return{...o,sort:{encoding:u}};const c=u.substr(1);if(u.charAt(0)==="-"&&bx(c))return{...o,sort:{encoding:c,order:"descending"}}}if(w6(o)){const{header:u}=o;if(u){const{orient:c,...l}=u;if(c)return{...o,header:{...l,labelOrient:u.labelOrient||c,titleOrient:u.titleOrient||c}}}}return o}function Tp(e,t){return Za(e)?{maxbins:nx(t)}:e==="binned"?{binned:!0}:!e.maxbins&&!e.step?{...e,maxbins:nx(t)}:e}const Xo={compatible:!0};function Qae(e,t){const n=e.type;if(n==="geojson"&&t!=="shape")return{compatible:!1,warning:`Channel ${t} should not be used with a geojson data.`};switch(t){case Hi:case Gi:case hp:return I0(e)?Xo:{compatible:!1,warning:rie(t)};case He:case _t:case ss:case mc:case wn:case vi:case xi:case Gf:case Yf:case gp:case fo:case pp:case mp:case Mo:case sr:case Rr:case bp:return Xo;case Pr:case ir:case Lr:case Ir:return n!==go?{compatible:!1,warning:`Channel ${t} should be used with a quantitative field only, not ${e.type} field.`}:Xo;case aa:case os:case us:case cs:case ia:case ra:case na:case Or:case yi:return n==="nominal"&&!e.sort?{compatible:!1,warning:`Channel ${t} should not be used with an unsorted discrete field.`}:Xo;case En:case ls:return!I0(e)&&!Hae(e)?{compatible:!1,warning:iie(t)}:Xo;case Uu:return e.type==="nominal"&&!("sort"in e)?{compatible:!1,warning:"Channel order is inappropriate for nominal field, which has no inherent order."}:Xo}}function Yu(e){const{formatType:t}=z0(e);return t==="time"||!t&&Zae(e)}function Zae(e){return e&&(e.type==="temporal"||U(e)&&!!e.timeUnit)}function Np(e,{timeUnit:t,type:n,wrapTime:r,undefinedIfExprNotRequired:i}){var u;const a=t&&((u=yt(t))==null?void 0:u.unit);let s=a||n==="temporal",o;return Vf(e)?o=e.expr:Q(e)?o=e.signal:Do(e)?(s=!0,o=ho(e)):(X(e)||we(e))&&s&&(o=`datetime(${Re(e)})`,qie(a)&&(we(e)&&e<1e4||X(e)&&isNaN(Date.parse(e)))&&(o=ho({[a]:e}))),o?r&&s?`time(${o})`:o:i?void 0:Re(e)}function _T(e,t){const{type:n}=e;return t.map(r=>{const i=U(e)&&!Oo(e.timeUnit)?e.timeUnit:void 0,a=Np(r,{timeUnit:i,type:n,undefinedIfExprNotRequired:!0});return a!==void 0?{signal:a}:r})}function ed(e,t){return Be(e.bin)?sa(t)&&["ordinal","nominal"].includes(e.type):(console.warn("Only call this method for binned field defs."),!1)}const xx={labelAlign:{part:"labels",vgProp:"align"},labelBaseline:{part:"labels",vgProp:"baseline"},labelColor:{part:"labels",vgProp:"fill"},labelFont:{part:"labels",vgProp:"font"},labelFontSize:{part:"labels",vgProp:"fontSize"},labelFontStyle:{part:"labels",vgProp:"fontStyle"},labelFontWeight:{part:"labels",vgProp:"fontWeight"},labelOpacity:{part:"labels",vgProp:"opacity"},labelOffset:null,labelPadding:null,gridColor:{part:"grid",vgProp:"stroke"},gridDash:{part:"grid",vgProp:"strokeDash"},gridDashOffset:{part:"grid",vgProp:"strokeDashOffset"},gridOpacity:{part:"grid",vgProp:"opacity"},gridWidth:{part:"grid",vgProp:"strokeWidth"},tickColor:{part:"ticks",vgProp:"stroke"},tickDash:{part:"ticks",vgProp:"strokeDash"},tickDashOffset:{part:"ticks",vgProp:"strokeDashOffset"},tickOpacity:{part:"ticks",vgProp:"opacity"},tickSize:null,tickWidth:{part:"ticks",vgProp:"strokeWidth"}};function td(e){return e==null?void 0:e.condition}const wT=["domain","grid","labels","ticks","title"],ese={grid:"grid",gridCap:"grid",gridColor:"grid",gridDash:"grid",gridDashOffset:"grid",gridOpacity:"grid",gridScale:"grid",gridWidth:"grid",orient:"main",bandPosition:"both",aria:"main",description:"main",domain:"main",domainCap:"main",domainColor:"main",domainDash:"main",domainDashOffset:"main",domainOpacity:"main",domainWidth:"main",format:"main",formatType:"main",labelAlign:"main",labelAngle:"main",labelBaseline:"main",labelBound:"main",labelColor:"main",labelFlush:"main",labelFlushOffset:"main",labelFont:"main",labelFontSize:"main",labelFontStyle:"main",labelFontWeight:"main",labelLimit:"main",labelLineHeight:"main",labelOffset:"main",labelOpacity:"main",labelOverlap:"main",labelPadding:"main",labels:"main",labelSeparation:"main",maxExtent:"main",minExtent:"main",offset:"both",position:"main",tickCap:"main",tickColor:"main",tickDash:"main",tickDashOffset:"main",tickMinStep:"both",tickOffset:"both",tickOpacity:"main",tickRound:"both",ticks:"main",tickSize:"main",tickWidth:"both",title:"main",titleAlign:"main",titleAnchor:"main",titleAngle:"main",titleBaseline:"main",titleColor:"main",titleFont:"main",titleFontSize:"main",titleFontStyle:"main",titleFontWeight:"main",titleLimit:"main",titleLineHeight:"main",titleOpacity:"main",titlePadding:"main",titleX:"main",titleY:"main",encode:"both",scale:"both",tickBand:"both",tickCount:"both",tickExtra:"both",translate:"both",values:"both",zindex:"both"},ET={orient:1,aria:1,bandPosition:1,description:1,domain:1,domainCap:1,domainColor:1,domainDash:1,domainDashOffset:1,domainOpacity:1,domainWidth:1,format:1,formatType:1,grid:1,gridCap:1,gridColor:1,gridDash:1,gridDashOffset:1,gridOpacity:1,gridWidth:1,labelAlign:1,labelAngle:1,labelBaseline:1,labelBound:1,labelColor:1,labelFlush:1,labelFlushOffset:1,labelFont:1,labelFontSize:1,labelFontStyle:1,labelFontWeight:1,labelLimit:1,labelLineHeight:1,labelOffset:1,labelOpacity:1,labelOverlap:1,labelPadding:1,labels:1,labelSeparation:1,maxExtent:1,minExtent:1,offset:1,position:1,tickBand:1,tickCap:1,tickColor:1,tickCount:1,tickDash:1,tickDashOffset:1,tickExtra:1,tickMinStep:1,tickOffset:1,tickOpacity:1,tickRound:1,ticks:1,tickSize:1,tickWidth:1,title:1,titleAlign:1,titleAnchor:1,titleAngle:1,titleBaseline:1,titleColor:1,titleFont:1,titleFontSize:1,titleFontStyle:1,titleFontWeight:1,titleLimit:1,titleLineHeight:1,titleOpacity:1,titlePadding:1,titleX:1,titleY:1,translate:1,values:1,zindex:1},tse={...ET,style:1,labelExpr:1,encoding:1};function _x(e){return!!tse[e]}const nse={axis:1,axisBand:1,axisBottom:1,axisDiscrete:1,axisLeft:1,axisPoint:1,axisQuantitative:1,axisRight:1,axisTemporal:1,axisTop:1,axisX:1,axisXBand:1,axisXDiscrete:1,axisXPoint:1,axisXQuantitative:1,axisXTemporal:1,axisY:1,axisYBand:1,axisYDiscrete:1,axisYPoint:1,axisYQuantitative:1,axisYTemporal:1},ST=B(nse);function oa(e){return"mark"in e}class Dp{constructor(t,n){this.name=t,this.run=n}hasMatchingType(t){return oa(t)?Tae(t.mark)===this.name:!1}}function Xs(e,t){const n=e&&e[t];return n?P(n)?co(n,r=>!!r.field):U(n)||Mp(n):!1}function $T(e,t){const n=e&&e[t];return n?P(n)?co(n,r=>!!r.field):U(n)||Ei(n)||Zf(n):!1}function AT(e,t){if(et(t)){const n=e[t];if((U(n)||Ei(n))&&(YM(n.type)||U(n)&&n.timeUnit)){const r=V7(t);return $T(e,r)}}return!1}function k6(e){return co(ire,t=>{if(Xs(e,t)){const n=e[t];if(P(n))return co(n,r=>!!r.aggregate);{const r=li(n);return r&&!!r.aggregate}}return!1})}function kT(e,t){const n=[],r=[],i=[],a=[],s={};return C6(e,(o,u)=>{if(U(o)){const{field:c,aggregate:l,bin:f,timeUnit:d,...h}=o;if(l||d||f){const g=S6(o),p=g==null?void 0:g.title;let m=G(o,{forAs:!0});const b={...p?[]:{title:pu(o,t,{allowDisabling:!0})},...h,field:m};if(l){let y;if(fs(l)?(y="argmax",m=G({op:"argmax",field:l.argmax},{forAs:!0}),b.field=`${m}.${c}`):Qi(l)?(y="argmin",m=G({op:"argmin",field:l.argmin},{forAs:!0}),b.field=`${m}.${c}`):l!=="boxplot"&&l!=="errorbar"&&l!=="errorband"&&(y=l),y){const v={op:y,as:m};c&&(v.field=c),a.push(v)}}else if(n.push(m),un(o)&&Be(f)){if(r.push({bin:f,field:c,as:m}),n.push(G(o,{binSuffix:"end"})),ed(o,u)&&n.push(G(o,{binSuffix:"range"})),et(u)){const y={field:`${m}_end`};s[`${u}2`]=y}b.bin="binned",hM(u)||(b.type=go)}else if(d&&!Oo(d)){i.push({timeUnit:d,field:c,as:m});const y=un(o)&&o.type!==qu&&"time";y&&(u===Gf||u===fo?b.formatType=y:gre(u)?b.legend={formatType:y,...b.legend}:et(u)&&(b.axis={formatType:y,...b.axis}))}s[u]=b}else n.push(c),s[u]=e[u]}else s[u]=e[u]}),{bins:r,timeUnits:i,aggregate:a,groupby:n,encoding:s}}function rse(e,t,n){const r=mre(t,n);if(r){if(r==="binned"){const i=e[t===Or?He:_t];return!!(U(i)&&U(e[t])&&Et(i.bin))}}else return!1;return!0}function ise(e,t,n,r){const i={};for(const a of B(e))dM(a)||j(nie(a));for(let a of lre){if(!e[a])continue;const s=e[a];if(Xf(a)){const o=cre(a),u=i[o];if(U(u)&&tae(u.type)&&U(s)&&!u.timeUnit){j(Kre(o));continue}}if(a==="angle"&&t==="arc"&&!e.theta&&(j(Vre),a=sr),!rse(e,a,t)){j(_p(a,t));continue}if(a===ia&&t==="line"){const o=li(e[a]);if(o!=null&&o.aggregate){j(tie);continue}}if(a===wn&&(n?"fill"in e:"stroke"in e)){j(TM("encoding",{fill:"fill"in e,stroke:"stroke"in e}));continue}if(a===Yf||a===Uu&&!P(s)&&!Fr(s)||a===fo&&P(s)){if(s){if(a===Uu){const o=e[a];if(gT(o)){i[a]=o;continue}}i[a]=Y(s).reduce((o,u)=>(U(u)?o.push(A6(u,a)):j(wy(u,a)),o),[])}}else{if(a===fo&&s===null)i[a]=null;else if(!U(s)&&!Ei(s)&&!Fr(s)&&!Fp(s)&&!Q(s)){j(wy(s,a));continue}i[a]=xT(s,a,r)}}return i}function Op(e,t){const n={};for(const r of B(e)){const i=xT(e[r],r,t,{compositeMark:!0});n[r]=i}return n}function ase(e){const t=[];for(const n of B(e))if(Xs(e,n)){const r=e[n],i=Y(r);for(const a of i)U(a)?t.push(a):Mp(a)&&t.push(a.condition)}return t}function C6(e,t,n){if(e)for(const r of B(e)){const i=e[r];if(P(i))for(const a of i)t.call(n,a,r);else t.call(n,i,r)}}function sse(e,t,n,r){return e?B(e).reduce((i,a)=>{const s=e[a];return P(s)?s.reduce((o,u)=>t.call(r,o,u,a),i):t.call(r,i,s,a)},n):n}function CT(e,t){return B(t).reduce((n,r)=>{switch(r){case He:case _t:case pp:case bp:case mp:case Or:case yi:case ss:case mc:case sr:case ra:case Rr:case na:case Lr:case Pr:case Ir:case ir:case Gf:case En:case Mo:case fo:return n;case Uu:if(e==="line"||e==="trail")return n;case Yf:case gp:{const i=t[r];if(P(i)||U(i))for(const a of Y(i))a.aggregate||n.push(G(a,{}));return n}case ia:if(e==="trail")return n;case wn:case vi:case xi:case aa:case os:case us:case ls:case cs:{const i=li(t[r]);return i&&!i.aggregate&&n.push(G(i,{})),n}}},[])}function ose(e){const{tooltip:t,...n}=e;if(!t)return{filteredEncoding:n};let r,i;if(P(t)){for(const a of t)a.aggregate?(r||(r=[]),r.push(a)):(i||(i=[]),i.push(a));r&&(n.tooltip=r)}else t.aggregate?n.tooltip=t:i=t;return P(i)&&i.length===1&&(i=i[0]),{customTooltipWithoutAggregatedField:i,filteredEncoding:n}}function Ay(e,t,n,r=!0){if("tooltip"in n)return{tooltip:n.tooltip};const i=e.map(({fieldPrefix:s,titlePrefix:o})=>{const u=r?` of ${F6(t)}`:"";return{field:s+t.field,type:t.type,title:Q(o)?{signal:`${o}"${escape(u)}"`}:o+u}}),a=ase(n).map(qae);return{tooltip:[...i,...Kr(a,be)]}}function F6(e){const{title:t,field:n}=e;return Ze(t,n)}function M6(e,t,n,r,i){const{scale:a,axis:s}=n;return({partName:o,mark:u,positionPrefix:c,endPositionPrefix:l=void 0,extraEncoding:f={}})=>{const d=F6(n);return FT(e,o,i,{mark:u,encoding:{[t]:{field:`${c}_${n.field}`,type:n.type,...d!==void 0?{title:d}:{},...a!==void 0?{scale:a}:{},...s!==void 0?{axis:s}:{}},...X(l)?{[`${t}2`]:{field:`${l}_${n.field}`}}:{},...r,...f}})}}function FT(e,t,n,r){const{clip:i,color:a,opacity:s}=e,o=e.type;return e[t]||e[t]===void 0&&n[t]?[{...r,mark:{...n[t],...i?{clip:i}:{},...a?{color:a}:{},...s?{opacity:s}:{},...ci(r.mark)?r.mark:{type:r.mark},style:`${o}-${String(t)}`,...Za(e[t])?{}:e[t]}}]:[]}function MT(e,t,n){const{encoding:r}=e,i=t==="vertical"?"y":"x",a=r[i],s=r[`${i}2`],o=r[`${i}Error`],u=r[`${i}Error2`];return{continuousAxisChannelDef:Od(a,n),continuousAxisChannelDef2:Od(s,n),continuousAxisChannelDefError:Od(o,n),continuousAxisChannelDefError2:Od(u,n),continuousAxis:i}}function Od(e,t){if(e!=null&&e.aggregate){const{aggregate:n,...r}=e;return n!==t&&j(Mie(n,t)),r}else return e}function TT(e,t){const{mark:n,encoding:r}=e,{x:i,y:a}=r;if(ci(n)&&n.orient)return n.orient;if(ka(i)){if(ka(a)){const s=U(i)&&i.aggregate,o=U(a)&&a.aggregate;if(!s&&o===t)return"vertical";if(!o&&s===t)return"horizontal";if(s===t&&o===t)throw new Error("Both x and y cannot have aggregate");return Yu(a)&&!Yu(i)?"horizontal":"vertical"}return"horizontal"}else{if(ka(a))return"vertical";throw new Error(`Need a valid continuous axis for ${t}s`)}}const U0="boxplot",use=["box","median","outliers","rule","ticks"],cse=new Dp(U0,DT);function NT(e){return we(e)?"tukey":e}function DT(e,{config:t}){e={...e,encoding:Op(e.encoding,t)};const{mark:n,encoding:r,params:i,projection:a,...s}=e,o=ci(n)?n:{type:n};i&&j(FM("boxplot"));const u=o.extent??t.boxplot.extent,c=Te("size",o,t),l=o.invalid,f=NT(u),{bins:d,timeUnits:h,transform:g,continuousAxisChannelDef:p,continuousAxis:m,groupby:b,aggregate:y,encodingWithoutContinuousAxis:v,ticksOrient:x,boxOrient:_,customTooltipWithoutAggregatedField:E}=lse(e,u,t),{color:w,size:S,...$}=v,F=Gt=>M6(o,m,p,Gt,t.boxplot),k=F($),D=F(v),A=F({...$,...S?{size:S}:{}}),M=Ay([{fieldPrefix:f==="min-max"?"upper_whisker_":"max_",titlePrefix:"Max"},{fieldPrefix:"upper_box_",titlePrefix:"Q3"},{fieldPrefix:"mid_box_",titlePrefix:"Median"},{fieldPrefix:"lower_box_",titlePrefix:"Q1"},{fieldPrefix:f==="min-max"?"lower_whisker_":"min_",titlePrefix:"Min"}],p,v),C={type:"tick",color:"black",opacity:1,orient:x,invalid:l,aria:!1},T=f==="min-max"?M:Ay([{fieldPrefix:"upper_whisker_",titlePrefix:"Upper Whisker"},{fieldPrefix:"lower_whisker_",titlePrefix:"Lower Whisker"}],p,v),L=[...k({partName:"rule",mark:{type:"rule",invalid:l,aria:!1},positionPrefix:"lower_whisker",endPositionPrefix:"lower_box",extraEncoding:T}),...k({partName:"rule",mark:{type:"rule",invalid:l,aria:!1},positionPrefix:"upper_box",endPositionPrefix:"upper_whisker",extraEncoding:T}),...k({partName:"ticks",mark:C,positionPrefix:"lower_whisker",extraEncoding:T}),...k({partName:"ticks",mark:C,positionPrefix:"upper_whisker",extraEncoding:T})],I=[...f!=="tukey"?L:[],...D({partName:"box",mark:{type:"bar",...c?{size:c}:{},orient:_,invalid:l,ariaRoleDescription:"box"},positionPrefix:"lower_box",endPositionPrefix:"upper_box",extraEncoding:M}),...A({partName:"median",mark:{type:"tick",invalid:l,...V(t.boxplot.median)&&t.boxplot.median.color?{color:t.boxplot.median.color}:{},...c?{size:c}:{},orient:x,aria:!1},positionPrefix:"mid_box",extraEncoding:M})];if(f==="min-max")return{...s,transform:(s.transform??[]).concat(g),layer:I};const z=`datum["lower_box_${p.field}"]`,Z=`datum["upper_box_${p.field}"]`,ee=`(${Z} - ${z})`,fe=`${z} - ${u} * ${ee}`,Ee=`${Z} + ${u} * ${ee}`,me=`datum["${p.field}"]`,Ie={joinaggregate:OT(p.field),groupby:b},Si={transform:[{filter:`(${fe} <= ${me}) && (${me} <= ${Ee})`},{aggregate:[{op:"min",field:p.field,as:`lower_whisker_${p.field}`},{op:"max",field:p.field,as:`upper_whisker_${p.field}`},{op:"min",field:`lower_box_${p.field}`,as:`lower_box_${p.field}`},{op:"max",field:`upper_box_${p.field}`,as:`upper_box_${p.field}`},...y],groupby:b}],layer:L},{tooltip:Io,...gs}=$,{scale:K,axis:de}=p,ge=F6(p),q=bn(de,["title"]),wt=FT(o,"outliers",t.boxplot,{transform:[{filter:`(${me} < ${fe}) || (${me} > ${Ee})`}],mark:"point",encoding:{[m]:{field:p.field,type:p.type,...ge!==void 0?{title:ge}:{},...K!==void 0?{scale:K}:{},...Oe(q)?{}:{axis:q}},...gs,...w?{color:w}:{},...E?{tooltip:E}:{}}})[0];let Ce;const Mt=[...d,...h,Ie];return wt?Ce={transform:Mt,layer:[wt,Si]}:(Ce=Si,Ce.transform.unshift(...Mt)),{...s,layer:[Ce,{transform:g,layer:I}]}}function OT(e){return[{op:"q1",field:e,as:`lower_box_${e}`},{op:"q3",field:e,as:`upper_box_${e}`}]}function lse(e,t,n){const r=TT(e,U0),{continuousAxisChannelDef:i,continuousAxis:a}=MT(e,r,U0),s=i.field,o=NT(t),u=[...OT(s),{op:"median",field:s,as:`mid_box_${s}`},{op:"min",field:s,as:(o==="min-max"?"lower_whisker_":"min_")+s},{op:"max",field:s,as:(o==="min-max"?"upper_whisker_":"max_")+s}],c=o==="min-max"||o==="tukey"?[]:[{calculate:`datum["upper_box_${s}"] - datum["lower_box_${s}"]`,as:`iqr_${s}`},{calculate:`min(datum["upper_box_${s}"] + datum["iqr_${s}"] * ${t}, datum["max_${s}"])`,as:`upper_whisker_${s}`},{calculate:`max(datum["lower_box_${s}"] - datum["iqr_${s}"] * ${t}, datum["min_${s}"])`,as:`lower_whisker_${s}`}],{[a]:l,...f}=e.encoding,{customTooltipWithoutAggregatedField:d,filteredEncoding:h}=ose(f),{bins:g,timeUnits:p,aggregate:m,groupby:b,encoding:y}=kT(h,n),v=r==="vertical"?"horizontal":"vertical",x=r,_=[...g,...p,{aggregate:[...m,...u],groupby:b},...c];return{bins:g,timeUnits:p,transform:_,groupby:b,aggregate:m,continuousAxisChannelDef:i,continuousAxis:a,encodingWithoutContinuousAxis:y,ticksOrient:v,boxOrient:x,customTooltipWithoutAggregatedField:d}}const T6="errorbar",fse=["ticks","rule"],dse=new Dp(T6,RT);function RT(e,{config:t}){e={...e,encoding:Op(e.encoding,t)};const{transform:n,continuousAxisChannelDef:r,continuousAxis:i,encodingWithoutContinuousAxis:a,ticksOrient:s,markDef:o,outerSpec:u,tooltipEncoding:c}=LT(e,T6,t);delete a.size;const l=M6(o,i,r,a,t.errorbar),f=o.thickness,d=o.size,h={type:"tick",orient:s,aria:!1,...f!==void 0?{thickness:f}:{},...d!==void 0?{size:d}:{}},g=[...l({partName:"ticks",mark:h,positionPrefix:"lower",extraEncoding:c}),...l({partName:"ticks",mark:h,positionPrefix:"upper",extraEncoding:c}),...l({partName:"rule",mark:{type:"rule",ariaRoleDescription:"errorbar",...f!==void 0?{size:f}:{}},positionPrefix:"lower",endPositionPrefix:"upper",extraEncoding:c})];return{...u,transform:n,...g.length>1?{layer:g}:{...g[0]}}}function hse(e,t){const{encoding:n}=e;if(gse(n))return{orient:TT(e,t),inputType:"raw"};const r=pse(n),i=mse(n),a=n.x,s=n.y;if(r){if(i)throw new Error(`${t} cannot be both type aggregated-upper-lower and aggregated-error`);const o=n.x2,u=n.y2;if(ue(o)&&ue(u))throw new Error(`${t} cannot have both x2 and y2`);if(ue(o)){if(ka(a))return{orient:"horizontal",inputType:"aggregated-upper-lower"};throw new Error(`Both x and x2 have to be quantitative in ${t}`)}else if(ue(u)){if(ka(s))return{orient:"vertical",inputType:"aggregated-upper-lower"};throw new Error(`Both y and y2 have to be quantitative in ${t}`)}throw new Error("No ranged axis")}else{const o=n.xError,u=n.xError2,c=n.yError,l=n.yError2;if(ue(u)&&!ue(o))throw new Error(`${t} cannot have xError2 without xError`);if(ue(l)&&!ue(c))throw new Error(`${t} cannot have yError2 without yError`);if(ue(o)&&ue(c))throw new Error(`${t} cannot have both xError and yError with both are quantiative`);if(ue(o)){if(ka(a))return{orient:"horizontal",inputType:"aggregated-error"};throw new Error("All x, xError, and xError2 (if exist) have to be quantitative")}else if(ue(c)){if(ka(s))return{orient:"vertical",inputType:"aggregated-error"};throw new Error("All y, yError, and yError2 (if exist) have to be quantitative")}throw new Error("No ranged axis")}}function gse(e){return(ue(e.x)||ue(e.y))&&!ue(e.x2)&&!ue(e.y2)&&!ue(e.xError)&&!ue(e.xError2)&&!ue(e.yError)&&!ue(e.yError2)}function pse(e){return ue(e.x2)||ue(e.y2)}function mse(e){return ue(e.xError)||ue(e.xError2)||ue(e.yError)||ue(e.yError2)}function LT(e,t,n){const{mark:r,encoding:i,params:a,projection:s,...o}=e,u=ci(r)?r:{type:r};a&&j(FM(t));const{orient:c,inputType:l}=hse(e,t),{continuousAxisChannelDef:f,continuousAxisChannelDef2:d,continuousAxisChannelDefError:h,continuousAxisChannelDefError2:g,continuousAxis:p}=MT(e,c,t),{errorBarSpecificAggregate:m,postAggregateCalculates:b,tooltipSummary:y,tooltipTitleWithFieldName:v}=bse(u,f,d,h,g,l,t,n),{[p]:x,[p==="x"?"x2":"y2"]:_,[p==="x"?"xError":"yError"]:E,[p==="x"?"xError2":"yError2"]:w,...S}=i,{bins:$,timeUnits:F,aggregate:k,groupby:D,encoding:A}=kT(S,n),M=[...k,...m],C=l!=="raw"?[]:D,T=Ay(y,f,A,v);return{transform:[...o.transform??[],...$,...F,...M.length===0?[]:[{aggregate:M,groupby:C}],...b],groupby:C,continuousAxisChannelDef:f,continuousAxis:p,encodingWithoutContinuousAxis:A,ticksOrient:c==="vertical"?"horizontal":"vertical",markDef:u,outerSpec:o,tooltipEncoding:T}}function bse(e,t,n,r,i,a,s,o){let u=[],c=[];const l=t.field;let f,d=!1;if(a==="raw"){const h=e.center?e.center:e.extent?e.extent==="iqr"?"median":"mean":o.errorbar.center,g=e.extent?e.extent:h==="mean"?"stderr":"iqr";if(h==="median"!=(g==="iqr")&&j(Fie(h,g,s)),g==="stderr"||g==="stdev")u=[{op:g,field:l,as:`extent_${l}`},{op:h,field:l,as:`center_${l}`}],c=[{calculate:`datum["center_${l}"] + datum["extent_${l}"]`,as:`upper_${l}`},{calculate:`datum["center_${l}"] - datum["extent_${l}"]`,as:`lower_${l}`}],f=[{fieldPrefix:"center_",titlePrefix:Hf(h)},{fieldPrefix:"upper_",titlePrefix:wx(h,g,"+")},{fieldPrefix:"lower_",titlePrefix:wx(h,g,"-")}],d=!0;else{let p,m,b;g==="ci"?(p="mean",m="ci0",b="ci1"):(p="median",m="q1",b="q3"),u=[{op:m,field:l,as:`lower_${l}`},{op:b,field:l,as:`upper_${l}`},{op:p,field:l,as:`center_${l}`}],f=[{fieldPrefix:"upper_",titlePrefix:pu({field:l,aggregate:b,type:"quantitative"},o,{allowDisabling:!1})},{fieldPrefix:"lower_",titlePrefix:pu({field:l,aggregate:m,type:"quantitative"},o,{allowDisabling:!1})},{fieldPrefix:"center_",titlePrefix:pu({field:l,aggregate:p,type:"quantitative"},o,{allowDisabling:!1})}]}}else{(e.center||e.extent)&&j(Cie(e.center,e.extent)),a==="aggregated-upper-lower"?(f=[],c=[{calculate:`datum["${n.field}"]`,as:`upper_${l}`},{calculate:`datum["${l}"]`,as:`lower_${l}`}]):a==="aggregated-error"&&(f=[{fieldPrefix:"",titlePrefix:l}],c=[{calculate:`datum["${l}"] + datum["${r.field}"]`,as:`upper_${l}`}],i?c.push({calculate:`datum["${l}"] + datum["${i.field}"]`,as:`lower_${l}`}):c.push({calculate:`datum["${l}"] - datum["${r.field}"]`,as:`lower_${l}`}));for(const h of c)f.push({fieldPrefix:h.as.substring(0,6),titlePrefix:lo(lo(h.calculate,'datum["',""),'"]',"")})}return{postAggregateCalculates:c,errorBarSpecificAggregate:u,tooltipSummary:f,tooltipTitleWithFieldName:d}}function wx(e,t,n){return`${Hf(e)} ${n} ${t}`}const N6="errorband",yse=["band","borders"],vse=new Dp(N6,PT);function PT(e,{config:t}){e={...e,encoding:Op(e.encoding,t)};const{transform:n,continuousAxisChannelDef:r,continuousAxis:i,encodingWithoutContinuousAxis:a,markDef:s,outerSpec:o,tooltipEncoding:u}=LT(e,N6,t),c=s,l=M6(c,i,r,a,t.errorband),f=e.encoding.x!==void 0&&e.encoding.y!==void 0;let d={type:f?"area":"rect"},h={type:f?"line":"rule"};const g={...c.interpolate?{interpolate:c.interpolate}:{},...c.tension&&c.interpolate?{tension:c.tension}:{}};return f?(d={...d,...g,ariaRoleDescription:"errorband"},h={...h,...g,aria:!1}):c.interpolate?j(hx("interpolate")):c.tension&&j(hx("tension")),{...o,transform:n,layer:[...l({partName:"band",mark:d,positionPrefix:"lower",endPositionPrefix:"upper",extraEncoding:u}),...l({partName:"borders",mark:h,positionPrefix:"lower",extraEncoding:u}),...l({partName:"borders",mark:h,positionPrefix:"upper",extraEncoding:u})]}}const IT={};function D6(e,t,n){const r=new Dp(e,t);IT[e]={normalizer:r,parts:n}}function xse(){return B(IT)}D6(U0,DT,use);D6(T6,RT,fse);D6(N6,PT,yse);const _se=["gradientHorizontalMaxLength","gradientHorizontalMinLength","gradientVerticalMaxLength","gradientVerticalMinLength","unselectedOpacity"],zT={titleAlign:"align",titleAnchor:"anchor",titleAngle:"angle",titleBaseline:"baseline",titleColor:"color",titleFont:"font",titleFontSize:"fontSize",titleFontStyle:"fontStyle",titleFontWeight:"fontWeight",titleLimit:"limit",titleLineHeight:"lineHeight",titleOrient:"orient",titlePadding:"offset"},BT={labelAlign:"align",labelAnchor:"anchor",labelAngle:"angle",labelBaseline:"baseline",labelColor:"color",labelFont:"font",labelFontSize:"fontSize",labelFontStyle:"fontStyle",labelFontWeight:"fontWeight",labelLimit:"limit",labelLineHeight:"lineHeight",labelOrient:"orient",labelPadding:"offset"},wse=B(zT),Ese=B(BT),Sse={header:1,headerRow:1,headerColumn:1,headerFacet:1},UT=B(Sse),jT=["size","shape","fill","stroke","strokeDash","strokeWidth","opacity"],$se={gradientHorizontalMaxLength:200,gradientHorizontalMinLength:100,gradientVerticalMaxLength:200,gradientVerticalMinLength:64,unselectedOpacity:.35},Ase={aria:1,clipHeight:1,columnPadding:1,columns:1,cornerRadius:1,description:1,direction:1,fillColor:1,format:1,formatType:1,gradientLength:1,gradientOpacity:1,gradientStrokeColor:1,gradientStrokeWidth:1,gradientThickness:1,gridAlign:1,labelAlign:1,labelBaseline:1,labelColor:1,labelFont:1,labelFontSize:1,labelFontStyle:1,labelFontWeight:1,labelLimit:1,labelOffset:1,labelOpacity:1,labelOverlap:1,labelPadding:1,labelSeparation:1,legendX:1,legendY:1,offset:1,orient:1,padding:1,rowPadding:1,strokeColor:1,symbolDash:1,symbolDashOffset:1,symbolFillColor:1,symbolLimit:1,symbolOffset:1,symbolOpacity:1,symbolSize:1,symbolStrokeColor:1,symbolStrokeWidth:1,symbolType:1,tickCount:1,tickMinStep:1,title:1,titleAlign:1,titleAnchor:1,titleBaseline:1,titleColor:1,titleFont:1,titleFontSize:1,titleFontStyle:1,titleFontWeight:1,titleLimit:1,titleLineHeight:1,titleOpacity:1,titleOrient:1,titlePadding:1,type:1,values:1,zindex:1},Mr="_vgsid_",kse={point:{on:"click",fields:[Mr],toggle:"event.shiftKey",resolve:"global",clear:"dblclick"},interval:{on:"[pointerdown, window:pointerup] > window:pointermove!",encodings:["x","y"],translate:"[pointerdown, window:pointerup] > window:pointermove!",zoom:"wheel!",mark:{fill:"#333",fillOpacity:.125,stroke:"white"},resolve:"global",clear:"dblclick"}};function O6(e){return e==="legend"||!!(e!=null&&e.legend)}function dm(e){return O6(e)&&V(e)}function R6(e){return!!(e!=null&&e.select)}function qT(e){const t=[];for(const n of e||[]){if(R6(n))continue;const{expr:r,bind:i,...a}=n;if(i&&r){const s={...a,bind:i,init:r};t.push(s)}else{const s={...a,...r?{update:r}:{},...i?{bind:i}:{}};t.push(s)}}return t}function Cse(e){return Rp(e)||P6(e)||L6(e)}function L6(e){return"concat"in e}function Rp(e){return"vconcat"in e}function P6(e){return"hconcat"in e}function WT({step:e,offsetIsDiscrete:t}){return t?e.for??"offset":"position"}function fi(e){return V(e)&&e.step!==void 0}function Ex(e){return e.view||e.width||e.height}const Sx=20,Fse={align:1,bounds:1,center:1,columns:1,spacing:1},Mse=B(Fse);function Tse(e,t,n){const r=n[t],i={},{spacing:a,columns:s}=r;a!==void 0&&(i.spacing=a),s!==void 0&&(Cp(e)&&!Qf(e.facet)||L6(e))&&(i.columns=s),Rp(e)&&(i.columns=1);for(const o of Mse)if(e[o]!==void 0)if(o==="spacing"){const u=e[o];i[o]=we(u)?u:{row:u.row??a,column:u.column??a}}else i[o]=e[o];return i}function ky(e,t){return e[t]??e[t==="width"?"continuousWidth":"continuousHeight"]}function j0(e,t){const n=q0(e,t);return fi(n)?n.step:HT}function q0(e,t){const n=e[t]??e[t==="width"?"discreteWidth":"discreteHeight"];return Ze(n,{step:e.step})}const HT=20,Nse={continuousWidth:200,continuousHeight:200,step:HT},Dse={background:"white",padding:5,timeFormat:"%b %d, %Y",countTitle:"Count of Records",view:Nse,mark:$ae,arc:{},area:{},bar:Cae,circle:{},geoshape:{},image:{},line:{},point:{},rect:Fae,rule:{color:"black"},square:{},text:{color:"black"},tick:Mae,trail:{},boxplot:{size:14,extent:1.5,box:{},median:{color:"white"},outliers:{},rule:{},ticks:null},errorbar:{center:"mean",rule:!0,ticks:!1},errorband:{band:{opacity:.3},borders:!1},scale:oae,projection:{},legend:$se,header:{titlePadding:10,labelPadding:10},headerColumn:{},headerRow:{},headerFacet:{},selection:kse,style:{},title:{},facet:{spacing:Sx},concat:{spacing:Sx},normalizedNumberFormat:".0%"},Ci=["#4c78a8","#f58518","#e45756","#72b7b2","#54a24b","#eeca3b","#b279a2","#ff9da6","#9d755d","#bab0ac"],$x={text:11,guideLabel:10,guideTitle:11,groupTitle:13,groupSubtitle:12},Ax={blue:Ci[0],orange:Ci[1],red:Ci[2],teal:Ci[3],green:Ci[4],yellow:Ci[5],purple:Ci[6],pink:Ci[7],brown:Ci[8],gray0:"#000",gray1:"#111",gray2:"#222",gray3:"#333",gray4:"#444",gray5:"#555",gray6:"#666",gray7:"#777",gray8:"#888",gray9:"#999",gray10:"#aaa",gray11:"#bbb",gray12:"#ccc",gray13:"#ddd",gray14:"#eee",gray15:"#fff"};function Ose(e={}){return{signals:[{name:"color",value:V(e)?{...Ax,...e}:Ax}],mark:{color:{signal:"color.blue"}},rule:{color:{signal:"color.gray0"}},text:{color:{signal:"color.gray0"}},style:{"guide-label":{fill:{signal:"color.gray0"}},"guide-title":{fill:{signal:"color.gray0"}},"group-title":{fill:{signal:"color.gray0"}},"group-subtitle":{fill:{signal:"color.gray0"}},cell:{stroke:{signal:"color.gray8"}}},axis:{domainColor:{signal:"color.gray13"},gridColor:{signal:"color.gray8"},tickColor:{signal:"color.gray13"}},range:{category:[{signal:"color.blue"},{signal:"color.orange"},{signal:"color.red"},{signal:"color.teal"},{signal:"color.green"},{signal:"color.yellow"},{signal:"color.purple"},{signal:"color.pink"},{signal:"color.brown"},{signal:"color.grey8"}]}}}function Rse(e){return{signals:[{name:"fontSize",value:V(e)?{...$x,...e}:$x}],text:{fontSize:{signal:"fontSize.text"}},style:{"guide-label":{fontSize:{signal:"fontSize.guideLabel"}},"guide-title":{fontSize:{signal:"fontSize.guideTitle"}},"group-title":{fontSize:{signal:"fontSize.groupTitle"}},"group-subtitle":{fontSize:{signal:"fontSize.groupSubtitle"}}}}}function Lse(e){return{text:{font:e},style:{"guide-label":{font:e},"guide-title":{font:e},"group-title":{font:e},"group-subtitle":{font:e}}}}function GT(e){const t=B(e||{}),n={};for(const r of t){const i=e[r];n[r]=td(i)?wM(i):Mn(i)}return n}function Pse(e){const t=B(e),n={};for(const r of t)n[r]=GT(e[r]);return n}const Ise=[...rT,...ST,...UT,"background","padding","legend","lineBreak","scale","style","title","view"];function YT(e={}){const{color:t,font:n,fontSize:r,selection:i,...a}=e,s=ec({},oe(Dse),n?Lse(n):{},t?Ose(t):{},r?Rse(r):{},a||{});i&&tc(s,"selection",i,!0);const o=bn(s,Ise);for(const u of["background","lineBreak","padding"])s[u]&&(o[u]=Mn(s[u]));for(const u of rT)s[u]&&(o[u]=gn(s[u]));for(const u of ST)s[u]&&(o[u]=GT(s[u]));for(const u of UT)s[u]&&(o[u]=gn(s[u]));return s.legend&&(o.legend=gn(s.legend)),s.scale&&(o.scale=gn(s.scale)),s.style&&(o.style=Pse(s.style)),s.title&&(o.title=gn(s.title)),s.view&&(o.view=gn(s.view)),o}const zse=new Set(["view",...vae]),Bse=["color","fontSize","background","padding","facet","concat","numberFormat","numberFormatType","normalizedNumberFormat","normalizedNumberFormatType","timeFormat","countTitle","header","axisQuantitative","axisTemporal","axisDiscrete","axisPoint","axisXBand","axisXPoint","axisXDiscrete","axisXQuantitative","axisXTemporal","axisYBand","axisYPoint","axisYDiscrete","axisYQuantitative","axisYTemporal","scale","selection","overlay"],Use={view:["continuousWidth","continuousHeight","discreteWidth","discreteHeight","step"],...Sae};function jse(e){e=oe(e);for(const t of Bse)delete e[t];if(e.axis)for(const t in e.axis)td(e.axis[t])&&delete e.axis[t];if(e.legend)for(const t of _se)delete e.legend[t];if(e.mark){for(const t of px)delete e.mark[t];e.mark.tooltip&&V(e.mark.tooltip)&&delete e.mark.tooltip}e.params&&(e.signals=(e.signals||[]).concat(qT(e.params)),delete e.params);for(const t of zse){for(const r of px)delete e[t][r];const n=Use[t];if(n)for(const r of n)delete e[t][r];Wse(e,t)}for(const t of xse())delete e[t];qse(e);for(const t in e)V(e[t])&&Oe(e[t])&&delete e[t];return Oe(e)?void 0:e}function qse(e){const{titleMarkConfig:t,subtitleMarkConfig:n,subtitle:r}=_M(e.title);Oe(t)||(e.style["group-title"]={...e.style["group-title"],...t}),Oe(n)||(e.style["group-subtitle"]={...e.style["group-subtitle"],...n}),Oe(r)?delete e.title:e.title=r}function Wse(e,t,n,r){const i=r?e[t][r]:e[t];t==="view"&&(n="cell");const a={...i,...e.style[n??t]};Oe(a)||(e.style[n??t]=a),r||delete e[t]}function Lp(e){return"layer"in e}function Hse(e){return"repeat"in e}function Gse(e){return!P(e.repeat)&&e.repeat.layer}class I6{map(t,n){return Cp(t)?this.mapFacet(t,n):Hse(t)?this.mapRepeat(t,n):P6(t)?this.mapHConcat(t,n):Rp(t)?this.mapVConcat(t,n):L6(t)?this.mapConcat(t,n):this.mapLayerOrUnit(t,n)}mapLayerOrUnit(t,n){if(Lp(t))return this.mapLayer(t,n);if(oa(t))return this.mapUnit(t,n);throw new Error(e6(t))}mapLayer(t,n){return{...t,layer:t.layer.map(r=>this.mapLayerOrUnit(r,n))}}mapHConcat(t,n){return{...t,hconcat:t.hconcat.map(r=>this.map(r,n))}}mapVConcat(t,n){return{...t,vconcat:t.vconcat.map(r=>this.map(r,n))}}mapConcat(t,n){const{concat:r,...i}=t;return{...i,concat:r.map(a=>this.map(a,n))}}mapFacet(t,n){return{...t,spec:this.map(t.spec,n)}}mapRepeat(t,n){return{...t,spec:this.map(t.spec,n)}}}const Yse={zero:1,center:1,normalize:1};function Xse(e){return e in Yse}const Vse=new Set([eT,Sp,Ep,R0,Ap,m6,b6,$p,tT,p6]),Kse=new Set([Sp,Ep,eT]);function Vo(e){return U(e)&&Hu(e)==="quantitative"&&!e.bin}function kx(e,t,{orient:n,type:r}){const i=t==="x"?"y":"radius",a=t==="x"&&["bar","area"].includes(r),s=e[t],o=e[i];if(U(s)&&U(o))if(Vo(s)&&Vo(o)){if(s.stack)return t;if(o.stack)return i;const u=U(s)&&!!s.aggregate,c=U(o)&&!!o.aggregate;if(u!==c)return u?t:i;if(a){if(n==="vertical")return i;if(n==="horizontal")return t}}else{if(Vo(s))return t;if(Vo(o))return i}else{if(Vo(s))return a&&n==="vertical"?void 0:t;if(Vo(o))return a&&n==="horizontal"?void 0:i}}function Jse(e){switch(e){case"x":return"y";case"y":return"x";case"theta":return"radius";case"radius":return"theta"}}function XT(e,t){var p,m;const n=ci(e)?e:{type:e},r=n.type;if(!Vse.has(r))return null;const i=kx(t,"x",n)||kx(t,"theta",n);if(!i)return null;const a=t[i],s=U(a)?G(a,{}):void 0,o=Jse(i),u=[],c=new Set;if(t[o]){const b=t[o],y=U(b)?G(b,{}):void 0;y&&y!==s&&(u.push(o),c.add(y))}const l=o==="x"?"xOffset":"yOffset",f=t[l],d=U(f)?G(f,{}):void 0;d&&d!==s&&(u.push(l),c.add(d));const h=fre.reduce((b,y)=>{if(y!=="tooltip"&&Xs(t,y)){const v=t[y];for(const x of Y(v)){const _=li(x);if(_.aggregate)continue;const E=G(_,{});(!E||!c.has(E))&&b.push({channel:y,fieldDef:_})}}return b},[]);let g;return a.stack!==void 0?Za(a.stack)?g=a.stack?"zero":null:g=a.stack:Kse.has(r)&&(g="zero"),!g||!Xse(g)||k6(t)&&h.length===0?null:(p=a==null?void 0:a.scale)!=null&&p.type&&((m=a==null?void 0:a.scale)==null?void 0:m.type)!==yn.LINEAR?(a!=null&&a.stack&&j($ie(a.scale.type)),null):ue(t[_i(i)])?(a.stack!==void 0&&j(Sie(i)),null):(U(a)&&a.aggregate&&!Ere.has(a.aggregate)&&j(Aie(a.aggregate)),{groupbyChannels:u,groupbyFields:c,fieldChannel:i,impute:a.impute===null?!1:hs(r),stackBy:h,offset:g})}function VT(e,t,n){const r=gn(e),i=Te("orient",r,n);if(r.orient=toe(r.type,t,i),i!==void 0&&i!==r.orient&&j(uie(r.orient,i)),r.type==="bar"&&r.orient){const o=Te("cornerRadiusEnd",r,n);if(o!==void 0){const u=r.orient==="horizontal"&&t.x2||r.orient==="vertical"&&t.y2?["cornerRadius"]:kae[r.orient];for(const c of u)r[c]=o;r.cornerRadiusEnd!==void 0&&delete r.cornerRadiusEnd}}return Te("opacity",r,n)===void 0&&(r.opacity=Zse(r.type,t)),Te("cursor",r,n)===void 0&&(r.cursor=Qse(r,t,n)),r}function Qse(e,t,n){return t.href||e.href||Te("href",e,n)?"pointer":e.cursor}function Zse(e,t){if(ye([Ap,p6,m6,b6],e)&&!k6(t))return .7}function eoe(e,t,{graticule:n}){if(n)return!1;const r=Zi("filled",e,t),i=e.type;return Ze(r,i!==Ap&&i!==$p&&i!==R0)}function toe(e,t,n){switch(e){case Ap:case m6:case b6:case tT:case bae:case mae:return}const{x:r,y:i,x2:a,y2:s}=t;switch(e){case Sp:if(U(r)&&(Et(r.bin)||U(i)&&i.aggregate&&!r.aggregate))return"vertical";if(U(i)&&(Et(i.bin)||U(r)&&r.aggregate&&!i.aggregate))return"horizontal";if(s||a){if(n)return n;if(!a)return(U(r)&&r.type===go&&!Be(r.bin)||P0(r))&&U(i)&&Et(i.bin)?"horizontal":"vertical";if(!s)return(U(i)&&i.type===go&&!Be(i.bin)||P0(i))&&U(r)&&Et(r.bin)?"vertical":"horizontal"}case R0:if(a&&!(U(r)&&Et(r.bin))&&s&&!(U(i)&&Et(i.bin)))return;case Ep:if(s)return U(i)&&Et(i.bin)?"horizontal":"vertical";if(a)return U(r)&&Et(r.bin)?"vertical":"horizontal";if(e===R0){if(r&&!i)return"vertical";if(i&&!r)return"horizontal"}case $p:case p6:{const o=vx(r),u=vx(i);if(n)return n;if(o&&!u)return e!=="tick"?"horizontal":"vertical";if(!o&&u)return e!=="tick"?"vertical":"horizontal";if(o&&u)return"vertical";{const c=un(r)&&r.type===qu,l=un(i)&&i.type===qu;if(c&&!l)return"vertical";if(!c&&l)return"horizontal"}return}}return"vertical"}function noe(e){const{point:t,line:n,...r}=e;return B(r).length>1?r:r.type}function roe(e){for(const t of["line","area","rule","trail"])e[t]&&(e={...e,[t]:bn(e[t],["point","line"])});return e}function hm(e,t={},n){return e.point==="transparent"?{opacity:0}:e.point?V(e.point)?e.point:{}:e.point!==void 0?null:t.point||n.shape?V(t.point)?t.point:{}:void 0}function Cx(e,t={}){return e.line?e.line===!0?{}:e.line:e.line!==void 0?null:t.line?t.line===!0?{}:t.line:void 0}class ioe{constructor(){this.name="path-overlay"}hasMatchingType(t,n){if(oa(t)){const{mark:r,encoding:i}=t,a=ci(r)?r:{type:r};switch(a.type){case"line":case"rule":case"trail":return!!hm(a,n[a.type],i);case"area":return!!hm(a,n[a.type],i)||!!Cx(a,n[a.type])}}return!1}run(t,n,r){const{config:i}=n,{params:a,projection:s,mark:o,name:u,encoding:c,...l}=t,f=Op(c,i),d=ci(o)?o:{type:o},h=hm(d,i[d.type],f),g=d.type==="area"&&Cx(d,i[d.type]),p=[{name:u,...a?{params:a}:{},mark:noe({...d.type==="area"&&d.opacity===void 0&&d.fillOpacity===void 0?{opacity:.7}:{},...d}),encoding:bn(f,["shape"])}],m=XT(VT(d,f,i),f);let b=f;if(m){const{fieldChannel:y,offset:v}=m;b={...f,[y]:{...f[y],...v?{stack:v}:{}}}}return b=bn(b,["y2","x2"]),g&&p.push({...s?{projection:s}:{},mark:{type:"line",...zu(d,["clip","interpolate","tension","tooltip"]),...g},encoding:b}),h&&p.push({...s?{projection:s}:{},mark:{type:"point",opacity:1,filled:!0,...zu(d,["clip","tooltip"]),...h},encoding:b}),r({...l,layer:p},{...n,config:roe(i)})}}function aoe(e,t){return t?Qf(e)?JT(e,t):KT(e,t):e}function gm(e,t){return t?JT(e,t):e}function Cy(e,t,n){const r=t[e];if(Uae(r)){if(r.repeat in n)return{...t,[e]:n[r.repeat]};j(jre(r.repeat));return}return t}function KT(e,t){if(e=Cy("field",e,t),e!==void 0){if(e===null)return null;if(E6(e)&&ei(e.sort)){const n=Cy("field",e.sort,t);e={...e,...n?{sort:n}:{}}}return e}}function Fx(e,t){if(U(e))return KT(e,t);{const n=Cy("datum",e,t);return n!==e&&!n.type&&(n.type="nominal"),n}}function Mx(e,t){if(ue(e)){const n=Fx(e,t);if(n)return n;if(Fp(e))return{condition:e.condition}}else{if(Zf(e)){const n=Fx(e.condition,t);if(n)return{...e,condition:n};{const{condition:r,...i}=e;return i}}return e}}function JT(e,t){const n={};for(const r in e)if(ie(e,r)){const i=e[r];if(P(i))n[r]=i.map(a=>Mx(a,t)).filter(a=>a);else{const a=Mx(i,t);a!==void 0&&(n[r]=a)}}return n}class soe{constructor(){this.name="RuleForRangedLine"}hasMatchingType(t){if(oa(t)){const{encoding:n,mark:r}=t;if(r==="line"||ci(r)&&r.type==="line")for(const i of ure){const a=To(i),s=n[a];if(n[i]&&(U(s)&&!Et(s.bin)||Ei(s)))return!0}}return!1}run(t,n,r){const{encoding:i,mark:a}=t;return j(oie(!!i.x2,!!i.y2)),r({...t,mark:V(a)?{...a,type:"rule"}:"rule"},n)}}class ooe extends I6{constructor(){super(...arguments),this.nonFacetUnitNormalizers=[cse,dse,vse,new ioe,new soe]}map(t,n){if(oa(t)){const r=Xs(t.encoding,Hi),i=Xs(t.encoding,Gi),a=Xs(t.encoding,hp);if(r||i||a)return this.mapFacetedUnit(t,n)}return super.map(t,n)}mapUnit(t,n){const{parentEncoding:r,parentProjection:i}=n,a=gm(t.encoding,n.repeater),s={...t,...t.name?{name:[n.repeaterPrefix,t.name].filter(u=>u).join("_")}:{},...a?{encoding:a}:{}};if(r||i)return this.mapUnitWithParentEncodingOrProjection(s,n);const o=this.mapLayerOrUnit.bind(this);for(const u of this.nonFacetUnitNormalizers)if(u.hasMatchingType(s,n.config))return u.run(s,n,o);return s}mapRepeat(t,n){return Gse(t)?this.mapLayerRepeat(t,n):this.mapNonLayerRepeat(t,n)}mapLayerRepeat(t,n){const{repeat:r,spec:i,...a}=t,{row:s,column:o,layer:u}=r,{repeater:c={},repeaterPrefix:l=""}=n;return s||o?this.mapRepeat({...t,repeat:{...s?{row:s}:{},...o?{column:o}:{}},spec:{repeat:{layer:u},spec:i}},n):{...a,layer:u.map(f=>{const d={...c,layer:f},h=`${(i.name?`${i.name}_`:"")+l}child__layer_${We(f)}`,g=this.mapLayerOrUnit(i,{...n,repeater:d,repeaterPrefix:h});return g.name=h,g})}}mapNonLayerRepeat(t,n){const{repeat:r,spec:i,data:a,...s}=t;!P(r)&&t.columns&&(t=bn(t,["columns"]),j(cx("repeat")));const o=[],{repeater:u={},repeaterPrefix:c=""}=n,l=!P(r)&&r.row||[u?u.row:null],f=!P(r)&&r.column||[u?u.column:null],d=P(r)&&r||[u?u.repeat:null];for(const g of d)for(const p of l)for(const m of f){const b={repeat:g,row:p,column:m,layer:u.layer},y=(i.name?`${i.name}_`:"")+c+"child__"+(P(r)?`${We(g)}`:(r.row?`row_${We(p)}`:"")+(r.column?`column_${We(m)}`:"")),v=this.map(i,{...n,repeater:b,repeaterPrefix:y});v.name=y,o.push(bn(v,["data"]))}const h=P(r)?t.columns:r.column?r.column.length:1;return{data:i.data??a,align:"all",...s,columns:h,concat:o}}mapFacet(t,n){const{facet:r}=t;return Qf(r)&&t.columns&&(t=bn(t,["columns"]),j(cx("facet"))),super.mapFacet(t,n)}mapUnitWithParentEncodingOrProjection(t,n){const{encoding:r,projection:i}=t,{parentEncoding:a,parentProjection:s,config:o}=n,u=Nx({parentProjection:s,projection:i}),c=Tx({parentEncoding:a,encoding:gm(r,n.repeater)});return this.mapUnit({...t,...u?{projection:u}:{},...c?{encoding:c}:{}},{config:o})}mapFacetedUnit(t,n){const{row:r,column:i,facet:a,...s}=t.encoding,{mark:o,width:u,projection:c,height:l,view:f,params:d,encoding:h,...g}=t,{facetMapping:p,layout:m}=this.getFacetMappingAndLayout({row:r,column:i,facet:a},n),b=gm(s,n.repeater);return this.mapFacet({...g,...m,facet:p,spec:{...u?{width:u}:{},...l?{height:l}:{},...f?{view:f}:{},...c?{projection:c}:{},mark:o,encoding:b,...d?{params:d}:{}}},n)}getFacetMappingAndLayout(t,n){const{row:r,column:i,facet:a}=t;if(r||i){a&&j(aie([...r?[Hi]:[],...i?[Gi]:[]]));const s={},o={};for(const u of[Hi,Gi]){const c=t[u];if(c){const{align:l,center:f,spacing:d,columns:h,...g}=c;s[u]=g;for(const p of["align","center","spacing"])c[p]!==void 0&&(o[p]??(o[p]={}),o[p][u]=c[p])}}return{facetMapping:s,layout:o}}else{const{align:s,center:o,spacing:u,columns:c,...l}=a;return{facetMapping:aoe(l,n.repeater),layout:{...s?{align:s}:{},...o?{center:o}:{},...u?{spacing:u}:{},...c?{columns:c}:{}}}}}mapLayer(t,{parentEncoding:n,parentProjection:r,...i}){const{encoding:a,projection:s,...o}=t,u={...i,parentEncoding:Tx({parentEncoding:n,encoding:a,layer:!0}),parentProjection:Nx({parentProjection:r,projection:s})};return super.mapLayer({...o,...t.name?{name:[u.repeaterPrefix,t.name].filter(c=>c).join("_")}:{}},u)}}function Tx({parentEncoding:e,encoding:t={},layer:n}){let r={};if(e){const i=new Set([...B(e),...B(t)]);for(const a of i){const s=t[a],o=e[a];if(ue(s)){const u={...o,...s};r[a]=u}else Zf(s)?r[a]={...s,condition:{...o,...s.condition}}:s||s===null?r[a]=s:(n||Fr(o)||Q(o)||ue(o)||P(o))&&(r[a]=o)}}else r=t;return!r||Oe(r)?void 0:r}function Nx(e){const{parentProjection:t,projection:n}=e;return t&&n&&j(Xre({parentProjection:t,projection:n})),n??t}function z6(e){return"filter"in e}function uoe(e){return(e==null?void 0:e.stop)!==void 0}function QT(e){return"lookup"in e}function coe(e){return"data"in e}function loe(e){return"param"in e}function foe(e){return"pivot"in e}function doe(e){return"density"in e}function hoe(e){return"quantile"in e}function goe(e){return"regression"in e}function poe(e){return"loess"in e}function moe(e){return"sample"in e}function boe(e){return"window"in e}function yoe(e){return"joinaggregate"in e}function voe(e){return"flatten"in e}function xoe(e){return"calculate"in e}function ZT(e){return"bin"in e}function _oe(e){return"impute"in e}function woe(e){return"timeUnit"in e}function Eoe(e){return"aggregate"in e}function Soe(e){return"stack"in e}function $oe(e){return"fold"in e}function Aoe(e){return"extent"in e&&!("density"in e)}function koe(e){return e.map(t=>z6(t)?{filter:hu(t.filter,eae)}:t)}class Coe extends I6{map(t,n){return n.emptySelections??(n.emptySelections={}),n.selectionPredicates??(n.selectionPredicates={}),t=Dx(t,n),super.map(t,n)}mapLayerOrUnit(t,n){if(t=Dx(t,n),t.encoding){const r={};for(const[i,a]of Ga(t.encoding))r[i]=eN(a,n);t={...t,encoding:r}}return super.mapLayerOrUnit(t,n)}mapUnit(t,n){const{selection:r,...i}=t;return r?{...i,params:Ga(r).map(([a,s])=>{const{init:o,bind:u,empty:c,...l}=s;l.type==="single"?(l.type="point",l.toggle=!1):l.type==="multi"&&(l.type="point"),n.emptySelections[a]=c!=="none";for(const f of kt(n.selectionPredicates[a]??{}))f.empty=c!=="none";return{name:a,value:o,select:l,bind:u}})}:t}}function Dx(e,t){const{transform:n,...r}=e;if(n){const i=n.map(a=>{if(z6(a))return{filter:Fy(a,t)};if(ZT(a)&&No(a.bin))return{...a,bin:tN(a.bin)};if(QT(a)){const{selection:s,...o}=a.from;return s?{...a,from:{param:s,...o}}:a}return a});return{...r,transform:i}}return e}function eN(e,t){var r,i;const n=oe(e);if(U(n)&&No(n.bin)&&(n.bin=tN(n.bin)),Ro(n)&&((i=(r=n.scale)==null?void 0:r.domain)!=null&&i.selection)){const{selection:a,...s}=n.scale.domain;n.scale.domain={...s,...a?{param:a}:{}}}if(Fp(n))if(P(n.condition))n.condition=n.condition.map(a=>{const{selection:s,param:o,test:u,...c}=a;return o?a:{...c,test:Fy(a,t)}});else{const{selection:a,param:s,test:o,...u}=eN(n.condition,t);n.condition=s?n.condition:{...u,test:Fy(n.condition,t)}}return n}function tN(e){const t=e.extent;if(t!=null&&t.selection){const{selection:n,...r}=t;return{...e,extent:{...r,param:n}}}return e}function Fy(e,t){const n=r=>hu(r,i=>{var a;const s=t.emptySelections[i]??!0,o={param:i,empty:s};return(a=t.selectionPredicates)[i]??(a[i]=[]),t.selectionPredicates[i].push(o),o});return e.selection?n(e.selection):hu(e.test||e.filter,r=>r.selection?n(r.selection):r)}class My extends I6{map(t,n){const r=n.selections??[];if(t.params&&!oa(t)){const i=[];for(const a of t.params)R6(a)?r.push(a):i.push(a);t.params=i}return n.selections=r,super.map(t,n)}mapUnit(t,n){const r=n.selections;if(!r||!r.length)return t;const i=(n.path??[]).concat(t.name),a=[];for(const s of r)if(!s.views||!s.views.length)a.push(s);else for(const o of s.views)(X(o)&&(o===t.name||i.includes(o))||P(o)&&o.map(u=>i.indexOf(u)).every((u,c,l)=>u!==-1&&(c===0||u>l[c-1])))&&a.push(s);return a.length&&(t.params=a),t}}for(const e of["mapFacet","mapRepeat","mapHConcat","mapVConcat","mapLayer"]){const t=My.prototype[e];My.prototype[e]=function(n,r){return t.call(this,n,Foe(n,r))}}function Foe(e,t){return e.name?{...t,path:(t.path??[]).concat(e.name)}:t}function nN(e,t){t===void 0&&(t=YT(e.config));const n=Doe(e,t),{width:r,height:i}=e,a=Ooe(n,{width:r,height:i,autosize:e.autosize},t);return{...n,...a?{autosize:a}:{}}}const Moe=new ooe,Toe=new Coe,Noe=new My;function Doe(e,t={}){const n={config:t};return Noe.map(Moe.map(Toe.map(e,n),n),n)}function Ox(e){return X(e)?{type:e}:e??{}}function Ooe(e,t,n){let{width:r,height:i}=t;const a=oa(e)||Lp(e),s={};a?r=="container"&&i=="container"?(s.type="fit",s.contains="padding"):r=="container"?(s.type="fit-x",s.contains="padding"):i=="container"&&(s.type="fit-y",s.contains="padding"):(r=="container"&&(j(ax("width")),r=void 0),i=="container"&&(j(ax("height")),i=void 0));const o={type:"pad",...s,...n?Ox(n.autosize):{},...Ox(e.autosize)};if(o.type==="fit"&&!a&&(j(Nre),o.type="pad"),r=="container"&&!(o.type=="fit"||o.type=="fit-x")&&j(sx("width")),i=="container"&&!(o.type=="fit"||o.type=="fit-y")&&j(sx("height")),!Dn(o,{type:"pad"}))return o}function Roe(e){return e==="fit"||e==="fit-x"||e==="fit-y"}function Loe(e){return e?`fit-${yp(e)}`:"fit"}const Poe=["background","padding"];function Rx(e,t){const n={};for(const r of Poe)e&&e[r]!==void 0&&(n[r]=Mn(e[r]));return t&&(n.params=e.params),n}class ua{constructor(t={},n={}){this.explicit=t,this.implicit=n}clone(){return new ua(oe(this.explicit),oe(this.implicit))}combine(){return{...this.explicit,...this.implicit}}get(t){return Ze(this.explicit[t],this.implicit[t])}getWithExplicit(t){return this.explicit[t]!==void 0?{explicit:!0,value:this.explicit[t]}:this.implicit[t]!==void 0?{explicit:!1,value:this.implicit[t]}:{explicit:!1,value:void 0}}setWithExplicit(t,{value:n,explicit:r}){n!==void 0&&this.set(t,n,r)}set(t,n,r){return delete this[r?"implicit":"explicit"][t],this[r?"explicit":"implicit"][t]=n,this}copyKeyFromSplit(t,{explicit:n,implicit:r}){n[t]!==void 0?this.set(t,n[t],!0):r[t]!==void 0&&this.set(t,r[t],!1)}copyKeyFromObject(t,n){n[t]!==void 0&&this.set(t,n[t],!0)}copyAll(t){for(const n of B(t.combine())){const r=t.getWithExplicit(n);this.setWithExplicit(n,r)}}}function Hr(e){return{explicit:!0,value:e}}function kn(e){return{explicit:!1,value:e}}function rN(e){return(t,n,r,i)=>{const a=e(t.value,n.value);return a>0?t:a<0?n:Pp(t,n,r,i)}}function Pp(e,t,n,r){return e.explicit&&t.explicit&&j(bie(n,r,e.value,t.value)),e}function Va(e,t,n,r,i=Pp){return e===void 0||e.value===void 0?t:e.explicit&&!t.explicit?e:t.explicit&&!e.explicit?t:Dn(e.value,t.value)?e:i(e,t,n,r)}class Ioe extends ua{constructor(t={},n={},r=!1){super(t,n),this.explicit=t,this.implicit=n,this.parseNothing=r}clone(){const t=super.clone();return t.parseNothing=this.parseNothing,t}}function Xu(e){return"url"in e}function ff(e){return"values"in e}function iN(e){return"name"in e&&!Xu(e)&&!ff(e)&&!Da(e)}function Da(e){return e&&(aN(e)||sN(e)||B6(e))}function aN(e){return"sequence"in e}function sN(e){return"sphere"in e}function B6(e){return"graticule"in e}var ze;(function(e){e[e.Raw=0]="Raw",e[e.Main=1]="Main",e[e.Row=2]="Row",e[e.Column=3]="Column",e[e.Lookup=4]="Lookup"})(ze||(ze={}));function oN(e){const{signals:t,hasLegend:n,index:r,...i}=e;return i.field=rr(i.field),i}function bo(e,t=!0,n=Wt){if(P(e)){const r=e.map(i=>bo(i,t,n));return t?`[${r.join(", ")}]`:r}else if(Do(e))return n(t?ho(e):jie(e));return t?n(Re(e)):e}function zoe(e,t){for(const n of kt(e.component.selection??{})){const r=n.name;let i=`${r}${Ja}, ${n.resolve==="global"?"true":`{unit: ${Vs(e)}}`}`;for(const a of Up)a.defined(n)&&(a.signals&&(t=a.signals(e,n,t)),a.modifyExpr&&(i=a.modifyExpr(e,n,i)));t.push({name:r+bue,on:[{events:{signal:n.name+Ja},update:`modify(${H(n.name+yo)}, ${i})`}]})}return U6(t)}function Boe(e,t){if(e.component.selection&&B(e.component.selection).length){const n=H(e.getName("cell"));t.unshift({name:"facet",value:{},on:[{events:as("pointermove","scope"),update:`isTuple(facet) ? facet : group(${n}).datum`}]})}return U6(t)}function Uoe(e,t){let n=!1;for(const r of kt(e.component.selection??{})){const i=r.name,a=H(i+yo);if(t.filter(o=>o.name===i).length===0){const o=r.resolve==="global"?"union":r.resolve,u=r.type==="point"?", true, true)":")";t.push({name:r.name,update:`${$N}(${a}, ${H(o)}${u}`})}n=!0;for(const o of Up)o.defined(r)&&o.topLevelSignals&&(t=o.topLevelSignals(e,r,t))}return n&&t.filter(i=>i.name==="unit").length===0&&t.unshift({name:"unit",value:{},on:[{events:"pointermove",update:"isTuple(group()) ? group() : unit"}]}),U6(t)}function joe(e,t){const n=[...t],r=Vs(e,{escape:!1});for(const i of kt(e.component.selection??{})){const a={name:i.name+yo};if(i.project.hasSelectionId&&(a.transform=[{type:"collect",sort:{field:Mr}}]),i.init){const o=i.project.items.map(oN);a.values=i.project.hasSelectionId?i.init.map(u=>({unit:r,[Mr]:bo(u,!1)[0]})):i.init.map(u=>({unit:r,fields:o,values:bo(u,!1)}))}n.filter(o=>o.name===i.name+yo).length||n.push(a)}return n}function uN(e,t){for(const n of kt(e.component.selection??{}))for(const r of Up)r.defined(n)&&r.marks&&(t=r.marks(e,n,t));return t}function qoe(e,t){for(const n of e.children)Ve(n)&&(t=uN(n,t));return t}function Woe(e,t,n,r){const i=MN(e,t.param,t);return{signal:Bn(n.get("type"))&&P(r)&&r[0]>r[1]?`isValid(${i}) && reverse(${i})`:i}}function U6(e){return e.map(t=>(t.on&&!t.on.length&&delete t.on,t))}class De{constructor(t,n){this.debugName=n,this._children=[],this._parent=null,t&&(this.parent=t)}clone(){throw new Error("Cannot clone node")}get parent(){return this._parent}set parent(t){this._parent=t,t&&t.addChild(this)}get children(){return this._children}numChildren(){return this._children.length}addChild(t,n){if(this._children.includes(t)){j(Hre);return}n!==void 0?this._children.splice(n,0,t):this._children.push(t)}removeChild(t){const n=this._children.indexOf(t);return this._children.splice(n,1),n}remove(){let t=this._parent.removeChild(this);for(const n of this._children)n._parent=this._parent,this._parent.addChild(n,t++)}insertAsParentOf(t){const n=t.parent;n.removeChild(this),this.parent=n,t.parent=this}swapWithParent(){const t=this._parent,n=t.parent;for(const i of this._children)i.parent=t;this._children=[],t.removeChild(this);const r=t.parent.removeChild(t);this._parent=n,n.addChild(this,r),t.parent=this}}class an extends De{clone(){const t=new this.constructor;return t.debugName=`clone_${this.debugName}`,t._source=this._source,t._name=`clone_${this._name}`,t.type=this.type,t.refCounts=this.refCounts,t.refCounts[t._name]=0,t}constructor(t,n,r,i){super(t,n),this.type=r,this.refCounts=i,this._source=this._name=n,this.refCounts&&!(this._name in this.refCounts)&&(this.refCounts[this._name]=0)}dependentFields(){return new Set}producedFields(){return new Set}hash(){return this._hash===void 0&&(this._hash=`Output ${iM()}`),this._hash}getSource(){return this.refCounts[this._name]++,this._source}isRequired(){return!!this.refCounts[this._name]}setSource(t){this._source=t}}function pm(e){return e.as!==void 0}function Lx(e){return`${e}_end`}class ti extends De{clone(){return new ti(null,oe(this.timeUnits))}constructor(t,n){super(t),this.timeUnits=n}static makeFromEncoding(t,n){const r=n.reduceFieldDef((i,a,s)=>{const{field:o,timeUnit:u}=a;if(u){let c;if(Oo(u)){if(Ve(n)){const{mark:l,markDef:f,config:d}=n,h=Xa({fieldDef:a,markDef:f,config:d});(lf(l)||h)&&(c={timeUnit:yt(u),field:o})}}else c={as:G(a,{forAs:!0}),field:o,timeUnit:u};if(Ve(n)){const{mark:l,markDef:f,config:d}=n,h=Xa({fieldDef:a,markDef:f,config:d});lf(l)&&et(s)&&h!==.5&&(c.rectBandPosition=h)}c&&(i[be(c)]=c)}return i},{});return Oe(r)?null:new ti(t,r)}static makeFromTransform(t,n){const{timeUnit:r,...i}={...n},a=yt(r),s={...i,timeUnit:a};return new ti(t,{[be(s)]:s})}merge(t){this.timeUnits={...this.timeUnits};for(const n in t.timeUnits)this.timeUnits[n]||(this.timeUnits[n]=t.timeUnits[n]);for(const n of t.children)t.removeChild(n),n.parent=this;t.remove()}removeFormulas(t){const n={};for(const[r,i]of Ga(this.timeUnits)){const a=pm(i)?i.as:`${i.field}_end`;t.has(a)||(n[r]=i)}this.timeUnits=n}producedFields(){return new Set(kt(this.timeUnits).map(t=>pm(t)?t.as:Lx(t.field)))}dependentFields(){return new Set(kt(this.timeUnits).map(t=>t.field))}hash(){return`TimeUnit ${be(this.timeUnits)}`}assemble(){const t=[];for(const n of kt(this.timeUnits)){const{rectBandPosition:r}=n,i=yt(n.timeUnit);if(pm(n)){const{field:a,as:s}=n,{unit:o,utc:u,...c}=i,l=[s,`${s}_end`];t.push({field:rr(a),type:"timeunit",...o?{units:wp(o)}:{},...u?{timezone:"utc"}:{},...c,as:l}),t.push(...Px(l,r,i))}else if(n){const{field:a}=n,s=a.replaceAll("\\.","."),o=cN({timeUnit:i,field:s}),u=Lx(s);t.push({type:"formula",expr:o,as:u}),t.push(...Px([s,u],r,i))}}return t}}const Ip="offsetted_rect_start",zp="offsetted_rect_end";function cN({timeUnit:e,field:t,reverse:n}){const{unit:r,utc:i}=e,a=BM(r),{part:s,step:o}=WM(a,e.step);return`${i?"utcOffset":"timeOffset"}('${s}', datum['${t}'], ${n?-o:o})`}function Px([e,t],n,r){if(n!==void 0&&n!==.5){const i=`datum['${e}']`,a=`datum['${t}']`;return[{type:"formula",expr:Ix([cN({timeUnit:r,field:e,reverse:!0}),i],n+.5),as:`${e}_${Ip}`},{type:"formula",expr:Ix([i,a],n+.5),as:`${e}_${zp}`}]}return[]}function Ix([e,t],n){return`${1-n} * ${e} + ${n} * ${t}`}const nd="_tuple_fields";class Hoe{constructor(...t){this.items=t,this.hasChannel={},this.hasField={},this.hasSelectionId=!1}}const Goe={defined:()=>!0,parse:(e,t,n)=>{const r=t.name,i=t.project??(t.project=new Hoe),a={},s={},o=new Set,u=(g,p)=>{const m=p==="visual"?g.channel:g.field;let b=We(`${r}_${m}`);for(let y=1;o.has(b);y++)b=We(`${r}_${m}_${y}`);return o.add(b),{[p]:b}},c=t.type,l=e.config.selection[c],f=n.value!==void 0?Y(n.value):null;let{fields:d,encodings:h}=V(n.select)?n.select:{};if(!d&&!h&&f){for(const g of f)if(V(g))for(const p of B(g))ore(p)?(h||(h=[])).push(p):c==="interval"?(j(Ure),h=l.encodings):(d??(d=[])).push(p)}!d&&!h&&(h=l.encodings,"fields"in l&&(d=l.fields));for(const g of h??[]){const p=e.fieldDef(g);if(p){let m=p.field;if(p.aggregate){j(Dre(g,p.aggregate));continue}else if(!m){j(ux(g));continue}if(p.timeUnit&&!Oo(p.timeUnit)){m=e.vgField(g);const b={timeUnit:p.timeUnit,as:m,field:p.field};s[be(b)]=b}if(!a[m]){const b=c==="interval"&&sa(g)&&Bn(e.getScaleComponent(g).get("type"))?"R":p.bin?"R-RE":"E",y={field:m,channel:g,type:b,index:i.items.length};y.signals={...u(y,"data"),...u(y,"visual")},i.items.push(a[m]=y),i.hasField[m]=a[m],i.hasSelectionId=i.hasSelectionId||m===Mr,lM(g)?(y.geoChannel=g,y.channel=cM(g),i.hasChannel[y.channel]=a[m]):i.hasChannel[g]=a[m]}}else j(ux(g))}for(const g of d??[]){if(i.hasField[g])continue;const p={type:"E",field:g,index:i.items.length};p.signals={...u(p,"data")},i.items.push(p),i.hasField[g]=p,i.hasSelectionId=i.hasSelectionId||g===Mr}f&&(t.init=f.map(g=>i.items.map(p=>V(g)?g[p.geoChannel||p.channel]!==void 0?g[p.geoChannel||p.channel]:g[p.field]:g))),Oe(s)||(i.timeUnit=new ti(null,s))},signals:(e,t,n)=>{const r=t.name+nd;return n.filter(a=>a.name===r).length>0||t.project.hasSelectionId?n:n.concat({name:r,value:t.project.items.map(oN)})}},Yi={defined:e=>e.type==="interval"&&e.resolve==="global"&&e.bind&&e.bind==="scales",parse:(e,t)=>{const n=t.scales=[];for(const r of t.project.items){const i=r.channel;if(!sa(i))continue;const a=e.getScaleComponent(i),s=a?a.get("type"):void 0;if(!a||!Bn(s)){j(Lre);continue}a.set("selectionExtent",{param:t.name,field:r.field},!0),n.push(r)}},topLevelSignals:(e,t,n)=>{const r=t.scales.filter(s=>n.filter(o=>o.name===s.signals.data).length===0);if(!e.parent||zx(e)||r.length===0)return n;const i=n.filter(s=>s.name===t.name)[0];let a=i.update;if(a.indexOf($N)>=0)i.update=`{${r.map(s=>`${H(rr(s.field))}: ${s.signals.data}`).join(", ")}}`;else{for(const s of r){const o=`${H(rr(s.field))}: ${s.signals.data}`;a.includes(o)||(a=`${a.substring(0,a.length-1)}, ${o}}`)}i.update=a}return n.concat(r.map(s=>({name:s.signals.data})))},signals:(e,t,n)=>{if(e.parent&&!zx(e))for(const r of t.scales){const i=n.filter(a=>a.name===r.signals.data)[0];i.push="outer",delete i.value,delete i.update}return n}};function Ty(e,t){return`domain(${H(e.scaleName(t))})`}function zx(e){return e.parent&&wc(e.parent)&&!e.parent.parent}const mu="_brush",lN="_scale_trigger",Wc="geo_interval_init_tick",fN="_init",Yoe="_center",Xoe={defined:e=>e.type==="interval",parse:(e,t,n)=>{var r;if(e.hasProjection){const i={...V(n.select)?n.select:{}};i.fields=[Mr],i.encodings||(i.encodings=n.value?B(n.value):[Pr,Lr]),n.select={type:"interval",...i}}if(t.translate&&!Yi.defined(t)){const i=`!event.item || event.item.mark.name !== ${H(t.name+mu)}`;for(const a of t.events){if(!a.between){j(`${a} is not an ordered event stream for interval selections.`);continue}const s=Y((r=a.between[0]).filter??(r.filter=[]));s.indexOf(i)<0&&s.push(i)}}},signals:(e,t,n)=>{const r=t.name,i=r+Ja,a=kt(t.project.hasChannel).filter(o=>o.channel===He||o.channel===_t),s=t.init?t.init[0]:null;if(n.push(...a.reduce((o,u)=>o.concat(Voe(e,t,u,s&&s[u.index])),[])),e.hasProjection){const o=H(e.projectionName()),u=e.projectionName()+Yoe,{x:c,y:l}=t.project.hasChannel,f=c&&c.signals.visual,d=l&&l.signals.visual,h=c?s&&s[c.index]:`${u}[0]`,g=l?s&&s[l.index]:`${u}[1]`,p=_=>e.getSizeSignalRef(_).signal,m=`[[${f?f+"[0]":"0"}, ${d?d+"[0]":"0"}],[${f?f+"[1]":p("width")}, ${d?d+"[1]":p("height")}]]`;s&&(n.unshift({name:r+fN,init:`[scale(${o}, [${c?h[0]:h}, ${l?g[0]:g}]), scale(${o}, [${c?h[1]:h}, ${l?g[1]:g}])]`}),(!c||!l)&&(n.find(E=>E.name===u)||n.unshift({name:u,update:`invert(${o}, [${p("width")}/2, ${p("height")}/2])`})));const b=`intersect(${m}, {markname: ${H(e.getName("marks"))}}, unit.mark)`,y=`{unit: ${Vs(e)}}`,v=`vlSelectionTuples(${b}, ${y})`,x=a.map(_=>_.signals.visual);return n.concat({name:i,on:[{events:[...x.length?[{signal:x.join(" || ")}]:[],...s?[{signal:Wc}]:[]],update:v}]})}else{if(!Yi.defined(t)){const c=r+lN,l=a.map(f=>{const d=f.channel,{data:h,visual:g}=f.signals,p=H(e.scaleName(d)),m=e.getScaleComponent(d).get("type"),b=Bn(m)?"+":"";return`(!isArray(${h}) || (${b}invert(${p}, ${g})[0] === ${b}${h}[0] && ${b}invert(${p}, ${g})[1] === ${b}${h}[1]))`});l.length&&n.push({name:c,value:{},on:[{events:a.map(f=>({scale:e.scaleName(f.channel)})),update:l.join(" && ")+` ? ${c} : {}`}]})}const o=a.map(c=>c.signals.data),u=`unit: ${Vs(e)}, fields: ${r+nd}, values`;return n.concat({name:i,...s?{init:`{${u}: ${bo(s)}}`}:{},...o.length?{on:[{events:[{signal:o.join(" || ")}],update:`${o.join(" && ")} ? {${u}: [${o}]} : null`}]}:{}})}},topLevelSignals:(e,t,n)=>(Ve(e)&&e.hasProjection&&t.init&&(n.filter(i=>i.name===Wc).length||n.unshift({name:Wc,value:null,on:[{events:"timer{1}",update:`${Wc} === null ? {} : ${Wc}`}]})),n),marks:(e,t,n)=>{const r=t.name,{x:i,y:a}=t.project.hasChannel,s=i==null?void 0:i.signals.visual,o=a==null?void 0:a.signals.visual,u=`data(${H(t.name+yo)})`;if(Yi.defined(t)||!i&&!a)return n;const c={x:i!==void 0?{signal:`${s}[0]`}:{value:0},y:a!==void 0?{signal:`${o}[0]`}:{value:0},x2:i!==void 0?{signal:`${s}[1]`}:{field:{group:"width"}},y2:a!==void 0?{signal:`${o}[1]`}:{field:{group:"height"}}};if(t.resolve==="global")for(const p of B(c))c[p]=[{test:`${u}.length && ${u}[0].unit === ${Vs(e)}`,...c[p]},{value:0}];const{fill:l,fillOpacity:f,cursor:d,...h}=t.mark,g=B(h).reduce((p,m)=>(p[m]=[{test:[i!==void 0&&`${s}[0] !== ${s}[1]`,a!==void 0&&`${o}[0] !== ${o}[1]`].filter(b=>b).join(" && "),value:h[m]},{value:null}],p),{});return[{name:`${r+mu}_bg`,type:"rect",clip:!0,encode:{enter:{fill:{value:l},fillOpacity:{value:f}},update:c}},...n,{name:r+mu,type:"rect",clip:!0,encode:{enter:{...d?{cursor:{value:d}}:{},fill:{value:"transparent"}},update:{...c,...g}}}]}};function Voe(e,t,n,r){const i=!e.hasProjection,a=n.channel,s=n.signals.visual,o=H(i?e.scaleName(a):e.projectionName()),u=d=>`scale(${o}, ${d})`,c=e.getSizeSignalRef(a===He?"width":"height").signal,l=`${a}(unit)`,f=t.events.reduce((d,h)=>[...d,{events:h.between[0],update:`[${l}, ${l}]`},{events:h,update:`[${s}[0], clamp(${l}, 0, ${c})]`}],[]);if(i){const d=n.signals.data,h=Yi.defined(t),g=e.getScaleComponent(a),p=g?g.get("type"):void 0,m=r?{init:bo(r,!0,u)}:{value:[]};return f.push({events:{signal:t.name+lN},update:Bn(p)?`[${u(`${d}[0]`)}, ${u(`${d}[1]`)}]`:"[0, 0]"}),h?[{name:d,on:[]}]:[{name:s,...m,on:f},{name:d,...r?{init:bo(r)}:{},on:[{events:{signal:s},update:`${s}[0] === ${s}[1] ? null : invert(${o}, ${s})`}]}]}else{const d=a===He?0:1,h=t.name+fN,g=r?{init:`[${h}[0][${d}], ${h}[1][${d}]]`}:{value:[]};return[{name:s,...g,on:f}]}}const Koe={defined:e=>e.type==="point",signals:(e,t,n)=>{const r=t.name,i=r+nd,a=t.project,s="(item().isVoronoi ? datum.datum : datum)",o=kt(e.component.selection??{}).reduce((f,d)=>d.type==="interval"?f.concat(d.name+mu):f,[]).map(f=>`indexof(item().mark.name, '${f}') < 0`).join(" && "),u=`datum && item().mark.marktype !== 'group' && indexof(item().mark.role, 'legend') < 0${o?` && ${o}`:""}`;let c=`unit: ${Vs(e)}, `;if(t.project.hasSelectionId)c+=`${Mr}: ${s}[${H(Mr)}]`;else{const f=a.items.map(d=>{const h=e.fieldDef(d.channel);return h!=null&&h.bin?`[${s}[${H(e.vgField(d.channel,{}))}], ${s}[${H(e.vgField(d.channel,{binSuffix:"end"}))}]]`:`${s}[${H(d.field)}]`}).join(", ");c+=`fields: ${i}, values: [${f}]`}const l=t.events;return n.concat([{name:r+Ja,on:l?[{events:l,update:`${u} ? {${c}} : null`,force:!0}]:[]}])}};function yc(e,t,n,r){const i=Fp(t)&&t.condition,a=r(t);if(i){const o=Y(i).map(u=>{const c=r(u);if(Bae(u)){const{param:l,empty:f}=u;return{test:FN(e,{param:l,empty:f}),...c}}else return{test:G0(e,u.test),...c}});return{[n]:[...o,...a!==void 0?[a]:[]]}}else return a!==void 0?{[n]:a}:{}}function j6(e,t="text"){const n=e.encoding[t];return yc(e,n,t,r=>Bp(r,e.config))}function Bp(e,t,n="datum"){if(e){if(Fr(e))return je(e.value);if(ue(e)){const{format:r,formatType:i}=z0(e);return _6({fieldOrDatumDef:e,format:r,formatType:i,expr:n,config:t})}}}function dN(e,t={}){const{encoding:n,markDef:r,config:i,stack:a}=e,s=n.tooltip;if(P(s))return{tooltip:Bx({tooltip:s},a,i,t)};{const o=t.reactiveGeom?"datum.datum":"datum";return yc(e,s,"tooltip",u=>{const c=Bp(u,i,o);if(c)return c;if(u===null)return;let l=Te("tooltip",r,i);if(l===!0&&(l={content:"encoding"}),X(l))return{value:l};if(V(l))return Q(l)?l:l.content==="encoding"?Bx(n,a,i,t):{signal:o}})}}function hN(e,t,n,{reactiveGeom:r}={}){const i={...n,...n.tooltipFormat},a={},s=r?"datum.datum":"datum",o=[];function u(l,f){const d=To(f),h=un(l)?l:{...l,type:e[d].type},g=h.title||$6(h,i),p=Y(g).join(", ").replaceAll(/"/g,'\\"');let m;if(et(f)){const b=f==="x"?"x2":"y2",y=li(e[b]);if(Et(h.bin)&&y){const v=G(h,{expr:s}),x=G(y,{expr:s}),{format:_,formatType:E}=z0(h);m=Jf(v,x,_,E,i),a[b]=!0}}if((et(f)||f===sr||f===Rr)&&t&&t.fieldChannel===f&&t.offset==="normalize"){const{format:b,formatType:y}=z0(h);m=_6({fieldOrDatumDef:h,format:b,formatType:y,expr:s,config:i,normalizeStack:!0}).signal}m??(m=Bp(h,i,s).signal),o.push({channel:f,key:p,value:m})}C6(e,(l,f)=>{U(l)?u(l,f):Mp(l)&&u(l.condition,f)});const c={};for(const{channel:l,key:f,value:d}of o)!a[l]&&!c[f]&&(c[f]=d);return c}function Bx(e,t,n,{reactiveGeom:r}={}){const i=hN(e,t,n,{reactiveGeom:r}),a=Ga(i).map(([s,o])=>`"${s}": ${o}`);return a.length>0?{signal:`{${a.join(", ")}}`}:void 0}function Joe(e){const{markDef:t,config:n}=e,r=Te("aria",t,n);return r===!1?{}:{...r?{aria:r}:{},...Qoe(e),...Zoe(e)}}function Qoe(e){const{mark:t,markDef:n,config:r}=e;if(r.aria===!1)return{};const i=Te("ariaRoleDescription",n,r);return i!=null?{ariaRoleDescription:{value:i}}:t in Fre?{}:{ariaRoleDescription:{value:t}}}function Zoe(e){const{encoding:t,markDef:n,config:r,stack:i}=e,a=t.description;if(a)return yc(e,a,"description",u=>Bp(u,e.config));const s=Te("description",n,r);if(s!=null)return{description:je(s)};if(r.aria===!1)return{};const o=hN(t,i,r);if(!Oe(o))return{description:{signal:Ga(o).map(([u,c],l)=>`"${l>0?"; ":""}${u}: " + (${c})`).join(" + ")}}}function dt(e,t,n={}){const{markDef:r,encoding:i,config:a}=t,{vgChannel:s}=n;let{defaultRef:o,defaultValue:u}=n;o===void 0&&(u??(u=Te(e,r,a,{vgChannel:s,ignoreVgConfig:!0})),u!==void 0&&(o=je(u)));const c=i[e];return yc(t,c,s??e,l=>x6({channel:e,channelDef:l,markDef:r,config:a,scaleName:t.scaleName(e),scale:t.getScaleComponent(e),stack:null,defaultRef:o}))}function gN(e,t={filled:void 0}){const{markDef:n,encoding:r,config:i}=e,{type:a}=n,s=t.filled??Te("filled",n,i),o=ye(["bar","point","circle","square","geoshape"],a)?"transparent":void 0,u=Te(s===!0?"color":void 0,n,i,{vgChannel:"fill"})??i.mark[s===!0&&"color"]??o,c=Te(s===!1?"color":void 0,n,i,{vgChannel:"stroke"})??i.mark[s===!1&&"color"],l=s?"fill":"stroke",f={...u?{fill:je(u)}:{},...c?{stroke:je(c)}:{}};return n.color&&(s?n.fill:n.stroke)&&j(TM("property",{fill:"fill"in n,stroke:"stroke"in n})),{...f,...dt("color",e,{vgChannel:l,defaultValue:s?u:c}),...dt("fill",e,{defaultValue:r.fill?u:void 0}),...dt("stroke",e,{defaultValue:r.stroke?c:void 0})}}function eue(e){const{encoding:t,mark:n}=e,r=t.order;return!hs(n)&&Fr(r)?yc(e,r,"zindex",i=>je(i.value)):{}}function Vu({channel:e,markDef:t,encoding:n={},model:r,bandPosition:i}){const a=`${e}Offset`,s=t[a],o=n[a];if((a==="xOffset"||a==="yOffset")&&o)return{offsetType:"encoding",offset:x6({channel:a,channelDef:o,markDef:t,config:r==null?void 0:r.config,scaleName:r.scaleName(a),scale:r.getScaleComponent(a),stack:null,defaultRef:je(s),bandPosition:i})};const u=t[a];return u?{offsetType:"visual",offset:u}:{}}function It(e,t,{defaultPos:n,vgChannel:r}){const{encoding:i,markDef:a,config:s,stack:o}=t,u=i[e],c=i[_i(e)],l=t.scaleName(e),f=t.getScaleComponent(e),{offset:d,offsetType:h}=Vu({channel:e,markDef:a,encoding:i,model:t,bandPosition:.5}),g=q6({model:t,defaultPos:n,channel:e,scaleName:l,scale:f}),p=!u&&et(e)&&(i.latitude||i.longitude)?{field:t.getName(e)}:tue({channel:e,channelDef:u,channel2Def:c,markDef:a,config:s,scaleName:l,scale:f,stack:o,offset:d,defaultRef:g,bandPosition:h==="encoding"?0:void 0});return p?{[r||e]:p}:void 0}function tue(e){const{channel:t,channelDef:n,scaleName:r,stack:i,offset:a,markDef:s}=e;if(ue(n)&&i&&t===i.fieldChannel){if(U(n)){let o=n.bandPosition;if(o===void 0&&s.type==="text"&&(t==="radius"||t==="theta")&&(o=.5),o!==void 0)return L0({scaleName:r,fieldOrDatumDef:n,startSuffix:"start",bandPosition:o,offset:a})}return Ys(n,r,{suffix:"end"},{offset:a})}return y6(e)}function q6({model:e,defaultPos:t,channel:n,scaleName:r,scale:i}){const{markDef:a,config:s}=e;return()=>{const o=To(n),u=Ya(n),c=Te(n,a,s,{vgChannel:u});if(c!==void 0)return Nl(n,c);switch(t){case"zeroOrMin":case"zeroOrMax":if(r){const l=i.get("type");if(!ye([yn.LOG,yn.TIME,yn.UTC],l)){if(i.domainDefinitelyIncludesZero())return{scale:r,value:0}}}if(t==="zeroOrMin")return o==="y"?{field:{group:"height"}}:{value:0};switch(o){case"radius":return{signal:`min(${e.width.signal},${e.height.signal})/2`};case"theta":return{signal:"2*PI"};case"x":return{field:{group:"width"}};case"y":return{value:0}}break;case"mid":return{...e[Sn(n)],mult:.5}}}}const nue={left:"x",center:"xc",right:"x2"},rue={top:"y",middle:"yc",bottom:"y2"};function pN(e,t,n,r="middle"){if(e==="radius"||e==="theta")return Ya(e);const i=e==="x"?"align":"baseline",a=Te(i,t,n);let s;return Q(a)?(j(sie(i)),s=void 0):s=a,e==="x"?nue[s||(r==="top"?"left":"center")]:rue[s||r]}function W0(e,t,{defaultPos:n,defaultPos2:r,range:i}){return i?mN(e,t,{defaultPos:n,defaultPos2:r}):It(e,t,{defaultPos:n})}function mN(e,t,{defaultPos:n,defaultPos2:r}){const{markDef:i,config:a}=t,s=_i(e),o=Sn(e),u=iue(t,r,s),c=u[o]?pN(e,i,a):Ya(e);return{...It(e,t,{defaultPos:n,vgChannel:c}),...u}}function iue(e,t,n){const{encoding:r,mark:i,markDef:a,stack:s,config:o}=e,u=To(n),c=Sn(n),l=Ya(n),f=r[u],d=e.scaleName(u),h=e.getScaleComponent(u),{offset:g}=n in r||n in a?Vu({channel:n,markDef:a,encoding:r,model:e}):Vu({channel:u,markDef:a,encoding:r,model:e});if(!f&&(n==="x2"||n==="y2")&&(r.latitude||r.longitude)){const m=Sn(n),b=e.markDef[m];return b!=null?{[m]:{value:b}}:{[l]:{field:e.getName(n)}}}const p=aue({channel:n,channelDef:f,channel2Def:r[n],markDef:a,config:o,scaleName:d,scale:h,stack:s,offset:g,defaultRef:void 0});return p!==void 0?{[l]:p}:Rd(n,a)||Rd(n,{[n]:D0(n,a,o.style),[c]:D0(c,a,o.style)})||Rd(n,o[i])||Rd(n,o.mark)||{[l]:q6({model:e,defaultPos:t,channel:n,scaleName:d,scale:h})()}}function aue({channel:e,channelDef:t,channel2Def:n,markDef:r,config:i,scaleName:a,scale:s,stack:o,offset:u,defaultRef:c}){return ue(t)&&o&&e.charAt(0)===o.fieldChannel.charAt(0)?Ys(t,a,{suffix:"start"},{offset:u}):y6({channel:e,channelDef:n,scaleName:a,scale:s,stack:o,markDef:r,config:i,offset:u,defaultRef:c})}function Rd(e,t){const n=Sn(e),r=Ya(e);if(t[r]!==void 0)return{[r]:Nl(e,t[r])};if(t[e]!==void 0)return{[r]:Nl(e,t[e])};if(t[n]){const i=t[n];if(po(i))j(eie(n));else return{[n]:Nl(e,i)}}}function Ka(e,t){const{config:n,encoding:r,markDef:i}=e,a=i.type,s=_i(t),o=Sn(t),u=r[t],c=r[s],l=e.getScaleComponent(t),f=l?l.get("type"):void 0,d=i.orient,h=r[o]??r.size??Te("size",i,n,{vgChannel:o}),g=gM(t),p=a==="bar"&&(t==="x"?d==="vertical":d==="horizontal");return U(u)&&(Be(u.bin)||Et(u.bin)||u.timeUnit&&!c)&&!(h&&!po(h))&&!r[g]&&!vt(f)?uue({fieldDef:u,fieldDef2:c,channel:t,model:e}):(ue(u)&&vt(f)||p)&&!c?oue(u,t,e):mN(t,e,{defaultPos:"zeroOrMax",defaultPos2:"zeroOrMin"})}function sue(e,t,n,r,i,a,s){if(po(i))if(n){const u=n.get("type");if(u==="band"){let c=`bandwidth('${t}')`;i.band!==1&&(c=`${i.band} * ${c}`);const l=Zi("minBandSize",{type:s},r);return{signal:l?`max(${xr(l)}, ${c})`:c}}else i.band!==1&&(j(lie(u)),i=void 0)}else return{mult:i.band,field:{group:e}};else{if(Q(i))return i;if(i)return{value:i}}if(n){const u=n.get("range");if(ds(u)&&we(u.step))return{value:u.step-2}}if(!a){const{bandPaddingInner:u,barBandPaddingInner:c,rectBandPaddingInner:l}=r.scale,f=Ze(u,s==="bar"?c:l);if(Q(f))return{signal:`(1 - (${f.signal})) * ${e}`};if(we(f))return{signal:`${1-f} * ${e}`}}return{value:j0(r.view,e)-2}}function oue(e,t,n){var $,F;const{markDef:r,encoding:i,config:a,stack:s}=n,o=r.orient,u=n.scaleName(t),c=n.getScaleComponent(t),l=Sn(t),f=_i(t),d=gM(t),h=n.scaleName(d),g=n.getScaleComponent(V7(t)),p=o==="horizontal"&&t==="y"||o==="vertical"&&t==="x";let m;(i.size||r.size)&&(p?m=dt("size",n,{vgChannel:l,defaultRef:je(r.size)}):j(gie(r.type)));const b=!!m,y=dT({channel:t,fieldDef:e,markDef:r,config:a,scaleType:($=c||g)==null?void 0:$.get("type"),useVlSizeChannel:p});m=m||{[l]:sue(l,h||u,g||c,a,y,!!e,r.type)};const v=((F=c||g)==null?void 0:F.get("type"))==="band"&&po(y)&&!b?"top":"middle",x=pN(t,r,a,v),_=x==="xc"||x==="yc",{offset:E,offsetType:w}=Vu({channel:t,markDef:r,encoding:i,model:n,bandPosition:_?.5:0}),S=y6({channel:t,channelDef:e,markDef:r,config:a,scaleName:u,scale:c,stack:s,offset:E,defaultRef:q6({model:n,defaultPos:"mid",channel:t,scaleName:u,scale:c}),bandPosition:_?w==="encoding"?0:.5:Q(y)?{signal:`(1-${y})/2`}:po(y)?(1-y.band)/2:0});if(l)return{[x]:S,...m};{const k=Ya(f),D=m[l],A=E?{...D,offset:E}:D;return{[x]:S,[k]:P(S)?[S[0],{...S[1],offset:A}]:{...S,offset:A}}}}function Ux(e,t,n,r,i,a,s){if(uM(e))return 0;const o=e==="x"||e==="y2",u=o?-t/2:t/2;if(Q(n)||Q(i)||Q(r)||a){const c=xr(n),l=xr(i),f=xr(r),d=xr(a),g=a?`(${s} < ${d} ? ${o?"":"-"}0.5 * (${d} - (${s})) : ${u})`:u,p=f?`${f} + `:"",m=c?`(${c} ? -1 : 1) * `:"",b=l?`(${l} + ${g})`:g;return{signal:p+m+b}}else return i=i||0,r+(n?-i-u:+i+u)}function uue({fieldDef:e,fieldDef2:t,channel:n,model:r}){var F;const{config:i,markDef:a,encoding:s}=r,o=r.getScaleComponent(n),u=r.scaleName(n),c=o?o.get("type"):void 0,l=o.get("reverse"),f=dT({channel:n,fieldDef:e,markDef:a,config:i,scaleType:c}),d=(F=r.component.axes[n])==null?void 0:F[0],h=(d==null?void 0:d.get("translate"))??.5,g=et(n)?Te("binSpacing",a,i)??0:0,p=_i(n),m=Ya(n),b=Ya(p),y=Zi("minBandSize",a,i),{offset:v}=Vu({channel:n,markDef:a,encoding:s,model:r,bandPosition:0}),{offset:x}=Vu({channel:p,markDef:a,encoding:s,model:r,bandPosition:0}),_=Rae({fieldDef:e,scaleName:u}),E=Ux(n,g,l,h,v,y,_),w=Ux(p,g,l,h,x??v,y,_),S=Q(f)?{signal:`(1-${f.signal})/2`}:po(f)?(1-f.band)/2:.5,$=Xa({fieldDef:e,fieldDef2:t,markDef:a,config:i});if(Be(e.bin)||e.timeUnit){const k=e.timeUnit&&$!==.5;return{[b]:jx({fieldDef:e,scaleName:u,bandPosition:S,offset:w,useRectOffsetField:k}),[m]:jx({fieldDef:e,scaleName:u,bandPosition:Q(S)?{signal:`1-${S.signal}`}:1-S,offset:E,useRectOffsetField:k})}}else if(Et(e.bin)){const k=Ys(e,u,{},{offset:w});if(U(t))return{[b]:k,[m]:Ys(t,u,{},{offset:E})};if(No(e.bin)&&e.bin.step)return{[b]:k,[m]:{signal:`scale("${u}", ${G(e,{expr:"datum"})} + ${e.bin.step})`,offset:E}}}j(OM(p))}function jx({fieldDef:e,scaleName:t,bandPosition:n,offset:r,useRectOffsetField:i}){return L0({scaleName:t,fieldOrDatumDef:e,bandPosition:n,offset:r,...i?{startSuffix:Ip,endSuffix:zp}:{}})}const cue=new Set(["aria","width","height"]);function or(e,t){const{fill:n=void 0,stroke:r=void 0}=t.color==="include"?gN(e):{};return{...lue(e.markDef,t),...qx(e,"fill",n),...qx(e,"stroke",r),...dt("opacity",e),...dt("fillOpacity",e),...dt("strokeOpacity",e),...dt("strokeWidth",e),...dt("strokeDash",e),...eue(e),...dN(e),...j6(e,"href"),...Joe(e)}}function qx(e,t,n){const{config:r,mark:i,markDef:a}=e;if(Te("invalid",a,r)==="hide"&&n&&!hs(i)){const o=fue(e,{invalid:!0,channels:vp});if(o)return{[t]:[{test:o,value:null},...Y(n)]}}return n?{[t]:n}:{}}function lue(e,t){return Cre.reduce((n,r)=>(!cue.has(r)&&e[r]!==void 0&&t[r]!=="ignore"&&(n[r]=je(e[r])),n),{})}function fue(e,{invalid:t=!1,channels:n}){const r=n.reduce((a,s)=>{const o=e.getScaleComponent(s);if(o){const u=o.get("type"),c=e.vgField(s,{expr:"datum"});c&&Bn(u)&&(a[c]=!0)}return a},{}),i=B(r);if(i.length>0){const a=t?"||":"&&";return i.map(s=>v6(s,t)).join(` ${a} `)}}function W6(e){const{config:t,markDef:n}=e;if(Te("invalid",n,t)){const i=due(e,{channels:wi});if(i)return{defined:{signal:i}}}return{}}function due(e,{invalid:t=!1,channels:n}){const r=n.reduce((a,s)=>{var u;const o=e.getScaleComponent(s);if(o){const c=o.get("type"),l=e.vgField(s,{expr:"datum",binSuffix:(u=e.stack)!=null&&u.impute?"mid":void 0});l&&Bn(c)&&(a[l]=!0)}return a},{}),i=B(r);if(i.length>0){const a=t?"||":"&&";return i.map(s=>v6(s,t)).join(` ${a} `)}}function Wx(e,t){if(t!==void 0)return{[e]:je(t)}}const mm="voronoi",bN={defined:e=>e.type==="point"&&e.nearest,parse:(e,t)=>{if(t.events)for(const n of t.events)n.markname=e.getName(mm)},marks:(e,t,n)=>{const{x:r,y:i}=t.project.hasChannel,a=e.mark;if(hs(a))return j(Ore(a)),n;const s={name:e.getName(mm),type:"path",interactive:!0,from:{data:e.getName("marks")},encode:{update:{fill:{value:"transparent"},strokeWidth:{value:.35},stroke:{value:"transparent"},isVoronoi:{value:!0},...dN(e,{reactiveGeom:!0})}},transform:[{type:"voronoi",x:{expr:r||!i?"datum.datum.x || 0":"0"},y:{expr:i||!r?"datum.datum.y || 0":"0"},size:[e.getSizeSignalRef("width"),e.getSizeSignalRef("height")]}]};let o=0,u=!1;return n.forEach((c,l)=>{const f=c.name??"";f===e.component.mark[0].name?o=l:f.indexOf(mm)>=0&&(u=!0)}),u||n.splice(o+1,0,s),n}},yN={defined:e=>e.type==="point"&&e.resolve==="global"&&e.bind&&e.bind!=="scales"&&!O6(e.bind),parse:(e,t,n)=>AN(t,n),topLevelSignals:(e,t,n)=>{const r=t.name,i=t.project,a=t.bind,s=t.init&&t.init[0],o=bN.defined(t)?"(item().isVoronoi ? datum.datum : datum)":"datum";return i.items.forEach((u,c)=>{const l=We(`${r}_${u.field}`);n.filter(d=>d.name===l).length||n.unshift({name:l,...s?{init:bo(s[c])}:{value:null},on:t.events?[{events:t.events,update:`datum && item().mark.marktype !== 'group' ? ${o}[${H(u.field)}] : null`}]:[],bind:a[u.field]??a[u.channel]??a})}),n},signals:(e,t,n)=>{const r=t.name,i=t.project,a=n.filter(c=>c.name===r+Ja)[0],s=r+nd,o=i.items.map(c=>We(`${r}_${c.field}`)),u=o.map(c=>`${c} !== null`).join(" && ");return o.length&&(a.update=`${u} ? {fields: ${s}, values: [${o.join(", ")}]} : null`),delete a.value,delete a.on,n}},H0="_toggle",vN={defined:e=>e.type==="point"&&!!e.toggle,signals:(e,t,n)=>n.concat({name:t.name+H0,value:!1,on:[{events:t.events,update:t.toggle}]}),modifyExpr:(e,t)=>{const n=t.name+Ja,r=t.name+H0;return`${r} ? null : ${n}, `+(t.resolve==="global"?`${r} ? null : true, `:`${r} ? null : {unit: ${Vs(e)}}, `)+`${r} ? ${n} : null`}},hue={defined:e=>e.clear!==void 0&&e.clear!==!1,parse:(e,t)=>{t.clear&&(t.clear=X(t.clear)?as(t.clear,"view"):t.clear)},topLevelSignals:(e,t,n)=>{if(yN.defined(t))for(const r of t.project.items){const i=n.findIndex(a=>a.name===We(`${t.name}_${r.field}`));i!==-1&&n[i].on.push({events:t.clear,update:"null"})}return n},signals:(e,t,n)=>{function r(i,a){i!==-1&&n[i].on&&n[i].on.push({events:t.clear,update:a})}if(t.type==="interval")for(const i of t.project.items){const a=n.findIndex(s=>s.name===i.signals.visual);if(r(a,"[0, 0]"),a===-1){const s=n.findIndex(o=>o.name===i.signals.data);r(s,"null")}}else{let i=n.findIndex(a=>a.name===t.name+Ja);r(i,"null"),vN.defined(t)&&(i=n.findIndex(a=>a.name===t.name+H0),r(i,"false"))}return n}},xN={defined:e=>{const t=e.resolve==="global"&&e.bind&&O6(e.bind),n=e.project.items.length===1&&e.project.items[0].field!==Mr;return t&&!n&&j(Pre),t&&n},parse:(e,t,n)=>{const r=oe(n);if(r.select=X(r.select)?{type:r.select,toggle:t.toggle}:{...r.select,toggle:t.toggle},AN(t,r),V(n.select)&&(n.select.on||n.select.clear)){const s='event.item && indexof(event.item.mark.role, "legend") < 0';for(const o of t.events)o.filter=Y(o.filter??[]),o.filter.includes(s)||o.filter.push(s)}const i=dm(t.bind)?t.bind.legend:"click",a=X(i)?as(i,"view"):Y(i);t.bind={legend:{merge:a}}},topLevelSignals:(e,t,n)=>{const r=t.name,i=dm(t.bind)&&t.bind.legend,a=s=>o=>{const u=oe(o);return u.markname=s,u};for(const s of t.project.items){if(!s.hasLegend)continue;const o=`${We(s.field)}_legend`,u=`${r}_${o}`;if(n.filter(l=>l.name===u).length===0){const l=i.merge.map(a(`${o}_symbols`)).concat(i.merge.map(a(`${o}_labels`))).concat(i.merge.map(a(`${o}_entries`)));n.unshift({name:u,...t.init?{}:{value:null},on:[{events:l,update:"isDefined(datum.value) ? datum.value : item().items[0].items[0].datum.value",force:!0},{events:i.merge,update:`!event.item || !datum ? null : ${u}`,force:!0}]})}}return n},signals:(e,t,n)=>{const r=t.name,i=t.project,a=n.find(d=>d.name===r+Ja),s=r+nd,o=i.items.filter(d=>d.hasLegend).map(d=>We(`${r}_${We(d.field)}_legend`)),c=`${o.map(d=>`${d} !== null`).join(" && ")} ? {fields: ${s}, values: [${o.join(", ")}]} : null`;t.events&&o.length>0?a.on.push({events:o.map(d=>({signal:d})),update:c}):o.length>0&&(a.update=c,delete a.value,delete a.on);const l=n.find(d=>d.name===r+H0),f=dm(t.bind)&&t.bind.legend;return l&&(t.events?l.on.push({...l.on[0],events:f}):l.on[0].events=f),n}};function gue(e,t,n){var i;const r=(i=e.fieldDef(t))==null?void 0:i.field;for(const a of kt(e.component.selection??{})){const s=a.project.hasField[r]??a.project.hasChannel[t];if(s&&xN.defined(a)){const o=n.get("selections")??[];o.push(a.name),n.set("selections",o,!1),s.hasLegend=!0}}}const _N="_translate_anchor",wN="_translate_delta",pue={defined:e=>e.type==="interval"&&e.translate,signals:(e,t,n)=>{const r=t.name,i=Yi.defined(t),a=r+_N,{x:s,y:o}=t.project.hasChannel;let u=as(t.translate,"scope");return i||(u=u.map(c=>(c.between[0].markname=r+mu,c))),n.push({name:a,value:{},on:[{events:u.map(c=>c.between[0]),update:"{x: x(unit), y: y(unit)"+(s!==void 0?`, extent_x: ${i?Ty(e,He):`slice(${s.signals.visual})`}`:"")+(o!==void 0?`, extent_y: ${i?Ty(e,_t):`slice(${o.signals.visual})`}`:"")+"}"}]},{name:r+wN,value:{},on:[{events:u,update:`{x: ${a}.x - x(unit), y: ${a}.y - y(unit)}`}]}),s!==void 0&&Hx(e,t,s,"width",n),o!==void 0&&Hx(e,t,o,"height",n),n}};function Hx(e,t,n,r,i){const a=t.name,s=a+_N,o=a+wN,u=n.channel,c=Yi.defined(t),l=i.filter(_=>_.name===n.signals[c?"data":"visual"])[0],f=e.getSizeSignalRef(r).signal,d=e.getScaleComponent(u),h=d&&d.get("type"),g=d&&d.get("reverse"),p=c?u===He?g?"":"-":g?"-":"":"",m=`${s}.extent_${u}`,b=`${p}${o}.${u} / ${c?`${f}`:`span(${m})`}`,y=!c||!d?"panLinear":h==="log"?"panLog":h==="symlog"?"panSymlog":h==="pow"?"panPow":"panLinear",v=c?h==="pow"?`, ${d.get("exponent")??1}`:h==="symlog"?`, ${d.get("constant")??1}`:"":"",x=`${y}(${m}, ${b}${v})`;l.on.push({events:{signal:o},update:c?x:`clampRange(${x}, 0, ${f})`})}const EN="_zoom_anchor",SN="_zoom_delta",mue={defined:e=>e.type==="interval"&&e.zoom,signals:(e,t,n)=>{const r=t.name,i=Yi.defined(t),a=r+SN,{x:s,y:o}=t.project.hasChannel,u=H(e.scaleName(He)),c=H(e.scaleName(_t));let l=as(t.zoom,"scope");return i||(l=l.map(f=>(f.markname=r+mu,f))),n.push({name:r+EN,on:[{events:l,update:i?"{"+[u?`x: invert(${u}, x(unit))`:"",c?`y: invert(${c}, y(unit))`:""].filter(f=>f).join(", ")+"}":"{x: x(unit), y: y(unit)}"}]},{name:a,on:[{events:l,force:!0,update:"pow(1.001, event.deltaY * pow(16, event.deltaMode))"}]}),s!==void 0&&Gx(e,t,s,"width",n),o!==void 0&&Gx(e,t,o,"height",n),n}};function Gx(e,t,n,r,i){const a=t.name,s=n.channel,o=Yi.defined(t),u=i.filter(y=>y.name===n.signals[o?"data":"visual"])[0],c=e.getSizeSignalRef(r).signal,l=e.getScaleComponent(s),f=l&&l.get("type"),d=o?Ty(e,s):u.name,h=a+SN,g=`${a}${EN}.${s}`,p=!o||!l?"zoomLinear":f==="log"?"zoomLog":f==="symlog"?"zoomSymlog":f==="pow"?"zoomPow":"zoomLinear",m=o?f==="pow"?`, ${l.get("exponent")??1}`:f==="symlog"?`, ${l.get("constant")??1}`:"":"",b=`${p}(${d}, ${g}, ${h}${m})`;u.on.push({events:{signal:h},update:o?b:`clampRange(${b}, 0, ${c})`})}const yo="_store",Ja="_tuple",bue="_modify",$N="vlSelectionResolve",Up=[Koe,Xoe,Goe,vN,yN,Yi,xN,hue,pue,mue,bN];function yue(e){let t=e.parent;for(;t&&!$r(t);)t=t.parent;return t}function Vs(e,{escape:t}={escape:!0}){let n=t?H(e.name):e.name;const r=yue(e);if(r){const{facet:i}=r;for(const a of Vn)i[a]&&(n+=` + '__facet_${a}_' + (facet[${H(r.vgField(a))}])`)}return n}function H6(e){return kt(e.component.selection??{}).reduce((t,n)=>t||n.project.hasSelectionId,!1)}function AN(e,t){(X(t.select)||!t.select.on)&&delete e.events,(X(t.select)||!t.select.clear)&&delete e.clear,(X(t.select)||!t.select.toggle)&&delete e.toggle}function Ny(e){const t=[];return e.type==="Identifier"?[e.name]:e.type==="Literal"?[e.value]:(e.type==="MemberExpression"&&(t.push(...Ny(e.object)),t.push(...Ny(e.property))),t)}function kN(e){return e.object.type==="MemberExpression"?kN(e.object):e.object.name==="datum"}function CN(e){const t=l7(e),n=new Set;return t.visit(r=>{r.type==="MemberExpression"&&kN(r)&&n.add(Ny(r).slice(1).join("."))}),n}class vc extends De{clone(){return new vc(null,this.model,oe(this.filter))}constructor(t,n,r){super(t),this.model=n,this.filter=r,this.expr=G0(this.model,this.filter,this),this._dependentFields=CN(this.expr)}dependentFields(){return this._dependentFields}producedFields(){return new Set}assemble(){return{type:"filter",expr:this.expr}}hash(){return`Filter ${this.expr}`}}function vue(e,t){const n={},r=e.config.selection;if(!t||!t.length)return n;for(const i of t){const a=We(i.name),s=i.select,o=X(s)?s:s.type,u=V(s)?oe(s):{type:o},c=r[o];for(const d in c)d==="fields"||d==="encodings"||(d==="mark"&&(u[d]={...c[d],...u[d]}),(u[d]===void 0||u[d]===!0)&&(u[d]=oe(c[d]??u[d])));const l=n[a]={...u,name:a,type:o,init:i.value,bind:i.bind,events:X(u.on)?as(u.on,"scope"):Y(oe(u.on))},f=oe(i);for(const d of Up)d.defined(l)&&d.parse&&d.parse(e,l,f)}return n}function FN(e,t,n,r="datum"){const i=X(t)?t:t.param,a=We(i),s=H(a+yo);let o;try{o=e.getSelectionComponent(a,i)}catch{return`!!${a}`}if(o.project.timeUnit){const d=n??e.component.data.raw,h=o.project.timeUnit.clone();d.parent?h.insertAsParentOf(d):d.parent=h}const u=o.project.hasSelectionId?"vlSelectionIdTest(":"vlSelectionTest(",c=o.resolve==="global"?")":`, ${H(o.resolve)})`,l=`${u}${s}, ${r}${c}`,f=`length(data(${s}))`;return t.empty===!1?`${f} && ${l}`:`!${f} || ${l}`}function MN(e,t,n){const r=We(t),i=n.encoding;let a=n.field,s;try{s=e.getSelectionComponent(r,t)}catch{return r}if(!i&&!a)a=s.project.items[0].field,s.project.items.length>1&&j(`A "field" or "encoding" must be specified when using a selection as a scale domain. Using "field": ${H(a)}.`);else if(i&&!a){const o=s.project.items.filter(u=>u.channel===i);!o.length||o.length>1?(a=s.project.items[0].field,j((o.length?"Multiple ":"No ")+`matching ${H(i)} encoding found for selection ${H(n.param)}. Using "field": ${H(a)}.`)):a=o[0].field}return`${s.name}[${H(rr(a))}]`}function xue(e,t){for(const[n,r]of Ga(e.component.selection??{})){const i=e.getName(`lookup_${n}`);e.component.data.outputNodes[i]=r.materialized=new an(new vc(t,e,{param:n}),i,ze.Lookup,e.component.data.outputNodeRefCounts)}}function G0(e,t,n){return Tl(t,r=>X(r)?r:Jie(r)?FN(e,r,n):GM(r))}function _ue(e,t){if(e)return P(e)&&!ba(e)?e.map(n=>$6(n,t)).join(", "):e}function bm(e,t,n,r){var i,a;e.encode??(e.encode={}),(i=e.encode)[t]??(i[t]={}),(a=e.encode[t]).update??(a.update={}),e.encode[t].update[n]=r}function bl(e,t,n,r={header:!1}){var f,d;const{disable:i,orient:a,scale:s,labelExpr:o,title:u,zindex:c,...l}=e.combine();if(!i){for(const h in l){const g=ese[h],p=l[h];if(g&&g!==t&&g!=="both")delete l[h];else if(td(p)){const{condition:m,...b}=p,y=Y(m),v=xx[h];if(v){const{vgProp:x,part:_}=v,E=[...y.map(w=>{const{test:S,...$}=w;return{test:G0(null,S),...$}}),b];bm(l,_,x,E),delete l[h]}else if(v===null){const x={signal:y.map(_=>{const{test:E,...w}=_;return`${G0(null,E)} ? ${ix(w)} : `}).join("")+ix(b)};l[h]=x}}else if(Q(p)){const m=xx[h];if(m){const{vgProp:b,part:y}=m;bm(l,y,b,p),delete l[h]}}ye(["labelAlign","labelBaseline"],h)&&l[h]===null&&delete l[h]}if(t==="grid"){if(!l.grid)return;if(l.encode){const{grid:h}=l.encode;l.encode={...h?{grid:h}:{}},Oe(l.encode)&&delete l.encode}return{scale:s,orient:a,...l,domain:!1,labels:!1,aria:!1,maxExtent:0,minExtent:0,ticks:!1,zindex:Ze(c,0)}}else{if(!r.header&&e.mainExtracted)return;if(o!==void 0){let g=o;(d=(f=l.encode)==null?void 0:f.labels)!=null&&d.update&&Q(l.encode.labels.update.text)&&(g=lo(o,"datum.label",l.encode.labels.update.text.signal)),bm(l,"labels","text",{signal:g})}if(l.labelAlign===null&&delete l.labelAlign,l.encode){for(const g of wT)e.hasAxisPart(g)||delete l.encode[g];Oe(l.encode)&&delete l.encode}const h=_ue(u,n);return{scale:s,orient:a,grid:!1,...h?{title:h}:{},...l,...n.aria===!1?{aria:!1}:{},zindex:Ze(c,0)}}}}function TN(e){const{axes:t}=e.component,n=[];for(const r of wi)if(t[r]){for(const i of t[r])if(!i.get("disable")&&!i.get("gridScale")){const a=r==="x"?"height":"width",s=e.getSizeSignalRef(a).signal;a!==s&&n.push({name:a,update:s})}}return n}function wue(e,t){const{x:n=[],y:r=[]}=e;return[...n.map(i=>bl(i,"grid",t)),...r.map(i=>bl(i,"grid",t)),...n.map(i=>bl(i,"main",t)),...r.map(i=>bl(i,"main",t))].filter(i=>i)}function Yx(e,t,n,r){return Object.assign.apply(null,[{},...e.map(i=>{if(i==="axisOrient"){const a=n==="x"?"bottom":"left",s=t[n==="x"?"axisBottom":"axisLeft"]||{},o=t[n==="x"?"axisTop":"axisRight"]||{},u=new Set([...B(s),...B(o)]),c={};for(const l of u.values())c[l]={signal:`${r.signal} === "${a}" ? ${xr(s[l])} : ${xr(o[l])}`};return c}return t[i]})])}function Eue(e,t,n,r){const i=t==="band"?["axisDiscrete","axisBand"]:t==="point"?["axisDiscrete","axisPoint"]:KM(t)?["axisQuantitative"]:t==="time"||t==="utc"?["axisTemporal"]:[],a=e==="x"?"axisX":"axisY",s=Q(n)?"axisOrient":`axis${Hf(n)}`,o=[...i,...i.map(c=>a+c.substr(4))],u=["axis",s,a];return{vlOnlyAxisConfig:Yx(o,r,e,n),vgAxisConfig:Yx(u,r,e,n),axisConfigStyle:Sue([...u,...o],r)}}function Sue(e,t){var r;const n=[{}];for(const i of e){let a=(r=t[i])==null?void 0:r.style;if(a){a=Y(a);for(const s of a)n.push(t.style[s])}}return Object.assign.apply(null,n)}function Dy(e,t,n,r={}){var a;const i=SM(e,n,t);if(i!==void 0)return{configFrom:"style",configValue:i};for(const s of["vlOnlyAxisConfig","vgAxisConfig","axisConfigStyle"])if(((a=r[s])==null?void 0:a[e])!==void 0)return{configFrom:s,configValue:r[s][e]};return{}}const Xx={scale:({model:e,channel:t})=>e.scaleName(t),format:({format:e})=>e,formatType:({formatType:e})=>e,grid:({fieldOrDatumDef:e,axis:t,scaleType:n})=>t.grid??$ue(n,e),gridScale:({model:e,channel:t})=>Aue(e,t),labelAlign:({axis:e,labelAngle:t,orient:n,channel:r})=>e.labelAlign||DN(t,n,r),labelAngle:({labelAngle:e})=>e,labelBaseline:({axis:e,labelAngle:t,orient:n,channel:r})=>e.labelBaseline||NN(t,n,r),labelFlush:({axis:e,fieldOrDatumDef:t,channel:n})=>e.labelFlush??Cue(t.type,n),labelOverlap:({axis:e,fieldOrDatumDef:t,scaleType:n})=>e.labelOverlap??Fue(t.type,n,U(t)&&!!t.timeUnit,U(t)?t.sort:void 0),orient:({orient:e})=>e,tickCount:({channel:e,model:t,axis:n,fieldOrDatumDef:r,scaleType:i})=>{const a=e==="x"?"width":e==="y"?"height":void 0,s=a?t.getSizeSignalRef(a):void 0;return n.tickCount??Tue({fieldOrDatumDef:r,scaleType:i,size:s,values:n.values})},tickMinStep:Nue,title:({axis:e,model:t,channel:n})=>{if(e.title!==void 0)return e.title;const r=ON(t,n);if(r!==void 0)return r;const i=t.typedFieldDef(n),a=n==="x"?"x2":"y2",s=t.fieldDef(a);return AM(i?[yx(i)]:[],U(s)?[yx(s)]:[])},values:({axis:e,fieldOrDatumDef:t})=>Due(e,t),zindex:({axis:e,fieldOrDatumDef:t,mark:n})=>e.zindex??Oue(n,t)};function $ue(e,t){return!vt(e)&&U(t)&&!Be(t==null?void 0:t.bin)&&!Et(t==null?void 0:t.bin)}function Aue(e,t){const n=t==="x"?"y":"x";if(e.getScaleComponent(n))return e.scaleName(n)}function kue(e,t,n,r,i){const a=t==null?void 0:t.labelAngle;if(a!==void 0)return Q(a)?a:cf(a);{const{configValue:s}=Dy("labelAngle",r,t==null?void 0:t.style,i);return s!==void 0?cf(s):n===He&&ye([g6,h6],e.type)&&!(U(e)&&e.timeUnit)?270:void 0}}function Oy(e){return`(((${e.signal} % 360) + 360) % 360)`}function NN(e,t,n,r){if(e!==void 0)if(n==="x"){if(Q(e)){const i=Oy(e),a=Q(t)?`(${t.signal} === "top")`:t==="top";return{signal:`(45 < ${i} && ${i} < 135) || (225 < ${i} && ${i} < 315) ? "middle" :(${i} <= 45 || 315 <= ${i}) === ${a} ? "bottom" : "top"`}}if(45{if(Ro(r)&&fT(r.sort)){const{field:a,timeUnit:s}=r,o=r.sort,u=o.map((c,l)=>`${GM({field:a,timeUnit:s,equal:c})} ? ${l} : `).join("")+o.length;t=new Ku(t,{calculate:u,as:Ju(r,i,{forAs:!0})})}}),t}producedFields(){return new Set([this.transform.as])}dependentFields(){return this._dependentFields}assemble(){return{type:"formula",expr:this.transform.calculate,as:this.transform.as}}hash(){return`Calculate ${be(this.transform)}`}}function Ju(e,t,n){return G(e,{prefix:t,suffix:"sort_index",...n??{}})}function jp(e,t){return ye(["top","bottom"],t)?"column":ye(["left","right"],t)||e==="row"?"row":"column"}function Qu(e,t,n,r){const i=r==="row"?n.headerRow:r==="column"?n.headerColumn:n.headerFacet;return Ze((t||{})[e],i[e],n.header[e])}function qp(e,t,n,r){const i={};for(const a of e){const s=Qu(a,t||{},n,r);s!==void 0&&(i[a]=s)}return i}const G6=["row","column"],Y6=["header","footer"];function Rue(e,t){const n=e.component.layoutHeaders[t].title,r=e.config?e.config:void 0,i=e.component.layoutHeaders[t].facetFieldDef?e.component.layoutHeaders[t].facetFieldDef:void 0,{titleAnchor:a,titleAngle:s,titleOrient:o}=qp(["titleAnchor","titleAngle","titleOrient"],i.header,r,t),u=jp(t,o),c=cf(s);return{name:`${t}-title`,type:"group",role:`${u}-title`,title:{text:n,...t==="row"?{orient:"left"}:{},style:"guide-title",...LN(c,u),...RN(u,c,a),...PN(r,i,t,wse,zT)}}}function RN(e,t,n="middle"){switch(n){case"start":return{align:"left"};case"end":return{align:"right"}}const r=DN(t,e==="row"?"left":"top",e==="row"?"y":"x");return r?{align:r}:{}}function LN(e,t){const n=NN(e,t==="row"?"left":"top",t==="row"?"y":"x",!0);return n?{baseline:n}:{}}function Lue(e,t){const n=e.component.layoutHeaders[t],r=[];for(const i of Y6)if(n[i])for(const a of n[i]){const s=Iue(e,t,i,n,a);s!=null&&r.push(s)}return r}function Pue(e,t){const{sort:n}=e;return ei(n)?{field:G(n,{expr:"datum"}),order:n.order??"ascending"}:P(n)?{field:Ju(e,t,{expr:"datum"}),order:"ascending"}:{field:G(e,{expr:"datum"}),order:n??"ascending"}}function Ry(e,t,n){const{format:r,formatType:i,labelAngle:a,labelAnchor:s,labelOrient:o,labelExpr:u}=qp(["format","formatType","labelAngle","labelAnchor","labelOrient","labelExpr"],e.header,n,t),c=_6({fieldOrDatumDef:e,format:r,formatType:i,expr:"parent",config:n}).signal,l=jp(t,o);return{text:{signal:u?lo(lo(u,"datum.label",c),"datum.value",G(e,{expr:"parent"})):c},...t==="row"?{orient:"left"}:{},style:"guide-label",frame:"group",...LN(a,l),...RN(l,a,s),...PN(n,e,t,Ese,BT)}}function Iue(e,t,n,r,i){if(i){let a=null;const{facetFieldDef:s}=r,o=e.config?e.config:void 0;if(s&&i.labels){const{labelOrient:f}=qp(["labelOrient"],s.header,o,t);(t==="row"&&!ye(["top","bottom"],f)||t==="column"&&!ye(["left","right"],f))&&(a=Ry(s,t,o))}const u=$r(e)&&!Qf(e.facet),c=i.axes,l=(c==null?void 0:c.length)>0;if(a||l){const f=t==="row"?"height":"width";return{name:e.getName(`${t}_${n}`),type:"group",role:`${t}-${n}`,...r.facetFieldDef?{from:{data:e.getName(`${t}_domain`)},sort:Pue(s,t)}:{},...l&&u?{from:{data:e.getName(`facet_domain_${t}`)}}:{},...a?{title:a}:{},...i.sizeSignal?{encode:{update:{[f]:i.sizeSignal}}}:{},...l?{axes:c}:{}}}}return null}const zue={column:{start:0,end:1},row:{start:1,end:0}};function Bue(e,t){return zue[t][e]}function Uue(e,t){const n={};for(const r of Vn){const i=e[r];if(i!=null&&i.facetFieldDef){const{titleAnchor:a,titleOrient:s}=qp(["titleAnchor","titleOrient"],i.facetFieldDef.header,t,r),o=jp(r,s),u=Bue(a,o);u!==void 0&&(n[o]=u)}}return Oe(n)?void 0:n}function PN(e,t,n,r,i){const a={};for(const s of r){if(!i[s])continue;const o=Qu(s,t==null?void 0:t.header,e,n);o!==void 0&&(a[i[s]]=o)}return a}function X6(e){return[...Ld(e,"width"),...Ld(e,"height"),...Ld(e,"childWidth"),...Ld(e,"childHeight")]}function Ld(e,t){const n=t==="width"?"x":"y",r=e.component.layoutSize.get(t);if(!r||r==="merged")return[];const i=e.getSizeSignalRef(t).signal;if(r==="step"){const a=e.getScaleComponent(n);if(a){const s=a.get("type"),o=a.get("range");if(vt(s)&&ds(o)){const u=e.scaleName(n);return $r(e.parent)&&e.parent.component.resolve.scale[n]==="independent"?[Vx(u,o)]:[Vx(u,o),{name:i,update:IN(u,a,`domain('${u}').length`)}]}}throw new Error("layout size is step although width/height is not step.")}else if(r=="container"){const a=i.endsWith("width"),s=a?"containerSize()[0]":"containerSize()[1]",o=ky(e.config.view,a?"width":"height"),u=`isFinite(${s}) ? ${s} : ${o}`;return[{name:i,init:u,on:[{update:u,events:"window:resize"}]}]}else return[{name:i,value:r}]}function Vx(e,t){const n=`${e}_step`;return Q(t.step)?{name:n,update:t.step.signal}:{name:n,value:t.step}}function IN(e,t,n){const r=t.get("type"),i=t.get("padding"),a=Ze(t.get("paddingOuter"),i);let s=t.get("paddingInner");return s=r==="band"?s!==void 0?s:i:1,`bandspace(${n}, ${xr(s)}, ${xr(a)}) * ${e}_step`}function zN(e){return e==="childWidth"?"width":e==="childHeight"?"height":e}function BN(e,t){return B(e).reduce((n,r)=>{const i=e[r];return{...n,...yc(t,i,r,a=>je(a.value))}},{})}function UN(e,t){if($r(t))return e==="theta"?"independent":"shared";if(wc(t))return"shared";if(t8(t))return et(e)||e==="theta"||e==="radius"?"independent":"shared";throw new Error("invalid model type for resolve")}function V6(e,t){const n=e.scale[t],r=et(t)?"axis":"legend";return n==="independent"?(e[r][t]==="shared"&&j(vie(t)),"independent"):e[r][t]||"shared"}const jue={...Ase,disable:1,labelExpr:1,selections:1,opacity:1,shape:1,stroke:1,fill:1,size:1,strokeWidth:1,strokeDash:1,encode:1},jN=B(jue);class que extends ua{}const Kx={symbols:Wue,gradient:Hue,labels:Gue,entries:Yue};function Wue(e,{fieldOrDatumDef:t,model:n,channel:r,legendCmpt:i,legendType:a}){if(a!=="symbol")return;const{markDef:s,encoding:o,config:u,mark:c}=n,l=s.filled&&c!=="trail";let f={...Tre({},n,wae),...gN(n,{filled:l})};const d=i.get("symbolOpacity")??u.legend.symbolOpacity,h=i.get("symbolFillColor")??u.legend.symbolFillColor,g=i.get("symbolStrokeColor")??u.legend.symbolStrokeColor,p=d===void 0?qN(o.opacity)??s.opacity:void 0;if(f.fill){if(r==="fill"||l&&r===wn)delete f.fill;else if(f.fill.field)h?delete f.fill:(f.fill=je(u.legend.symbolBaseFillColor??"black"),f.fillOpacity=je(p??1));else if(P(f.fill)){const m=Ly(o.fill??o.color)??s.fill??(l&&s.color);m&&(f.fill=je(m))}}if(f.stroke){if(r==="stroke"||!l&&r===wn)delete f.stroke;else if(f.stroke.field||g)delete f.stroke;else if(P(f.stroke)){const m=Ze(Ly(o.stroke||o.color),s.stroke,l?s.color:void 0);m&&(f.stroke={value:m})}}if(r!==aa){const m=U(t)&&HN(n,i,t);m?f.opacity=[{test:m,...je(p??1)},je(u.legend.unselectedOpacity)]:p&&(f.opacity=je(p))}return f={...f,...e},Oe(f)?void 0:f}function Hue(e,{model:t,legendType:n,legendCmpt:r}){if(n!=="gradient")return;const{config:i,markDef:a,encoding:s}=t;let o={};const c=(r.get("gradientOpacity")??i.legend.gradientOpacity)===void 0?qN(s.opacity)||a.opacity:void 0;return c&&(o.opacity=je(c)),o={...o,...e},Oe(o)?void 0:o}function Gue(e,{fieldOrDatumDef:t,model:n,channel:r,legendCmpt:i}){const a=n.legend(r)||{},s=n.config,o=U(t)?HN(n,i,t):void 0,u=o?[{test:o,value:1},{value:s.legend.unselectedOpacity}]:void 0,{format:c,formatType:l}=a;let f;mo(l)?f=wr({fieldOrDatumDef:t,field:"datum.value",format:c,formatType:l,config:s}):c===void 0&&l===void 0&&s.customFormatTypes&&(t.type==="quantitative"&&s.numberFormatType?f=wr({fieldOrDatumDef:t,field:"datum.value",format:s.numberFormat,formatType:s.numberFormatType,config:s}):t.type==="temporal"&&s.timeFormatType&&U(t)&&t.timeUnit===void 0&&(f=wr({fieldOrDatumDef:t,field:"datum.value",format:s.timeFormat,formatType:s.timeFormatType,config:s})));const d={...u?{opacity:u}:{},...f?{text:f}:{},...e};return Oe(d)?void 0:d}function Yue(e,{legendCmpt:t}){const n=t.get("selections");return n!=null&&n.length?{...e,fill:{value:"transparent"}}:e}function qN(e){return WN(e,(t,n)=>Math.max(t,n.value))}function Ly(e){return WN(e,(t,n)=>Ze(t,n.value))}function WN(e,t){if(jae(e))return Y(e.condition).reduce(t,e.value);if(Fr(e))return e.value}function HN(e,t,n){const r=t.get("selections");if(!(r!=null&&r.length))return;const i=H(n.field);return r.map(a=>`(!length(data(${H(We(a)+yo)})) || (${a}[${i}] && indexof(${a}[${i}], datum.value) >= 0))`).join(" || ")}const Jx={direction:({direction:e})=>e,format:({fieldOrDatumDef:e,legend:t,config:n})=>{const{format:r,formatType:i}=t;return oT(e,e.type,r,i,n,!1)},formatType:({legend:e,fieldOrDatumDef:t,scaleType:n})=>{const{formatType:r}=e;return uT(r,t,n)},gradientLength:e=>{const{legend:t,legendConfig:n}=e;return t.gradientLength??n.gradientLength??ece(e)},labelOverlap:({legend:e,legendConfig:t,scaleType:n})=>e.labelOverlap??t.labelOverlap??tce(n),symbolType:({legend:e,markDef:t,channel:n,encoding:r})=>e.symbolType??Vue(t.type,n,r.shape,t.shape),title:({fieldOrDatumDef:e,config:t})=>pu(e,t,{allowDisabling:!0}),type:({legendType:e,scaleType:t,channel:n})=>{if(gu(n)&&_r(t)){if(e==="gradient")return}else if(e==="symbol")return;return e},values:({fieldOrDatumDef:e,legend:t})=>Xue(t,e)};function Xue(e,t){const n=e.values;if(P(n))return _T(t,n);if(Q(n))return n}function Vue(e,t,n,r){if(t!=="shape"){const i=Ly(n)??r;if(i)return i}switch(e){case"bar":case"rect":case"image":case"square":return"square";case"line":case"trail":case"rule":return"stroke";case"arc":case"point":case"circle":case"tick":case"geoshape":case"area":case"text":return"circle"}}function Kue(e){const{legend:t}=e;return Ze(t.type,Jue(e))}function Jue({channel:e,timeUnit:t,scaleType:n}){if(gu(e)){if(ye(["quarter","month","day"],t))return"symbol";if(_r(n))return"gradient"}return"symbol"}function Que({legendConfig:e,legendType:t,orient:n,legend:r}){return r.direction??e[t?"gradientDirection":"symbolDirection"]??Zue(n,t)}function Zue(e,t){switch(e){case"top":case"bottom":return"horizontal";case"left":case"right":case"none":case void 0:return;default:return t==="gradient"?"horizontal":void 0}}function ece({legendConfig:e,model:t,direction:n,orient:r,scaleType:i}){const{gradientHorizontalMaxLength:a,gradientHorizontalMinLength:s,gradientVerticalMaxLength:o,gradientVerticalMinLength:u}=e;if(_r(i))return n==="horizontal"?r==="top"||r==="bottom"?Qx(t,"width",s,a):s:Qx(t,"height",u,o)}function Qx(e,t,n,r){return{signal:`clamp(${e.getSizeSignalRef(t).signal}, ${n}, ${r})`}}function tce(e){if(ye(["quantile","threshold","log","symlog"],e))return"greedy"}function GN(e){const t=Ve(e)?nce(e):sce(e);return e.component.legends=t,t}function nce(e){const{encoding:t}=e,n={};for(const r of[wn,...jT]){const i=st(t[r]);!i||!e.getScaleComponent(r)||r===En&&U(i)&&i.type===bc||(n[r]=ace(e,r))}return n}function rce(e,t){const n=e.scaleName(t);if(e.mark==="trail"){if(t==="color")return{stroke:n};if(t==="size")return{strokeWidth:n}}return t==="color"?e.markDef.filled?{fill:n}:{stroke:n}:{[t]:n}}function ice(e,t,n,r){switch(t){case"disable":return n!==void 0;case"values":return!!(n!=null&&n.values);case"title":if(t==="title"&&e===(r==null?void 0:r.title))return!0}return e===(n||{})[t]}function ace(e,t){var x;let n=e.legend(t);const{markDef:r,encoding:i,config:a}=e,s=a.legend,o=new que({},rce(e,t));gue(e,t,o);const u=n!==void 0?!n:s.disable;if(o.set("disable",u,n!==void 0),u)return o;n=n||{};const c=e.getScaleComponent(t).get("type"),l=st(i[t]),f=U(l)?(x=yt(l.timeUnit))==null?void 0:x.unit:void 0,d=n.orient||a.legend.orient||"right",h=Kue({legend:n,channel:t,timeUnit:f,scaleType:c}),g=Que({legend:n,legendType:h,orient:d,legendConfig:s}),p={legend:n,channel:t,model:e,markDef:r,encoding:i,fieldOrDatumDef:l,legendConfig:s,config:a,scaleType:c,orient:d,legendType:h,direction:g};for(const _ of jN){if(h==="gradient"&&_.startsWith("symbol")||h==="symbol"&&_.startsWith("gradient"))continue;const E=_ in Jx?Jx[_](p):n[_];if(E!==void 0){const w=ice(E,_,n,e.fieldDef(t));(w||a.legend[_]===void 0)&&o.set(_,E,w)}}const m=(n==null?void 0:n.encoding)??{},b=o.get("selections"),y={},v={fieldOrDatumDef:l,model:e,channel:t,legendCmpt:o,legendType:h};for(const _ of["labels","legend","title","symbols","gradient","entries"]){const E=BN(m[_]??{},e),w=_ in Kx?Kx[_](E,v):E;w!==void 0&&!Oe(w)&&(y[_]={...b!=null&&b.length&&U(l)?{name:`${We(l.field)}_legend_${_}`}:{},...b!=null&&b.length?{interactive:!!b}:{},update:w})}return Oe(y)||o.set("encode",y,!!(n!=null&&n.encoding)),o}function sce(e){const{legends:t,resolve:n}=e.component;for(const r of e.children){GN(r);for(const i of B(r.component.legends))n.legend[i]=V6(e.component.resolve,i),n.legend[i]==="shared"&&(t[i]=YN(t[i],r.component.legends[i]),t[i]||(n.legend[i]="independent",delete t[i]))}for(const r of B(t))for(const i of e.children)i.component.legends[r]&&n.legend[r]==="shared"&&delete i.component.legends[r];return t}function YN(e,t){var a,s,o,u;if(!e)return t.clone();const n=e.getWithExplicit("orient"),r=t.getWithExplicit("orient");if(n.explicit&&r.explicit&&n.value!==r.value)return;let i=!1;for(const c of jN){const l=Va(e.getWithExplicit(c),t.getWithExplicit(c),c,"legend",(f,d)=>{switch(c){case"symbolType":return oce(f,d);case"title":return CM(f,d);case"type":return i=!0,kn("symbol")}return Pp(f,d,c,"legend")});e.setWithExplicit(c,l)}return i&&((s=(a=e.implicit)==null?void 0:a.encode)!=null&&s.gradient&&N0(e.implicit,["encode","gradient"]),(u=(o=e.explicit)==null?void 0:o.encode)!=null&&u.gradient&&N0(e.explicit,["encode","gradient"])),e}function oce(e,t){return t.value==="circle"?t:e}function uce(e,t,n,r){var i,a;e.encode??(e.encode={}),(i=e.encode)[t]??(i[t]={}),(a=e.encode[t]).update??(a.update={}),e.encode[t].update[n]=r}function XN(e){const t=e.component.legends,n={};for(const i of B(t)){const a=e.getScaleComponent(i),s=Re(a.get("domains"));if(n[s])for(const o of n[s])YN(o,t[i])||n[s].push(t[i]);else n[s]=[t[i].clone()]}return kt(n).flat().map(i=>cce(i,e.config)).filter(i=>i!==void 0)}function cce(e,t){var s,o,u;const{disable:n,labelExpr:r,selections:i,...a}=e.combine();if(!n){if(t.aria===!1&&a.aria==null&&(a.aria=!1),(s=a.encode)!=null&&s.symbols){const c=a.encode.symbols.update;c.fill&&c.fill.value!=="transparent"&&!c.stroke&&!a.stroke&&(c.stroke={value:"transparent"});for(const l of jT)a[l]&&delete c[l]}if(a.title||delete a.title,r!==void 0){let c=r;(u=(o=a.encode)==null?void 0:o.labels)!=null&&u.update&&Q(a.encode.labels.update.text)&&(c=lo(r,"datum.label",a.encode.labels.update.text.signal)),uce(a,"labels","text",{signal:c})}return a}}function lce(e){return wc(e)||t8(e)?fce(e):VN(e)}function fce(e){return e.children.reduce((t,n)=>t.concat(n.assembleProjections()),VN(e))}function VN(e){const t=e.component.projection;if(!t||t.merged)return[];const n=t.combine(),{name:r}=n;if(t.data){const i={signal:`[${t.size.map(s=>s.signal).join(", ")}]`},a=t.data.reduce((s,o)=>{const u=Q(o)?o.signal:`data('${e.lookupDataSource(o)}')`;return ye(s,u)||s.push(u),s},[]);if(a.length<=0)throw new Error("Projection's fit didn't find any data sources");return[{name:r,size:i,fit:{signal:a.length>1?`[${a.join(", ")}]`:a[0]},...n}]}else return[{name:r,translate:{signal:"[width / 2, height / 2]"},...n}]}const dce=["type","clipAngle","clipExtent","center","rotate","precision","reflectX","reflectY","coefficient","distance","fraction","lobes","parallel","radius","ratio","spacing","tilt"];class KN extends ua{constructor(t,n,r,i){super({...n},{name:t}),this.specifiedProjection=n,this.size=r,this.data=i,this.merged=!1}get isFit(){return!!this.data}}function JN(e){e.component.projection=Ve(e)?hce(e):mce(e)}function hce(e){if(e.hasProjection){const t=gn(e.specifiedProjection),n=!(t&&(t.scale!=null||t.translate!=null)),r=n?[e.getSizeSignalRef("width"),e.getSizeSignalRef("height")]:void 0,i=n?gce(e):void 0,a=new KN(e.projectionName(!0),{...gn(e.config.projection)??{},...t??{}},r,i);return a.get("type")||a.set("type","equalEarth",!1),a}}function gce(e){const t=[],{encoding:n}=e;for(const r of[[Pr,Lr],[ir,Ir]])(st(n[r[0]])||st(n[r[1]]))&&t.push({signal:e.getName(`geojson_${t.length}`)});return e.channelHasField(En)&&e.typedFieldDef(En).type===bc&&t.push({signal:e.getName(`geojson_${t.length}`)}),t.length===0&&t.push(e.requestDataName(ze.Main)),t}function pce(e,t){const n=U7(dce,i=>!!(!ie(e.explicit,i)&&!ie(t.explicit,i)||ie(e.explicit,i)&&ie(t.explicit,i)&&Dn(e.get(i),t.get(i))));if(Dn(e.size,t.size)){if(n)return e;if(Dn(e.explicit,{}))return t;if(Dn(t.explicit,{}))return e}return null}function mce(e){if(e.children.length===0)return;let t;for(const r of e.children)JN(r);const n=U7(e.children,r=>{const i=r.component.projection;if(i)if(t){const a=pce(t,i);return a&&(t=a),!!a}else return t=i,!0;else return!0});if(t&&n){const r=e.projectionName(!0),i=new KN(r,t.specifiedProjection,t.size,oe(t.data));for(const a of e.children){const s=a.component.projection;s&&(s.isFit&&i.data.push(...a.component.projection.data),a.renameProjection(s.get("name"),r),s.merged=!0)}return i}}function bce(e,t,n,r){if(ed(t,n)){const i=Ve(e)?e.axis(n)??e.legend(n)??{}:{},a=G(t,{expr:"datum"}),s=G(t,{expr:"datum",binSuffix:"end"});return{formulaAs:G(t,{binSuffix:"range",forAs:!0}),formula:Jf(a,s,i.format,i.formatType,r)}}return{}}function QN(e,t){return`${xM(e)}_${t}`}function yce(e,t){return{signal:e.getName(`${t}_bins`),extentSignal:e.getName(`${t}_extent`)}}function K6(e,t,n){const r=Tp(n,void 0)??{},i=QN(r,t);return e.getName(`${i}_bins`)}function vce(e){return"as"in e}function Zx(e,t,n){let r,i;vce(e)?r=X(e.as)?[e.as,`${e.as}_end`]:[e.as[0],e.as[1]]:r=[G(e,{forAs:!0}),G(e,{binSuffix:"end",forAs:!0})];const a={...Tp(t,void 0)},s=QN(a,e.field),{signal:o,extentSignal:u}=yce(n,s);if(xp(a.extent)){const l=a.extent;i=MN(n,l.param,l),delete a.extent}const c={bin:a,field:e.field,as:[r],...o?{signal:o}:{},...u?{extentSignal:u}:{},...i?{span:i}:{}};return{key:s,binComponent:c}}class ni extends De{clone(){return new ni(null,oe(this.bins))}constructor(t,n){super(t),this.bins=n}static makeFromEncoding(t,n){const r=n.reduceFieldDef((i,a,s)=>{if(un(a)&&Be(a.bin)){const{key:o,binComponent:u}=Zx(a,a.bin,n);i[o]={...u,...i[o],...bce(n,a,s,n.config)}}return i},{});return Oe(r)?null:new ni(t,r)}static makeFromTransform(t,n,r){const{key:i,binComponent:a}=Zx(n,n.bin,r);return new ni(t,{[i]:a})}merge(t,n){for(const r of B(t.bins))r in this.bins?(n(t.bins[r].signal,this.bins[r].signal),this.bins[r].as=Kr([...this.bins[r].as,...t.bins[r].as],be)):this.bins[r]=t.bins[r];for(const r of t.children)t.removeChild(r),r.parent=this;t.remove()}producedFields(){return new Set(kt(this.bins).map(t=>t.as).flat(2))}dependentFields(){return new Set(kt(this.bins).map(t=>t.field))}hash(){return`Bin ${be(this.bins)}`}assemble(){return kt(this.bins).flatMap(t=>{const n=[],[r,...i]=t.as,{extent:a,...s}=t.bin,o={type:"bin",field:rr(t.field),as:r,signal:t.signal,...xp(a)?{extent:null}:{extent:a},...t.span?{span:{signal:`span(${t.span})`}}:{},...s};!a&&t.extentSignal&&(n.push({type:"extent",field:rr(t.field),signal:t.extentSignal}),o.extent={signal:t.extentSignal}),n.push(o);for(const u of i)for(let c=0;c<2;c++)n.push({type:"formula",expr:G({field:r[c]},{expr:"datum"}),as:u[c]});return t.formula&&n.push({type:"formula",expr:t.formula,as:t.formulaAs}),n})}}function xce(e,t,n,r){var a;const i=Ve(r)?r.encoding[_i(t)]:void 0;if(un(n)&&Ve(r)&&hT(n,i,r.markDef,r.config)){e.add(G(n,{})),e.add(G(n,{suffix:"end"}));const{mark:s,markDef:o,config:u}=r,c=Xa({fieldDef:n,markDef:o,config:u});lf(s)&&c!==.5&&et(t)&&(e.add(G(n,{suffix:Ip})),e.add(G(n,{suffix:zp}))),n.bin&&ed(n,t)&&e.add(G(n,{binSuffix:"range"}))}else if(lM(t)){const s=cM(t);e.add(r.getName(s))}else e.add(G(n));return Ro(n)&&lae((a=n.scale)==null?void 0:a.range)&&e.add(n.scale.range.field),e}function _ce(e,t){for(const n of B(t)){const r=t[n];for(const i of B(r))n in e?e[n][i]=new Set([...e[n][i]??[],...r[i]]):e[n]={[i]:r[i]}}}class Sr extends De{clone(){return new Sr(null,new Set(this.dimensions),oe(this.measures))}constructor(t,n,r){super(t),this.dimensions=n,this.measures=r}get groupBy(){return this.dimensions}static makeFromEncoding(t,n){let r=!1;n.forEachFieldDef(s=>{s.aggregate&&(r=!0)});const i={},a=new Set;return!r||(n.forEachFieldDef((s,o)=>{const{aggregate:u,field:c}=s;if(u)if(u==="count")i["*"]??(i["*"]={}),i["*"].count=new Set([G(s,{forAs:!0})]);else{if(Qi(u)||fs(u)){const l=Qi(u)?"argmin":"argmax",f=u[l];i[f]??(i[f]={}),i[f][l]=new Set([G({op:l,field:f},{forAs:!0})])}else i[c]??(i[c]={}),i[c][u]=new Set([G(s,{forAs:!0})]);sa(o)&&n.scaleDomain(o)==="unaggregated"&&(i[c]??(i[c]={}),i[c].min=new Set([G({field:c,aggregate:"min"},{forAs:!0})]),i[c].max=new Set([G({field:c,aggregate:"max"},{forAs:!0})]))}else xce(a,o,s,n)}),a.size+B(i).length===0)?null:new Sr(t,a,i)}static makeFromTransform(t,n){const r=new Set,i={};for(const a of n.aggregate){const{op:s,field:o,as:u}=a;s&&(s==="count"?(i["*"]??(i["*"]={}),i["*"].count=new Set([u||G(a,{forAs:!0})])):(i[o]??(i[o]={}),i[o][s]=new Set([u||G(a,{forAs:!0})])))}for(const a of n.groupby??[])r.add(a);return r.size+B(i).length===0?null:new Sr(t,r,i)}merge(t){return tM(this.dimensions,t.dimensions)?(_ce(this.measures,t.measures),!0):(Rie("different dimensions, cannot merge"),!1)}addDimensions(t){t.forEach(this.dimensions.add,this.dimensions)}dependentFields(){return new Set([...this.dimensions,...B(this.measures)])}producedFields(){const t=new Set;for(const n of B(this.measures))for(const r of B(this.measures[n])){const i=this.measures[n][r];i.size===0?t.add(`${r}_${n}`):i.forEach(t.add,t)}return t}hash(){return`Aggregate ${be({dimensions:this.dimensions,measures:this.measures})}`}assemble(){const t=[],n=[],r=[];for(const a of B(this.measures))for(const s of B(this.measures[a]))for(const o of this.measures[a][s])r.push(o),t.push(s),n.push(a==="*"?null:rr(a));return{type:"aggregate",groupby:[...this.dimensions].map(rr),ops:t,fields:n,as:r}}}class xc extends De{constructor(t,n,r,i){super(t),this.model=n,this.name=r,this.data=i;for(const a of Vn){const s=n.facet[a];if(s){const{bin:o,sort:u}=s;this[a]={name:n.getName(`${a}_domain`),fields:[G(s),...Be(o)?[G(s,{binSuffix:"end"})]:[]],...ei(u)?{sortField:u}:P(u)?{sortIndexField:Ju(s,a)}:{}}}}this.childModel=n.child}hash(){let t="Facet";for(const n of Vn)this[n]&&(t+=` ${n.charAt(0)}:${be(this[n])}`);return t}get fields(){var n;const t=[];for(const r of Vn)(n=this[r])!=null&&n.fields&&t.push(...this[r].fields);return t}dependentFields(){const t=new Set(this.fields);for(const n of Vn)this[n]&&(this[n].sortField&&t.add(this[n].sortField.field),this[n].sortIndexField&&t.add(this[n].sortIndexField));return t}producedFields(){return new Set}getSource(){return this.name}getChildIndependentFieldsWithStep(){const t={};for(const n of wi){const r=this.childModel.component.scales[n];if(r&&!r.merged){const i=r.get("type"),a=r.get("range");if(vt(i)&&ds(a)){const s=Wp(this.childModel,n),o=e8(s);o?t[n]=o:j(t6(n))}}}return t}assembleRowColumnHeaderData(t,n,r){const i={row:"y",column:"x",facet:void 0}[t],a=[],s=[],o=[];i&&r&&r[i]&&(n?(a.push(`distinct_${r[i]}`),s.push("max")):(a.push(r[i]),s.push("distinct")),o.push(`distinct_${r[i]}`));const{sortField:u,sortIndexField:c}=this[t];if(u){const{op:l=kp,field:f}=u;a.push(f),s.push(l),o.push(G(u,{forAs:!0}))}else c&&(a.push(c),s.push("max"),o.push(c));return{name:this[t].name,source:n??this.data,transform:[{type:"aggregate",groupby:this[t].fields,...a.length?{fields:a,ops:s,as:o}:{}}]}}assembleFacetHeaderData(t){var u;const{columns:n}=this.model.layout,{layoutHeaders:r}=this.model.component,i=[],a={};for(const c of G6){for(const l of Y6){const f=(r[c]&&r[c][l])??[];for(const d of f)if(((u=d.axes)==null?void 0:u.length)>0){a[c]=!0;break}}if(a[c]){const l=`length(data("${this.facet.name}"))`,f=c==="row"?n?{signal:`ceil(${l} / ${n})`}:1:n?{signal:`min(${l}, ${n})`}:{signal:l};i.push({name:`${this.facet.name}_${c}`,transform:[{type:"sequence",start:0,stop:f}]})}}const{row:s,column:o}=a;return(s||o)&&i.unshift(this.assembleRowColumnHeaderData("facet",null,t)),i}assemble(){const t=[];let n=null;const r=this.getChildIndependentFieldsWithStep(),{column:i,row:a,facet:s}=this;if(i&&a&&(r.x||r.y)){n=`cross_${this.column.name}_${this.row.name}`;const o=[].concat(r.x??[],r.y??[]),u=o.map(()=>"distinct");t.push({name:n,source:this.data,transform:[{type:"aggregate",groupby:this.fields,fields:o,ops:u}]})}for(const o of[Gi,Hi])this[o]&&t.push(this.assembleRowColumnHeaderData(o,n,r));if(s){const o=this.assembleFacetHeaderData(r);o&&t.push(...o)}return t}}function e_(e){return e.startsWith("'")&&e.endsWith("'")||e.startsWith('"')&&e.endsWith('"')?e.slice(1,-1):e}function wce(e,t){const n=W7(e);if(t==="number")return`toNumber(${n})`;if(t==="boolean")return`toBoolean(${n})`;if(t==="string")return`toString(${n})`;if(t==="date")return`toDate(${n})`;if(t==="flatten")return n;if(t.startsWith("date:")){const r=e_(t.slice(5,t.length));return`timeParse(${n},'${r}')`}else if(t.startsWith("utc:")){const r=e_(t.slice(4,t.length));return`utcParse(${n},'${r}')`}else return j(Wre(t)),null}function Ece(e){const t={};return gh(e.filter,n=>{if(HM(n)){let r=null;a6(n)?r=Mn(n.equal):o6(n)?r=Mn(n.lte):s6(n)?r=Mn(n.lt):u6(n)?r=Mn(n.gt):c6(n)?r=Mn(n.gte):l6(n)?r=n.range[0]:f6(n)&&(r=(n.oneOf??n.in)[0]),r&&(Do(r)?t[n.field]="date":we(r)?t[n.field]="number":X(r)&&(t[n.field]="string")),n.timeUnit&&(t[n.field]="date")}}),t}function Sce(e){const t={};function n(r){Yu(r)?t[r.field]="date":r.type==="quantitative"&&wre(r.aggregate)?t[r.field]="number":Bu(r.field)>1?r.field in t||(t[r.field]="flatten"):Ro(r)&&ei(r.sort)&&Bu(r.sort.field)>1&&(r.sort.field in t||(t[r.sort.field]="flatten"))}if((Ve(e)||$r(e))&&e.forEachFieldDef((r,i)=>{if(un(r))n(r);else{const a=To(i),s=e.fieldDef(a);n({...r,type:s.type})}}),Ve(e)){const{mark:r,markDef:i,encoding:a}=e;if(hs(r)&&!e.encoding.order){const s=i.orient==="horizontal"?"y":"x",o=a[s];U(o)&&o.type==="quantitative"&&!(o.field in t)&&(t[o.field]="number")}}return t}function $ce(e){const t={};if(Ve(e)&&e.component.selection)for(const n of B(e.component.selection)){const r=e.component.selection[n];for(const i of r.project.items)!i.channel&&Bu(i.field)>1&&(t[i.field]="flatten")}return t}class zt extends De{clone(){return new zt(null,oe(this._parse))}constructor(t,n){super(t),this._parse=n}hash(){return`Parse ${be(this._parse)}`}static makeExplicit(t,n,r){var s;let i={};const a=n.data;return!Da(a)&&((s=a==null?void 0:a.format)!=null&&s.parse)&&(i=a.format.parse),this.makeWithAncestors(t,i,{},r)}static makeWithAncestors(t,n,r,i){for(const o of B(r)){const u=i.getWithExplicit(o);u.value!==void 0&&(u.explicit||u.value===r[o]||u.value==="derived"||r[o]==="flatten"?delete r[o]:j(lx(o,r[o],u.value)))}for(const o of B(n)){const u=i.get(o);u!==void 0&&(u===n[o]?delete n[o]:j(lx(o,n[o],u)))}const a=new ua(n,r);i.copyAll(a);const s={};for(const o of B(a.combine())){const u=a.get(o);u!==null&&(s[o]=u)}return B(s).length===0||i.parseNothing?null:new zt(t,s)}get parse(){return this._parse}merge(t){this._parse={...this._parse,...t.parse},t.remove()}assembleFormatParse(){const t={};for(const n of B(this._parse)){const r=this._parse[n];Bu(n)===1&&(t[n]=r)}return t}producedFields(){return new Set(B(this._parse))}dependentFields(){return new Set(B(this._parse))}assembleTransforms(t=!1){return B(this._parse).filter(n=>t?Bu(n)>1:!0).map(n=>{const r=wce(n,this._parse[n]);return r?{type:"formula",expr:r,as:H7(n)}:null}).filter(n=>n!==null)}}class Qa extends De{clone(){return new Qa(null)}constructor(t){super(t)}dependentFields(){return new Set}producedFields(){return new Set([Mr])}hash(){return"Identifier"}assemble(){return{type:"identifier",as:Mr}}}class rd extends De{clone(){return new rd(null,this.params)}constructor(t,n){super(t),this.params=n}dependentFields(){return new Set}producedFields(){}hash(){return`Graticule ${be(this.params)}`}assemble(){return{type:"graticule",...this.params===!0?{}:this.params}}}class id extends De{clone(){return new id(null,this.params)}constructor(t,n){super(t),this.params=n}dependentFields(){return new Set}producedFields(){return new Set([this.params.as??"data"])}hash(){return`Hash ${be(this.params)}`}assemble(){return{type:"sequence",...this.params}}}class vo extends De{constructor(t){super(null),t??(t={name:"source"});let n;if(Da(t)||(n=t.format?{...bn(t.format,["parse"])}:{}),ff(t))this._data={values:t.values};else if(Xu(t)){if(this._data={url:t.url},!n.type){let r=/(?:\.([^.]+))?$/.exec(t.url)[1];ye(["json","csv","tsv","dsv","topojson"],r)||(r="json"),n.type=r}}else sN(t)?this._data={values:[{type:"Sphere"}]}:(iN(t)||Da(t))&&(this._data={});this._generator=Da(t),t.name&&(this._name=t.name),n&&!Oe(n)&&(this._data.format=n)}dependentFields(){return new Set}producedFields(){}get data(){return this._data}hasName(){return!!this._name}get isGenerator(){return this._generator}get dataName(){return this._name}set dataName(t){this._name=t}set parent(t){throw new Error("Source nodes have to be roots.")}remove(){throw new Error("Source nodes are roots and cannot be removed.")}hash(){throw new Error("Cannot hash sources")}assemble(){return{name:this._name,...this._data,transform:[]}}}var t_=function(e,t,n,r,i){if(r==="m")throw new TypeError("Private method is not writable");if(r==="a"&&!i)throw new TypeError("Private accessor was defined without a setter");if(typeof t=="function"?e!==t||!i:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return r==="a"?i.call(e,n):i?i.value=n:t.set(e,n),n},Ace=function(e,t,n,r){if(n==="a"&&!r)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?e!==t||!r:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return n==="m"?r:n==="a"?r.call(e):r?r.value:t.get(e)},yl;function J6(e){return e instanceof vo||e instanceof rd||e instanceof id}class Q6{constructor(){yl.set(this,void 0),t_(this,yl,!1,"f")}setModified(){t_(this,yl,!0,"f")}get modifiedFlag(){return Ace(this,yl,"f")}}yl=new WeakMap;class Lo extends Q6{getNodeDepths(t,n,r){r.set(t,n);for(const i of t.children)this.getNodeDepths(i,n+1,r);return r}optimize(t){const r=[...this.getNodeDepths(t,0,new Map).entries()].sort((i,a)=>a[1]-i[1]);for(const i of r)this.run(i[0]);return this.modifiedFlag}}class Z6 extends Q6{optimize(t){this.run(t);for(const n of t.children)this.optimize(n);return this.modifiedFlag}}class kce extends Z6{mergeNodes(t,n){const r=n.shift();for(const i of n)t.removeChild(i),i.parent=r,i.remove()}run(t){const n=t.children.map(i=>i.hash()),r={};for(let i=0;i1&&(this.setModified(),this.mergeNodes(t,r[i]))}}class Cce extends Z6{constructor(t){super(),this.requiresSelectionId=t&&H6(t)}run(t){t instanceof Qa&&(this.requiresSelectionId&&(J6(t.parent)||t.parent instanceof Sr||t.parent instanceof zt)||(this.setModified(),t.remove()))}}class Fce extends Q6{optimize(t){return this.run(t,new Set),this.modifiedFlag}run(t,n){let r=new Set;t instanceof ti&&(r=t.producedFields(),j7(r,n)&&(this.setModified(),t.removeFormulas(n),t.producedFields.length===0&&t.remove()));for(const i of t.children)this.run(i,new Set([...n,...r]))}}class Mce extends Z6{constructor(){super()}run(t){t instanceof an&&!t.isRequired()&&(this.setModified(),t.remove())}}class Tce extends Lo{run(t){if(!J6(t)&&!(t.numChildren()>1)){for(const n of t.children)if(n instanceof zt)if(t instanceof zt)this.setModified(),t.merge(n);else{if(q7(t.producedFields(),n.dependentFields()))continue;this.setModified(),n.swapWithParent()}}}}class Nce extends Lo{run(t){const n=[...t.children],r=t.children.filter(i=>i instanceof zt);if(t.numChildren()>1&&r.length>=1){const i={},a=new Set;for(const s of r){const o=s.parse;for(const u of B(o))u in i?i[u]!==o[u]&&a.add(u):i[u]=o[u]}for(const s of a)delete i[s];if(!Oe(i)){this.setModified();const s=new zt(t,i);for(const o of n){if(o instanceof zt)for(const u of B(i))delete o.parse[u];t.removeChild(o),o.parent=s,o instanceof zt&&B(o.parse).length===0&&o.remove()}}}}}class Dce extends Lo{run(t){t instanceof an||t.numChildren()>0||t instanceof xc||t instanceof vo||(this.setModified(),t.remove())}}class Oce extends Lo{run(t){const n=t.children.filter(i=>i instanceof ti),r=n.pop();for(const i of n)this.setModified(),r.merge(i)}}class Rce extends Lo{run(t){const n=t.children.filter(i=>i instanceof Sr),r={};for(const i of n){const a=be(i.groupBy);a in r||(r[a]=[]),r[a].push(i)}for(const i of B(r)){const a=r[i];if(a.length>1){const s=a.pop();for(const o of a)s.merge(o)&&(t.removeChild(o),o.parent=s,o.remove(),this.setModified())}}}}class Lce extends Lo{constructor(t){super(),this.model=t}run(t){const n=!(J6(t)||t instanceof vc||t instanceof zt||t instanceof Qa),r=[],i=[];for(const a of t.children)a instanceof ni&&(n&&!q7(t.producedFields(),a.dependentFields())?r.push(a):i.push(a));if(r.length>0){const a=r.pop();for(const s of r)a.merge(s,this.model.renameSignal.bind(this.model));this.setModified(),t instanceof ni?t.merge(a,this.model.renameSignal.bind(this.model)):a.swapWithParent()}if(i.length>1){const a=i.pop();for(const s of i)a.merge(s,this.model.renameSignal.bind(this.model));this.setModified()}}}class Pce extends Lo{run(t){const n=[...t.children];if(!co(n,s=>s instanceof an)||t.numChildren()<=1)return;const i=[];let a;for(const s of n)if(s instanceof an){let o=s;for(;o.numChildren()===1;){const[u]=o.children;if(u instanceof an)o=u;else break}i.push(...o.children),a?(t.removeChild(s),s.parent=a.parent,a.parent.removeChild(a),a.parent=o,this.setModified()):a=o}else i.push(s);if(i.length){this.setModified();for(const s of i)s.parent.removeChild(s),s.parent=a}}}class Po extends De{clone(){return new Po(null,oe(this.transform))}constructor(t,n){super(t),this.transform=n}addDimensions(t){this.transform.groupby=Kr(this.transform.groupby.concat(t),n=>n)}dependentFields(){const t=new Set;return this.transform.groupby&&this.transform.groupby.forEach(t.add,t),this.transform.joinaggregate.map(n=>n.field).filter(n=>n!==void 0).forEach(t.add,t),t}producedFields(){return new Set(this.transform.joinaggregate.map(this.getDefaultName))}getDefaultName(t){return t.as??G(t)}hash(){return`JoinAggregateTransform ${be(this.transform)}`}assemble(){const t=[],n=[],r=[];for(const a of this.transform.joinaggregate)n.push(a.op),r.push(this.getDefaultName(a)),t.push(a.field===void 0?null:a.field);const i=this.transform.groupby;return{type:"joinaggregate",as:r,ops:n,fields:t,...i!==void 0?{groupby:i}:{}}}}function Ice(e){return e.stack.stackBy.reduce((t,n)=>{const r=n.fieldDef,i=G(r);return i&&t.push(i),t},[])}function zce(e){return P(e)&&e.every(t=>X(t))&&e.length>1}class Xi extends De{clone(){return new Xi(null,oe(this._stack))}constructor(t,n){super(t),this._stack=n}static makeFromTransform(t,n){const{stack:r,groupby:i,as:a,offset:s="zero"}=n,o=[],u=[];if(n.sort!==void 0)for(const f of n.sort)o.push(f.field),u.push(Ze(f.order,"ascending"));const c={field:o,order:u};let l;return zce(a)?l=a:X(a)?l=[a,`${a}_end`]:l=[`${n.stack}_start`,`${n.stack}_end`],new Xi(t,{dimensionFieldDefs:[],stackField:r,groupby:i,offset:s,sort:c,facetby:[],as:l})}static makeFromEncoding(t,n){const r=n.stack,{encoding:i}=n;if(!r)return null;const{groupbyChannels:a,fieldChannel:s,offset:o,impute:u}=r,c=a.map(h=>{const g=i[h];return li(g)}).filter(h=>!!h),l=Ice(n),f=n.encoding.order;let d;if(P(f)||U(f))d=$M(f);else{const h=gT(f)?f.sort:s==="y"?"descending":"ascending";d=l.reduce((g,p)=>(g.field.push(p),g.order.push(h),g),{field:[],order:[]})}return new Xi(t,{dimensionFieldDefs:c,stackField:n.vgField(s),facetby:[],stackby:l,sort:d,offset:o,impute:u,as:[n.vgField(s,{suffix:"start",forAs:!0}),n.vgField(s,{suffix:"end",forAs:!0})]})}get stack(){return this._stack}addDimensions(t){this._stack.facetby.push(...t)}dependentFields(){const t=new Set;return t.add(this._stack.stackField),this.getGroupbyFields().forEach(t.add,t),this._stack.facetby.forEach(t.add,t),this._stack.sort.field.forEach(t.add,t),t}producedFields(){return new Set(this._stack.as)}hash(){return`Stack ${be(this._stack)}`}getGroupbyFields(){const{dimensionFieldDefs:t,impute:n,groupby:r}=this._stack;return t.length>0?t.map(i=>i.bin?n?[G(i,{binSuffix:"mid"})]:[G(i,{}),G(i,{binSuffix:"end"})]:[G(i)]).flat():r??[]}assemble(){const t=[],{facetby:n,dimensionFieldDefs:r,stackField:i,stackby:a,sort:s,offset:o,impute:u,as:c}=this._stack;if(u)for(const l of r){const{bandPosition:f=.5,bin:d}=l;if(d){const h=G(l,{expr:"datum"}),g=G(l,{expr:"datum",binSuffix:"end"});t.push({type:"formula",expr:`${f}*${h}+${1-f}*${g}`,as:G(l,{binSuffix:"mid",forAs:!0})})}t.push({type:"impute",field:i,groupby:[...a,...n],key:G(l,{binSuffix:"mid"}),method:"value",value:0})}return t.push({type:"stack",groupby:[...this.getGroupbyFields(),...n],field:i,sort:s,as:c,offset:o}),t}}class _c extends De{clone(){return new _c(null,oe(this.transform))}constructor(t,n){super(t),this.transform=n}addDimensions(t){this.transform.groupby=Kr(this.transform.groupby.concat(t),n=>n)}dependentFields(){const t=new Set;return(this.transform.groupby??[]).forEach(t.add,t),(this.transform.sort??[]).forEach(n=>t.add(n.field)),this.transform.window.map(n=>n.field).filter(n=>n!==void 0).forEach(t.add,t),t}producedFields(){return new Set(this.transform.window.map(this.getDefaultName))}getDefaultName(t){return t.as??G(t)}hash(){return`WindowTransform ${be(this.transform)}`}assemble(){const t=[],n=[],r=[],i=[];for(const f of this.transform.window)n.push(f.op),r.push(this.getDefaultName(f)),i.push(f.param===void 0?null:f.param),t.push(f.field===void 0?null:f.field);const a=this.transform.frame,s=this.transform.groupby;if(a&&a[0]===null&&a[1]===null&&n.every(f=>Z7(f)))return{type:"joinaggregate",as:r,ops:n,fields:t,...s!==void 0?{groupby:s}:{}};const o=[],u=[];if(this.transform.sort!==void 0)for(const f of this.transform.sort)o.push(f.field),u.push(f.order??"ascending");const c={field:o,order:u},l=this.transform.ignorePeers;return{type:"window",params:i,as:r,ops:n,fields:t,sort:c,...l!==void 0?{ignorePeers:l}:{},...s!==void 0?{groupby:s}:{},...a!==void 0?{frame:a}:{}}}}function Bce(e){function t(n){if(!(n instanceof xc)){const r=n.clone();if(r instanceof an){const i=Iy+r.getSource();r.setSource(i),e.model.component.data.outputNodes[i]=r}else(r instanceof Sr||r instanceof Xi||r instanceof _c||r instanceof Po)&&r.addDimensions(e.fields);for(const i of n.children.flatMap(t))i.parent=r;return[r]}return n.children.flatMap(t)}return t}function Py(e){if(e instanceof xc)if(e.numChildren()===1&&!(e.children[0]instanceof an)){const t=e.children[0];(t instanceof Sr||t instanceof Xi||t instanceof _c||t instanceof Po)&&t.addDimensions(e.fields),t.swapWithParent(),Py(e)}else{const t=e.model.component.data.main;ZN(t);const n=Bce(e),r=e.children.map(n).flat();for(const i of r)i.parent=t}else e.children.map(Py)}function ZN(e){if(e instanceof an&&e.type===ze.Main&&e.numChildren()===1){const t=e.children[0];t instanceof xc||(t.swapWithParent(),ZN(e))}}const Iy="scale_",Pd=5;function zy(e){for(const t of e){for(const n of t.children)if(n.parent!==t)return!1;if(!zy(t.children))return!1}return!0}function ur(e,t){let n=!1;for(const r of t)n=e.optimize(r)||n;return n}function n_(e,t,n){let r=e.sources,i=!1;return i=ur(new Mce,r)||i,i=ur(new Cce(t),r)||i,r=r.filter(a=>a.numChildren()>0),i=ur(new Dce,r)||i,r=r.filter(a=>a.numChildren()>0),n||(i=ur(new Tce,r)||i,i=ur(new Lce(t),r)||i,i=ur(new Fce,r)||i,i=ur(new Nce,r)||i,i=ur(new Rce,r)||i,i=ur(new Oce,r)||i,i=ur(new kce,r)||i,i=ur(new Pce,r)||i),e.sources=r,i}function Uce(e,t){zy(e.sources);let n=0,r=0;for(let i=0;it(n))}}function eD(e){Ve(e)?jce(e):qce(e)}function jce(e){const t=e.component.scales;for(const n of B(t)){const r=Hce(e,n);if(t[n].setWithExplicit("domains",r),Yce(e,n),e.component.data.isFaceted){let a=e;for(;!$r(a)&&a.parent;)a=a.parent;if(a.component.resolve.scale[n]==="shared")for(const o of r.value)Ui(o)&&(o.data=Iy+o.data.replace(Iy,""))}}}function qce(e){for(const n of e.children)eD(n);const t=e.component.scales;for(const n of B(t)){let r,i=null;for(const a of e.children){const s=a.component.scales[n];if(s){r===void 0?r=s.getWithExplicit("domains"):r=Va(r,s.getWithExplicit("domains"),"domains","scale",By);const o=s.get("selectionExtent");i&&o&&i.param!==o.param&&j(Bre),i=o}}t[n].setWithExplicit("domains",r),i&&t[n].set("selectionExtent",i,!0)}}function Wce(e,t,n,r){if(e==="unaggregated"){const{valid:i,reason:a}=r_(t,n);if(!i){j(a);return}}else if(e===void 0&&r.useUnaggregatedDomain){const{valid:i}=r_(t,n);if(i)return"unaggregated"}return e}function Hce(e,t){const n=e.getScaleComponent(t).get("type"),{encoding:r}=e,i=Wce(e.scaleDomain(t),e.typedFieldDef(t),n,e.config.scale);return i!==e.scaleDomain(t)&&(e.specifiedScales[t]={...e.specifiedScales[t],domain:i}),t==="x"&&st(r.x2)?st(r.x)?Va(da(n,i,e,"x"),da(n,i,e,"x2"),"domain","scale",By):da(n,i,e,"x2"):t==="y"&&st(r.y2)?st(r.y)?Va(da(n,i,e,"y"),da(n,i,e,"y2"),"domain","scale",By):da(n,i,e,"y2"):da(n,i,e,t)}function Gce(e,t,n){return e.map(r=>({signal:`{data: ${Np(r,{timeUnit:n,type:t})}}`}))}function ym(e,t,n){var i;const r=(i=yt(n))==null?void 0:i.unit;return t==="temporal"||r?Gce(e,t,r):[e]}function da(e,t,n,r){const{encoding:i,markDef:a,mark:s,config:o,stack:u}=n,c=st(i[r]),{type:l}=c,f=c.timeUnit;if(cae(t)){const g=da(e,void 0,n,r),p=ym(t.unionWith,l,f);return Hr([...p,...g.value])}else{if(Q(t))return Hr([t]);if(t&&t!=="unaggregated"&&!QM(t))return Hr(ym(t,l,f))}if(u&&r===u.fieldChannel){if(u.offset==="normalize")return kn([[0,1]]);const g=n.requestDataName(ze.Main);return kn([{data:g,field:n.vgField(r,{suffix:"start"})},{data:g,field:n.vgField(r,{suffix:"end"})}])}const d=sa(r)&&U(c)?Xce(n,r,e):void 0;if(Ei(c)){const g=ym([c.datum],l,f);return kn(g)}const h=c;if(t==="unaggregated"){const g=n.requestDataName(ze.Main),{field:p}=c;return kn([{data:g,field:G({field:p,aggregate:"min"})},{data:g,field:G({field:p,aggregate:"max"})}])}else if(Be(h.bin)){if(vt(e))return kn(e==="bin-ordinal"?[]:[{data:uf(d)?n.requestDataName(ze.Main):n.requestDataName(ze.Raw),field:n.vgField(r,ed(h,r)?{binSuffix:"range"}:{}),sort:d===!0||!V(d)?{field:n.vgField(r,{}),op:"min"}:d}]);{const{bin:g}=h;if(Be(g)){const p=K6(n,h.field,g);return kn([new ft(()=>{const m=n.getSignalName(p);return`[${m}.start, ${m}.stop]`})])}else return kn([{data:n.requestDataName(ze.Main),field:n.vgField(r,{})}])}}else if(h.timeUnit&&ye(["time","utc"],e)){const g=i[_i(r)];if(hT(h,g,a,o)){const p=n.requestDataName(ze.Main),m=Xa({fieldDef:h,fieldDef2:g,markDef:a,config:o}),b=lf(s)&&m!==.5&&et(r);return kn([{data:p,field:n.vgField(r,b?{suffix:Ip}:{})},{data:p,field:n.vgField(r,{suffix:b?zp:"end"})}])}}return kn(d?[{data:uf(d)?n.requestDataName(ze.Main):n.requestDataName(ze.Raw),field:n.vgField(r),sort:d}]:[{data:n.requestDataName(ze.Main),field:n.vgField(r)}])}function vm(e,t){const{op:n,field:r,order:i}=e;return{op:n??(t?"sum":kp),...r?{field:rr(r)}:{},...i?{order:i}:{}}}function Yce(e,t){var o;const n=e.component.scales[t],r=e.specifiedScales[t].domain,i=(o=e.fieldDef(t))==null?void 0:o.bin,a=QM(r)&&r,s=No(i)&&xp(i.extent)&&i.extent;(a||s)&&n.set("selectionExtent",a??s,!0)}function Xce(e,t,n){if(!vt(n))return;const r=e.fieldDef(t),i=r.sort;if(fT(i))return{op:"min",field:Ju(r,t),order:"ascending"};const{stack:a}=e,s=a?new Set([...a.groupbyFields,...a.stackBy.map(o=>o.fieldDef.field)]):void 0;if(ei(i)){const o=a&&!s.has(i.field);return vm(i,o)}else if(lT(i)){const{encoding:o,order:u}=i,c=e.fieldDef(o),{aggregate:l,field:f}=c,d=a&&!s.has(f);if(Qi(l)||fs(l))return vm({field:G(c),order:u},d);if(Z7(l)||!l)return vm({op:l,field:f,order:u},d)}else{if(i==="descending")return{op:"min",field:e.vgField(t),order:"descending"};if(ye(["ascending",void 0],i))return!0}}function r_(e,t){const{aggregate:n,type:r}=e;return n?X(n)&&!Sre.has(n)?{valid:!1,reason:die(n)}:r==="quantitative"&&t==="log"?{valid:!1,reason:hie(e)}:{valid:!0}:{valid:!1,reason:fie(e)}}function By(e,t,n,r){return e.explicit&&t.explicit&&j(yie(n,r,e.value,t.value)),{explicit:e.explicit,value:[...e.value,...t.value]}}function Vce(e){const t=Kr(e.map(s=>{if(Ui(s)){const{sort:o,...u}=s;return u}return s}),be),n=Kr(e.map(s=>{if(Ui(s)){const o=s.sort;return o!==void 0&&!uf(o)&&("op"in o&&o.op==="count"&&delete o.field,o.order==="ascending"&&delete o.order),o}}).filter(s=>s!==void 0),be);if(t.length===0)return;if(t.length===1){const s=e[0];if(Ui(s)&&n.length>0){let o=n[0];if(n.length>1){j(dx);const u=n.filter(c=>V(c)&&"op"in c&&c.op!=="min");n.every(c=>V(c)&&"op"in c)&&u.length===1?o=u[0]:o=!0}else if(V(o)&&"field"in o){const u=o.field;s.field===u&&(o=o.order?{order:o.order}:!0)}return{...s,sort:o}}return s}const r=Kr(n.map(s=>uf(s)||!("op"in s)||X(s.op)&&s.op in xre?s:(j(xie(s)),!0)),be);let i;r.length===1?i=r[0]:r.length>1&&(j(dx),i=!0);const a=Kr(e.map(s=>Ui(s)?s.data:null),s=>s);return a.length===1&&a[0]!==null?{data:a[0],fields:t.map(o=>o.field),...i?{sort:i}:{}}:{fields:t,...i?{sort:i}:{}}}function e8(e){if(Ui(e)&&X(e.field))return e.field;if($re(e)){let t;for(const n of e.fields)if(Ui(n)&&X(n.field)){if(!t)t=n.field;else if(t!==n.field)return j(_ie),t}return j(wie),t}else if(Are(e)){j(Eie);const t=e.fields[0];return X(t)?t:void 0}}function Wp(e,t){const r=e.component.scales[t].get("domains").map(i=>(Ui(i)&&(i.data=e.lookupDataSource(i.data)),i));return Vce(r)}function tD(e){return wc(e)||t8(e)?e.children.reduce((t,n)=>t.concat(tD(n)),i_(e)):i_(e)}function i_(e){return B(e.component.scales).reduce((t,n)=>{const r=e.component.scales[n];if(r.merged)return t;const i=r.combine(),{name:a,type:s,selectionExtent:o,domains:u,range:c,reverse:l,...f}=i,d=Kce(i.range,a,n,e),h=Wp(e,n),g=o?Woe(e,o,r,h):null;return t.push({name:a,type:s,...h?{domain:h}:{},...g?{domainRaw:g}:{},range:d,...l!==void 0?{reverse:l}:{},...f}),t},[])}function Kce(e,t,n,r){if(et(n)){if(ds(e))return{step:{signal:`${t}_step`}}}else if(V(e)&&Ui(e))return{...e,data:r.lookupDataSource(e.data)};return e}class nD extends ua{constructor(t,n){super({},{name:t}),this.merged=!1,this.setWithExplicit("type",n)}domainDefinitelyIncludesZero(){return this.get("zero")!==!1?!0:co(this.get("domains"),t=>P(t)&&t.length===2&&we(t[0])&&t[0]<=0&&we(t[1])&&t[1]>=0)}}const Jce=["range","scheme"];function Qce(e){const t=e.component.scales;for(const n of vp){const r=t[n];if(!r)continue;const i=Zce(n,e);r.setWithExplicit("range",i)}}function a_(e,t){const n=e.fieldDef(t);if(n!=null&&n.bin){const{bin:r,field:i}=n,a=Sn(t),s=e.getName(a);if(V(r)&&r.binned&&r.step!==void 0)return new ft(()=>{const o=e.scaleName(t),u=`(domain("${o}")[1] - domain("${o}")[0]) / ${r.step}`;return`${e.getSignalName(s)} / (${u})`});if(Be(r)){const o=K6(e,i,r);return new ft(()=>{const u=e.getSignalName(o),c=`(${u}.stop - ${u}.start) / ${u}.step`;return`${e.getSignalName(s)} / (${c})`})}}}function Zce(e,t){const n=t.specifiedScales[e],{size:r}=t,a=t.getScaleComponent(e).get("type");for(const f of Jce)if(n[f]!==void 0){const d=Sy(a,f),h=ZM(e,f);if(!d)j(NM(a,f,e));else if(h)j(h);else switch(f){case"range":{const g=n.range;if(P(g)){if(et(e))return Hr(g.map(p=>{if(p==="width"||p==="height"){const m=t.getName(p),b=t.getSignalName.bind(t);return ft.fromName(b,m)}return p}))}else if(V(g))return Hr({data:t.requestDataName(ze.Main),field:g.field,sort:{op:"min",field:t.vgField(e)}});return Hr(g)}case"scheme":return Hr(ele(n[f]))}}const s=e===He||e==="xOffset"?"width":"height",o=r[s];if(fi(o)){if(et(e))if(vt(a)){const f=iD(o,t,e);if(f)return Hr({step:f})}else j(DM(s));else if(Xf(e)){const f=e===ss?"x":"y";if(t.getScaleComponent(f).get("type")==="band"){const g=aD(o,a);if(g)return Hr(g)}}}const{rangeMin:u,rangeMax:c}=n,l=tle(e,t);return(u!==void 0||c!==void 0)&&Sy(a,"rangeMin")&&P(l)&&l.length===2?Hr([u??l[0],c??l[1]]):kn(l)}function ele(e){return uae(e)?{scheme:e.name,...bn(e,["name"])}:{scheme:e}}function rD(e,t,n,{center:r}={}){const i=Sn(e),a=t.getName(i),s=t.getSignalName.bind(t);return e===_t&&Bn(n)?r?[ft.fromName(o=>`${s(o)}/2`,a),ft.fromName(o=>`-${s(o)}/2`,a)]:[ft.fromName(s,a),0]:r?[ft.fromName(o=>`-${s(o)}/2`,a),ft.fromName(o=>`${s(o)}/2`,a)]:[0,ft.fromName(s,a)]}function tle(e,t){const{size:n,config:r,mark:i,encoding:a}=t,{type:s}=st(a[e]),u=t.getScaleComponent(e).get("type"),{domain:c,domainMid:l}=t.specifiedScales[e];switch(e){case He:case _t:{if(ye(["point","band"],u)){const f=sD(e,n,r.view);if(fi(f))return{step:iD(f,t,e)}}return rD(e,t,u)}case ss:case mc:return nle(e,t,u);case ia:{const f=t.component.scales[e].get("zero"),d=oD(i,f,r),h=ale(i,n,t,r);return Wu(u)?ile(d,h,rle(u,r,c,e)):[d,h]}case sr:return[0,Math.PI*2];case Mo:return[0,360];case Rr:return[0,new ft(()=>{const f=t.getSignalName("width"),d=t.getSignalName("height");return`min(${f},${d})/2`})];case cs:return[r.scale.minStrokeWidth,r.scale.maxStrokeWidth];case ls:return[[1,0],[4,2],[2,1],[1,1],[1,2,4,2]];case En:return"symbol";case wn:case vi:case xi:return u==="ordinal"?s==="nominal"?"category":"ordinal":l!==void 0?"diverging":i==="rect"||i==="geoshape"?"heatmap":"ramp";case aa:case os:case us:return[r.scale.minOpacity,r.scale.maxOpacity]}}function iD(e,t,n){const{encoding:r}=t,i=t.getScaleComponent(n),a=V7(n),s=r[a];if(WT({step:e,offsetIsDiscrete:ue(s)&&YM(s.type)})==="offset"&&$T(r,a)){const u=t.getScaleComponent(a);let l=`domain('${t.scaleName(a)}').length`;if(u.get("type")==="band"){const d=u.get("paddingInner")??u.get("padding")??0,h=u.get("paddingOuter")??u.get("padding")??0;l=`bandspace(${l}, ${d}, ${h})`}const f=i.get("paddingInner")??i.get("padding");return{signal:`${e.step} * ${l} / (1-${Mre(f)})`}}else return e.step}function aD(e,t){if(WT({step:e,offsetIsDiscrete:vt(t)})==="offset")return{step:e.step}}function nle(e,t,n){const r=e===ss?"x":"y",i=t.getScaleComponent(r);if(!i)return rD(r,t,n,{center:!0});const a=i.get("type"),s=t.scaleName(r),{markDef:o,config:u}=t;if(a==="band"){const c=sD(r,t.size,t.config.view);if(fi(c)){const l=aD(c,n);if(l)return l}return[0,{signal:`bandwidth('${s}')`}]}else{const c=t.encoding[r];if(U(c)&&c.timeUnit){const l=qM(c.timeUnit,g=>`scale('${s}', ${g})`),f=t.config.scale.bandWithNestedOffsetPaddingInner,d=Xa({fieldDef:c,markDef:o,config:u})-.5,h=d!==0?` + ${d}`:"";if(f){const g=Q(f)?`${f.signal}/2`+h:`${f/2+d}`,p=Q(f)?`(1 - ${f.signal}/2)`+h:`${1-f/2+d}`;return[{signal:`${g} * (${l})`},{signal:`${p} * (${l})`}]}return[0,{signal:l}]}return ZF(`Cannot use ${e} scale if ${r} scale is not discrete.`)}}function sD(e,t,n){const r=e===He?"width":"height",i=t[r];return i||q0(n,r)}function rle(e,t,n,r){switch(e){case"quantile":return t.scale.quantileCount;case"quantize":return t.scale.quantizeCount;case"threshold":return n!==void 0&&P(n)?n.length+1:(j(Nie(r)),3)}}function ile(e,t,n){const r=()=>{const i=xr(t),a=xr(e),s=`(${i} - ${a}) / (${n} - 1)`;return`sequence(${a}, ${i} + ${s}, ${s})`};return Q(t)?new ft(r):{signal:r()}}function oD(e,t,n){if(t)return Q(t)?{signal:`${t.signal} ? 0 : ${oD(e,!1,n)}`}:0;switch(e){case"bar":case"tick":return n.scale.minBandSize;case"line":case"trail":case"rule":return n.scale.minStrokeWidth;case"text":return n.scale.minFontSize;case"point":case"square":case"circle":return n.scale.minSize}throw new Error(_p("size",e))}const s_=.95;function ale(e,t,n,r){const i={x:a_(n,"x"),y:a_(n,"y")};switch(e){case"bar":case"tick":{if(r.scale.maxBandSize!==void 0)return r.scale.maxBandSize;const a=o_(t,i,r.view);return we(a)?a-1:new ft(()=>`${a.signal} - 1`)}case"line":case"trail":case"rule":return r.scale.maxStrokeWidth;case"text":return r.scale.maxFontSize;case"point":case"square":case"circle":{if(r.scale.maxSize)return r.scale.maxSize;const a=o_(t,i,r.view);return we(a)?Math.pow(s_*a,2):new ft(()=>`pow(${s_} * ${a.signal}, 2)`)}}throw new Error(_p("size",e))}function o_(e,t,n){const r=fi(e.width)?e.width.step:j0(n,"width"),i=fi(e.height)?e.height.step:j0(n,"height");return t.x||t.y?new ft(()=>`min(${[t.x?t.x.signal:r,t.y?t.y.signal:i].join(", ")})`):Math.min(r,i)}function uD(e,t){Ve(e)?sle(e,t):lD(e,t)}function sle(e,t){const n=e.component.scales,{config:r,encoding:i,markDef:a,specifiedScales:s}=e;for(const o of B(n)){const u=s[o],c=n[o],l=e.getScaleComponent(o),f=st(i[o]),d=u[t],h=l.get("type"),g=l.get("padding"),p=l.get("paddingInner"),m=Sy(h,t),b=ZM(o,t);if(d!==void 0&&(m?b&&j(b):j(NM(h,t,o))),m&&b===void 0)if(d!==void 0){const y=f.timeUnit,v=f.type;switch(t){case"domainMax":case"domainMin":Do(u[t])||v==="temporal"||y?c.set(t,{signal:Np(u[t],{type:v,timeUnit:y})},!0):c.set(t,u[t],!0);break;default:c.copyKeyFromObject(t,u)}}else{const y=t in u_?u_[t]({model:e,channel:o,fieldOrDatumDef:f,scaleType:h,scalePadding:g,scalePaddingInner:p,domain:u.domain,domainMin:u.domainMin,domainMax:u.domainMax,markDef:a,config:r,hasNestedOffsetScale:AT(i,o),hasSecondaryRangeChannel:!!i[_i(o)]}):r.scale[t];y!==void 0&&c.set(t,y,!1)}}}const u_={bins:({model:e,fieldOrDatumDef:t})=>U(t)?ole(e,t):void 0,interpolate:({channel:e,fieldOrDatumDef:t})=>ule(e,t.type),nice:({scaleType:e,channel:t,domain:n,domainMin:r,domainMax:i,fieldOrDatumDef:a})=>cle(e,t,n,r,i,a),padding:({channel:e,scaleType:t,fieldOrDatumDef:n,markDef:r,config:i})=>lle(e,t,i.scale,n,r,i.bar),paddingInner:({scalePadding:e,channel:t,markDef:n,scaleType:r,config:i,hasNestedOffsetScale:a})=>fle(e,t,n.type,r,i.scale,a),paddingOuter:({scalePadding:e,channel:t,scaleType:n,scalePaddingInner:r,config:i,hasNestedOffsetScale:a})=>dle(e,t,n,r,i.scale,a),reverse:({fieldOrDatumDef:e,scaleType:t,channel:n,config:r})=>{const i=U(e)?e.sort:void 0;return hle(t,i,n,r.scale)},zero:({channel:e,fieldOrDatumDef:t,domain:n,markDef:r,scaleType:i,config:a,hasSecondaryRangeChannel:s})=>gle(e,t,n,r,i,a.scale,s)};function cD(e){Ve(e)?Qce(e):lD(e,"range")}function lD(e,t){const n=e.component.scales;for(const r of e.children)t==="range"?cD(r):uD(r,t);for(const r of B(n)){let i;for(const a of e.children){const s=a.component.scales[r];if(s){const o=s.getWithExplicit(t);i=Va(i,o,t,"scale",rN((u,c)=>{switch(t){case"range":return u.step&&c.step?u.step-c.step:0}return 0}))}}n[r].setWithExplicit(t,i)}}function ole(e,t){const n=t.bin;if(Be(n)){const r=K6(e,t.field,n);return new ft(()=>e.getSignalName(r))}else if(Et(n)&&No(n)&&n.step!==void 0)return{step:n.step}}function ule(e,t){if(ye([wn,vi,xi],e)&&t!=="nominal")return"hcl"}function cle(e,t,n,r,i,a){var s;if(!((s=li(a))!=null&&s.bin||P(n)||i!=null||r!=null||ye([yn.TIME,yn.UTC],e)))return et(t)?!0:void 0}function lle(e,t,n,r,i,a){if(et(e)){if(_r(t)){if(n.continuousPadding!==void 0)return n.continuousPadding;const{type:s,orient:o}=i;if(s==="bar"&&!(U(r)&&(r.bin||r.timeUnit))&&(o==="vertical"&&e==="x"||o==="horizontal"&&e==="y"))return a.continuousBandSize}if(t===yn.POINT)return n.pointPadding}}function fle(e,t,n,r,i,a=!1){if(e===void 0){if(et(t)){const{bandPaddingInner:s,barBandPaddingInner:o,rectBandPaddingInner:u,bandWithNestedOffsetPaddingInner:c}=i;return a?c:Ze(s,n==="bar"?o:u)}else if(Xf(t)&&r===yn.BAND)return i.offsetBandPaddingInner}}function dle(e,t,n,r,i,a=!1){if(e===void 0){if(et(t)){const{bandPaddingOuter:s,bandWithNestedOffsetPaddingOuter:o}=i;if(a)return o;if(n===yn.BAND)return Ze(s,Q(r)?{signal:`${r.signal}/2`}:r/2)}else if(Xf(t)){if(n===yn.POINT)return .5;if(n===yn.BAND)return i.offsetBandPaddingOuter}}}function hle(e,t,n,r){if(n==="x"&&r.xReverse!==void 0)return Bn(e)&&t==="descending"?Q(r.xReverse)?{signal:`!${r.xReverse.signal}`}:!r.xReverse:r.xReverse;if(Bn(e)&&t==="descending")return!0}function gle(e,t,n,r,i,a,s){if(!!n&&n!=="unaggregated"&&Bn(i)){if(P(n)){const u=n[0],c=n[n.length-1];if(we(u)&&u<=0&&we(c)&&c>=0)return!0}return!1}if(e==="size"&&t.type==="quantitative"&&!Wu(i))return!0;if(!(U(t)&&t.bin)&&ye([...wi,...dre],e)){const{orient:u,type:c}=r;return ye(["bar","area","line","trail"],c)&&(u==="horizontal"&&e==="y"||u==="vertical"&&e==="x")?!1:ye(["bar","area"],c)&&!s?!0:a==null?void 0:a.zero}return!1}function ple(e,t,n,r,i=!1){const a=mle(t,n,r,i),{type:s}=e;return sa(t)?s!==void 0?pae(t,s)?U(n)&&!gae(s,n.type)?(j(mie(s,a)),a):s:(j(pie(t,s,a)),a):a:null}function mle(e,t,n,r){var i;switch(t.type){case"nominal":case"ordinal":{if(gu(e)||lm(e)==="discrete")return e==="shape"&&t.type==="ordinal"&&j(fm(e,"ordinal")),"ordinal";if(et(e)||Xf(e)){if(ye(["rect","bar","image","rule"],n.type)||r)return"band"}else if(n.type==="arc"&&e in Q7)return"band";const a=n[Sn(e)];return po(a)||Gu(t)&&((i=t.axis)!=null&&i.tickBand)?"band":"point"}case"temporal":return gu(e)?"time":lm(e)==="discrete"?(j(fm(e,"temporal")),"ordinal"):U(t)&&t.timeUnit&&yt(t.timeUnit).utc?"utc":"time";case"quantitative":return gu(e)?U(t)&&Be(t.bin)?"bin-ordinal":"linear":lm(e)==="discrete"?(j(fm(e,"quantitative")),"ordinal"):"linear";case"geojson":return}throw new Error(MM(t.type))}function ble(e,{ignoreRange:t}={}){fD(e),eD(e);for(const n of hae)uD(e,n);t||cD(e)}function fD(e){Ve(e)?e.component.scales=yle(e):e.component.scales=xle(e)}function yle(e){const{encoding:t,mark:n,markDef:r}=e,i={};for(const a of vp){const s=st(t[a]);if(s&&n===nT&&a===En&&s.type===bc)continue;let o=s&&s.scale;if(s&&o!==null&&o!==!1){o??(o={});const u=AT(t,a),c=ple(o,a,s,r,u);i[a]=new nD(e.scaleName(`${a}`,!0),{value:c,explicit:o.type===c})}}return i}const vle=rN((e,t)=>gx(e)-gx(t));function xle(e){var t;const n=e.component.scales={},r={},i=e.component.resolve;for(const a of e.children){fD(a);for(const s of B(a.component.scales))if((t=i.scale)[s]??(t[s]=UN(s,e)),i.scale[s]==="shared"){const o=r[s],u=a.component.scales[s].getWithExplicit("type");o?rae(o.value,u.value)?r[s]=Va(o,u,"type","scale",vle):(i.scale[s]="independent",delete r[s]):r[s]=u}}for(const a of B(r)){const s=e.scaleName(a,!0),o=r[a];n[a]=new nD(s,o);for(const u of e.children){const c=u.component.scales[a];c&&(u.renameScale(c.get("name"),s),c.merged=!0)}}return n}class xm{constructor(){this.nameMap={}}rename(t,n){this.nameMap[t]=n}has(t){return this.nameMap[t]!==void 0}get(t){for(;this.nameMap[t]&&t!==this.nameMap[t];)t=this.nameMap[t];return t}}function Ve(e){return(e==null?void 0:e.type)==="unit"}function $r(e){return(e==null?void 0:e.type)==="facet"}function t8(e){return(e==null?void 0:e.type)==="concat"}function wc(e){return(e==null?void 0:e.type)==="layer"}class n8{constructor(t,n,r,i,a,s,o){this.type=n,this.parent=r,this.config=a,this.correctDataNames=u=>{var c,l,f;return(c=u.from)!=null&&c.data&&(u.from.data=this.lookupDataSource(u.from.data)),(f=(l=u.from)==null?void 0:l.facet)!=null&&f.data&&(u.from.facet.data=this.lookupDataSource(u.from.facet.data)),u},this.parent=r,this.config=a,this.view=gn(o),this.name=t.name??i,this.title=ba(t.title)?{text:t.title}:t.title?gn(t.title):void 0,this.scaleNameMap=r?r.scaleNameMap:new xm,this.projectionNameMap=r?r.projectionNameMap:new xm,this.signalNameMap=r?r.signalNameMap:new xm,this.data=t.data,this.description=t.description,this.transforms=koe(t.transform??[]),this.layout=n==="layer"||n==="unit"?{}:Tse(t,n,a),this.component={data:{sources:r?r.component.data.sources:[],outputNodes:r?r.component.data.outputNodes:{},outputNodeRefCounts:r?r.component.data.outputNodeRefCounts:{},isFaceted:Cp(t)||(r==null?void 0:r.component.data.isFaceted)&&t.data===void 0},layoutSize:new ua,layoutHeaders:{row:{},column:{},facet:{}},mark:null,resolve:{scale:{},axis:{},legend:{},...s?oe(s):{}},selection:null,scales:null,projection:null,axes:{},legends:{}}}get width(){return this.getSizeSignalRef("width")}get height(){return this.getSizeSignalRef("height")}parse(){this.parseScale(),this.parseLayoutSize(),this.renameTopLevelLayoutSizeSignal(),this.parseSelections(),this.parseProjection(),this.parseData(),this.parseAxesAndHeaders(),this.parseLegends(),this.parseMarkGroup()}parseScale(){ble(this)}parseProjection(){JN(this)}renameTopLevelLayoutSizeSignal(){this.getName("width")!=="width"&&this.renameSignal(this.getName("width"),"width"),this.getName("height")!=="height"&&this.renameSignal(this.getName("height"),"height")}parseLegends(){GN(this)}assembleEncodeFromView(t){const{style:n,...r}=t,i={};for(const a of B(r)){const s=r[a];s!==void 0&&(i[a]=je(s))}return i}assembleGroupEncodeEntry(t){let n={};return this.view&&(n=this.assembleEncodeFromView(this.view)),!t&&(this.description&&(n.description=je(this.description)),this.type==="unit"||this.type==="layer")?{width:this.getSizeSignalRef("width"),height:this.getSizeSignalRef("height"),...n??{}}:Oe(n)?void 0:n}assembleLayout(){if(!this.layout)return;const{spacing:t,...n}=this.layout,{component:r,config:i}=this,a=Uue(r.layoutHeaders,i);return{padding:t,...this.assembleDefaultLayout(),...n,...a?{titleBand:a}:{}}}assembleDefaultLayout(){return{}}assembleHeaderMarks(){const{layoutHeaders:t}=this.component;let n=[];for(const r of Vn)t[r].title&&n.push(Rue(this,r));for(const r of G6)n=n.concat(Lue(this,r));return n}assembleAxes(){return wue(this.component.axes,this.config)}assembleLegends(){return XN(this)}assembleProjections(){return lce(this)}assembleTitle(){const{encoding:t,...n}=this.title??{},r={..._M(this.config.title).nonMarkTitleProperties,...n,...t?{encode:{update:t}}:{}};if(r.text)return ye(["unit","layer"],this.type)?ye(["middle",void 0],r.anchor)&&(r.frame??(r.frame="group")):r.anchor??(r.anchor="start"),Oe(r)?void 0:r}assembleGroup(t=[]){const n={};t=t.concat(this.assembleSignals()),t.length>0&&(n.signals=t);const r=this.assembleLayout();r&&(n.layout=r),n.marks=[].concat(this.assembleHeaderMarks(),this.assembleMarks());const i=!this.parent||$r(this.parent)?tD(this):[];i.length>0&&(n.scales=i);const a=this.assembleAxes();a.length>0&&(n.axes=a);const s=this.assembleLegends();return s.length>0&&(n.legends=s),n}getName(t){return We((this.name?`${this.name}_`:"")+t)}getDataName(t){return this.getName(ze[t].toLowerCase())}requestDataName(t){const n=this.getDataName(t),r=this.component.data.outputNodeRefCounts;return r[n]=(r[n]||0)+1,n}getSizeSignalRef(t){if($r(this.parent)){const n=zN(t),r=yp(n),i=this.component.scales[r];if(i&&!i.merged){const a=i.get("type"),s=i.get("range");if(vt(a)&&ds(s)){const o=i.get("name"),u=Wp(this,r),c=e8(u);if(c){const l=G({aggregate:"distinct",field:c},{expr:"datum"});return{signal:IN(o,i,l)}}else return j(t6(r)),null}}}return{signal:this.signalNameMap.get(this.getName(t))}}lookupDataSource(t){const n=this.component.data.outputNodes[t];return n?n.getSource():t}getSignalName(t){return this.signalNameMap.get(t)}renameSignal(t,n){this.signalNameMap.rename(t,n)}renameScale(t,n){this.scaleNameMap.rename(t,n)}renameProjection(t,n){this.projectionNameMap.rename(t,n)}scaleName(t,n){if(n)return this.getName(t);if(dM(t)&&sa(t)&&this.component.scales[t]||this.scaleNameMap.has(this.getName(t)))return this.scaleNameMap.get(this.getName(t))}projectionName(t){if(t)return this.getName("projection");if(this.component.projection&&!this.component.projection.merged||this.projectionNameMap.has(this.getName("projection")))return this.projectionNameMap.get(this.getName("projection"))}getScaleComponent(t){if(!this.component.scales)throw new Error("getScaleComponent cannot be called before parseScale(). Make sure you have called parseScale or use parseUnitModelWithScale().");const n=this.component.scales[t];return n&&!n.merged?n:this.parent?this.parent.getScaleComponent(t):void 0}getSelectionComponent(t,n){let r=this.component.selection[t];if(!r&&this.parent&&(r=this.parent.getSelectionComponent(t,n)),!r)throw new Error(Rre(n));return r}hasAxisOrientSignalRef(){var t,n;return((t=this.component.axes.x)==null?void 0:t.some(r=>r.hasOrientSignalRef()))||((n=this.component.axes.y)==null?void 0:n.some(r=>r.hasOrientSignalRef()))}}class dD extends n8{vgField(t,n={}){const r=this.fieldDef(t);if(r)return G(r,n)}reduceFieldDef(t,n){return sse(this.getMapping(),(r,i,a)=>{const s=li(i);return s?t(r,s,a):r},n)}forEachFieldDef(t,n){C6(this.getMapping(),(r,i)=>{const a=li(r);a&&t(a,i)},n)}}class Hp extends De{clone(){return new Hp(null,oe(this.transform))}constructor(t,n){super(t),this.transform=n,this.transform=oe(n);const r=this.transform.as??[void 0,void 0];this.transform.as=[r[0]??"value",r[1]??"density"]}dependentFields(){return new Set([this.transform.density,...this.transform.groupby??[]])}producedFields(){return new Set(this.transform.as)}hash(){return`DensityTransform ${be(this.transform)}`}assemble(){const{density:t,...n}=this.transform,r={type:"kde",field:t,...n};return this.transform.groupby&&(r.resolve="shared"),r}}class Gp extends De{clone(){return new Gp(null,oe(this.transform))}constructor(t,n){super(t),this.transform=n,this.transform=oe(n)}dependentFields(){return new Set([this.transform.extent])}producedFields(){return new Set([])}hash(){return`ExtentTransform ${be(this.transform)}`}assemble(){const{extent:t,param:n}=this.transform;return{type:"extent",field:t,signal:n}}}class df extends De{clone(){return new df(null,{...this.filter})}constructor(t,n){super(t),this.filter=n}static make(t,n){const{config:r,mark:i,markDef:a}=n;if(Te("invalid",a,r)!=="filter")return null;const o=n.reduceFieldDef((u,c,l)=>{const f=sa(l)&&n.getScaleComponent(l);if(f){const d=f.get("type");Bn(d)&&c.aggregate!=="count"&&!hs(i)&&(u[c.field]=c)}return u},{});return B(o).length?new df(t,o):null}dependentFields(){return new Set(B(this.filter))}producedFields(){return new Set}hash(){return`FilterInvalid ${be(this.filter)}`}assemble(){const t=B(this.filter).reduce((n,r)=>{const i=this.filter[r],a=G(i,{expr:"datum"});return i!==null&&(i.type==="temporal"?n.push(`(isDate(${a}) || (isValid(${a}) && isFinite(+${a})))`):i.type==="quantitative"&&(n.push(`isValid(${a})`),n.push(`isFinite(+${a})`))),n},[]);return t.length>0?{type:"filter",expr:t.join(" && ")}:null}}class Yp extends De{clone(){return new Yp(this.parent,oe(this.transform))}constructor(t,n){super(t),this.transform=n,this.transform=oe(n);const{flatten:r,as:i=[]}=this.transform;this.transform.as=r.map((a,s)=>i[s]??a)}dependentFields(){return new Set(this.transform.flatten)}producedFields(){return new Set(this.transform.as)}hash(){return`FlattenTransform ${be(this.transform)}`}assemble(){const{flatten:t,as:n}=this.transform;return{type:"flatten",fields:t,as:n}}}class Xp extends De{clone(){return new Xp(null,oe(this.transform))}constructor(t,n){super(t),this.transform=n,this.transform=oe(n);const r=this.transform.as??[void 0,void 0];this.transform.as=[r[0]??"key",r[1]??"value"]}dependentFields(){return new Set(this.transform.fold)}producedFields(){return new Set(this.transform.as)}hash(){return`FoldTransform ${be(this.transform)}`}assemble(){const{fold:t,as:n}=this.transform;return{type:"fold",fields:t,as:n}}}class bu extends De{clone(){return new bu(null,oe(this.fields),this.geojson,this.signal)}static parseAll(t,n){if(n.component.projection&&!n.component.projection.isFit)return t;let r=0;for(const i of[[Pr,Lr],[ir,Ir]]){const a=i.map(s=>{const o=st(n.encoding[s]);return U(o)?o.field:Ei(o)?{expr:`${o.datum}`}:Fr(o)?{expr:`${o.value}`}:void 0});(a[0]||a[1])&&(t=new bu(t,a,null,n.getName(`geojson_${r++}`)))}if(n.channelHasField(En)){const i=n.typedFieldDef(En);i.type===bc&&(t=new bu(t,null,i.field,n.getName(`geojson_${r++}`)))}return t}constructor(t,n,r,i){super(t),this.fields=n,this.geojson=r,this.signal=i}dependentFields(){const t=(this.fields??[]).filter(X);return new Set([...this.geojson?[this.geojson]:[],...t])}producedFields(){return new Set}hash(){return`GeoJSON ${this.geojson} ${this.signal} ${be(this.fields)}`}assemble(){return[...this.geojson?[{type:"filter",expr:`isValid(datum["${this.geojson}"])`}]:[],{type:"geojson",...this.fields?{fields:this.fields}:{},...this.geojson?{geojson:this.geojson}:{},signal:this.signal}]}}class hf extends De{clone(){return new hf(null,this.projection,oe(this.fields),oe(this.as))}constructor(t,n,r,i){super(t),this.projection=n,this.fields=r,this.as=i}static parseAll(t,n){if(!n.projectionName())return t;for(const r of[[Pr,Lr],[ir,Ir]]){const i=r.map(s=>{const o=st(n.encoding[s]);return U(o)?o.field:Ei(o)?{expr:`${o.datum}`}:Fr(o)?{expr:`${o.value}`}:void 0}),a=r[0]===ir?"2":"";(i[0]||i[1])&&(t=new hf(t,n.projectionName(),i,[n.getName(`x${a}`),n.getName(`y${a}`)]))}return t}dependentFields(){return new Set(this.fields.filter(X))}producedFields(){return new Set(this.as)}hash(){return`Geopoint ${this.projection} ${be(this.fields)} ${be(this.as)}`}assemble(){return{type:"geopoint",projection:this.projection,fields:this.fields,as:this.as}}}class Ks extends De{clone(){return new Ks(null,oe(this.transform))}constructor(t,n){super(t),this.transform=n}dependentFields(){return new Set([this.transform.impute,this.transform.key,...this.transform.groupby??[]])}producedFields(){return new Set([this.transform.impute])}processSequence(t){const{start:n=0,stop:r,step:i}=t;return{signal:`sequence(${[n,r,...i?[i]:[]].join(",")})`}}static makeFromTransform(t,n){return new Ks(t,n)}static makeFromEncoding(t,n){const r=n.encoding,i=r.x,a=r.y;if(U(i)&&U(a)){const s=i.impute?i:a.impute?a:void 0;if(s===void 0)return;const o=i.impute?a:a.impute?i:void 0,{method:u,value:c,frame:l,keyvals:f}=s.impute,d=CT(n.mark,r);return new Ks(t,{impute:s.field,key:o.field,...u?{method:u}:{},...c!==void 0?{value:c}:{},...l?{frame:l}:{},...f!==void 0?{keyvals:f}:{},...d.length?{groupby:d}:{}})}return null}hash(){return`Impute ${be(this.transform)}`}assemble(){const{impute:t,key:n,keyvals:r,method:i,groupby:a,value:s,frame:o=[null,null]}=this.transform,u={type:"impute",field:t,key:n,...r?{keyvals:uoe(r)?this.processSequence(r):r}:{},method:"value",...a?{groupby:a}:{},value:!i||i==="value"?s:null};if(i&&i!=="value"){const c={type:"window",as:[`imputed_${t}_value`],ops:[i],fields:[t],frame:o,ignorePeers:!1,...a?{groupby:a}:{}},l={type:"formula",expr:`datum.${t} === null ? datum.imputed_${t}_value : datum.${t}`,as:t};return[u,c,l]}else return[u]}}class Vp extends De{clone(){return new Vp(null,oe(this.transform))}constructor(t,n){super(t),this.transform=n,this.transform=oe(n);const r=this.transform.as??[void 0,void 0];this.transform.as=[r[0]??n.on,r[1]??n.loess]}dependentFields(){return new Set([this.transform.loess,this.transform.on,...this.transform.groupby??[]])}producedFields(){return new Set(this.transform.as)}hash(){return`LoessTransform ${be(this.transform)}`}assemble(){const{loess:t,on:n,...r}=this.transform;return{type:"loess",x:n,y:t,...r}}}class gf extends De{clone(){return new gf(null,oe(this.transform),this.secondary)}constructor(t,n,r){super(t),this.transform=n,this.secondary=r}static make(t,n,r,i){const a=n.component.data.sources,{from:s}=r;let o=null;if(coe(s)){let u=pD(s.data,a);u||(u=new vo(s.data),a.push(u));const c=n.getName(`lookup_${i}`);o=new an(u,c,ze.Lookup,n.component.data.outputNodeRefCounts),n.component.data.outputNodes[c]=o}else if(loe(s)){const u=s.param;r={as:u,...r};let c;try{c=n.getSelectionComponent(We(u),u)}catch{throw new Error(Ire(u))}if(o=c.materialized,!o)throw new Error(zre(u))}return new gf(t,r,o.getSource())}dependentFields(){return new Set([this.transform.lookup])}producedFields(){return new Set(this.transform.as?Y(this.transform.as):this.transform.from.fields)}hash(){return`Lookup ${be({transform:this.transform,secondary:this.secondary})}`}assemble(){let t;if(this.transform.from.fields)t={values:this.transform.from.fields,...this.transform.as?{as:Y(this.transform.as)}:{}};else{let n=this.transform.as;X(n)||(j(Yre),n="_lookup"),t={as:[n]}}return{type:"lookup",from:this.secondary,key:this.transform.from.key,fields:[this.transform.lookup],...t,...this.transform.default?{default:this.transform.default}:{}}}}class Kp extends De{clone(){return new Kp(null,oe(this.transform))}constructor(t,n){super(t),this.transform=n,this.transform=oe(n);const r=this.transform.as??[void 0,void 0];this.transform.as=[r[0]??"prob",r[1]??"value"]}dependentFields(){return new Set([this.transform.quantile,...this.transform.groupby??[]])}producedFields(){return new Set(this.transform.as)}hash(){return`QuantileTransform ${be(this.transform)}`}assemble(){const{quantile:t,...n}=this.transform;return{type:"quantile",field:t,...n}}}class Jp extends De{clone(){return new Jp(null,oe(this.transform))}constructor(t,n){super(t),this.transform=n,this.transform=oe(n);const r=this.transform.as??[void 0,void 0];this.transform.as=[r[0]??n.on,r[1]??n.regression]}dependentFields(){return new Set([this.transform.regression,this.transform.on,...this.transform.groupby??[]])}producedFields(){return new Set(this.transform.as)}hash(){return`RegressionTransform ${be(this.transform)}`}assemble(){const{regression:t,on:n,...r}=this.transform;return{type:"regression",x:n,y:t,...r}}}class Qp extends De{clone(){return new Qp(null,oe(this.transform))}constructor(t,n){super(t),this.transform=n}addDimensions(t){this.transform.groupby=Kr((this.transform.groupby??[]).concat(t),n=>n)}producedFields(){}dependentFields(){return new Set([this.transform.pivot,this.transform.value,...this.transform.groupby??[]])}hash(){return`PivotTransform ${be(this.transform)}`}assemble(){const{pivot:t,value:n,groupby:r,limit:i,op:a}=this.transform;return{type:"pivot",field:t,value:n,...i!==void 0?{limit:i}:{},...a!==void 0?{op:a}:{},...r!==void 0?{groupby:r}:{}}}}class Zp extends De{clone(){return new Zp(null,oe(this.transform))}constructor(t,n){super(t),this.transform=n}dependentFields(){return new Set}producedFields(){return new Set}hash(){return`SampleTransform ${be(this.transform)}`}assemble(){return{type:"sample",size:this.transform.sample}}}function hD(e){let t=0;function n(r,i){if(r instanceof vo&&!r.isGenerator&&!Xu(r.data)&&(e.push(i),i={name:null,source:i.name,transform:[]}),r instanceof zt&&(r.parent instanceof vo&&!i.source?(i.format={...i.format??{},parse:r.assembleFormatParse()},i.transform.push(...r.assembleTransforms(!0))):i.transform.push(...r.assembleTransforms())),r instanceof xc){i.name||(i.name=`data_${t++}`),!i.source||i.transform.length>0?(e.push(i),r.data=i.name):r.data=i.source,e.push(...r.assemble());return}switch((r instanceof rd||r instanceof id||r instanceof df||r instanceof vc||r instanceof Ku||r instanceof hf||r instanceof Sr||r instanceof gf||r instanceof _c||r instanceof Po||r instanceof Xp||r instanceof Yp||r instanceof Hp||r instanceof Vp||r instanceof Kp||r instanceof Jp||r instanceof Qa||r instanceof Zp||r instanceof Qp||r instanceof Gp)&&i.transform.push(r.assemble()),(r instanceof ni||r instanceof ti||r instanceof Ks||r instanceof Xi||r instanceof bu)&&i.transform.push(...r.assemble()),r instanceof an&&(i.source&&i.transform.length===0?r.setSource(i.source):r.parent instanceof an?r.setSource(i.name):(i.name||(i.name=`data_${t++}`),r.setSource(i.name),r.numChildren()===1&&(e.push(i),i={name:null,source:i.name,transform:[]}))),r.numChildren()){case 0:r instanceof an&&(!i.source||i.transform.length>0)&&e.push(i);break;case 1:n(r.children[0],i);break;default:{i.name||(i.name=`data_${t++}`);let a=i.name;!i.source||i.transform.length>0?e.push(i):a=i.source;for(const s of r.children)n(s,{name:null,source:a,transform:[]});break}}}return n}function _le(e){const t=[],n=hD(t);for(const r of e.children)n(r,{source:e.name,name:null,transform:[]});return t}function wle(e,t){const n=[],r=hD(n);let i=0;for(const s of e.sources){s.hasName()||(s.dataName=`source_${i++}`);const o=s.assemble();r(s,o)}for(const s of n)s.transform.length===0&&delete s.transform;let a=0;for(const[s,o]of n.entries())(o.transform??[]).length===0&&!o.source&&n.splice(a++,0,n.splice(s,1)[0]);for(const s of n)for(const o of s.transform??[])o.type==="lookup"&&(o.from=e.outputNodes[o.from].getSource());for(const s of n)s.name in t&&(s.values=t[s.name]);return n}function Ele(e){return e==="top"||e==="left"||Q(e)?"header":"footer"}function Sle(e){for(const t of Vn)$le(e,t);c_(e,"x"),c_(e,"y")}function $le(e,t){var s;const{facet:n,config:r,child:i,component:a}=e;if(e.channelHasField(t)){const o=n[t],u=Qu("title",null,r,t);let c=pu(o,r,{allowDisabling:!0,includeDefault:u===void 0||!!u});i.component.layoutHeaders[t].title&&(c=P(c)?c.join(", "):c,c+=` / ${i.component.layoutHeaders[t].title}`,i.component.layoutHeaders[t].title=null);const l=Qu("labelOrient",o.header,r,t),f=o.header!==null?Ze((s=o.header)==null?void 0:s.labels,r.header.labels,!0):!1,d=ye(["bottom","right"],l)?"footer":"header";a.layoutHeaders[t]={title:o.header!==null?c:null,facetFieldDef:o,[d]:t==="facet"?[]:[gD(e,t,f)]}}}function gD(e,t,n){const r=t==="row"?"height":"width";return{labels:n,sizeSignal:e.child.component.layoutSize.get(r)?e.child.getSizeSignalRef(r):void 0,axes:[]}}function c_(e,t){const{child:n}=e;if(n.component.axes[t]){const{layoutHeaders:r,resolve:i}=e.component;if(i.axis[t]=V6(i,t),i.axis[t]==="shared"){const a=t==="x"?"column":"row",s=r[a];for(const o of n.component.axes[t]){const u=Ele(o.get("orient"));s[u]??(s[u]=[gD(e,a,!1)]);const c=bl(o,"main",e.config,{header:!0});c&&s[u][0].axes.push(c),o.mainExtracted=!0}}}}function Ale(e){r8(e),Y0(e,"width"),Y0(e,"height")}function kle(e){r8(e);const t=e.layout.columns===1?"width":"childWidth",n=e.layout.columns===void 0?"height":"childHeight";Y0(e,t),Y0(e,n)}function r8(e){for(const t of e.children)t.parseLayoutSize()}function Y0(e,t){const n=zN(t),r=yp(n),i=e.component.resolve,a=e.component.layoutSize;let s;for(const o of e.children){const u=o.component.layoutSize.getWithExplicit(n),c=i.scale[r]??UN(r,e);if(c==="independent"&&u.value==="step"){s=void 0;break}if(s){if(c==="independent"&&s.value!==u.value){s=void 0;break}s=Va(s,u,n,"")}else s=u}if(s){for(const o of e.children)e.renameSignal(o.getName(n),e.getName(t)),o.component.layoutSize.set(n,"merged",!1);a.setWithExplicit(t,s)}else a.setWithExplicit(t,{explicit:!1,value:void 0})}function Cle(e){const{size:t,component:n}=e;for(const r of wi){const i=Sn(r);if(t[i]){const a=t[i];n.layoutSize.set(i,fi(a)?"step":a,!0)}else{const a=Fle(e,i);n.layoutSize.set(i,a,!1)}}}function Fle(e,t){const n=t==="width"?"x":"y",r=e.config,i=e.getScaleComponent(n);if(i){const a=i.get("type"),s=i.get("range");if(vt(a)){const o=q0(r.view,t);return ds(s)||fi(o)?"step":o}else return ky(r.view,t)}else{if(e.hasProjection||e.mark==="arc")return ky(r.view,t);{const a=q0(r.view,t);return fi(a)?a.step:a}}}function Uy(e,t,n){return G(t,{suffix:`by_${G(e)}`,...n??{}})}class Dl extends dD{constructor(t,n,r,i){super(t,"facet",n,r,i,t.resolve),this.child=u8(t.spec,this,this.getName("child"),void 0,i),this.children=[this.child],this.facet=this.initFacet(t.facet)}initFacet(t){if(!Qf(t))return{facet:this.initFacetFieldDef(t,"facet")};const n=B(t),r={};for(const i of n){if(![Hi,Gi].includes(i)){j(_p(i,"facet"));break}const a=t[i];if(a.field===void 0){j(wy(a,i));break}r[i]=this.initFacetFieldDef(a,i)}return r}initFacetFieldDef(t,n){const r=A6(t,n);return r.header?r.header=gn(r.header):r.header===null&&(r.header=null),r}channelHasField(t){return!!this.facet[t]}fieldDef(t){return this.facet[t]}parseData(){this.component.data=e1(this),this.child.parseData()}parseLayoutSize(){r8(this)}parseSelections(){this.child.parseSelections(),this.component.selection=this.child.component.selection}parseMarkGroup(){this.child.parseMarkGroup()}parseAxesAndHeaders(){this.child.parseAxesAndHeaders(),Sle(this)}assembleSelectionTopLevelSignals(t){return this.child.assembleSelectionTopLevelSignals(t)}assembleSignals(){return this.child.assembleSignals(),[]}assembleSelectionData(t){return this.child.assembleSelectionData(t)}getHeaderLayoutMixins(){const t={};for(const n of Vn)for(const r of Y6){const i=this.component.layoutHeaders[n],a=i[r],{facetFieldDef:s}=i;if(s){const o=Qu("titleOrient",s.header,this.config,n);if(["right","bottom"].includes(o)){const u=jp(n,o);t.titleAnchor??(t.titleAnchor={}),t.titleAnchor[u]="end"}}if(a!=null&&a[0]){const o=n==="row"?"height":"width",u=r==="header"?"headerBand":"footerBand";n!=="facet"&&!this.child.component.layoutSize.get(o)&&(t[u]??(t[u]={}),t[u][n]=.5),i.title&&(t.offset??(t.offset={}),t.offset[n==="row"?"rowTitle":"columnTitle"]=10)}}return t}assembleDefaultLayout(){const{column:t,row:n}=this.facet,r=t?this.columnDistinctSignal():n?1:void 0;let i="all";return(!n&&this.component.resolve.scale.x==="independent"||!t&&this.component.resolve.scale.y==="independent")&&(i="none"),{...this.getHeaderLayoutMixins(),...r?{columns:r}:{},bounds:"full",align:i}}assembleLayoutSignals(){return this.child.assembleLayoutSignals()}columnDistinctSignal(){if(!(this.parent&&this.parent instanceof Dl))return{signal:`length(data('${this.getName("column_domain")}'))`}}assembleGroupStyle(){}assembleGroup(t){return this.parent&&this.parent instanceof Dl?{...this.channelHasField("column")?{encode:{update:{columns:{field:G(this.facet.column,{prefix:"distinct"})}}}}:{},...super.assembleGroup(t)}:super.assembleGroup(t)}getCardinalityAggregateForChild(){const t=[],n=[],r=[];if(this.child instanceof Dl){if(this.child.channelHasField("column")){const i=G(this.child.facet.column);t.push(i),n.push("distinct"),r.push(`distinct_${i}`)}}else for(const i of wi){const a=this.child.component.scales[i];if(a&&!a.merged){const s=a.get("type"),o=a.get("range");if(vt(s)&&ds(o)){const u=Wp(this.child,i),c=e8(u);c?(t.push(c),n.push("distinct"),r.push(`distinct_${c}`)):j(t6(i))}}}return{fields:t,ops:n,as:r}}assembleFacet(){const{name:t,data:n}=this.component.data.facetRoot,{row:r,column:i}=this.facet,{fields:a,ops:s,as:o}=this.getCardinalityAggregateForChild(),u=[];for(const l of Vn){const f=this.facet[l];if(f){u.push(G(f));const{bin:d,sort:h}=f;if(Be(d)&&u.push(G(f,{binSuffix:"end"})),ei(h)){const{field:g,op:p=kp}=h,m=Uy(f,h);r&&i?(a.push(m),s.push("max"),o.push(m)):(a.push(g),s.push(p),o.push(m))}else if(P(h)){const g=Ju(f,l);a.push(g),s.push("max"),o.push(g)}}}const c=!!r&&!!i;return{name:t,data:n,groupby:u,...c||a.length>0?{aggregate:{...c?{cross:c}:{},...a.length?{fields:a,ops:s,as:o}:{}}}:{}}}facetSortFields(t){const{facet:n}=this,r=n[t];return r?ei(r.sort)?[Uy(r,r.sort,{expr:"datum"})]:P(r.sort)?[Ju(r,t,{expr:"datum"})]:[G(r,{expr:"datum"})]:[]}facetSortOrder(t){const{facet:n}=this,r=n[t];if(r){const{sort:i}=r;return[(ei(i)?i.order:!P(i)&&i)||"ascending"]}return[]}assembleLabelTitle(){var i;const{facet:t,config:n}=this;if(t.facet)return Ry(t.facet,"facet",n);const r={row:["top","bottom"],column:["left","right"]};for(const a of G6)if(t[a]){const s=Qu("labelOrient",(i=t[a])==null?void 0:i.header,n,a);if(r[a].includes(s))return Ry(t[a],a,n)}}assembleMarks(){const{child:t}=this,n=this.component.data.facetRoot,r=_le(n),i=t.assembleGroupEncodeEntry(!1),a=this.assembleLabelTitle()||t.assembleTitle(),s=t.assembleGroupStyle();return[{name:this.getName("cell"),type:"group",...a?{title:a}:{},...s?{style:s}:{},from:{facet:this.assembleFacet()},sort:{field:Vn.map(u=>this.facetSortFields(u)).flat(),order:Vn.map(u=>this.facetSortOrder(u)).flat()},...r.length>0?{data:r}:{},...i?{encode:{update:i}}:{},...t.assembleGroup(Boe(this,[]))}]}getMapping(){return this.facet}}function Mle(e,t){const{row:n,column:r}=t;if(n&&r){let i=null;for(const a of[n,r])if(ei(a.sort)){const{field:s,op:o=kp}=a.sort;e=i=new Po(e,{joinaggregate:[{op:o,field:s,as:Uy(a,a.sort,{forAs:!0})}],groupby:[G(a)]})}return i}return null}function pD(e,t){var n,r,i,a;for(const s of t){const o=s.data;if(e.name&&s.hasName()&&e.name!==s.dataName)continue;const u=(n=e.format)==null?void 0:n.mesh,c=(r=o.format)==null?void 0:r.feature;if(u&&c)continue;const l=(i=e.format)==null?void 0:i.feature;if((l||c)&&l!==c)continue;const f=(a=o.format)==null?void 0:a.mesh;if(!((u||f)&&u!==f)){if(ff(e)&&ff(o)){if(Dn(e.values,o.values))return s}else if(Xu(e)&&Xu(o)){if(e.url===o.url)return s}else if(iN(e)&&e.name===s.dataName)return s}}return null}function Tle(e,t){if(e.data||!e.parent){if(e.data===null){const r=new vo({values:[]});return t.push(r),r}const n=pD(e.data,t);if(n)return Da(e.data)||(n.data.format=eM({},e.data.format,n.data.format)),!n.hasName()&&e.data.name&&(n.dataName=e.data.name),n;{const r=new vo(e.data);return t.push(r),r}}else return e.parent.component.data.facetRoot?e.parent.component.data.facetRoot:e.parent.component.data.main}function Nle(e,t,n){let r=0;for(const i of t.transforms){let a,s;if(xoe(i))s=e=new Ku(e,i),a="derived";else if(z6(i)){const o=Ece(i);s=e=zt.makeWithAncestors(e,{},o,n)??e,e=new vc(e,t,i.filter)}else if(ZT(i))s=e=ni.makeFromTransform(e,i,t),a="number";else if(woe(i))a="date",n.getWithExplicit(i.field).value===void 0&&(e=new zt(e,{[i.field]:a}),n.set(i.field,a,!1)),s=e=ti.makeFromTransform(e,i);else if(Eoe(i))s=e=Sr.makeFromTransform(e,i),a="number",H6(t)&&(e=new Qa(e));else if(QT(i))s=e=gf.make(e,t,i,r++),a="derived";else if(boe(i))s=e=new _c(e,i),a="number";else if(yoe(i))s=e=new Po(e,i),a="number";else if(Soe(i))s=e=Xi.makeFromTransform(e,i),a="derived";else if($oe(i))s=e=new Xp(e,i),a="derived";else if(Aoe(i))s=e=new Gp(e,i),a="derived";else if(voe(i))s=e=new Yp(e,i),a="derived";else if(foe(i))s=e=new Qp(e,i),a="derived";else if(moe(i))e=new Zp(e,i);else if(_oe(i))s=e=Ks.makeFromTransform(e,i),a="derived";else if(doe(i))s=e=new Hp(e,i),a="derived";else if(hoe(i))s=e=new Kp(e,i),a="derived";else if(goe(i))s=e=new Jp(e,i),a="derived";else if(poe(i))s=e=new Vp(e,i),a="derived";else{j(Gre(i));continue}if(s&&a!==void 0)for(const o of s.producedFields()??[])n.set(o,a,!1)}return e}function e1(e){var p;let t=Tle(e,e.component.data.sources);const{outputNodes:n,outputNodeRefCounts:r}=e.component.data,i=e.data,s=!(i&&(Da(i)||Xu(i)||ff(i)))&&e.parent?e.parent.component.data.ancestorParse.clone():new Ioe;Da(i)?(aN(i)?t=new id(t,i.sequence):B6(i)&&(t=new rd(t,i.graticule)),s.parseNothing=!0):((p=i==null?void 0:i.format)==null?void 0:p.parse)===null&&(s.parseNothing=!0),t=zt.makeExplicit(t,e,s)??t,t=new Qa(t);const o=e.parent&&wc(e.parent);(Ve(e)||$r(e))&&o&&(t=ni.makeFromEncoding(t,e)??t),e.transforms.length>0&&(t=Nle(t,e,s));const u=$ce(e),c=Sce(e);t=zt.makeWithAncestors(t,{},{...u,...c},s)??t,Ve(e)&&(t=bu.parseAll(t,e),t=hf.parseAll(t,e)),(Ve(e)||$r(e))&&(o||(t=ni.makeFromEncoding(t,e)??t),t=ti.makeFromEncoding(t,e)??t,t=Ku.parseAllForSortIndex(t,e));const l=e.getDataName(ze.Raw),f=new an(t,l,ze.Raw,r);if(n[l]=f,t=f,Ve(e)){const m=Sr.makeFromEncoding(t,e);m&&(t=m,H6(e)&&(t=new Qa(t))),t=Ks.makeFromEncoding(t,e)??t,t=Xi.makeFromEncoding(t,e)??t}Ve(e)&&(t=df.make(t,e)??t);const d=e.getDataName(ze.Main),h=new an(t,d,ze.Main,r);n[d]=h,t=h,Ve(e)&&xue(e,h);let g=null;if($r(e)){const m=e.getName("facet");t=Mle(t,e.facet)??t,g=new xc(t,e,m,h.getSource()),n[m]=g}return{...e.component.data,outputNodes:n,outputNodeRefCounts:r,raw:f,main:h,facetRoot:g,ancestorParse:s}}class Dle extends n8{constructor(t,n,r,i){var a,s,o,u;super(t,"concat",n,r,i,t.resolve),(((s=(a=t.resolve)==null?void 0:a.axis)==null?void 0:s.x)==="shared"||((u=(o=t.resolve)==null?void 0:o.axis)==null?void 0:u.y)==="shared")&&j(qre),this.children=this.getChildren(t).map((c,l)=>u8(c,this,this.getName(`concat_${l}`),void 0,i))}parseData(){this.component.data=e1(this);for(const t of this.children)t.parseData()}parseSelections(){this.component.selection={};for(const t of this.children){t.parseSelections();for(const n of B(t.component.selection))this.component.selection[n]=t.component.selection[n]}}parseMarkGroup(){for(const t of this.children)t.parseMarkGroup()}parseAxesAndHeaders(){for(const t of this.children)t.parseAxesAndHeaders()}getChildren(t){return Rp(t)?t.vconcat:P6(t)?t.hconcat:t.concat}parseLayoutSize(){kle(this)}parseAxisGroup(){return null}assembleSelectionTopLevelSignals(t){return this.children.reduce((n,r)=>r.assembleSelectionTopLevelSignals(n),t)}assembleSignals(){return this.children.forEach(t=>t.assembleSignals()),[]}assembleLayoutSignals(){const t=X6(this);for(const n of this.children)t.push(...n.assembleLayoutSignals());return t}assembleSelectionData(t){return this.children.reduce((n,r)=>r.assembleSelectionData(n),t)}assembleMarks(){return this.children.map(t=>{const n=t.assembleTitle(),r=t.assembleGroupStyle(),i=t.assembleGroupEncodeEntry(!1);return{type:"group",name:t.getName("group"),...n?{title:n}:{},...r?{style:r}:{},...i?{encode:{update:i}}:{},...t.assembleGroup()}})}assembleGroupStyle(){}assembleDefaultLayout(){const t=this.layout.columns;return{...t!=null?{columns:t}:{},bounds:"full",align:"each"}}}function Ole(e){return e===!1||e===null}const Rle={disable:1,gridScale:1,scale:1,...ET,labelExpr:1,encode:1},mD=B(Rle);class i8 extends ua{constructor(t={},n={},r=!1){super(),this.explicit=t,this.implicit=n,this.mainExtracted=r}clone(){return new i8(oe(this.explicit),oe(this.implicit),this.mainExtracted)}hasAxisPart(t){return t==="axis"?!0:t==="grid"||t==="title"?!!this.get(t):!Ole(this.get(t))}hasOrientSignalRef(){return Q(this.explicit.orient)}}function Lle(e,t,n){const{encoding:r,config:i}=e,a=st(r[t])??st(r[_i(t)]),s=e.axis(t)||{},{format:o,formatType:u}=s;if(mo(u))return{text:wr({fieldOrDatumDef:a,field:"datum.value",format:o,formatType:u,config:i}),...n};if(o===void 0&&u===void 0&&i.customFormatTypes){if(Hu(a)==="quantitative"){if(Gu(a)&&a.stack==="normalize"&&i.normalizedNumberFormatType)return{text:wr({fieldOrDatumDef:a,field:"datum.value",format:i.normalizedNumberFormat,formatType:i.normalizedNumberFormatType,config:i}),...n};if(i.numberFormatType)return{text:wr({fieldOrDatumDef:a,field:"datum.value",format:i.numberFormat,formatType:i.numberFormatType,config:i}),...n}}if(Hu(a)==="temporal"&&i.timeFormatType&&U(a)&&!a.timeUnit)return{text:wr({fieldOrDatumDef:a,field:"datum.value",format:i.timeFormat,formatType:i.timeFormatType,config:i}),...n}}return n}function Ple(e){return wi.reduce((t,n)=>(e.component.scales[n]&&(t[n]=[Wle(n,e)]),t),{})}const Ile={bottom:"top",top:"bottom",left:"right",right:"left"};function zle(e){const{axes:t,resolve:n}=e.component,r={top:0,bottom:0,right:0,left:0};for(const i of e.children){i.parseAxesAndHeaders();for(const a of B(i.component.axes))n.axis[a]=V6(e.component.resolve,a),n.axis[a]==="shared"&&(t[a]=Ble(t[a],i.component.axes[a]),t[a]||(n.axis[a]="independent",delete t[a]))}for(const i of wi){for(const a of e.children)if(a.component.axes[i]){if(n.axis[i]==="independent"){t[i]=(t[i]??[]).concat(a.component.axes[i]);for(const s of a.component.axes[i]){const{value:o,explicit:u}=s.getWithExplicit("orient");if(!Q(o)){if(r[o]>0&&!u){const c=Ile[o];r[o]>r[c]&&s.set("orient",c,!1)}r[o]++}}}delete a.component.axes[i]}if(n.axis[i]==="independent"&&t[i]&&t[i].length>1)for(const[a,s]of(t[i]||[]).entries())a>0&&s.get("grid")&&!s.explicit.grid&&(s.implicit.grid=!1)}}function Ble(e,t){if(e){if(e.length!==t.length)return;const n=e.length;for(let r=0;rn.clone());return e}function Ule(e,t){for(const n of mD){const r=Va(e.getWithExplicit(n),t.getWithExplicit(n),n,"axis",(i,a)=>{switch(n){case"title":return CM(i,a);case"gridScale":return{explicit:i.explicit,value:Ze(i.value,a.value)}}return Pp(i,a,n,"axis")});e.setWithExplicit(n,r)}return e}function jle(e,t,n,r,i){if(t==="disable")return n!==void 0;switch(n=n||{},t){case"titleAngle":case"labelAngle":return e===(Q(n.labelAngle)?n.labelAngle:cf(n.labelAngle));case"values":return!!n.values;case"encode":return!!n.encoding||!!n.labelAngle;case"title":if(e===ON(r,i))return!0}return e===n[t]}const qle=new Set(["grid","translate","format","formatType","orient","labelExpr","tickCount","position","tickMinStep"]);function Wle(e,t){var b,y;let n=t.axis(e);const r=new i8,i=st(t.encoding[e]),{mark:a,config:s}=t,o=(n==null?void 0:n.orient)||((b=s[e==="x"?"axisX":"axisY"])==null?void 0:b.orient)||((y=s.axis)==null?void 0:y.orient)||Mue(e),u=t.getScaleComponent(e).get("type"),c=Eue(e,u,o,t.config),l=n!==void 0?!n:Dy("disable",s.style,n==null?void 0:n.style,c).configValue;if(r.set("disable",l,n!==void 0),l)return r;n=n||{};const f=kue(i,n,e,s.style,c),d=uT(n.formatType,i,u),h=oT(i,i.type,n.format,n.formatType,s,!0),g={fieldOrDatumDef:i,axis:n,channel:e,model:t,scaleType:u,orient:o,labelAngle:f,format:h,formatType:d,mark:a,config:s};for(const v of mD){const x=v in Xx?Xx[v](g):_x(v)?n[v]:void 0,_=x!==void 0,E=jle(x,v,n,t,e);if(_&&E)r.set(v,x,E);else{const{configValue:w=void 0,configFrom:S=void 0}=_x(v)&&v!=="values"?Dy(v,s.style,n.style,c):{},$=w!==void 0;_&&!$?r.set(v,x,E):(S!=="vgAxisConfig"||qle.has(v)&&$||td(w)||Q(w))&&r.set(v,w,!1)}}const p=n.encoding??{},m=wT.reduce((v,x)=>{if(!r.hasAxisPart(x))return v;const _=BN(p[x]??{},t),E=x==="labels"?Lle(t,e,_):_;return E!==void 0&&!Oe(E)&&(v[x]={update:E}),v},{});return Oe(m)||r.set("encode",m,!!n.encoding||n.labelAngle!==void 0),r}function Hle({encoding:e,size:t}){for(const n of wi){const r=Sn(n);fi(t[r])&&ka(e[n])&&(delete t[r],j(DM(r)))}return t}const Gle={vgMark:"arc",encodeEntry:e=>({...or(e,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"}),...It("x",e,{defaultPos:"mid"}),...It("y",e,{defaultPos:"mid"}),...Ka(e,"radius"),...Ka(e,"theta")})},Yle={vgMark:"area",encodeEntry:e=>({...or(e,{align:"ignore",baseline:"ignore",color:"include",orient:"include",size:"ignore",theta:"ignore"}),...W0("x",e,{defaultPos:"zeroOrMin",defaultPos2:"zeroOrMin",range:e.markDef.orient==="horizontal"}),...W0("y",e,{defaultPos:"zeroOrMin",defaultPos2:"zeroOrMin",range:e.markDef.orient==="vertical"}),...W6(e)})},Xle={vgMark:"rect",encodeEntry:e=>({...or(e,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"}),...Ka(e,"x"),...Ka(e,"y")})},Vle={vgMark:"shape",encodeEntry:e=>({...or(e,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"})}),postEncodingTransform:e=>{const{encoding:t}=e,n=t.shape;return[{type:"geoshape",projection:e.projectionName(),...n&&U(n)&&n.type===bc?{field:G(n,{expr:"datum"})}:{}}]}},Kle={vgMark:"image",encodeEntry:e=>({...or(e,{align:"ignore",baseline:"ignore",color:"ignore",orient:"ignore",size:"ignore",theta:"ignore"}),...Ka(e,"x"),...Ka(e,"y"),...j6(e,"url")})},Jle={vgMark:"line",encodeEntry:e=>({...or(e,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore",theta:"ignore"}),...It("x",e,{defaultPos:"mid"}),...It("y",e,{defaultPos:"mid"}),...dt("size",e,{vgChannel:"strokeWidth"}),...W6(e)})},Qle={vgMark:"trail",encodeEntry:e=>({...or(e,{align:"ignore",baseline:"ignore",color:"include",size:"include",orient:"ignore",theta:"ignore"}),...It("x",e,{defaultPos:"mid"}),...It("y",e,{defaultPos:"mid"}),...dt("size",e),...W6(e)})};function a8(e,t){const{config:n}=e;return{...or(e,{align:"ignore",baseline:"ignore",color:"include",size:"include",orient:"ignore",theta:"ignore"}),...It("x",e,{defaultPos:"mid"}),...It("y",e,{defaultPos:"mid"}),...dt("size",e),...dt("angle",e),...Zle(e,n,t)}}function Zle(e,t,n){return n?{shape:{value:n}}:dt("shape",e)}const efe={vgMark:"symbol",encodeEntry:e=>a8(e)},tfe={vgMark:"symbol",encodeEntry:e=>a8(e,"circle")},nfe={vgMark:"symbol",encodeEntry:e=>a8(e,"square")},rfe={vgMark:"rect",encodeEntry:e=>({...or(e,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"}),...Ka(e,"x"),...Ka(e,"y")})},ife={vgMark:"rule",encodeEntry:e=>{const{markDef:t}=e,n=t.orient;return!e.encoding.x&&!e.encoding.y&&!e.encoding.latitude&&!e.encoding.longitude?{}:{...or(e,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"}),...W0("x",e,{defaultPos:n==="horizontal"?"zeroOrMax":"mid",defaultPos2:"zeroOrMin",range:n!=="vertical"}),...W0("y",e,{defaultPos:n==="vertical"?"zeroOrMax":"mid",defaultPos2:"zeroOrMin",range:n!=="horizontal"}),...dt("size",e,{vgChannel:"strokeWidth"})}}},afe={vgMark:"text",encodeEntry:e=>{const{config:t,encoding:n}=e;return{...or(e,{align:"include",baseline:"include",color:"include",size:"ignore",orient:"ignore",theta:"include"}),...It("x",e,{defaultPos:"mid"}),...It("y",e,{defaultPos:"mid"}),...j6(e),...dt("size",e,{vgChannel:"fontSize"}),...dt("angle",e),...Wx("align",sfe(e.markDef,n,t)),...Wx("baseline",ofe(e.markDef,n,t)),...It("radius",e,{defaultPos:null}),...It("theta",e,{defaultPos:null})}}};function sfe(e,t,n){if(Te("align",e,n)===void 0)return"center"}function ofe(e,t,n){if(Te("baseline",e,n)===void 0)return"middle"}const ufe={vgMark:"rect",encodeEntry:e=>{const{config:t,markDef:n}=e,r=n.orient,i=r==="horizontal"?"width":"height",a=r==="horizontal"?"height":"width";return{...or(e,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore",theta:"ignore"}),...It("x",e,{defaultPos:"mid",vgChannel:"xc"}),...It("y",e,{defaultPos:"mid",vgChannel:"yc"}),...dt("size",e,{defaultValue:cfe(e),vgChannel:i}),[a]:je(Te("thickness",n,t))}}};function cfe(e){const{config:t,markDef:n}=e,{orient:r}=n,i=r==="horizontal"?"width":"height",a=e.getScaleComponent(r==="horizontal"?"x":"y"),s=Te("size",n,t,{vgChannel:i})??t.tick.bandSize;if(s!==void 0)return s;{const o=a?a.get("range"):void 0;return o&&ds(o)&&we(o.step)?o.step*3/4:j0(t.view,i)*3/4}}const Id={arc:Gle,area:Yle,bar:Xle,circle:tfe,geoshape:Vle,image:Kle,line:Jle,point:efe,rect:rfe,rule:ife,square:nfe,text:afe,tick:ufe,trail:Qle};function lfe(e){if(ye([$p,Ep,yae],e.mark)){const t=CT(e.mark,e.encoding);if(t.length>0)return ffe(e,t)}else if(e.mark===Sp){const t=_y.some(n=>Te(n,e.markDef,e.config));if(e.stack&&!e.fieldDef("size")&&t)return dfe(e)}return s8(e)}const l_="faceted_path_";function ffe(e,t){return[{name:e.getName("pathgroup"),type:"group",from:{facet:{name:l_+e.requestDataName(ze.Main),data:e.requestDataName(ze.Main),groupby:t}},encode:{update:{width:{field:{group:"width"}},height:{field:{group:"height"}}}},marks:s8(e,{fromPrefix:l_})}]}const f_="stack_group_";function dfe(e){var c;const[t]=s8(e,{fromPrefix:f_}),n=e.scaleName(e.stack.fieldChannel),r=(l={})=>e.vgField(e.stack.fieldChannel,l),i=(l,f)=>{const d=[r({prefix:"min",suffix:"start",expr:f}),r({prefix:"max",suffix:"start",expr:f}),r({prefix:"min",suffix:"end",expr:f}),r({prefix:"max",suffix:"end",expr:f})];return`${l}(${d.map(h=>`scale('${n}',${h})`).join(",")})`};let a,s;e.stack.fieldChannel==="x"?(a={...zu(t.encode.update,["y","yc","y2","height",..._y]),x:{signal:i("min","datum")},x2:{signal:i("max","datum")},clip:{value:!0}},s={x:{field:{group:"x"},mult:-1},height:{field:{group:"height"}}},t.encode.update={...bn(t.encode.update,["y","yc","y2"]),height:{field:{group:"height"}}}):(a={...zu(t.encode.update,["x","xc","x2","width"]),y:{signal:i("min","datum")},y2:{signal:i("max","datum")},clip:{value:!0}},s={y:{field:{group:"y"},mult:-1},width:{field:{group:"width"}}},t.encode.update={...bn(t.encode.update,["x","xc","x2"]),width:{field:{group:"width"}}});for(const l of _y){const f=Zi(l,e.markDef,e.config);t.encode.update[l]?(a[l]=t.encode.update[l],delete t.encode.update[l]):f&&(a[l]=je(f)),f&&(t.encode.update[l]={value:0})}const o=[];if(((c=e.stack.groupbyChannels)==null?void 0:c.length)>0)for(const l of e.stack.groupbyChannels){const f=e.fieldDef(l),d=G(f);d&&o.push(d),(f!=null&&f.bin||f!=null&&f.timeUnit)&&o.push(G(f,{binSuffix:"end"}))}return a=["stroke","strokeWidth","strokeJoin","strokeCap","strokeDash","strokeDashOffset","strokeMiterLimit","strokeOpacity"].reduce((l,f)=>{if(t.encode.update[f])return{...l,[f]:t.encode.update[f]};{const d=Zi(f,e.markDef,e.config);return d!==void 0?{...l,[f]:je(d)}:l}},a),a.stroke&&(a.strokeForeground={value:!0},a.strokeOffset={value:0}),[{type:"group",from:{facet:{data:e.requestDataName(ze.Main),name:f_+e.requestDataName(ze.Main),groupby:o,aggregate:{fields:[r({suffix:"start"}),r({suffix:"start"}),r({suffix:"end"}),r({suffix:"end"})],ops:["min","max","min","max"]}}},encode:{update:a},marks:[{type:"group",encode:{update:s},marks:[t]}]}]}function hfe(e){var o;const{encoding:t,stack:n,mark:r,markDef:i,config:a}=e,s=t.order;if(!(!P(s)&&Fr(s)&&vy(s.value)||!s&&vy(Te("order",i,a)))){if((P(s)||U(s))&&!n)return $M(s,{expr:"datum"});if(hs(r)){const u=i.orient==="horizontal"?"y":"x",c=t[u];if(U(c)){const l=c.sort;if(P(l))return{field:G(c,{prefix:u,suffix:"sort_index",expr:"datum"})};if(ei(l))return{field:G({aggregate:k6(e.encoding)?l.op:void 0,field:l.field},{expr:"datum"})};if(lT(l)){const f=e.fieldDef(l.encoding);return{field:G(f,{expr:"datum"}),order:l.order}}else return l===null?void 0:{field:G(c,{binSuffix:(o=e.stack)!=null&&o.impute?"mid":void 0,expr:"datum"})}}return}}}function s8(e,t={fromPrefix:""}){const{mark:n,markDef:r,encoding:i,config:a}=e,s=Ze(r.clip,gfe(e),pfe(e)),o=EM(r),u=i.key,c=hfe(e),l=mfe(e),f=Te("aria",r,a),d=Id[n].postEncodingTransform?Id[n].postEncodingTransform(e):null;return[{name:e.getName("marks"),type:Id[n].vgMark,...s?{clip:!0}:{},...o?{style:o}:{},...u?{key:u.field}:{},...c?{sort:c}:{},...l||{},...f===!1?{aria:f}:{},from:{data:t.fromPrefix+e.requestDataName(ze.Main)},encode:{update:Id[n].encodeEntry(e)},...d?{transform:d}:{}}]}function gfe(e){const t=e.getScaleComponent("x"),n=e.getScaleComponent("y");return t!=null&&t.get("selectionExtent")||n!=null&&n.get("selectionExtent")?!0:void 0}function pfe(e){const t=e.component.projection;return t&&!t.isFit?!0:void 0}function mfe(e){if(!e.component.selection)return null;const t=B(e.component.selection).length;let n=t,r=e.parent;for(;r&&n===0;)n=B(r.component.selection).length,r=r.parent;return n?{interactive:t>0||e.mark==="geoshape"||!!e.encoding.tooltip}:null}class bD extends dD{constructor(t,n,r,i={},a){super(t,"unit",n,r,a,void 0,Ex(t)?t.view:void 0),this.specifiedScales={},this.specifiedAxes={},this.specifiedLegends={},this.specifiedProjection={},this.selection=[],this.children=[];const s=ci(t.mark)?{...t.mark}:{type:t.mark},o=s.type;s.filled===void 0&&(s.filled=eoe(s,a,{graticule:t.data&&B6(t.data)}));const u=this.encoding=ise(t.encoding||{},o,s.filled,a);this.markDef=VT(s,u,a),this.size=Hle({encoding:u,size:Ex(t)?{...i,...t.width?{width:t.width}:{},...t.height?{height:t.height}:{}}:i}),this.stack=XT(this.markDef,u),this.specifiedScales=this.initScales(o,u),this.specifiedAxes=this.initAxes(u),this.specifiedLegends=this.initLegends(u),this.specifiedProjection=t.projection,this.selection=(t.params??[]).filter(c=>R6(c))}get hasProjection(){const{encoding:t}=this,n=this.mark===nT,r=t&&rre.some(i=>ue(t[i]));return n||r}scaleDomain(t){const n=this.specifiedScales[t];return n?n.domain:void 0}axis(t){return this.specifiedAxes[t]}legend(t){return this.specifiedLegends[t]}initScales(t,n){return vp.reduce((r,i)=>{const a=st(n[i]);return a&&(r[i]=this.initScale(a.scale??{})),r},{})}initScale(t){const{domain:n,range:r}=t,i=gn(t);return P(n)&&(i.domain=n.map(Mn)),P(r)&&(i.range=r.map(Mn)),i}initAxes(t){return wi.reduce((n,r)=>{const i=t[r];if(ue(i)||r===He&&ue(t.x2)||r===_t&&ue(t.y2)){const a=ue(i)?i.axis:void 0;n[r]=a&&this.initAxis({...a})}return n},{})}initAxis(t){const n=B(t),r={};for(const i of n){const a=t[i];r[i]=td(a)?wM(a):Mn(a)}return r}initLegends(t){return hre.reduce((n,r)=>{const i=st(t[r]);if(i&&pre(r)){const a=i.legend;n[r]=a&&gn(a)}return n},{})}parseData(){this.component.data=e1(this)}parseLayoutSize(){Cle(this)}parseSelections(){this.component.selection=vue(this,this.selection)}parseMarkGroup(){this.component.mark=lfe(this)}parseAxesAndHeaders(){this.component.axes=Ple(this)}assembleSelectionTopLevelSignals(t){return Uoe(this,t)}assembleSignals(){return[...TN(this),...zoe(this,[])]}assembleSelectionData(t){return joe(this,t)}assembleLayout(){return null}assembleLayoutSignals(){return X6(this)}assembleMarks(){let t=this.component.mark??[];return(!this.parent||!wc(this.parent))&&(t=uN(this,t)),t.map(this.correctDataNames)}assembleGroupStyle(){const{style:t}=this.view||{};return t!==void 0?t:this.encoding.x||this.encoding.y?"cell":"view"}getMapping(){return this.encoding}get mark(){return this.markDef.type}channelHasField(t){return Xs(this.encoding,t)}fieldDef(t){const n=this.encoding[t];return li(n)}typedFieldDef(t){const n=this.fieldDef(t);return un(n)?n:null}}class o8 extends n8{constructor(t,n,r,i,a){super(t,"layer",n,r,a,t.resolve,t.view);const s={...i,...t.width?{width:t.width}:{},...t.height?{height:t.height}:{}};this.children=t.layer.map((o,u)=>{if(Lp(o))return new o8(o,this,this.getName(`layer_${u}`),s,a);if(oa(o))return new bD(o,this,this.getName(`layer_${u}`),s,a);throw new Error(e6(o))})}parseData(){this.component.data=e1(this);for(const t of this.children)t.parseData()}parseLayoutSize(){Ale(this)}parseSelections(){this.component.selection={};for(const t of this.children){t.parseSelections();for(const n of B(t.component.selection))this.component.selection[n]=t.component.selection[n]}}parseMarkGroup(){for(const t of this.children)t.parseMarkGroup()}parseAxesAndHeaders(){zle(this)}assembleSelectionTopLevelSignals(t){return this.children.reduce((n,r)=>r.assembleSelectionTopLevelSignals(n),t)}assembleSignals(){return this.children.reduce((t,n)=>t.concat(n.assembleSignals()),TN(this))}assembleLayoutSignals(){return this.children.reduce((t,n)=>t.concat(n.assembleLayoutSignals()),X6(this))}assembleSelectionData(t){return this.children.reduce((n,r)=>r.assembleSelectionData(n),t)}assembleGroupStyle(){const t=new Set;for(const r of this.children)for(const i of Y(r.assembleGroupStyle()))t.add(i);const n=Array.from(t);return n.length>1?n:n.length===1?n[0]:void 0}assembleTitle(){let t=super.assembleTitle();if(t)return t;for(const n of this.children)if(t=n.assembleTitle(),t)return t}assembleLayout(){return null}assembleMarks(){return qoe(this,this.children.flatMap(t=>t.assembleMarks()))}assembleLegends(){return this.children.reduce((t,n)=>t.concat(n.assembleLegends()),XN(this))}}function u8(e,t,n,r,i){if(Cp(e))return new Dl(e,t,n,i);if(Lp(e))return new o8(e,t,n,r,i);if(oa(e))return new bD(e,t,n,r,i);if(Cse(e))return new Dle(e,t,n,i);throw new Error(e6(e))}function bfe(e,t={}){t.logger&&Die(t.logger),t.fieldTitle&&vT(t.fieldTitle);try{const n=YT(ec(t.config,e.config)),r=nN(e,n),i=u8(r,null,"",void 0,n);return i.parse(),Uce(i.component.data,i),{spec:vfe(i,yfe(e,r.autosize,n,i),e.datasets,e.usermeta),normalized:r}}finally{t.logger&&Oie(),t.fieldTitle&&Vae()}}function yfe(e,t,n,r){const i=r.component.layoutSize.get("width"),a=r.component.layoutSize.get("height");if(t===void 0?(t={type:"pad"},r.hasAxisOrientSignalRef()&&(t.resize=!0)):X(t)&&(t={type:t}),i&&a&&Roe(t.type)){if(i==="step"&&a==="step")j(ox()),t.type="pad";else if(i==="step"||a==="step"){const s=i==="step"?"width":"height";j(ox(yp(s)));const o=s==="width"?"height":"width";t.type=Loe(o)}}return{...B(t).length===1&&t.type?t.type==="pad"?{}:{autosize:t.type}:{autosize:t},...Rx(n,!1),...Rx(e,!0)}}function vfe(e,t,n={},r){const i=e.config?jse(e.config):void 0,a=[].concat(e.assembleSelectionData([]),wle(e.component.data,n)),s=e.assembleProjections(),o=e.assembleTitle(),u=e.assembleGroupStyle(),c=e.assembleGroupEncodeEntry(!0);let l=e.assembleLayoutSignals();l=l.filter(h=>(h.name==="width"||h.name==="height")&&h.value!==void 0?(t[h.name]=+h.value,!1):!0);const{params:f,...d}=t;return{$schema:"https://vega.github.io/schema/vega/v5.json",...e.description?{description:e.description}:{},...d,...o?{title:o}:{},...u?{style:u}:{},...c?{encode:{update:c}}:{},data:a,...s.length>0?{projections:s}:{},...e.assembleGroup([...l,...e.assembleSelectionTopLevelSignals([]),...qT(f)]),...i?{config:i}:{},...r?{usermeta:r}:{}}}const xfe=Jne.version,_fe=Object.freeze(Object.defineProperty({__proto__:null,accessPathDepth:Bu,accessPathWithDatum:W7,compile:bfe,contains:ye,deepEqual:Dn,deleteNestedProperty:N0,duplicate:oe,entries:Ga,every:U7,fieldIntersection:q7,flatAccessWithDatum:nM,getFirstDefined:Ze,hasIntersection:j7,hash:be,internalField:aM,isBoolean:uf,isEmpty:Oe,isEqual:Zne,isInternalField:sM,isNullOrFalse:vy,isNumeric:dp,keys:B,logicalExpr:Tl,mergeDeep:eM,never:ZF,normalize:nN,normalizeAngle:cf,omit:bn,pick:zu,prefixGenerator:xy,removePathFromField:H7,replaceAll:lo,replacePathInField:rr,resetIdCounter:tre,setEqual:tM,some:co,stringify:Re,titleCase:Hf,unique:Kr,uniqueId:iM,vals:kt,varName:We,version:xfe},Symbol.toStringTag,{value:"Module"}));function yD(e){const[t,n]=/schema\/([\w-]+)\/([\w\.\-]+)\.json$/g.exec(e).slice(1,3);return{library:t,version:n}}var wfe="vega-themes",Efe="2.14.0",Sfe="Themes for stylized Vega and Vega-Lite visualizations.",$fe=["vega","vega-lite","themes","style"],Afe="BSD-3-Clause",kfe={name:"UW Interactive Data Lab",url:"https://idl.cs.washington.edu"},Cfe=[{name:"Emily Gu",url:"https://github.com/emilygu"},{name:"Arvind Satyanarayan",url:"http://arvindsatya.com"},{name:"Jeffrey Heer",url:"https://idl.cs.washington.edu"},{name:"Dominik Moritz",url:"https://www.domoritz.de"}],Ffe="build/vega-themes.js",Mfe="build/vega-themes.module.js",Tfe="build/vega-themes.min.js",Nfe="build/vega-themes.min.js",Dfe="build/vega-themes.module.d.ts",Ofe={type:"git",url:"https://github.com/vega/vega-themes.git"},Rfe=["src","build"],Lfe={prebuild:"yarn clean",build:"rollup -c",clean:"rimraf build && rimraf examples/build","copy:data":"rsync -r node_modules/vega-datasets/data/* examples/data","copy:build":"rsync -r build/* examples/build","deploy:gh":"yarn build && mkdir -p examples/build && rsync -r build/* examples/build && gh-pages -d examples",preversion:"yarn lint",serve:"browser-sync start -s -f build examples --serveStatic examples",start:"yarn build && concurrently --kill-others -n Server,Rollup 'yarn serve' 'rollup -c -w'",format:"eslint . --fix",lint:"eslint .",release:"release-it"},Pfe={"@babel/core":"^7.22.9","@babel/plugin-proposal-async-generator-functions":"^7.20.7","@babel/plugin-proposal-json-strings":"^7.18.6","@babel/plugin-proposal-object-rest-spread":"^7.20.7","@babel/plugin-proposal-optional-catch-binding":"^7.18.6","@babel/plugin-transform-runtime":"^7.22.9","@babel/preset-env":"^7.22.9","@babel/preset-typescript":"^7.22.5","@release-it/conventional-changelog":"^7.0.0","@rollup/plugin-json":"^6.0.0","@rollup/plugin-node-resolve":"^15.1.0","@rollup/plugin-terser":"^0.4.3","@typescript-eslint/eslint-plugin":"^6.0.0","@typescript-eslint/parser":"^6.0.0","browser-sync":"^2.29.3",concurrently:"^8.2.0",eslint:"^8.45.0","eslint-config-prettier":"^8.8.0","eslint-plugin-prettier":"^5.0.0","gh-pages":"^5.0.0",prettier:"^3.0.0","release-it":"^16.1.0",rollup:"^3.26.2","rollup-plugin-bundle-size":"^1.0.3","rollup-plugin-ts":"^3.2.0",typescript:"^5.1.6",vega:"^5.25.0","vega-lite":"^5.9.3"},Ife={vega:"*","vega-lite":"*"},zfe={},Bfe={name:wfe,version:Efe,description:Sfe,keywords:$fe,license:Afe,author:kfe,contributors:Cfe,main:Ffe,module:Mfe,unpkg:Tfe,jsdelivr:Nfe,types:Dfe,repository:Ofe,files:Rfe,scripts:Lfe,devDependencies:Pfe,peerDependencies:Ife,dependencies:zfe};const Ko="#fff",d_="#888",Ufe={background:"#333",view:{stroke:d_},title:{color:Ko,subtitleColor:Ko},style:{"guide-label":{fill:Ko},"guide-title":{fill:Ko}},axis:{domainColor:Ko,gridColor:d_,tickColor:Ko}},xs="#4572a7",jfe={background:"#fff",arc:{fill:xs},area:{fill:xs},line:{stroke:xs,strokeWidth:2},path:{stroke:xs},rect:{fill:xs},shape:{stroke:xs},symbol:{fill:xs,strokeWidth:1.5,size:50},axis:{bandPosition:.5,grid:!0,gridColor:"#000000",gridOpacity:1,gridWidth:.5,labelPadding:10,tickSize:5,tickWidth:.5},axisBand:{grid:!1,tickExtra:!0},legend:{labelBaseline:"middle",labelFontSize:11,symbolSize:50,symbolType:"square"},range:{category:["#4572a7","#aa4643","#8aa453","#71598e","#4598ae","#d98445","#94aace","#d09393","#b9cc98","#a99cbc"]}},_s="#30a2da",_m="#cbcbcb",qfe="#999",Wfe="#333",h_="#f0f0f0",g_="#333",Hfe={arc:{fill:_s},area:{fill:_s},axis:{domainColor:_m,grid:!0,gridColor:_m,gridWidth:1,labelColor:qfe,labelFontSize:10,titleColor:Wfe,tickColor:_m,tickSize:10,titleFontSize:14,titlePadding:10,labelPadding:4},axisBand:{grid:!1},background:h_,group:{fill:h_},legend:{labelColor:g_,labelFontSize:11,padding:1,symbolSize:30,symbolType:"square",titleColor:g_,titleFontSize:14,titlePadding:10},line:{stroke:_s,strokeWidth:2},path:{stroke:_s,strokeWidth:.5},rect:{fill:_s},range:{category:["#30a2da","#fc4f30","#e5ae38","#6d904f","#8b8b8b","#b96db8","#ff9e27","#56cc60","#52d2ca","#52689e","#545454","#9fe4f8"],diverging:["#cc0020","#e77866","#f6e7e1","#d6e8ed","#91bfd9","#1d78b5"],heatmap:["#d6e8ed","#cee0e5","#91bfd9","#549cc6","#1d78b5"]},point:{filled:!0,shape:"circle"},shape:{stroke:_s},bar:{binSpacing:2,fill:_s,stroke:null},title:{anchor:"start",fontSize:24,fontWeight:600,offset:20}},ws="#000",Gfe={group:{fill:"#e5e5e5"},arc:{fill:ws},area:{fill:ws},line:{stroke:ws},path:{stroke:ws},rect:{fill:ws},shape:{stroke:ws},symbol:{fill:ws,size:40},axis:{domain:!1,grid:!0,gridColor:"#FFFFFF",gridOpacity:1,labelColor:"#7F7F7F",labelPadding:4,tickColor:"#7F7F7F",tickSize:5.67,titleFontSize:16,titleFontWeight:"normal"},legend:{labelBaseline:"middle",labelFontSize:11,symbolSize:40},range:{category:["#000000","#7F7F7F","#1A1A1A","#999999","#333333","#B0B0B0","#4D4D4D","#C9C9C9","#666666","#DCDCDC"]}},Yfe=22,Xfe="normal",p_="Benton Gothic, sans-serif",m_=11.5,Vfe="normal",Es="#82c6df",wm="Benton Gothic Bold, sans-serif",b_="normal",y_=13,Hc={"category-6":["#ec8431","#829eb1","#c89d29","#3580b1","#adc839","#ab7fb4"],"fire-7":["#fbf2c7","#f9e39c","#f8d36e","#f4bb6a","#e68a4f","#d15a40","#ab4232"],"fireandice-6":["#e68a4f","#f4bb6a","#f9e39c","#dadfe2","#a6b7c6","#849eae"],"ice-7":["#edefee","#dadfe2","#c4ccd2","#a6b7c6","#849eae","#607785","#47525d"]},Kfe={background:"#ffffff",title:{anchor:"start",color:"#000000",font:wm,fontSize:Yfe,fontWeight:Xfe},arc:{fill:Es},area:{fill:Es},line:{stroke:Es,strokeWidth:2},path:{stroke:Es},rect:{fill:Es},shape:{stroke:Es},symbol:{fill:Es,size:30},axis:{labelFont:p_,labelFontSize:m_,labelFontWeight:Vfe,titleFont:wm,titleFontSize:y_,titleFontWeight:b_},axisX:{labelAngle:0,labelPadding:4,tickSize:3},axisY:{labelBaseline:"middle",maxExtent:45,minExtent:45,tickSize:2,titleAlign:"left",titleAngle:0,titleX:-45,titleY:-11},legend:{labelFont:p_,labelFontSize:m_,symbolType:"square",titleFont:wm,titleFontSize:y_,titleFontWeight:b_},range:{category:Hc["category-6"],diverging:Hc["fireandice-6"],heatmap:Hc["fire-7"],ordinal:Hc["fire-7"],ramp:Hc["fire-7"]}},Ss="#ab5787",zd="#979797",Jfe={background:"#f9f9f9",arc:{fill:Ss},area:{fill:Ss},line:{stroke:Ss},path:{stroke:Ss},rect:{fill:Ss},shape:{stroke:Ss},symbol:{fill:Ss,size:30},axis:{domainColor:zd,domainWidth:.5,gridWidth:.2,labelColor:zd,tickColor:zd,tickWidth:.2,titleColor:zd},axisBand:{grid:!1},axisX:{grid:!0,tickSize:10},axisY:{domain:!1,grid:!0,tickSize:0},legend:{labelFontSize:11,padding:1,symbolSize:30,symbolType:"square"},range:{category:["#ab5787","#51b2e5","#703c5c","#168dd9","#d190b6","#00609f","#d365ba","#154866","#666666","#c4c4c4"]}},$s="#3e5c69",Qfe={background:"#fff",arc:{fill:$s},area:{fill:$s},line:{stroke:$s},path:{stroke:$s},rect:{fill:$s},shape:{stroke:$s},symbol:{fill:$s},axis:{domainWidth:.5,grid:!0,labelPadding:2,tickSize:5,tickWidth:.5,titleFontWeight:"normal"},axisBand:{grid:!1},axisX:{gridWidth:.2},axisY:{gridDash:[3],gridWidth:.4},legend:{labelFontSize:11,padding:1,symbolType:"square"},range:{category:["#3e5c69","#6793a6","#182429","#0570b0","#3690c0","#74a9cf","#a6bddb","#e2ddf2"]}},qn="#1696d2",v_="#000000",Zfe="#FFFFFF",Bd="Lato",Em="Lato",ede="Lato",tde="#DEDDDD",nde=18,Gc={"main-colors":["#1696d2","#d2d2d2","#000000","#fdbf11","#ec008b","#55b748","#5c5859","#db2b27"],"shades-blue":["#CFE8F3","#A2D4EC","#73BFE2","#46ABDB","#1696D2","#12719E","#0A4C6A","#062635"],"shades-gray":["#F5F5F5","#ECECEC","#E3E3E3","#DCDBDB","#D2D2D2","#9D9D9D","#696969","#353535"],"shades-yellow":["#FFF2CF","#FCE39E","#FDD870","#FCCB41","#FDBF11","#E88E2D","#CA5800","#843215"],"shades-magenta":["#F5CBDF","#EB99C2","#E46AA7","#E54096","#EC008B","#AF1F6B","#761548","#351123"],"shades-green":["#DCEDD9","#BCDEB4","#98CF90","#78C26D","#55B748","#408941","#2C5C2D","#1A2E19"],"shades-black":["#D5D5D4","#ADABAC","#848081","#5C5859","#332D2F","#262223","#1A1717","#0E0C0D"],"shades-red":["#F8D5D4","#F1AAA9","#E9807D","#E25552","#DB2B27","#A4201D","#6E1614","#370B0A"],"one-group":["#1696d2","#000000"],"two-groups-cat-1":["#1696d2","#000000"],"two-groups-cat-2":["#1696d2","#fdbf11"],"two-groups-cat-3":["#1696d2","#db2b27"],"two-groups-seq":["#a2d4ec","#1696d2"],"three-groups-cat":["#1696d2","#fdbf11","#000000"],"three-groups-seq":["#a2d4ec","#1696d2","#0a4c6a"],"four-groups-cat-1":["#000000","#d2d2d2","#fdbf11","#1696d2"],"four-groups-cat-2":["#1696d2","#ec0008b","#fdbf11","#5c5859"],"four-groups-seq":["#cfe8f3","#73bf42","#1696d2","#0a4c6a"],"five-groups-cat-1":["#1696d2","#fdbf11","#d2d2d2","#ec008b","#000000"],"five-groups-cat-2":["#1696d2","#0a4c6a","#d2d2d2","#fdbf11","#332d2f"],"five-groups-seq":["#cfe8f3","#73bf42","#1696d2","#0a4c6a","#000000"],"six-groups-cat-1":["#1696d2","#ec008b","#fdbf11","#000000","#d2d2d2","#55b748"],"six-groups-cat-2":["#1696d2","#d2d2d2","#ec008b","#fdbf11","#332d2f","#0a4c6a"],"six-groups-seq":["#cfe8f3","#a2d4ec","#73bfe2","#46abdb","#1696d2","#12719e"],"diverging-colors":["#ca5800","#fdbf11","#fdd870","#fff2cf","#cfe8f3","#73bfe2","#1696d2","#0a4c6a"]},rde={background:Zfe,title:{anchor:"start",fontSize:nde,font:Bd},axisX:{domain:!0,domainColor:v_,domainWidth:1,grid:!1,labelFontSize:12,labelFont:Em,labelAngle:0,tickColor:v_,tickSize:5,titleFontSize:12,titlePadding:10,titleFont:Bd},axisY:{domain:!1,domainWidth:1,grid:!0,gridColor:tde,gridWidth:1,labelFontSize:12,labelFont:Em,labelPadding:8,ticks:!1,titleFontSize:12,titlePadding:10,titleFont:Bd,titleAngle:0,titleY:-10,titleX:18},legend:{labelFontSize:12,labelFont:Em,symbolSize:100,titleFontSize:12,titlePadding:10,titleFont:Bd,orient:"right",offset:10},view:{stroke:"transparent"},range:{category:Gc["six-groups-cat-1"],diverging:Gc["diverging-colors"],heatmap:Gc["diverging-colors"],ordinal:Gc["six-groups-seq"],ramp:Gc["shades-blue"]},area:{fill:qn},rect:{fill:qn},line:{color:qn,stroke:qn,strokeWidth:5},trail:{color:qn,stroke:qn,strokeWidth:0,size:1},path:{stroke:qn,strokeWidth:.5},point:{filled:!0},text:{font:ede,color:qn,fontSize:11,align:"center",fontWeight:400,size:11},style:{bar:{fill:qn,stroke:null}},arc:{fill:qn},shape:{stroke:qn},symbol:{fill:qn,size:30}},As="#3366CC",x_="#ccc",Ud="Arial, sans-serif",ide={arc:{fill:As},area:{fill:As},path:{stroke:As},rect:{fill:As},shape:{stroke:As},symbol:{stroke:As},circle:{fill:As},background:"#fff",padding:{top:10,right:10,bottom:10,left:10},style:{"guide-label":{font:Ud,fontSize:12},"guide-title":{font:Ud,fontSize:12},"group-title":{font:Ud,fontSize:12}},title:{font:Ud,fontSize:14,fontWeight:"bold",dy:-3,anchor:"start"},axis:{gridColor:x_,tickColor:x_,domain:!1,grid:!0},range:{category:["#4285F4","#DB4437","#F4B400","#0F9D58","#AB47BC","#00ACC1","#FF7043","#9E9D24","#5C6BC0","#F06292","#00796B","#C2185B"],heatmap:["#c6dafc","#5e97f6","#2a56c6"]}},c8=e=>e*(1/3+1),__=c8(9),w_=c8(10),E_=c8(12),Yc="Segoe UI",S_="wf_standard-font, helvetica, arial, sans-serif",$_="#252423",Xc="#605E5C",A_="transparent",ade="#C8C6C4",lr="#118DFF",sde="#12239E",ode="#E66C37",ude="#6B007B",cde="#E044A7",lde="#744EC2",fde="#D9B300",dde="#D64550",vD=lr,xD="#DEEFFF",k_=[xD,vD],hde=[xD,"#c7e4ff","#b0d9ff","#9aceff","#83c3ff","#6cb9ff","#55aeff","#3fa3ff","#2898ff",vD],gde={view:{stroke:A_},background:A_,font:Yc,header:{titleFont:S_,titleFontSize:E_,titleColor:$_,labelFont:Yc,labelFontSize:w_,labelColor:Xc},axis:{ticks:!1,grid:!1,domain:!1,labelColor:Xc,labelFontSize:__,titleFont:S_,titleColor:$_,titleFontSize:E_,titleFontWeight:"normal"},axisQuantitative:{tickCount:3,grid:!0,gridColor:ade,gridDash:[1,5],labelFlush:!1},axisBand:{tickExtra:!0},axisX:{labelPadding:5},axisY:{labelPadding:10},bar:{fill:lr},line:{stroke:lr,strokeWidth:3,strokeCap:"round",strokeJoin:"round"},text:{font:Yc,fontSize:__,fill:Xc},arc:{fill:lr},area:{fill:lr,line:!0,opacity:.6},path:{stroke:lr},rect:{fill:lr},point:{fill:lr,filled:!0,size:75},shape:{stroke:lr},symbol:{fill:lr,strokeWidth:1.5,size:50},legend:{titleFont:Yc,titleFontWeight:"bold",titleColor:Xc,labelFont:Yc,labelFontSize:w_,labelColor:Xc,symbolType:"circle",symbolSize:75},range:{category:[lr,sde,ode,ude,cde,lde,fde,dde],diverging:k_,heatmap:k_,ordinal:hde}},Sm='IBM Plex Sans,system-ui,-apple-system,BlinkMacSystemFont,".sfnstext-regular",sans-serif',C_=400,pde=["#8a3ffc","#33b1ff","#007d79","#ff7eb6","#fa4d56","#fff1f1","#6fdc8c","#4589ff","#d12771","#d2a106","#08bdba","#bae6ff","#ba4e00","#d4bbff"],mde=["#6929c4","#1192e8","#005d5d","#9f1853","#fa4d56","#570408","#198038","#002d9c","#ee538b","#b28600","#009d9a","#012749","#8a3800","#a56eff"];function t1({type:e,background:t}){const n=e==="dark"?"#161616":"#ffffff",r=e==="dark"?"#f4f4f4":"#161616",i=e==="dark"?pde:mde,a=e==="dark"?"#d4bbff":"#6929c4";return{background:t,arc:{fill:a},area:{fill:a},path:{stroke:a},rect:{fill:a},shape:{stroke:a},symbol:{stroke:a},circle:{fill:a},view:{fill:n,stroke:n},group:{fill:n},title:{color:r,anchor:"start",dy:-15,fontSize:16,font:Sm,fontWeight:600},axis:{labelColor:r,labelFontSize:12,grid:!0,gridColor:"#525252",titleColor:r,labelAngle:0},style:{"guide-label":{font:Sm,fill:r,fontWeight:C_},"guide-title":{font:Sm,fill:r,fontWeight:C_}},range:{category:i,diverging:["#750e13","#a2191f","#da1e28","#fa4d56","#ff8389","#ffb3b8","#ffd7d9","#fff1f1","#e5f6ff","#bae6ff","#82cfff","#33b1ff","#1192e8","#0072c3","#00539a","#003a6d"],heatmap:["#f6f2ff","#e8daff","#d4bbff","#be95ff","#a56eff","#8a3ffc","#6929c4","#491d8b","#31135e","#1c0f30"]}}}const bde=t1({type:"light",background:"#ffffff"}),yde=t1({type:"light",background:"#f4f4f4"}),vde=t1({type:"dark",background:"#262626"}),xde=t1({type:"dark",background:"#161616"}),_de=Bfe.version,wde=Object.freeze(Object.defineProperty({__proto__:null,carbong10:yde,carbong100:xde,carbong90:vde,carbonwhite:bde,dark:Ufe,excel:jfe,fivethirtyeight:Hfe,ggplot2:Gfe,googlecharts:ide,latimes:Kfe,powerbi:gde,quartz:Jfe,urbaninstitute:rde,version:_de,vox:Qfe},Symbol.toStringTag,{value:"Module"}));function Ede(e,t,n,r){if(P(e))return`[${e.map(i=>t(X(i)?i:F_(i,n))).join(", ")}]`;if(V(e)){let i="";const{title:a,image:s,...o}=e;a&&(i+=`

${t(a)}

`),s&&(i+=``);const u=Object.keys(o);if(u.length>0){i+="";for(const c of u){let l=o[c];l!==void 0&&(V(l)&&(l=F_(l,n)),i+=``)}i+="
${t(c)}${t(l)}
"}return i||"{}"}return t(e)}function Sde(e){const t=[];return function(n,r){if(typeof r!="object"||r===null)return r;const i=t.indexOf(this)+1;return t.length=i,t.length>e?"[Object]":t.indexOf(r)>=0?"[Circular]":(t.push(r),r)}}function F_(e,t){return JSON.stringify(e,Sde(t))}var $de=`#vg-tooltip-element { visibility: hidden; padding: 8px; position: fixed; diff --git a/_app/version.json b/_app/version.json index f882b9e0b..a8a4ebebf 100644 --- a/_app/version.json +++ b/_app/version.json @@ -1 +1 @@ -{"version":"1709332116764"} \ No newline at end of file +{"version":"1710192561331"} \ No newline at end of file diff --git a/about/index.html b/about/index.html index 15641bfaa..c0454f3e5 100644 --- a/about/index.html +++ b/about/index.html @@ -18,22 +18,22 @@ - - + + - + - - + + Closing the Gap in Non-Latin-Script Data – About -

Closing the Gap

in Non-Latin-Script Data

About Us

This database was created as part of the project +

Closing the Gap

in Non-Latin-Script Data

About Us

This database was created as part of the project Closing the Gap in Non-Latin-Script Data under the auspices of the Berlin University Alliance @@ -58,7 +58,7 @@