Wikifunctions
wikifunctionswiki
https://www.wikifunctions.org/wiki/Wikifunctions:Main_Page
MediaWiki 1.47.0-wmf.15
first-letter
Media
Special
Talk
User
User talk
Wikifunctions
Wikifunctions talk
File
File talk
MediaWiki
MediaWiki talk
Template
Template talk
Help
Help talk
Category
Category talk
TimedText
TimedText talk
Module
Module talk
Translations
Translations talk
Event
Event talk
Z844
0
185
299798
246880
2026-08-16T02:40:19Z
DVrandecic (WMF)
7
Added Z31484, Z31483 and Z32091 to the approved list of implementations
299798
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z844"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z40",
"Z17K2": "Z844K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "first Boolean"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1025",
"Z11K2": "sprawdzana wartość"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1011",
"Z11K2": "প্রথম বুলিয়ান"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1062",
"Z11K2": "první parametr"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1830",
"Z11K2": "1つ目のブーリアン"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": "premier booléen"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1381",
"Z11K2": "primeiro Booleano"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1430",
"Z11K2": "Wahrheitswert"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1851",
"Z11K2": "ค่าแรก"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1078",
"Z11K2": "nilai pertama"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1157",
"Z11K2": "booleaan 1"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1645",
"Z11K2": "第一个布尔值"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1672",
"Z11K2": "第一個布林值"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1827",
"Z11K2": "πρώτη λογική τιμή"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1014",
"Z11K2": "mbụ Boolean"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1818",
"Z11K2": "akọkọ Bolianu"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1852",
"Z11K2": "Chó gé chà okà"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1587",
"Z11K2": "marka hore Boolean"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1680",
"Z11K2": "Boolean"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1186",
"Z11K2": "בוליאני ראשון"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1664",
"Z11K2": "prima valoare logică "
},
{
"Z1K1": "Z11",
"Z11K1": "Z1787",
"Z11K2": "primo Booleano"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1820",
"Z11K2": "पहला बूलियन"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z40",
"Z17K2": "Z844K2",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "second Boolean"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1025",
"Z11K2": "oczekiwana wartość"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1011",
"Z11K2": "দ্বিতীয় বুলিয়ান"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1062",
"Z11K2": "druhý parametr"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1830",
"Z11K2": "2つ目のブーリアン"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": "deuxième booléen"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1381",
"Z11K2": "segundo Booleano"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1430",
"Z11K2": "Wahrheitswert"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1851",
"Z11K2": "ค่าที่สอง"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1078",
"Z11K2": "nilai kedua"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1157",
"Z11K2": "booleaan 2"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1645",
"Z11K2": "第二个布尔值"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1672",
"Z11K2": "第二個布林值"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1827",
"Z11K2": "δεύτερη λογική τιμή"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1014",
"Z11K2": "Boolean nke abụọ"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1818",
"Z11K2": "Bolianu keji"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1852",
"Z11K2": "Chó gé chà ãkáji"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1587",
"Z11K2": "labaad Boolean"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1680",
"Z11K2": "Boolean"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1186",
"Z11K2": "בוליאני שני"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1664",
"Z11K2": "cea de-a doua valoare logică "
},
{
"Z1K1": "Z11",
"Z11K1": "Z1787",
"Z11K2": "secondo Booleano"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1820",
"Z11K2": "दूसरा बूलियन"
}
]
}
}
],
"Z8K2": "Z40",
"Z8K3": [
"Z20",
"Z8440",
"Z8441",
"Z8442",
"Z8443",
"Z15933",
"Z15934",
"Z24790"
],
"Z8K4": [
"Z14",
"Z944",
"Z10250",
"Z10583",
"Z31484",
"Z31483",
"Z32091"
],
"Z8K5": "Z844"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Boolean equality"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1025",
"Z11K2": "równość wartości logicznych"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1592",
"Z11K2": "boolesk likhet"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1011",
"Z11K2": "বুলিয়ান সমতা"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1062",
"Z11K2": "rovnost logických hodnot"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1830",
"Z11K2": "ブーリアンの同値性"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1430",
"Z11K2": "boolesche Gleichheit"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1157",
"Z11K2": "booleaanse gelijkheid"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": "égalité booléenne"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1186",
"Z11K2": "שוויון בוליאני"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1332",
"Z11K2": "ідентичність булевих"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1381",
"Z11K2": "Igualdade Booleana"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1851",
"Z11K2": "สมการตรรกะ"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1078",
"Z11K2": "kesamaan Boolean"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1645",
"Z11K2": "布尔值相等"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1672",
"Z11K2": "布林值相等"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1827",
"Z11K2": "ισότητα λογικών τιμών"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1014",
"Z11K2": "mbụ Boolean"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1015",
"Z11K2": "Zaɣ'yinsi boolean"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1818",
"Z11K2": "Bolianu dọgbadọgba"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1852",
"Z11K2": "Booléání cho kú jó"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1587",
"Z11K2": "Boolean sinaanta"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1680",
"Z11K2": "Yelemeŋerɛ bii pumpɔreŋɔ dɛna buyila"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1664",
"Z11K2": "egalitate logică "
},
{
"Z1K1": "Z11",
"Z11K1": "Z1787",
"Z11K2": "stesso Booleano"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1820",
"Z11K2": "समान बूलियन"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31",
{
"Z1K1": "Z31",
"Z31K1": "Z1002",
"Z31K2": [
"Z6",
"Equals",
"Same",
"XNOR",
"identity relation (Boolean)",
"biconditional",
"if and only if",
"iff",
"==B",
"equal Booleans",
"same Booleans"
]
},
{
"Z1K1": "Z31",
"Z31K1": "Z1025",
"Z31K2": [
"Z6",
"xnor",
"równoważność logiczna"
]
},
{
"Z1K1": "Z31",
"Z31K1": "Z1592",
"Z31K2": [
"Z6",
"XNOR",
"boolesk ekvivalens",
"xnor"
]
},
{
"Z1K1": "Z31",
"Z31K1": "Z1381",
"Z31K2": [
"Z6",
"Equivale",
"Mesmo",
"XNOR",
"relação de identidade (Booleano)",
"bicondicional",
"se e apenas se",
"se e se",
"==B"
]
},
{
"Z1K1": "Z31",
"Z31K1": "Z1851",
"Z31K2": [
"Z6",
"สมการบูลีน",
"สมการบูเลียน",
"เท่ากับ",
"เหมือนกับ",
"เอ็กซ์นอร์"
]
},
{
"Z1K1": "Z31",
"Z31K1": "Z1078",
"Z31K2": [
"Z6",
"kesamaan Boole",
"sama dengan Boolean",
"sama dengan",
"XNOR"
]
},
{
"Z1K1": "Z31",
"Z31K1": "Z1827",
"Z31K2": [
"Z6",
"XNOR",
"λογική ισότητα",
"λογική ισότητα"
]
},
{
"Z1K1": "Z31",
"Z31K1": "Z1664",
"Z31K2": [
"Z6",
"Egal",
"Aceleași ",
"Același ",
"Aceeași ",
"XNOR",
"Relație de identitate ",
"Egalitate booleană",
"Bicondițional ",
"Dacă și numai dacă ",
"==B"
]
},
{
"Z1K1": "Z31",
"Z31K1": "Z1787",
"Z31K2": [
"Z6",
"confronta bool",
"uguaglianza bool",
"eguaglianza bool",
"sse",
"se e solo se",
"confonta booleani",
"uguaglianza booleani",
"eguaglianza booleani",
"stesso bool",
"==",
"uguaglianza logica",
"eguaglianza logica"
]
},
{
"Z1K1": "Z31",
"Z31K1": "Z1157",
"Z31K2": [
"Z6",
"gelijk aan",
"hetzelfde",
"identiteitsrelatie (Booleaans)",
"biconditioneel",
"als en alleen als",
"==B"
]
}
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1025",
"Z11K2": "Zwraca prawdę, jeśli obie wartości wejściowe są sobie równe"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1011",
"Z11K2": "সত্য যদি প্রথম বুলিয়ান আর দ্বিতীয় বুলিয়ান একই"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "returns true only if both inputs are equal"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1592",
"Z11K2": "sant om argumenten är lika"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1062",
"Z11K2": "vrátí pravdu, pokud jsou oba parametry stejné"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1830",
"Z11K2": "両方の入力が等しい場合のみ真を返す"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1157",
"Z11K2": "retourneert alleen waar als beide invoeren gelijk zijn"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": "renvoie \"vrai\" seulement si les deux entrées sont égales, sinon \"faux\""
},
{
"Z1K1": "Z11",
"Z11K1": "Z1186",
"Z11K2": "האם שני ערכי אמת זהים"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1332",
"Z11K2": "повертає істину якщо обидва значення ідентичні"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1381",
"Z11K2": "retorna verdadeiro somente se ambas as entradas forem iguais"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1430",
"Z11K2": "Gibt wahr zurück, wenn beide Eingaben gleich sind"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1851",
"Z11K2": "ส่งออกค่าจริงถ้าค่ารับเข้าเท่ากัน"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1078",
"Z11K2": "hanya bernilai benar jika dua nilai Boolean yang dimasukkan sama"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1827",
"Z11K2": "επιστρέφει \"αληθής\" μόνο εάν και οι δύο είσοδοι είναι ίσες"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1014",
"Z11K2": " na-alaghachi ezi naanị ma ọ bụrụ na ntinye abụọ ahụ hà nhata"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1015",
"Z11K2": "labisi mi yɛlmaŋli konko di yi niŋ ka di zaa nyɛ yim"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1818",
"Z11K2": "pada otitọ nikan ti awọn igbewọle mejeeji ba dọgba"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1852",
"Z11K2": "Yà dàbî wâ chè wú kí chó gé chà"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1587",
"Z11K2": "run ku soo noqda kaliya haddii labada wax gelinba ay siman yihiin"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1680",
"Z11K2": "lebese yelemeŋerɛ la san dɛna tii sɛla ti fu dikɛ iŋe la san dɛna buyila"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1664",
"Z11K2": "returnează adevărat doar dacă ambele valori introduse sunt egale"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1820",
"Z11K2": "अगर दोनों इनपुट्स समान हों तो सच लौटाता है"
}
]
}
}
oxxv5nu8rkf0u6yjcw2wici2xh9sbqt
299799
299798
2026-08-16T02:41:27Z
DVrandecic (WMF)
7
Added Z35853 to the approved list of test cases
299799
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z844"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z40",
"Z17K2": "Z844K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "first Boolean"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1025",
"Z11K2": "sprawdzana wartość"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1011",
"Z11K2": "প্রথম বুলিয়ান"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1062",
"Z11K2": "první parametr"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1830",
"Z11K2": "1つ目のブーリアン"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": "premier booléen"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1381",
"Z11K2": "primeiro Booleano"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1430",
"Z11K2": "Wahrheitswert"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1851",
"Z11K2": "ค่าแรก"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1078",
"Z11K2": "nilai pertama"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1157",
"Z11K2": "booleaan 1"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1645",
"Z11K2": "第一个布尔值"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1672",
"Z11K2": "第一個布林值"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1827",
"Z11K2": "πρώτη λογική τιμή"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1014",
"Z11K2": "mbụ Boolean"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1818",
"Z11K2": "akọkọ Bolianu"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1852",
"Z11K2": "Chó gé chà okà"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1587",
"Z11K2": "marka hore Boolean"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1680",
"Z11K2": "Boolean"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1186",
"Z11K2": "בוליאני ראשון"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1664",
"Z11K2": "prima valoare logică "
},
{
"Z1K1": "Z11",
"Z11K1": "Z1787",
"Z11K2": "primo Booleano"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1820",
"Z11K2": "पहला बूलियन"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z40",
"Z17K2": "Z844K2",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "second Boolean"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1025",
"Z11K2": "oczekiwana wartość"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1011",
"Z11K2": "দ্বিতীয় বুলিয়ান"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1062",
"Z11K2": "druhý parametr"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1830",
"Z11K2": "2つ目のブーリアン"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": "deuxième booléen"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1381",
"Z11K2": "segundo Booleano"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1430",
"Z11K2": "Wahrheitswert"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1851",
"Z11K2": "ค่าที่สอง"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1078",
"Z11K2": "nilai kedua"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1157",
"Z11K2": "booleaan 2"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1645",
"Z11K2": "第二个布尔值"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1672",
"Z11K2": "第二個布林值"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1827",
"Z11K2": "δεύτερη λογική τιμή"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1014",
"Z11K2": "Boolean nke abụọ"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1818",
"Z11K2": "Bolianu keji"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1852",
"Z11K2": "Chó gé chà ãkáji"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1587",
"Z11K2": "labaad Boolean"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1680",
"Z11K2": "Boolean"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1186",
"Z11K2": "בוליאני שני"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1664",
"Z11K2": "cea de-a doua valoare logică "
},
{
"Z1K1": "Z11",
"Z11K1": "Z1787",
"Z11K2": "secondo Booleano"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1820",
"Z11K2": "दूसरा बूलियन"
}
]
}
}
],
"Z8K2": "Z40",
"Z8K3": [
"Z20",
"Z8440",
"Z8441",
"Z8442",
"Z8443",
"Z15933",
"Z15934",
"Z24790",
"Z35853"
],
"Z8K4": [
"Z14",
"Z944",
"Z10250",
"Z10583",
"Z31484",
"Z31483",
"Z32091"
],
"Z8K5": "Z844"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Boolean equality"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1025",
"Z11K2": "równość wartości logicznych"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1592",
"Z11K2": "boolesk likhet"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1011",
"Z11K2": "বুলিয়ান সমতা"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1062",
"Z11K2": "rovnost logických hodnot"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1830",
"Z11K2": "ブーリアンの同値性"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1430",
"Z11K2": "boolesche Gleichheit"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1157",
"Z11K2": "booleaanse gelijkheid"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": "égalité booléenne"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1186",
"Z11K2": "שוויון בוליאני"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1332",
"Z11K2": "ідентичність булевих"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1381",
"Z11K2": "Igualdade Booleana"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1851",
"Z11K2": "สมการตรรกะ"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1078",
"Z11K2": "kesamaan Boolean"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1645",
"Z11K2": "布尔值相等"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1672",
"Z11K2": "布林值相等"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1827",
"Z11K2": "ισότητα λογικών τιμών"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1014",
"Z11K2": "mbụ Boolean"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1015",
"Z11K2": "Zaɣ'yinsi boolean"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1818",
"Z11K2": "Bolianu dọgbadọgba"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1852",
"Z11K2": "Booléání cho kú jó"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1587",
"Z11K2": "Boolean sinaanta"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1680",
"Z11K2": "Yelemeŋerɛ bii pumpɔreŋɔ dɛna buyila"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1664",
"Z11K2": "egalitate logică "
},
{
"Z1K1": "Z11",
"Z11K1": "Z1787",
"Z11K2": "stesso Booleano"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1820",
"Z11K2": "समान बूलियन"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31",
{
"Z1K1": "Z31",
"Z31K1": "Z1002",
"Z31K2": [
"Z6",
"Equals",
"Same",
"XNOR",
"identity relation (Boolean)",
"biconditional",
"if and only if",
"iff",
"==B",
"equal Booleans",
"same Booleans"
]
},
{
"Z1K1": "Z31",
"Z31K1": "Z1025",
"Z31K2": [
"Z6",
"xnor",
"równoważność logiczna"
]
},
{
"Z1K1": "Z31",
"Z31K1": "Z1592",
"Z31K2": [
"Z6",
"XNOR",
"boolesk ekvivalens",
"xnor"
]
},
{
"Z1K1": "Z31",
"Z31K1": "Z1381",
"Z31K2": [
"Z6",
"Equivale",
"Mesmo",
"XNOR",
"relação de identidade (Booleano)",
"bicondicional",
"se e apenas se",
"se e se",
"==B"
]
},
{
"Z1K1": "Z31",
"Z31K1": "Z1851",
"Z31K2": [
"Z6",
"สมการบูลีน",
"สมการบูเลียน",
"เท่ากับ",
"เหมือนกับ",
"เอ็กซ์นอร์"
]
},
{
"Z1K1": "Z31",
"Z31K1": "Z1078",
"Z31K2": [
"Z6",
"kesamaan Boole",
"sama dengan Boolean",
"sama dengan",
"XNOR"
]
},
{
"Z1K1": "Z31",
"Z31K1": "Z1827",
"Z31K2": [
"Z6",
"XNOR",
"λογική ισότητα",
"λογική ισότητα"
]
},
{
"Z1K1": "Z31",
"Z31K1": "Z1664",
"Z31K2": [
"Z6",
"Egal",
"Aceleași ",
"Același ",
"Aceeași ",
"XNOR",
"Relație de identitate ",
"Egalitate booleană",
"Bicondițional ",
"Dacă și numai dacă ",
"==B"
]
},
{
"Z1K1": "Z31",
"Z31K1": "Z1787",
"Z31K2": [
"Z6",
"confronta bool",
"uguaglianza bool",
"eguaglianza bool",
"sse",
"se e solo se",
"confonta booleani",
"uguaglianza booleani",
"eguaglianza booleani",
"stesso bool",
"==",
"uguaglianza logica",
"eguaglianza logica"
]
},
{
"Z1K1": "Z31",
"Z31K1": "Z1157",
"Z31K2": [
"Z6",
"gelijk aan",
"hetzelfde",
"identiteitsrelatie (Booleaans)",
"biconditioneel",
"als en alleen als",
"==B"
]
}
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1025",
"Z11K2": "Zwraca prawdę, jeśli obie wartości wejściowe są sobie równe"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1011",
"Z11K2": "সত্য যদি প্রথম বুলিয়ান আর দ্বিতীয় বুলিয়ান একই"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "returns true only if both inputs are equal"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1592",
"Z11K2": "sant om argumenten är lika"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1062",
"Z11K2": "vrátí pravdu, pokud jsou oba parametry stejné"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1830",
"Z11K2": "両方の入力が等しい場合のみ真を返す"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1157",
"Z11K2": "retourneert alleen waar als beide invoeren gelijk zijn"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": "renvoie \"vrai\" seulement si les deux entrées sont égales, sinon \"faux\""
},
{
"Z1K1": "Z11",
"Z11K1": "Z1186",
"Z11K2": "האם שני ערכי אמת זהים"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1332",
"Z11K2": "повертає істину якщо обидва значення ідентичні"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1381",
"Z11K2": "retorna verdadeiro somente se ambas as entradas forem iguais"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1430",
"Z11K2": "Gibt wahr zurück, wenn beide Eingaben gleich sind"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1851",
"Z11K2": "ส่งออกค่าจริงถ้าค่ารับเข้าเท่ากัน"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1078",
"Z11K2": "hanya bernilai benar jika dua nilai Boolean yang dimasukkan sama"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1827",
"Z11K2": "επιστρέφει \"αληθής\" μόνο εάν και οι δύο είσοδοι είναι ίσες"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1014",
"Z11K2": " na-alaghachi ezi naanị ma ọ bụrụ na ntinye abụọ ahụ hà nhata"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1015",
"Z11K2": "labisi mi yɛlmaŋli konko di yi niŋ ka di zaa nyɛ yim"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1818",
"Z11K2": "pada otitọ nikan ti awọn igbewọle mejeeji ba dọgba"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1852",
"Z11K2": "Yà dàbî wâ chè wú kí chó gé chà"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1587",
"Z11K2": "run ku soo noqda kaliya haddii labada wax gelinba ay siman yihiin"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1680",
"Z11K2": "lebese yelemeŋerɛ la san dɛna tii sɛla ti fu dikɛ iŋe la san dɛna buyila"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1664",
"Z11K2": "returnează adevărat doar dacă ambele valori introduse sunt egale"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1820",
"Z11K2": "अगर दोनों इनपुट्स समान हों तो सच लौटाता है"
}
]
}
}
17cxa8l54s1lq9ttbyvljxdb8rqbw7h
Z866
0
187
299856
288191
2026-08-16T07:23:45Z
DVrandecic (WMF)
7
Added Z10590, Z10597, Z28319 and Z17569 to the approved list of implementations
299856
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z866"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6",
"Z17K2": "Z866K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "first string"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1011",
"Z11K2": "প্রথম অক্ষর"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1025",
"Z11K2": "pierwszy napis"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1830",
"Z11K2": "1つ目の文字列"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1061",
"Z11K2": "første streng"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1062",
"Z11K2": "první řetězec"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1003",
"Z11K2": "primera cadena"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1430",
"Z11K2": "erste Zeichenkette"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": "première chaîne"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1851",
"Z11K2": "สตริงที่หนึ่ง"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1078",
"Z11K2": "teks pertama"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1645",
"Z11K2": "第一个字符串"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1672",
"Z11K2": "第一個字串"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1005",
"Z11K2": "первая строка"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1787",
"Z11K2": "prima stringa"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1827",
"Z11K2": "πρώτη συμβολοσειρά"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1818",
"Z11K2": "Stringi Keni"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1014",
"Z11K2": "Strinji"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1013",
"Z11K2": "Layi na 1"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1587",
"Z11K2": "string sinnaanta"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1680",
"Z11K2": "Boolean"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1332",
"Z11K2": "перший рядок"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1186",
"Z11K2": "מחרוזת ראשונה"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1132",
"Z11K2": "першы радок"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1381",
"Z11K2": "primeira cadeia"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1664",
"Z11K2": "primul șir"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1643",
"Z11K2": "첫 번째 문자열"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1001",
"Z11K2": "السلسلة الأولى"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1181",
"Z11K2": "прва ниска"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1820",
"Z11K2": "पहला स्ट्रिंग"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1592",
"Z11K2": "första strängen"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z6",
"Z17K2": "Z866K2",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "second string"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1011",
"Z11K2": "দ্বিতীয় অক্ষর"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1025",
"Z11K2": "drugi napis"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1830",
"Z11K2": "2つ目の文字列"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1061",
"Z11K2": "anden streng"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1062",
"Z11K2": "druhý řetězec"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1003",
"Z11K2": "segunda cadena"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1430",
"Z11K2": "zweite Zeichenkette"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": "deuxième chaîne"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1851",
"Z11K2": "สตริงที่สอง"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1078",
"Z11K2": "teks kedua"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1645",
"Z11K2": "第二个字符串"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1672",
"Z11K2": "第二個字串"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1005",
"Z11K2": "вторая строка"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1787",
"Z11K2": "seconda stringa"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1827",
"Z11K2": "δεύτερη συμβολοσειρά"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1818",
"Z11K2": "Stringi Keji"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1014",
"Z11K2": "Strinji"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1013",
"Z11K2": "Layi na 2"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1680",
"Z11K2": "Boolean"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1332",
"Z11K2": "другий рядок"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1186",
"Z11K2": "מחרוזת שנייה"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1132",
"Z11K2": "другі радок"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1381",
"Z11K2": "segunda cadeia"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1664",
"Z11K2": "cel de-al doilea șir"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1643",
"Z11K2": "두 번째 문자열"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1001",
"Z11K2": "السلسلة الثانية"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1181",
"Z11K2": "друга ниска"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1820",
"Z11K2": "दूसरा स्ट्रिंग"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1592",
"Z11K2": "andra strängen"
}
]
}
}
],
"Z8K2": "Z40",
"Z8K3": [
"Z20",
"Z8660",
"Z8661",
"Z8662"
],
"Z8K4": [
"Z14",
"Z966",
"Z10590",
"Z10597",
"Z28319",
"Z17569"
],
"Z8K5": "Z866"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "string equality"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1011",
"Z11K2": "অক্ষর সারির সমতা"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1657",
"Z11K2": "ਬਰਾਬਰੀ ਲਿਖੀ ਹੁੰਦੀ"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1083",
"Z11K2": "برابری لکھی ہندی"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1025",
"Z11K2": "równość napisów"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1592",
"Z11K2": "textlikhet"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1830",
"Z11K2": "文字列の一致"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1061",
"Z11K2": "er strenge lig"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1430",
"Z11K2": "Zeichenketten-Gleichheit"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1186",
"Z11K2": "שוויון מחרוזות"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1157",
"Z11K2": "tekenreeksgelijkheid"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": "égalité de chaînes"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1062",
"Z11K2": "rovnost řetězců"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1237",
"Z11K2": "dizi eşitliği"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1003",
"Z11K2": "igualdad de cadenas"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1332",
"Z11K2": "ідентичність рядків"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1851",
"Z11K2": "สมการสตริง"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1078",
"Z11K2": "kesamaan untaian"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1048",
"Z11K2": "so sánh xâu"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1645",
"Z11K2": "字符串相等"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1672",
"Z11K2": "字串相等"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1005",
"Z11K2": "равенство строк"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1787",
"Z11K2": "uguaglianza fra stringhe"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1827",
"Z11K2": "ισότητα συμβολοσειρών"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1818",
"Z11K2": "Stringi dọgbadọgba"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1014",
"Z11K2": "Stirinji nha nhata"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1013",
"Z11K2": "Daidaita ta ƙara "
},
{
"Z1K1": "Z11",
"Z11K1": "Z1680",
"Z11K2": "String n de buyila"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1132",
"Z11K2": "роўнасьць радкоў"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1381",
"Z11K2": "igualdade de cadeias"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1664",
"Z11K2": "egalitate între șiruri"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1643",
"Z11K2": "문자열 같음"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1001",
"Z11K2": "تساوي سلسلة"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1181",
"Z11K2": "једнаке ниске"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1820",
"Z11K2": "समान स्ट्रिंग"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1207",
"Z11K2": "баробарии сатрҳо"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31",
{
"Z1K1": "Z31",
"Z31K1": "Z1002",
"Z31K2": [
"Z6",
"Equals",
"Same",
"==",
"=",
"equal string",
"same string",
"strings equal",
"strings identical",
"identity relation (string)",
"string comparison",
"equal strings"
]
},
{
"Z1K1": "Z31",
"Z31K1": "Z1011",
"Z31K2": [
"Z6",
"দুটি স্ট্রিং কি একই",
"স্ট্রিং সমতা"
]
},
{
"Z1K1": "Z31",
"Z31K1": "Z1062",
"Z31K2": [
"Z6",
"stejné řetězce"
]
},
{
"Z1K1": "Z31",
"Z31K1": "Z1851",
"Z31K2": [
"Z6",
"สมการสายอักขระ",
"สตริงเท่ากัน",
"สตริงเหมือนกัน",
"สตริงเดียวกัน",
"สายอักขระเท่ากัน",
"สายอักขระเหมือนกัน",
"สายอักขระเดียวกัน",
"เท่ากับ"
]
},
{
"Z1K1": "Z31",
"Z31K1": "Z1078",
"Z31K2": [
"Z6",
"kesamaan teks",
"kesamaan string",
"sama dengan",
"sama dengan untaian",
"sama dengan teks",
"sama dengan string"
]
},
{
"Z1K1": "Z31",
"Z31K1": "Z1827",
"Z31K2": [
"Z6",
"σύγκριση συμβολοσειρών "
]
},
{
"Z1K1": "Z31",
"Z31K1": "Z1132",
"Z31K2": [
"Z6",
"эквівалентнасьць радкоў",
"тоеснасьць радкоў"
]
},
{
"Z1K1": "Z31",
"Z31K1": "Z1381",
"Z31K2": [
"Z6",
"Equivale",
"Igual",
"Mesmo",
"==",
"=",
"cadeia igual",
"mesma cadeia",
"cadeias iguais",
"cadeias idênticas",
"relação de identidade (cadeia)",
"comparação de cadeias"
]
},
{
"Z1K1": "Z31",
"Z31K1": "Z1664",
"Z31K2": [
"Z6",
"egalitate",
"egal",
"aceleași",
"==",
"=",
"aceleași șiruri",
"egalitate de șiruri",
"egalitate în șiruri",
"egalitate șiruri"
]
},
{
"Z1K1": "Z31",
"Z31K1": "Z1643",
"Z31K2": [
"Z6",
"같음",
"동일",
"==",
"=",
"같은 문자열",
"동일한 문자열",
"문자열 동일",
"동일 문자열",
"동일성 관계(문자열)"
]
},
{
"Z1K1": "Z31",
"Z31K1": "Z1787",
"Z31K2": [
"Z6",
"eguaglianza tra stringhe",
"stessa stringa",
"stringhe uguali",
"stringhe identiche",
"confronta stringhe",
"uguaglianza tra stringhe",
"eguaglianza fra stringhe"
]
},
{
"Z1K1": "Z31",
"Z31K1": "Z1001",
"Z31K2": [
"Z6",
"==",
"نفس السلسلة",
"سلاسل متطابقة",
"متساوية"
]
},
{
"Z1K1": "Z31",
"Z31K1": "Z1181",
"Z31K2": [
"Z6",
"исте ниске",
"исто",
"једнакост",
"једнако",
"идентичне ниске",
"једнакост ниских"
]
},
{
"Z1K1": "Z31",
"Z31K1": "Z1820",
"Z31K2": [
"Z6",
"समान, बराबर"
]
}
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1011",
"Z11K2": "সত্য যদি প্রথম অক্ষর সারি এবং দ্বিতীয় অক্ষর সারি একই হয়"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1025",
"Z11K2": "Sprawdza, czy dwa napisy są sobie dokładnie równe"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1592",
"Z11K2": "sant om två textsträngar är exakt lika"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "True if the first string and the second string are the same"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1830",
"Z11K2": "与えられた2つの文字列が一致する場合"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1061",
"Z11K2": "test om to strenge er lig hinanden"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1186",
"Z11K2": "אמת אם המחרוזת הראשונה שווה לשנייה"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1157",
"Z11K2": "waar als de eerste tekenreeks en de tweede tekenreeks hetzelfde zijn"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": "renvoie \"vrai\" dans le cas où la première et la seconde chaîne sont les mêmes, sinon \"faux\""
},
{
"Z1K1": "Z11",
"Z11K1": "Z1062",
"Z11K2": "Vrací pravdivou hodnotu právě tehdy když jsou dva vstupní řetězce totožné"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1430",
"Z11K2": "prüft, ob zwei Zeichenketten gleich sind"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1332",
"Z11K2": "повертає істину, якщо перший та другий рядки однакові"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1851",
"Z11K2": "ส่งกลับค่าจริงถ้าสตริงที่หนึ่งเหมือนกับสตริงที่สอง"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1078",
"Z11K2": "hanya bernilai benar jika kedua untaian yang dimasukkan sama"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1048",
"Z11K2": "Ra \"đúng\" nếu hai xâu bằng nhau"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1645",
"Z11K2": "如果第一个字符串和第二个字符串相同,则为真"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1672",
"Z11K2": "如果第一個字串和第二個字串相同,則為真"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1005",
"Z11K2": "возвращает true, если первая и вторая строка идентичны"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1787",
"Z11K2": "Ritorna vero se le due stringhe sono uguali"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1827",
"Z11K2": "επιστρέφει \"αληθής\" μόνο εάν και οι δύο είσοδοι είναι ίσες"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1818",
"Z11K2": "Otitọ ti stringi akọkọ ati okun keji jẹ kanna"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1014",
"Z11K2": "eziokwu ma ọ bụrụ na strinji mbụ na stirinji nke abụọ bụ otu"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1013",
"Z11K2": "Gaskiya ne idan ƙara na farko da na biyu suna da ɗaya "
},
{
"Z1K1": "Z11",
"Z11K1": "Z1587",
"Z11K2": "string equality"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1680",
"Z11K2": "yelemeŋerɛ de la wia string \"la string buyi la de la buyila"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1132",
"Z11K2": "ісьціна, калі першы і другі радкі аднолькавыя"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1381",
"Z11K2": "Verdadeiro se a primeira cadeia e a segunda cadeia forem iguais"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1664",
"Z11K2": "Returnează Adevărat dacă primul șir și cel de-al doilea șir sunt identice"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1643",
"Z11K2": "첫 번째 문자열과 두 번째 문자열이 같으면 참입니다."
},
{
"Z1K1": "Z11",
"Z11K1": "Z1001",
"Z11K2": "صحيح إذا كانت السلسلة الأولى والسلسلة الثانية متساويتين"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1181",
"Z11K2": "враћа Тачно ако су ниске једнаке"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1820",
"Z11K2": "अगर पहले और दूसरे स्ट्रिंग समान हो तो सच"
}
]
}
}
4gf2cxj51svnbozmvmw9871ve9nnde5
299857
299856
2026-08-16T07:23:48Z
DVrandecic (WMF)
7
Added Z13389 to the approved list of test cases
299857
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z866"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6",
"Z17K2": "Z866K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "first string"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1011",
"Z11K2": "প্রথম অক্ষর"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1025",
"Z11K2": "pierwszy napis"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1830",
"Z11K2": "1つ目の文字列"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1061",
"Z11K2": "første streng"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1062",
"Z11K2": "první řetězec"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1003",
"Z11K2": "primera cadena"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1430",
"Z11K2": "erste Zeichenkette"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": "première chaîne"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1851",
"Z11K2": "สตริงที่หนึ่ง"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1078",
"Z11K2": "teks pertama"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1645",
"Z11K2": "第一个字符串"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1672",
"Z11K2": "第一個字串"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1005",
"Z11K2": "первая строка"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1787",
"Z11K2": "prima stringa"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1827",
"Z11K2": "πρώτη συμβολοσειρά"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1818",
"Z11K2": "Stringi Keni"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1014",
"Z11K2": "Strinji"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1013",
"Z11K2": "Layi na 1"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1587",
"Z11K2": "string sinnaanta"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1680",
"Z11K2": "Boolean"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1332",
"Z11K2": "перший рядок"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1186",
"Z11K2": "מחרוזת ראשונה"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1132",
"Z11K2": "першы радок"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1381",
"Z11K2": "primeira cadeia"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1664",
"Z11K2": "primul șir"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1643",
"Z11K2": "첫 번째 문자열"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1001",
"Z11K2": "السلسلة الأولى"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1181",
"Z11K2": "прва ниска"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1820",
"Z11K2": "पहला स्ट्रिंग"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1592",
"Z11K2": "första strängen"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z6",
"Z17K2": "Z866K2",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "second string"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1011",
"Z11K2": "দ্বিতীয় অক্ষর"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1025",
"Z11K2": "drugi napis"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1830",
"Z11K2": "2つ目の文字列"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1061",
"Z11K2": "anden streng"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1062",
"Z11K2": "druhý řetězec"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1003",
"Z11K2": "segunda cadena"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1430",
"Z11K2": "zweite Zeichenkette"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": "deuxième chaîne"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1851",
"Z11K2": "สตริงที่สอง"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1078",
"Z11K2": "teks kedua"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1645",
"Z11K2": "第二个字符串"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1672",
"Z11K2": "第二個字串"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1005",
"Z11K2": "вторая строка"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1787",
"Z11K2": "seconda stringa"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1827",
"Z11K2": "δεύτερη συμβολοσειρά"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1818",
"Z11K2": "Stringi Keji"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1014",
"Z11K2": "Strinji"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1013",
"Z11K2": "Layi na 2"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1680",
"Z11K2": "Boolean"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1332",
"Z11K2": "другий рядок"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1186",
"Z11K2": "מחרוזת שנייה"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1132",
"Z11K2": "другі радок"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1381",
"Z11K2": "segunda cadeia"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1664",
"Z11K2": "cel de-al doilea șir"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1643",
"Z11K2": "두 번째 문자열"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1001",
"Z11K2": "السلسلة الثانية"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1181",
"Z11K2": "друга ниска"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1820",
"Z11K2": "दूसरा स्ट्रिंग"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1592",
"Z11K2": "andra strängen"
}
]
}
}
],
"Z8K2": "Z40",
"Z8K3": [
"Z20",
"Z8660",
"Z8661",
"Z8662",
"Z13389"
],
"Z8K4": [
"Z14",
"Z966",
"Z10590",
"Z10597",
"Z28319",
"Z17569"
],
"Z8K5": "Z866"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "string equality"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1011",
"Z11K2": "অক্ষর সারির সমতা"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1657",
"Z11K2": "ਬਰਾਬਰੀ ਲਿਖੀ ਹੁੰਦੀ"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1083",
"Z11K2": "برابری لکھی ہندی"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1025",
"Z11K2": "równość napisów"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1592",
"Z11K2": "textlikhet"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1830",
"Z11K2": "文字列の一致"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1061",
"Z11K2": "er strenge lig"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1430",
"Z11K2": "Zeichenketten-Gleichheit"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1186",
"Z11K2": "שוויון מחרוזות"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1157",
"Z11K2": "tekenreeksgelijkheid"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": "égalité de chaînes"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1062",
"Z11K2": "rovnost řetězců"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1237",
"Z11K2": "dizi eşitliği"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1003",
"Z11K2": "igualdad de cadenas"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1332",
"Z11K2": "ідентичність рядків"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1851",
"Z11K2": "สมการสตริง"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1078",
"Z11K2": "kesamaan untaian"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1048",
"Z11K2": "so sánh xâu"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1645",
"Z11K2": "字符串相等"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1672",
"Z11K2": "字串相等"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1005",
"Z11K2": "равенство строк"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1787",
"Z11K2": "uguaglianza fra stringhe"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1827",
"Z11K2": "ισότητα συμβολοσειρών"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1818",
"Z11K2": "Stringi dọgbadọgba"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1014",
"Z11K2": "Stirinji nha nhata"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1013",
"Z11K2": "Daidaita ta ƙara "
},
{
"Z1K1": "Z11",
"Z11K1": "Z1680",
"Z11K2": "String n de buyila"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1132",
"Z11K2": "роўнасьць радкоў"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1381",
"Z11K2": "igualdade de cadeias"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1664",
"Z11K2": "egalitate între șiruri"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1643",
"Z11K2": "문자열 같음"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1001",
"Z11K2": "تساوي سلسلة"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1181",
"Z11K2": "једнаке ниске"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1820",
"Z11K2": "समान स्ट्रिंग"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1207",
"Z11K2": "баробарии сатрҳо"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31",
{
"Z1K1": "Z31",
"Z31K1": "Z1002",
"Z31K2": [
"Z6",
"Equals",
"Same",
"==",
"=",
"equal string",
"same string",
"strings equal",
"strings identical",
"identity relation (string)",
"string comparison",
"equal strings"
]
},
{
"Z1K1": "Z31",
"Z31K1": "Z1011",
"Z31K2": [
"Z6",
"দুটি স্ট্রিং কি একই",
"স্ট্রিং সমতা"
]
},
{
"Z1K1": "Z31",
"Z31K1": "Z1062",
"Z31K2": [
"Z6",
"stejné řetězce"
]
},
{
"Z1K1": "Z31",
"Z31K1": "Z1851",
"Z31K2": [
"Z6",
"สมการสายอักขระ",
"สตริงเท่ากัน",
"สตริงเหมือนกัน",
"สตริงเดียวกัน",
"สายอักขระเท่ากัน",
"สายอักขระเหมือนกัน",
"สายอักขระเดียวกัน",
"เท่ากับ"
]
},
{
"Z1K1": "Z31",
"Z31K1": "Z1078",
"Z31K2": [
"Z6",
"kesamaan teks",
"kesamaan string",
"sama dengan",
"sama dengan untaian",
"sama dengan teks",
"sama dengan string"
]
},
{
"Z1K1": "Z31",
"Z31K1": "Z1827",
"Z31K2": [
"Z6",
"σύγκριση συμβολοσειρών "
]
},
{
"Z1K1": "Z31",
"Z31K1": "Z1132",
"Z31K2": [
"Z6",
"эквівалентнасьць радкоў",
"тоеснасьць радкоў"
]
},
{
"Z1K1": "Z31",
"Z31K1": "Z1381",
"Z31K2": [
"Z6",
"Equivale",
"Igual",
"Mesmo",
"==",
"=",
"cadeia igual",
"mesma cadeia",
"cadeias iguais",
"cadeias idênticas",
"relação de identidade (cadeia)",
"comparação de cadeias"
]
},
{
"Z1K1": "Z31",
"Z31K1": "Z1664",
"Z31K2": [
"Z6",
"egalitate",
"egal",
"aceleași",
"==",
"=",
"aceleași șiruri",
"egalitate de șiruri",
"egalitate în șiruri",
"egalitate șiruri"
]
},
{
"Z1K1": "Z31",
"Z31K1": "Z1643",
"Z31K2": [
"Z6",
"같음",
"동일",
"==",
"=",
"같은 문자열",
"동일한 문자열",
"문자열 동일",
"동일 문자열",
"동일성 관계(문자열)"
]
},
{
"Z1K1": "Z31",
"Z31K1": "Z1787",
"Z31K2": [
"Z6",
"eguaglianza tra stringhe",
"stessa stringa",
"stringhe uguali",
"stringhe identiche",
"confronta stringhe",
"uguaglianza tra stringhe",
"eguaglianza fra stringhe"
]
},
{
"Z1K1": "Z31",
"Z31K1": "Z1001",
"Z31K2": [
"Z6",
"==",
"نفس السلسلة",
"سلاسل متطابقة",
"متساوية"
]
},
{
"Z1K1": "Z31",
"Z31K1": "Z1181",
"Z31K2": [
"Z6",
"исте ниске",
"исто",
"једнакост",
"једнако",
"идентичне ниске",
"једнакост ниских"
]
},
{
"Z1K1": "Z31",
"Z31K1": "Z1820",
"Z31K2": [
"Z6",
"समान, बराबर"
]
}
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1011",
"Z11K2": "সত্য যদি প্রথম অক্ষর সারি এবং দ্বিতীয় অক্ষর সারি একই হয়"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1025",
"Z11K2": "Sprawdza, czy dwa napisy są sobie dokładnie równe"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1592",
"Z11K2": "sant om två textsträngar är exakt lika"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "True if the first string and the second string are the same"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1830",
"Z11K2": "与えられた2つの文字列が一致する場合"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1061",
"Z11K2": "test om to strenge er lig hinanden"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1186",
"Z11K2": "אמת אם המחרוזת הראשונה שווה לשנייה"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1157",
"Z11K2": "waar als de eerste tekenreeks en de tweede tekenreeks hetzelfde zijn"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": "renvoie \"vrai\" dans le cas où la première et la seconde chaîne sont les mêmes, sinon \"faux\""
},
{
"Z1K1": "Z11",
"Z11K1": "Z1062",
"Z11K2": "Vrací pravdivou hodnotu právě tehdy když jsou dva vstupní řetězce totožné"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1430",
"Z11K2": "prüft, ob zwei Zeichenketten gleich sind"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1332",
"Z11K2": "повертає істину, якщо перший та другий рядки однакові"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1851",
"Z11K2": "ส่งกลับค่าจริงถ้าสตริงที่หนึ่งเหมือนกับสตริงที่สอง"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1078",
"Z11K2": "hanya bernilai benar jika kedua untaian yang dimasukkan sama"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1048",
"Z11K2": "Ra \"đúng\" nếu hai xâu bằng nhau"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1645",
"Z11K2": "如果第一个字符串和第二个字符串相同,则为真"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1672",
"Z11K2": "如果第一個字串和第二個字串相同,則為真"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1005",
"Z11K2": "возвращает true, если первая и вторая строка идентичны"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1787",
"Z11K2": "Ritorna vero se le due stringhe sono uguali"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1827",
"Z11K2": "επιστρέφει \"αληθής\" μόνο εάν και οι δύο είσοδοι είναι ίσες"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1818",
"Z11K2": "Otitọ ti stringi akọkọ ati okun keji jẹ kanna"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1014",
"Z11K2": "eziokwu ma ọ bụrụ na strinji mbụ na stirinji nke abụọ bụ otu"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1013",
"Z11K2": "Gaskiya ne idan ƙara na farko da na biyu suna da ɗaya "
},
{
"Z1K1": "Z11",
"Z11K1": "Z1587",
"Z11K2": "string equality"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1680",
"Z11K2": "yelemeŋerɛ de la wia string \"la string buyi la de la buyila"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1132",
"Z11K2": "ісьціна, калі першы і другі радкі аднолькавыя"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1381",
"Z11K2": "Verdadeiro se a primeira cadeia e a segunda cadeia forem iguais"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1664",
"Z11K2": "Returnează Adevărat dacă primul șir și cel de-al doilea șir sunt identice"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1643",
"Z11K2": "첫 번째 문자열과 두 번째 문자열이 같으면 참입니다."
},
{
"Z1K1": "Z11",
"Z11K1": "Z1001",
"Z11K2": "صحيح إذا كانت السلسلة الأولى والسلسلة الثانية متساويتين"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1181",
"Z11K2": "враћа Тачно ако су ниске једнаке"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1820",
"Z11K2": "अगर पहले और दूसरे स्ट्रिंग समान हो तो सच"
}
]
}
}
4iknrmlysjfuxqjkzxmc6xn1at6nbnt
Wikifunctions:Project chat
4
1184
299803
299402
2026-08-16T03:08:10Z
SpBot
978
archive 1 section: 1 to [[Wikifunctions:Project chat/Archive/2026/07]] (after section [[Wikifunctions:Project chat/Archive/2026/07#Discussion_at_Meta_Requests_for_comment:_The_future_of_Abstract_Wikipedia|Discussion_at_Meta_Requests_for_comment:_The_future_of_Abstract_Wikipedia]]) - previous edit: [[:User:Virinas-code|Virinas-code]], 2026-08-14 12:48
299803
wikitext
text/x-wiki
{{shortcut|[[WF:CHAT]]|[[WF:PC]]|[[WF:VP]]}}
__NEWSECTIONLINK__
[[Category:Help]] <!-- please do not remove this line -->
Welcome to the Project chat, a place to discuss any and all aspects of Wikifunctions: the project itself, policy and proposals, individual data items, technical issues, etc.
Other places to find help:
* [[Wikifunctions:Administrators' noticeboard]]
* [[Wikifunctions:Report a technical problem]]
* [[Wikifunctions:FAQ]]
{{Autoarchive resolved section
|age = 1
|archive = ((FULLPAGENAME))/Archive/((year))/((month:##))
|timeout=30
}}
{{Archives|{{#tag:div|<br />{{Flatlist|{{Special:PrefixIndex/WF:Project chat/Archive/|stripprefix=1|hideredirects=1}}
|class=mw-collapsible-content|style=font-size:92%;}}|class="mw-collapsible mw-collapsible-toggle mw-collapsed"}}
|prefix=WF:Project chat/Archive/
}}
== Wikifunctions & Abstract Wikipedia Newsletter #257: Beyond syntactic tables ==
There is [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-07-16|a new update]] for Abstract Wikipedia and Wikifunctions. Please, come and read it!
In this issue, we discuss syntactic tables and news in Types, we show some community blogposts and tools, we remind you of the Wikifunctions and Abstract Wikipedia events at Wikimania 2026, and we take a look at the latest software developments.
Want to catch up with the previous updates? Check [[:f:Special:MyLanguage/Wikifunctions:Status updates|our archive]]!
We also remind you that in the next weeks these newsletter reminders will be paused, and that they will resume in mid-August.
Enjoy the reading! -- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 10:55, 17 July 2026 (UTC)
<!-- Message sent by User:Sannita (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Wikifunctions_%26_Abstract_Wikipedia&oldid=30755600 -->
== Update on Blockly editor ==
In case anyone is actually using [[User:YoshiRulz/Blockly|my external editor based on Blockly]] (there's no analytics so I have no idea): I cleared out my "papercut" backlog yesterday, fixing bugs, making exporting smoother, and adding more blocks necessary for NLG functions. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 15:35, 20 July 2026 (UTC)
:Great! I'll try it out now. [[User:So9q|So9q]] ([[User talk:So9q|talk]]) 18:15, 21 July 2026 (UTC)
== Building reproducible, computable phenotypes on WikiFunctions ==
Hello all! Very new to WikiFunctions, more involved in the Wikidata side of things, but I was thinking that WikiFunctions may be a great space for computable phenotypes. These are structures (lists of rules) used in medicine to determine if a person has or doesn't have a particular condition (type 2 diabetes, asthma, etc.). There is a constant issue in my field of recreating the wheel for these phenotypes and very few resources where they are openly available (there was PheKB but it isn't updated often and only contains natural language descriptions of the phenotypes and often no code or other information to reproduce). My thought process was that an algorithm for a computable phenotype would essentially be a list of synthetic (fake) patients with certain characteristics, and then the computable phenotype would be run, and it would return a list of patients who have that condition. The major use case would be allowing individuals to download these code snippets to increase general reproducibility in medical care and studies overall. Would it be possible to utilize WikiFunctions for this? [[User:Superraptor123|Superraptor123]] ([[User talk:Superraptor123|talk]]) 08:25, 23 July 2026 (UTC)
:({{Q|25203551}})<br>What system(s) are currently in use for doing such computations? Python scripts?<br>{{SITENAME}} currently does not cater to offline execution, so I imagine it wouldn't be suitable for medical ''practice'' where there are strict data protections. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 11:35, 23 July 2026 (UTC)
::Currently this involves something along the lines of a structured series of descriptors that make up the computable phenotype (ICD codes, RxNorm codes, lab test levels, age ranges, etc.), a fake "patient" (or list of "fake" patients) as input, and the patients that fit the computable phenotype criteria as output. In terms of systems currently in use, they are kind of-- everything. SQL, Java, SPARQL, Python, Perl, Ruby, etc. Currently I develop mostly using Python, so I would likely use that for implementation. And of course, yes, they would not be suitable for practice due to protections! For an example of an algorithm that I think could be useful to adapt, see: https://phekb.org/phenotype/type-2-diabetes-mellitus. [[User:Superraptor123|Superraptor123]] ([[User talk:Superraptor123|talk]]) 12:02, 23 July 2026 (UTC)
:::So your reference is a decision tree, and are each of the "questions" evaluated by looking up a property/element in the input? That could be translated into a Function relatively easily. Most examples I can think of are NLG-related, like [[Z36580]], but there are [[WF:Catalogue/Wikidata_operations#Real_life_information_retrieved_using_Wikidata|some simpler Functions]] which extract parts of a given Wikidata Item, and [[Z34840]] works with the representations of numbers. What is the structure of the input EMR? [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 13:54, 23 July 2026 (UTC)
::::Precisely-- I think most of these would be simple implementations, but good to generally have archived as most of them become lost media(-ish). Best-case, the input EMR would be a set of synthetic patients using the OMOP CDM (https://ohdsi.github.io/CommonDataModel/), the most common open data model in the space. It does mean it wouldn't be completely system agnostic, but it would most in the majority of situations. [[User:Superraptor123|Superraptor123]] ([[User talk:Superraptor123|talk]]) 14:07, 23 July 2026 (UTC)
:::::If you decide to go ahead with this, you should [[WF:Type_proposals#Templates|propose a new type]] since it looks like a simple [[Z881|list]] or [[Z883|dict]] won't cover it. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 15:31, 23 July 2026 (UTC)
:Did you look much into the possibility of encoding these in Wikidata somehow? Have [[d:WD:WikiProject Medicine]] / [[meta:Wiki Project Med]] investigated it before? [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 15:31, 23 July 2026 (UTC)
::I don't think so-- it could potentially be somewhat encoded in Wikidata-- main issue is that it uses a list of codes which Wikidata sometimes attaches to the same entity in ways that don't match up 1-to-1. And there may be drift in those codes over time, so the list of codes would have to be hard-coded. But there should generally be a way to link from the WikiFunction to Wikidata right? [[User:Superraptor123|Superraptor123]] ([[User talk:Superraptor123|talk]]) 22:06, 23 July 2026 (UTC)
:::Linking ''to WF'' from an Item on Wikidata [[d:WD:Wikifunctions/Development|is an open question]], beyond sitelinks of course. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 12:02, 24 July 2026 (UTC)
::::So maybe creating functions here makes the most sense for the time being? I want to make sure I'm following the rules as intended but would that be okay for now? (Creating one or two and then presenting to the community to see if things look acceptable?) [[User:Superraptor123|Superraptor123]] ([[User talk:Superraptor123|talk]]) 06:46, 25 July 2026 (UTC)
:::::Yes, you're welcome to try! --[[User:99of9|99of9]] ([[User talk:99of9|talk]]) 06:53, 25 July 2026 (UTC)
::::::Thanks! I've been thinking about this a little bit-- in terms of objects, it may make sense to have an object that is an OMOP CDM database (which is allowed by their licensing, as the database schema is open source). But I'm wondering if it should instead be an extension of a more generic database object? [[User:Superraptor123|Superraptor123]] ([[User talk:Superraptor123|talk]]) 11:06, 28 July 2026 (UTC)
== OWID's replacement for Extension:Graph ==
[[meta:OWID Gadget]] / [[c:Module:Owidslider]]<br>I'm currently watching the Wikimania talk "[https://wikimedia.eventyay.com/wm/wikimania2026/talk/CMPQQJ/ Bringing Interactive Graphs from Our World in Data to Wikipedia]" going through the latest iteration of their interactive graphs, and they seem to be in a good position now, including <abbr title="internationalisation">i18n</abbr>. I think it would be nice to use them in Abstract Wikipedia articles as well, but it's implemented as a Lua module + JS gadget. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 13:00, 23 July 2026 (UTC)
== Friday's talks at Wikimania ==
{{noping|Mahir256}} just finished his talk/workshop "[https://wikimedia.eventyay.com/wm/wikimania2026/talk/HYTQBF From Abstract Content to Concrete Text with Wikidata Lexemes]" on {{Q|136813071}}. You can [https://www.youtube.com/watch?v=hvpOFVZhgnE&t=24370s watch it on YouTube here] (though there were audio problems, '''volume warning''').
<br>The workshop immediately before that was "[https://wikimedia.eventyay.com/wm/wikimania2026/talk/TWGKWB/ Making indigenous languages ready for Wikifunctions]". Hello to anyone who came from there! [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 15:58, 24 July 2026 (UTC)
:@[[User:YoshiRulz|YoshiRulz]]: Thanks for highlighting these! There's also today's workshop [https://www.youtube.com/watch?v=nCVeXaAk77c on YouTube] about 90 minutes after the start of the stream, though that might not be as interesting to watch. [[User:Jdforrester (WMF)|Jdforrester (WMF)]] ([[User talk:Jdforrester (WMF)|talk]]) 13:28, 25 July 2026 (UTC)
== Testing an unconnected implementation ==
Hi everyone!
A few hours ago, I created [[Z38370|my first function]] together with [[Z38371|an unfinished Python implementation]]. When I wanted to test my implementation using the "Try this implementation" box in the bottom-right corner, I noticed that the button "Run function" was grayed out and there was a warning saying "This function has no connected implementations."
As it seems, you can only run an implementation if its corresponding function has at least one connected implementation. The implementation you want to run doesn't even have to be connected itself, as I can run the unconnected implementation [[Z12949]] without any problems, even when I modify its code in the editor.
Is this behavior intentional? And is there any way I can test my implementation? [[User:Tc14Hd|Tc14Hd]] ([[User talk:Tc14Hd|talk]]) 19:28, 28 July 2026 (UTC)
:Yeah, it's [[phab:T343559#11421293|a pointless limitation]]. I've connected the test for you. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 23:56, 28 July 2026 (UTC)
::Thanks! I knew I couldn't be the only one who noticed this problem... [[User:Tc14Hd|Tc14Hd]] ([[User talk:Tc14Hd|talk]]) 13:00, 29 July 2026 (UTC)
== [[Help:Categorization]] ==
Hi! Just wanted to let everyone know that I recently created [[Help:Categorization]] as a draft help page explaining how categories work. I'm new to Wikifunctions, but I used my knowledge of MediaWiki in general combined with some research to write it. If anyone would like to improve it, feel free to. [[User:Axolitl|Axolitl]] ([[User talk:Axolitl|talk]]) 04:32, 30 July 2026 (UTC)
:It's just a general MediaWiki categories guide. It doesn't have anything special for Wikifunctions, which doesn't really have categories in the main namespace. [[User:Amire80|Amir E. Aharoni]] ([[User talk:Amire80|talk]]) 16:42, 30 July 2026 (UTC)
== Wikifunctions & Abstract Wikipedia Newsletter #258: Abstract Wikipedia at Wikimania ==
<div lang="en" dir="ltr" class="mw-content-ltr">There is [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-07-29|a new update]] for Abstract Wikipedia and Wikifunctions. Please, come and read it!
In this issue, we discuss the presentations and workshops at Wikimania, including a features feedback request based on what we heard there, and highlight new features shipped this week including diffs for Wikifunctions.
Want to catch up with the previous updates? Check [[:f:Special:MyLanguage/Wikifunctions:Status updates|our archive]]!
Enjoy the reading! [[m:user:Quiddity (WMF)|Quiddity (WMF)]] 19:05, 30 July 2026 (UTC) </div>
<!-- Message sent by User:Quiddity (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Wikifunctions_%26_Abstract_Wikipedia&oldid=30870212 -->
== Impact of labels translation ==
A lot of the edits on Wikifunctions are additions and changes of labels, descriptions, and aliases of functions, inputs, tests, and implementations. (I will subsequently call this "labels" for simplicity.)
At Wikimania 2026, I heard from editors in several languages that they were encouraged to translate Wikifunctions' labels, and it made me wonder: Are there reasons to think that editing those labels has impact on the usage of Wikifunctions and Abstract Wikipedia by people who speak these languages? In general, I am quite famous as a major supporter of translating everything imaginable, but there should also be priorities, so if editing those labels doesn't have impact, then perhaps editors should be encouraged to translate something more visible.
After English, [https://quarry.wmcloud.org/query/103687 the most common languages for editing labels] are German, French, Igbo, Italian, Indonesian, Bengali, Dutch, Japanese, Hindi, and Hebrew <small>([[User:Amire80/wikifunctionsanalytics|information about this data]])</small>.
Looking a bit more deeply into some of those:
* Hebrew labels were mostly contributed by @[[User:מקף|מקף]] (pronounced Maqaf), and a few were contributed by myself. I edit them mostly because I love seeing the UI translated as completely as possible, and since some object labels are integrated into the site's UI, they should be translated. Does this complete translation raise the usage of Wikifunctions by Hebrew speakers, though? I doubt it. Maqaf probably edits them because he creates some functions related to the Hebrew language, but that's just a guess, and I'd love to hear more about his motivation.
* The top editor of German labels is @[[User:Ameisenigel|Ameisenigel]], who is generally a major contributor to translations across many Wikimedia projects, so perhaps his motivation is similar to mine, but he does it much more than I do. He also edits the content of actual functions, implementations, and tests. Some of the other German label editors do almost nothing but editing labels, although some, like @[[User:Lucas Werkmeister|Lucas Werkmeister]] and of course @[[User:Denny|Denny]] also contribute to actual functions and implementations. But back to the main question: German is the top language for label translations thanks to [[User:Ameisenigel|Ameisenigel]]'s huge work, but does it, for example, impact the creation of abstract content that works in German? When I try to select German on most abstract articles, I usually don't see a fully translated article. But maybe I'm not searching well?
* The situation is a bit similar with French. @[[User:Jérémy-Günther-Heinz Jähnick|Jérémy-Günther-Heinz Jähnick]] is the top French label editor, but he makes almost no contributions to functions and implementations. The second top label editor is @[[User:VIGNERON|VIGNERON]], who does contribute quite a lot to functions and implementations. There are several other prolific French label editors, but most of them contribute little or nothing at all to functions and implementations. And as with German, I almost never see abstract articles fully translated into French.
* Igbo has shown disproportionate label editing activity. I don't know why exactly, but I guess that there was some event that encouraged people to write labels (if anyone knows more, please tell me). All the top 10 Igbo label editors only wrote labels and didn't do anything else with functions or implementations. There are quite a lot of [[Wikifunctions:Catalogue/Natural language operations/Igbo|Igbo language functions]], all of which were made by @[[User:Dolphyb|Dolphyb]], who contributed very little to translations. This, by itself, is not a problem at all: it's very common that programmers mostly write code and translators mostly translate. There is still the same question, though: do those language functions and massive label translations contribute to achieving Abstract Wikipedia's goal of generating Igbo content? I haven't seen evidence to support that, but I'd love to see it if anyone can present it.
* The situation with Indonesian is similar to the situation with Igbo, but there are [[Wikifunctions:Catalogue/Natural language operations/Igbo|much fewer language functions for Indonesian]].
So that's what I can glean. If I'm incorrect about anything or if you can add some more info, please speak up. Because of my interest in localization, I'll be very grateful to learn more. [[User:Amire80|Amir E. Aharoni]] ([[User talk:Amire80|talk]]) 19:50, 30 July 2026 (UTC)
:Adding labels in other languages has several advantages for the project. To name a few
:* It is an easy introduction to Wikifunctions
:* it is good for the image of Wikifunctions and Abstract Wikipedia as not being English centric
:* Contributors of Wikifunctions should be able to add texts in their own languages, so translations main functions is vital for that. That includes labels, descriptions and inputs.
:Not many labels are translated yet and not many functions work yet for other languages than English at the moment. The community is still very small, but I hope both will grow over time. They can mutually benefit each other. [[User:HenkvD|HenkvD]] ([[User talk:HenkvD|talk]]) 21:19, 30 July 2026 (UTC)
::@[[User:HenkvD|HenkvD]], I heard similar claims before, but it's to scrutinize them.
::{{tq|It is an easy introduction to Wikifunctions}} - and what does this introduction lead to? I haven't seen clear evidence that translating labels leads to other contributions or to using functions.
::{{tq|it is good for the image of Wikifunctions and Abstract Wikipedia as not being English centric}} - is it actually good? Evidently, many people in recent critical discussions about Wikifunctions and Abstract Wikipedia still think that it's English-centric.
::{{tq|Contributors of Wikifunctions should be able to add texts in their own languages, so translations main functions is vital for that. That includes labels, descriptions and inputs}} - it ''sounds'' vital; as I said, I support localization of everything in principle, and this is the main reason for thinking like that. However, this doesn't answer my question: what is the ''actual'' impact? Wikifunctions has been online for three years, so we should have seen something by now, and we aren't seeing anything.
::{{tq|Not many labels are translated yet}} - how do you define "many"? Thousands of labels were translated, and I think that it is "many". But, as you say, {{tq|not many functions work yet for other languages than English at the moment}} - so evidently, translating labels didn't lead to writing those functions, at least yet. [[User:Amire80|Amir E. Aharoni]] ([[User talk:Amire80|talk]]) 21:43, 30 July 2026 (UTC)
:::Wikifunctions might be live for 3 years, but Abstract Wikipedia is only lie a few months. As it is early days for '''Language''' functions, and the first are made in English it still is English centric. THAT NEEDS TO CHANGE. Translations should help with that. [[User:HenkvD|HenkvD]] ([[User talk:HenkvD|talk]]) 22:08, 30 July 2026 (UTC)
:See also [[Help:Multilingual]]. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 21:25, 30 July 2026 (UTC)
::Does it say anything about the ''impact'' of translating labels? I don't see it. [[User:Amire80|Amir E. Aharoni]] ([[User talk:Amire80|talk]]) 21:44, 30 July 2026 (UTC)
:::No, I bring it up only as a possible explanation of translators' motives, and to point out where the documentation is should you want to improve it. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 22:00, 30 July 2026 (UTC)
:@[[User:Amire80|Amire80]]: I've seen folks at Wikimania use Abstract Wikipedia in their language and start and edit articles in Tyap, Japanese, and French. Having labels for those functions unlocks the Abstract Wikipedia to be used entirely in their language. --[[User:Denny|Denny]] ([[User talk:Denny|talk]]) 06:07, 31 July 2026 (UTC)
::I understand the general idea of what this is supposed to be. I wonder whether there is actual measurable impact.
::You give Tyap as a successful example, but it's in fact the example of the opposite. I found zero functions whose name is translated into this language. I found one implementation whose name is translated into Tyap, [[Z29740]], and also a few translated language names and type names. My ''intuition'' is that type names are actually among the most important things to translate here, but very few of them are translated at the moment, and I'm trying to talk about measurable impact here and not about intuition. And as you say in the newsletter, the Tyap contributor was able to do something, even though almost nothing is translated into his language.
::The label translation statistics for Japanese and French are very good, but seeing something at Wikimania is anecdotal; it's not measurable impact.
::So again: I understand the general idea of why localization is desirable. I've dedicated more than sixteen years of my life to promoting this idea, I keep doing it now, and I plan to keep doing for as long as my health allows me to do it. But here, I'm asking not about the idea, but about the impact. [[User:Amire80|Amir E. Aharoni]] ([[User talk:Amire80|talk]]) 09:57, 31 July 2026 (UTC)
:::Hi {{ping|Amire80}}. I’m not skilled at programming, but I manage to handle the translation work—even if it isn’t perfect. I’m doing my bit to help out. [[User:Jérémy-Günther-Heinz Jähnick|Jérémy-Günther-Heinz Jähnick]] ([[User talk:Jérémy-Günther-Heinz Jähnick|talk]]) 22:29, 1 August 2026 (UTC)
::::Thank you! It's fine, not everyone has to know programming. I'm just wondering how much is it actually helping out. I'm not necessarily saying that it doesn't, but I do wonder how to measure that it does. [[User:Amire80|Amir E. Aharoni]] ([[User talk:Amire80|talk]]) 05:50, 2 August 2026 (UTC)
:::@[[User:Amire80|Amire80]]: I don't even understand what you are asking for. Measuring what impact, and how? The Tyap editor was able to use it because he also spoke English. If he wouldn't have, he would have an even harder time to use the interface. --[[User:Denny|Denny]] ([[User talk:Denny|talk]]) 07:30, 2 August 2026 (UTC)
::::Does the translation of function labels into a language have a measurable impact on the usage of Wikifunctions and Abstract Wikipedia in that language?
::::For example, a lot of function labels are translated into Igbo. Does it mean that a lot of abstract articles are fully readable in Igbo?
::::Same question about German, French, Italian, etc. [[User:Amire80|Amir E. Aharoni]] ([[User talk:Amire80|talk]]) 11:44, 2 August 2026 (UTC)
:::::Translation of labels makes it easier to understand the function side of Abstract Wikipedia, and easier to add and change the lemma. It does NOT have affect on the final text in the language. It may help in writing functions for that language. As Abstract Wikipedia is a fairly new project with few contributors the impact cannot be measured. How would you measure that anyway? [[User:HenkvD|HenkvD]] ([[User talk:HenkvD|talk]]) 12:02, 2 August 2026 (UTC)
::::::They ''can'' make it easier to understand the function, but ''do'' they make it easier?
::::::For example, there was obviously some organized activity to translate labels into Igbo. Look at [https://quarry.wmcloud.org/query/107942 this query]: You can see that there was a lot of label editing activity in Igbo in February, March, April, May, June, and September 2024, and very little activity in other times. It was probably related to this event: [[:m:Event:Translation of catalogue of available functions on wikifunctions igbo]].
::::::There was also [https://diff.wikimedia.org/2026/01/16/introducing-data-and-functions-reflections-from-indonesian-data-and-technology-week-2025/ a similar event for Indonesian], and you can see in [https://quarry.wmcloud.org/query/107943 the statistics for Indonesian] that there was a peak of edits in December 2025, as described in the blog post.
::::::I don't know if these events were funded with money, but they were definitely ''organized''. Organization requires effort. And of course, effort was also invested into the actual translation. Effort should be invested if it has some impact, and if it has no impact, then it should be invested elsewhere.
::::::How would I measure it? Some examples:
::::::# Are there abstract articles that can actually be fully viewable in Igbo and Indonesian? As far as I can see, there aren't, but correct me if I'm wrong.
::::::# Are there many language functions that can generate text in Igbo and Indonesian, and are those functions actually used? The answer to the first question is "not many" ([[Wikifunctions:Catalogue/Natural language operations/Igbo|Igbo]], [[Wikifunctions:Catalogue/Natural language operations/Indonesian|Indonesian]]); the answer to the second and more important question is "they are probably not used". But again, correct me if I'm wrong.
::::::[[User:Amire80|Amir E. Aharoni]] ([[User talk:Amire80|talk]]) 21:14, 4 August 2026 (UTC)
:::::::I think you're right. To help translation to make more impact, we could document which of our 39,000 objects are most important to translate. For example, the list of types, the list of the fragment functions most used on AW, and the list of functions most used in compositions on WF. Your query tool may be able to help make the third of these? --[[User:99of9|99of9]] ([[User talk:99of9|talk]]) 00:58, 5 August 2026 (UTC)
::::::::I'll try, thanks for the tip! [[User:Amire80|Amir E. Aharoni]] ([[User talk:Amire80|talk]]) 02:09, 5 August 2026 (UTC)
:Perhaps the more useful question is not the impact of contributing labels, but the impact of not contributing them. At present, a user who cannot search for a function using their own language is effectively required to use English (or another well-supported language). Such users do not create a visible failure case.
:It may therefore be difficult to measure the benefit of translated labels from usage statistics alone because the absence of translations creates a barrier before usage even begins.
:There may also be a feedback loop. English currently has the greatest discoverability, which means English-speaking contributors are more likely to notice when a function cannot be found, and to add aliases or improve labels accordingly. This may mean that English has a higher proportion of functions with aliases, and typically more aliases for any such function. Languages with less discoverability have fewer opportunities for this kind of positive feedback. [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 10:09, 5 August 2026 (UTC)
::The questions to ask about this are: which languages are the most successful ones in terms of abstract articles translation? What made them successful? Can it be replicated?
::But that would be a topic for a separate thread.
::Here, I'm wondering about the impact of what people do invest their effort in. [[User:Amire80|Amir E. Aharoni]] ([[User talk:Amire80|talk]]) 11:04, 5 August 2026 (UTC)
== Contributing to language functions 1: Language Fragments ==
At Wikimania, @[[User:Dnshitobu|Dnshitobu]] recommended cloning a page like [[User:Dnshitobu/Dagbani Fragments]] and filling it with my own language. If I understand correctly, it's supposed to help to create functions for handling my language.
I created [[User:Amire80/Hebrew Fragments]] and started filling it. There are a bunch of problems with it, but let's say that I can complete it. Is it actually useful? Once it's complete, what do I do with it?
More broadly, if it is useful, is there a written guideline anywhere that recommends doing it? If I didn't visit Wikimania, I wouldn't know about it. [[User:Amire80|Amir E. Aharoni]] ([[User talk:Amire80|talk]]) 22:10, 30 July 2026 (UTC)
:From [[WF:Status_updates/2026-07-29#Abstract_Wikipedia_at_Wikimania|this week's newsletter]]: <q>[Dnshitobu's] main proposal is that editors can create simple wikitext tables of example fragments in their language so that others could later do the technical work of setting up the lexemes and NLG functions.</q> The next step is to correlate your example sentences to the top-level NLG functions, then add 1 or 2 test cases to each function from your table.<br>I don't believe {{noping|Dnshitobu}} wrote up the process anywhere on-wiki, but that would be worth doing. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 22:30, 30 July 2026 (UTC)
::OK, I can try to do it.
::However, I should mention that the examples work kind of well in English, and perhaps they work in Dagbani, but they don't translate easily into Hebrew. Different nouns need different prepositions some letters require morphology transformations and some don't, etc. It cannot really be solved with a few basic concatenations as it was probably done in English.
::The same is true for probably most other languages. [[User:Amire80|Amir E. Aharoni]] ([[User talk:Amire80|talk]]) 23:49, 30 July 2026 (UTC)
::Also, who do I notify when it's ready? [[User:Amire80|Amir E. Aharoni]] ([[User talk:Amire80|talk]]) 00:58, 31 July 2026 (UTC)
:::[[WF:Requests for connection and disconnection]] [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 01:15, 31 July 2026 (UTC)
::::But these are not functions or implementations. These are just example strings. [[User:Amire80|Amir E. Aharoni]] ([[User talk:Amire80|talk]]) 09:58, 31 July 2026 (UTC)
:::::Right, you have to create test cases from them. For example, the "part of" sentences #7 and #8 correspond to [[Z34637]], so start by adding a test there. Then create a new function with the same shape as [[Z34867]] and add all your sentences to it as tests. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 17:49, 31 July 2026 (UTC)
::::::I think people should get help also if they can just write down how a fragment looks like for a specific language. So it should be not required to create a test case. So far I am not good in implementing functions in Wikifunctions. In the last days I have thinked about how to find a good way to define the fragments if the inputs are modified. This is difficult and I am not sure what is the best way. In the past I proposed [[User:Hogü-456/Decision table for Fragment experiments|decision tables]] for it. From my point of view more ideas and ways how to implement functions are needed as I expected more content in more languages in Abstract Wikipedia so far. It seems to me like it is too complicated to contribute to Wikifunctions at the moment. [[User:Hogü-456|Hogü-456]] ([[User talk:Hogü-456|talk]]) 21:31, 11 August 2026 (UTC)
== Contributing to language functions 2: Natural language operations ==
At [https://meta.wikimedia.org/wiki/Requests_for_comment/The_future_of_Abstract_Wikipedia#c-YoshiRulz-20260730202700-Amire80-20260730200900 this comment], @[[User:YoshiRulz|YoshiRulz]] recommended using pages like [[Wikifunctions:Catalogue/Natural language operations/Hebrew]] to see what functions are missing.
What can I actually do with that table? Is there a guide for writing such functions and fitting them into the NLG system?
Is this much better than something like [[User:Dnshitobu/Dagbani Fragments]], which I've mentioned in another comment on this talk page? Or can both be used? [[User:Amire80|Amir E. Aharoni]] ([[User talk:Amire80|talk]]) 22:17, 30 July 2026 (UTC)
:The guide is at [[User:DSantamaria-WMF/Guide: Working with Z14294]] ({{ping|DSantamaria-WMF}} why is this not in Helpspace?), and mirrored in [[toolforge:abstract-data]] IIRC.<br>You can use whatever organisational method you find easiest. (Or if you're lucky enough to have someone to collaborate with, find consensus.) Starting with a Wikitext table means you're not forced to learn about {{Z|14294}} and function creation before you can start working. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 22:34, 30 July 2026 (UTC)
::About the guide, I just end that guide one week ago and I was asking for some feedback on its correctness, once I have some feedback on that I will move it to the proper space.
::And definitely the tool is meant to be used for those purposes (finding all the [https://www.wikifunctions.org/view/en/Z14294 Z14294] that needs coverage in a specific language for example). Let me know if I can help with that. [[User:DSantamaria-WMF|DSantamaria-WMF]] ([[User talk:DSantamaria-WMF|talk]]) 05:36, 31 July 2026 (UTC)
:On [[Abstract:User:HenkvD/Tasks per language]] I drafted a list of tasks per languages and per language fragment. Feel free to comment on this draft. [[User:HenkvD|HenkvD]] ([[User talk:HenkvD|talk]]) 10:17, 31 July 2026 (UTC)
::Linking to the topic two above, one extra thing for Tasks per Language could be a link to a (sectioned) list of ZIDs that are most important to translate. --[[User:99of9|99of9]] ([[User talk:99of9|talk]]) 13:22, 5 August 2026 (UTC)
== On a set type ==
In [[WF:TP]], sets were refused as an independent type (and we are redirected towards using Typed lists). After adding many functions relative to hereditary sets and von Neumann ordinals, I believe a proper hereditary set type could be welcome on Wikifunctions. Here is the rationale behind this:
* In its current state the Wikifunctions composition language lacks basic arithmetic operations. It is interesting to provide a set-based "fallback" for those, even if its performance makes it rarely used. One of Wikifunction's goals is to "Imagine a programming system that allows us to make the next big leap in knowledge representation"<ref group="set">[[Wikifunctions:About]]</ref>, having a proper representation of natural numbers is a good start.
* Set operations are the basis of mathematics. Mathematically, natural numbers are typically defined with sets.<ref group="set">[[w:Set-theoretic definition of natural numbers]]</ref> Note that these mathematical sets are well defined ''hereditary sets'': sets that only contain other hereditary sets or are the empty set.
* Currently Typed list(Object) is the best available representation of hereditary sets. They are however unclear (Object could be anything, while hereditary sets can't contain anything), and a pain to document: every function performing arithmetic using set representation needs to write "von Neumann ordinals represented as hereditary sets"; simply making the input type "Hereditary set" is a much cleaner and clear solution.
* Hereditary sets can easily be defined as Typed list(Hereditary set). I am however unsure wether this kind of recursive type is possible in Wikifunctions.
* Hereditary sets have all the characteristics of a normal type (a validator, an equality function<ref group="set">{{Z+|Z34273}}</ref>, and even type converters<ref group="set">{{Z|Z39064}}'s <code>to_set</code> function</ref>). Making a proper type for them avoids repetitive work and allow for better integration in the Wikisource ecosystem. Note that all these functions are different from their Typed list equivalents (equality ignores duplicates, type converters return set objects and not list objects).
I would love to see a proper hereditary set type being discussed. If this isn't the right place, please tell me, I'm quite new to the type proposal process :) [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 20:30, 8 August 2026 (UTC)
:Another use is to avoid confusion, such as between {{Z|Z34270}} and {{Z|Z34273}}, which has already caused issues before.<ref group="set">[[Talk:Z36677#Wrong set equality]]</ref> [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 20:32, 8 August 2026 (UTC)
:IMO being "reliant" on code Implementations for arithmetic isn't a problem. Von Neumann ordinals are useful as a mathematical foundation but not as a computational one. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 05:18, 9 August 2026 (UTC)
:After further work on von Neumann ordinals related functions, it appears Wikifunctions' builtin type converter from a Python list to a Typed list really struggles with deeply nested lists. I believe having a strong type converter for hereditary sets can really help with fast computations. [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 00:06, 13 August 2026 (UTC)
:I don't have the whole answer, but here's some information to start.
:> Hereditary sets can easily be defined as Typed list(Hereditary set). I am however unsure wether this kind of recursive type is possible in Wikifunctions.
:This is possible! All of the needed features exist in Wikifunctions. If you try to define this type and find it's not possible, then that should be filed as a bug in Wikifunctions (and one we will triage fix through the normal channels).
:I also want to set some expectations. While Wikifunctions can (barring bugs?) absolutely represent a hereditary set type, operations on that type will not necessarily have the expected asymptotic performance characteristics. Generally, the ZObject language specification doesn't allow for an object to have an arbitrary number of members, so any container type will end up relying on some kind of recursively-defined structure like WF's own List type. Practically, this means that the composition language could never do something like an O(1) set lookup.
:That said, I also want to point you to code converters, which would allow the hereditary set type to be converted to a more efficient representation inside of the JS and Python code executors. That's a secondary concern for after the type exists.
:Happy to discuss further! [[User:CMassaro (WMF)|CMassaro (WMF)]] ([[User talk:CMassaro (WMF)|talk]]) 16:02, 13 August 2026 (UTC)
::Hi! I'm guessing the proper way to discuss this would be to make a draft type proposal? I still have some free time left on my holiday and I would love to develop that idea further :)
::I'm aware of performance limitations; my goal is to rely on composition only as some kind of ''theoretical fallback'' while all performance intensive computation is done with code implementations. That way what I make can be "well-defined" and fast at the same time (ideally...). [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 21:38, 13 August 2026 (UTC)
:::Yes, that makes sense. Are you on IRC? #wikipedia-abstract is a very friendly and helpful group; if you're looking to make a new type, that would be a good place to get pointers. [[User:CMassaro (WMF)|CMassaro (WMF)]] ([[User talk:CMassaro (WMF)|talk]]) 09:36, 14 August 2026 (UTC)
<references group="set" />
== Wikifunctions & Abstract Wikipedia Newsletter #259: Congratulations Jules*. An apple is a fruit ==
There is [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-08-05|a new update]] for Abstract Wikipedia and Wikifunctions. Please, come and read it!
In this issue, we congratulate Wikimedian of the Year and we discuss his favourite article in relation to Abstract Wikipedia, we introduce a new Type of function on Wikifunctions, and we take a look at the latest software developments.
Want to catch up with the previous updates? Check [[:f:Special:MyLanguage/Wikifunctions:Status updates|our archive]]!
We also remind you that in the next weeks these newsletter reminders will be paused, and that they will resume in mid-August.
Enjoy the reading! -- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 13:19, 10 August 2026 (UTC)
<!-- Message sent by User:Sannita (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Wikifunctions_%26_Abstract_Wikipedia&oldid=30870212 -->
: {{tq|Given that they are stored as persistent objects, their anonymity is kinda defeated, but it may be useful for testing and documentation purposes.}} Not exactly sure what the point is, then, since we'd still need the same amount of documentation in the description to say which function this is a nonce for. [[User:Aaron Liu|Aaron Liu]] ([[User talk:Aaron Liu|talk]]) 17:55, 10 August 2026 (UTC)
::You can use them without creating a persistent object, [https://www.wikifunctions.org/wiki/Z801?call=%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z801%22%2C%22Z801K1%22%3A%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z39025%22%2C%22Z39025K1%22%3A%5B%22Z38546%22%2C%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z38926%22%2C%22Z38926K1%22%3A%22Z30795%22%2C%22Z38926K2%22%3A%22%5D%5D%22%7D%2C%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z38926%22%2C%22Z38926K1%22%3A%22Z30035%22%2C%22Z38926K2%22%3A%22%5B%5B%22%7D%5D%2C%22Z39025K2%22%3A%7B%22Z1K1%22%3A%22Z11%22%2C%22Z11K1%22%3A%22Z1002%22%2C%22Z11K2%22%3A%22currying%22%7D%7D%7D example]. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 21:54, 10 August 2026 (UTC)
::: Ooh, that's neat. [[User:Aaron Liu|Aaron Liu]] ([[User talk:Aaron Liu|talk]]) 00:17, 11 August 2026 (UTC)
== Wikifunctions as a programming system ==
With [[Z38546|lambda]] and half<ref group="note">For it to be considered complete, shouldn't it take the environment in which to evaluate? Which reminds me, where's local variables in composition? Sure, it can be emulated via an [[w:Immediately invoked function expression|IIFE]], but how does that look like? So, macros as well. I look forward to how a generalized, multilingual Lisp interpreter function would look like..</ref>-of-an-[[Z38590|eval]], the runtime environment of Wikifunctions now resembles a somewhat less [[w:Greenspun's tenth rule|poor LISP]]. Whereas the runtime, as it stands now, is somewhat reminiscent of [[w:Smalltalk|Smalltalk]], [[w:Self (programming language)|Self]] and others, an [[w:object-oriented programming|object-oriented programming]] [https://arxiv.org/abs/2302.10003 ''system'']. <ref group="note">How I wish there was a Wikipedia article about programming systems in this sense... </ref> I wonder: how far/well the ''theory'' (in the sense of [[w:programming language theory|programming language theory]], [[w:semantics (programming languages)|semantics]] and such) behind Wikifunctions have been developed, whether that has been documented somewhere (beyond [[WF:Function model|Function model]]) or it still resides [[w:tacit knowledge|in the minds]] of the implementors for now, which direction<ref group="note">e.g. [[w:Metaobject#Metaobject protocol|Metaobject protocol]] (quite relevant, since it's object-oriented), higher-[[w:Kind (type theory)|kind]]ed types and so on</ref> you wish to develop this system and so on; where such discussions can take place.
Among the [https://meta.wikimedia.org/wiki/Abstract_Wikipedia/Goals#Secondary_goals secondary goals] is: <q>Faster development of new programming languages due to accessing a wider standard library (or repository) of functions in a new dedicated wiki.</q> For which we should have categorized and isolated the portion of functions (and objects), to be made available seperately as self-contained/sufficient collections, that are most relevant to implementing programming languages/systems. Has (if so, how much) there already been any work in this direction?
Since Wikifunctions aims to be natural-language- as well as programming-language-[[w:agnostic (data)|agnostic]], it should be agnostic of any particular representation as well. Thus it should work with different representations (whether it's the underlying (JSON) representation of the objects, the specific choice of numberings, type system or even ontology) and be convertible among equivalence classes of representations (and conceptualizations?). It's this level of generality I'm quite interested about, and wish to have some in-depth discussion (here, insofar relevant to this project and elsewhere).
----
<references group="note"/>
[[User:Smlckz|Smlckz]] ([[User talk:Smlckz|talk]]) 11:31, 12 August 2026 (UTC)
:Hi @[[User:Smlckz|Smlckz]]! I am really interested in the viability of Wikifunctions as a programming system too, but I don't think you're in a for a great experience... While my experience here is quite limited, I worked a lot on a major issue that still bothers me: the composition language is incapable of basic arithmetic. If you look into [[Wikifunctions:Reserved ZIDs]], you'll notice that there isn't any built in implementation for addition, subtraction, and there isn't even a builtin type for Natural numbers. This leads to quite a few fundamental issues, like the fact that the built-in {{Z|80}} depends on the non-built-in {{Z|13518}}...
:Strings aren't much better: the only core functions to manipulate them, {{Z|886}} and {{Z|888}} have been deprecated.
:And while [[Wikifunctions:Function model]] is a great start it is out of date and is nowhere complete enough to be considered a proper specification. If you want any information as to how evaluation and the object model actually work you have to look into the Gitlab repos for the current implementation.
:Last thing, the {{Z|823}} function is a total breach of purity, and allows functions to get information about there own implementation, the environment they run in, etc. This can even be used, I believe, as a source of randomness.
:I have great hopes that Wikifunctions will become a strong programming system one day, but as of now, it's far behind any other functional programming languages. [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 00:15, 13 August 2026 (UTC)
::I hope that folks who are interested, like you two, can help with moving in that direction.
::The development team is not focusing on that secondary goal currently. That shouldn't preclude anyone else from doing so.
::How does Z823 break purity?
::Honest question: do we need closure for anonymous functions, or is alpha conversion sufficient? --[[User:DVrandecic (WMF)|DVrandecic (WMF)]] ([[User talk:DVrandecic (WMF)|talk]]) 12:25, 13 August 2026 (UTC)
:::Sorry for the use of the maybe unclear term purity, I stole it from the Nix language :)
:::Purity would be the principle that the same inputs always return the same outputs, independently from the running environement. {{Z|823}} does the exact opposite by literally giving you information about the outside environment. This constitues a source of randomness that I really do not appreciate from a theoretical standpoint, as it potentially introduces painful runtime errors (race conditions even, albeit only in extreme cases) which no one likes to debug.
:::I personally think that it is quite an useless function (4 uses in mainspace), but if people really want to keep it, I propose to restrict its usage to tests or make any function using it be marked as "impure" too.
:::To answer your last question, I don't really understand it --- I'm sorry for showing my lack of computer science basics here :') If you wish to explain it further, I'd be happy to give you my opinion. [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 21:44, 13 August 2026 (UTC)
:::{{tq|Honest question: do we need closure for anonymous functions, or is alpha conversion sufficient?}} If we want to evolve towards a proper [[w:rewriting|rewriting]] system, conversion and reduction rules from lambda calculus might suffice. But, for now, if I have understood the current system correctly, we'd need to have closures, if only for reasons of efficiency. Imagine big, non-persistent, runtime objects, being referenced multiple times in anonymous functions, after beta reduction, to get represented with that many copies in their bodies.. (The evaluator might not be affected, but once these anonymous functions need to persist or even just pass through programming language boundaries, forcing normalization/serialization..) So, if we want to support anonymous functions as first-class objects of the kind of system we currently have, closures are essential. [[User:Smlckz|Smlckz]] ([[User talk:Smlckz|talk]]) 03:09, 14 August 2026 (UTC)
::{{tq|I worked a lot on a major issue that still bothers me: the composition language is incapable of basic arithmetic.}} When anonymous functions work better, we should be able to implement [[w:Church encoding|Church numerals]] using them. Similarly, when we'll have support for sum types, we could use that to implement [[w:Peano axioms|Peano arithmetic]] (as linked list of unit type). While these are interesting for theoretical purposes, we can't rely on them in practice, due to the kind of runtime we have here; it'd be too inefficient for any non-trivial use. Like functions can have multiple implementations, types could do the same, giving rise to typeclasses.. <small>The aspiration towards purity gives rise to expectations of realization of [[w:Curry–Howard correspondence|program-proof equivalence]], in having proofs of theorems hosted alongside ordinary functions (and perhaps proofs of correctness of such ordinary functions), but that's too far in the future for us to consider.</small> We can then have performant implementations of types alongside theoretically interesting ones. {{tq|This leads to quite a few fundamental issues, like the fact that the built-in {{Z|80}} depends on the non-built-in {{Z|13518}}...}} Which does sound quite backwards. I'd've expected to see a built-in natural number type, with byte defined as a derived type out of it. (For comparison, here's what Common Lisp came up with: [https://metaspec.dev/t_integer.html] [https://metaspec.dev/t_unsigned-byte.html]) {{tq|Last thing, the {{Z|823}} function is a total breach of purity, and allows functions to get information about there own implementation, the environment they run in, etc.}} This information can also be used to choose more performant (or, for a particular environment, a better-suited) implementation amongst available. I don't expect this system to be able uphold the level of purity expected from a purely functional programming language, but only up to a certain degree: that most functions won't directly need to rely on such escape hatches. (Compare Rust's <code>unsafe</code>. Similarly, consider the caveats of [https://wiki.haskell.org/index.php?title=Hask '''Hask'''].) [[User:Smlckz|Smlckz]] ([[User talk:Smlckz|talk]]) 17:41, 13 August 2026 (UTC)
:::Church numerals are an idea I love, and Peano arithmetic too! My initial attempt with von Neumann ordinals quickly stopped because of speed concerns :') Typeclasses is an idea I had a while ago (although I phrased it as Single Type, Multiple Representations) and could further improve Wikifunctions' abstractness and maybe even performance. I agree the lack of a number type is a major flaw in the system. Last point, I think implementation choice should mostly be done by the system automatically; what you call <code>unsafe</code> is similar to the concept of impurity in Nix, where calling an impure function makes the function calling it impure too. I believe an automatic explicit visible marking of such impure functions could help prevent their abusive use.
:::Given that some people seem interested in the ideas we discussed but it isn't a main focus at the moment, would you like us to discuss further ideas such as the writing of a formal Wikifunctions ''specification'', some new type proposals for an integer type, and maybe even develop the idea of typeclasses?
:::If you'd like a more dynamic discussion I have Discord if needed (hope it's not illegal to say that!) [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 21:52, 13 August 2026 (UTC)
::::I'd like to discuss, along with participation from implementors, such that we don't build [[wikt:castle in the air|castle in the air]]. With how things are in flux, designing a specification now might not be a good idea. At least, we'd need multiple competing full-featured implementations such that the need for specification can naturally arise. We can certainly discuss existing implementations of various programming systems: what to pick, what to discard and what to innovate in our circumstances.. <small><small>I don't use Discord. You can talk with me on [[w:IRC|IRC]]: find me in the Libera.chat channel <code>#wikipedia-abstract</code>. If you don't have an IRC client set up, you can use Libera's [https://libera.chat/guides/clients web clients]. Mention the time (with timezone) you'll be available. We can discuss which (better or worse) protocol/platform to use for further communication there. </small></small> [[User:Smlckz|Smlckz]] ([[User talk:Smlckz|talk]]) 04:16, 14 August 2026 (UTC)
:::::I do have IRC! <code>virinas-code</code>, I use the Konversation client. You do seem to have a lot more experience than me with functional programming so I'll be happy to discuss ideas with you :)
:::::I'm typically available from 2PM to 8PM and from 11PM to 2AM-4AM in the Europe/Paris timezone. I think one of the first thing we should do is fix the built-in lack of a number type. A specification can come much later, but we do need to reinforce existing documentation (e.g. by completing [[Wikifunctions:Function model]]). [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 12:48, 14 August 2026 (UTC)
== Wikifunctions & Abstract Wikipedia Newsletter #260: Shoutout to User:99of9 ==
There is [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-08-13|a new update]] for Abstract Wikipedia and Wikifunctions. Please, come and read it!
In this issue, we congratulate our own User:99of9 for his extensive work with the Wikifunctions & Abstract Wikipedia communities, we discuss what happened at Wikimania, we introduce a document for interested communities to join Abstract Wikipedia, and we take a look at the latest software developments.
Want to catch up with the previous updates? Check [[:f:Special:MyLanguage/Wikifunctions:Status updates|our archive]]!
Enjoy the reading! -- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 15:55, 13 August 2026 (UTC)
<!-- Message sent by User:Sannita (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Wikifunctions_%26_Abstract_Wikipedia&oldid=30870212 -->
a6ojik7mb1ajeuvyllxecdm0pv8mbgm
299806
299803
2026-08-16T05:47:54Z
Omar M. Ghaly
99256
/* Showing where a function is used */ new section
299806
wikitext
text/x-wiki
{{shortcut|[[WF:CHAT]]|[[WF:PC]]|[[WF:VP]]}}
__NEWSECTIONLINK__
[[Category:Help]] <!-- please do not remove this line -->
Welcome to the Project chat, a place to discuss any and all aspects of Wikifunctions: the project itself, policy and proposals, individual data items, technical issues, etc.
Other places to find help:
* [[Wikifunctions:Administrators' noticeboard]]
* [[Wikifunctions:Report a technical problem]]
* [[Wikifunctions:FAQ]]
{{Autoarchive resolved section
|age = 1
|archive = ((FULLPAGENAME))/Archive/((year))/((month:##))
|timeout=30
}}
{{Archives|{{#tag:div|<br />{{Flatlist|{{Special:PrefixIndex/WF:Project chat/Archive/|stripprefix=1|hideredirects=1}}
|class=mw-collapsible-content|style=font-size:92%;}}|class="mw-collapsible mw-collapsible-toggle mw-collapsed"}}
|prefix=WF:Project chat/Archive/
}}
== Wikifunctions & Abstract Wikipedia Newsletter #257: Beyond syntactic tables ==
There is [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-07-16|a new update]] for Abstract Wikipedia and Wikifunctions. Please, come and read it!
In this issue, we discuss syntactic tables and news in Types, we show some community blogposts and tools, we remind you of the Wikifunctions and Abstract Wikipedia events at Wikimania 2026, and we take a look at the latest software developments.
Want to catch up with the previous updates? Check [[:f:Special:MyLanguage/Wikifunctions:Status updates|our archive]]!
We also remind you that in the next weeks these newsletter reminders will be paused, and that they will resume in mid-August.
Enjoy the reading! -- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 10:55, 17 July 2026 (UTC)
<!-- Message sent by User:Sannita (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Wikifunctions_%26_Abstract_Wikipedia&oldid=30755600 -->
== Update on Blockly editor ==
In case anyone is actually using [[User:YoshiRulz/Blockly|my external editor based on Blockly]] (there's no analytics so I have no idea): I cleared out my "papercut" backlog yesterday, fixing bugs, making exporting smoother, and adding more blocks necessary for NLG functions. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 15:35, 20 July 2026 (UTC)
:Great! I'll try it out now. [[User:So9q|So9q]] ([[User talk:So9q|talk]]) 18:15, 21 July 2026 (UTC)
== Building reproducible, computable phenotypes on WikiFunctions ==
Hello all! Very new to WikiFunctions, more involved in the Wikidata side of things, but I was thinking that WikiFunctions may be a great space for computable phenotypes. These are structures (lists of rules) used in medicine to determine if a person has or doesn't have a particular condition (type 2 diabetes, asthma, etc.). There is a constant issue in my field of recreating the wheel for these phenotypes and very few resources where they are openly available (there was PheKB but it isn't updated often and only contains natural language descriptions of the phenotypes and often no code or other information to reproduce). My thought process was that an algorithm for a computable phenotype would essentially be a list of synthetic (fake) patients with certain characteristics, and then the computable phenotype would be run, and it would return a list of patients who have that condition. The major use case would be allowing individuals to download these code snippets to increase general reproducibility in medical care and studies overall. Would it be possible to utilize WikiFunctions for this? [[User:Superraptor123|Superraptor123]] ([[User talk:Superraptor123|talk]]) 08:25, 23 July 2026 (UTC)
:({{Q|25203551}})<br>What system(s) are currently in use for doing such computations? Python scripts?<br>{{SITENAME}} currently does not cater to offline execution, so I imagine it wouldn't be suitable for medical ''practice'' where there are strict data protections. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 11:35, 23 July 2026 (UTC)
::Currently this involves something along the lines of a structured series of descriptors that make up the computable phenotype (ICD codes, RxNorm codes, lab test levels, age ranges, etc.), a fake "patient" (or list of "fake" patients) as input, and the patients that fit the computable phenotype criteria as output. In terms of systems currently in use, they are kind of-- everything. SQL, Java, SPARQL, Python, Perl, Ruby, etc. Currently I develop mostly using Python, so I would likely use that for implementation. And of course, yes, they would not be suitable for practice due to protections! For an example of an algorithm that I think could be useful to adapt, see: https://phekb.org/phenotype/type-2-diabetes-mellitus. [[User:Superraptor123|Superraptor123]] ([[User talk:Superraptor123|talk]]) 12:02, 23 July 2026 (UTC)
:::So your reference is a decision tree, and are each of the "questions" evaluated by looking up a property/element in the input? That could be translated into a Function relatively easily. Most examples I can think of are NLG-related, like [[Z36580]], but there are [[WF:Catalogue/Wikidata_operations#Real_life_information_retrieved_using_Wikidata|some simpler Functions]] which extract parts of a given Wikidata Item, and [[Z34840]] works with the representations of numbers. What is the structure of the input EMR? [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 13:54, 23 July 2026 (UTC)
::::Precisely-- I think most of these would be simple implementations, but good to generally have archived as most of them become lost media(-ish). Best-case, the input EMR would be a set of synthetic patients using the OMOP CDM (https://ohdsi.github.io/CommonDataModel/), the most common open data model in the space. It does mean it wouldn't be completely system agnostic, but it would most in the majority of situations. [[User:Superraptor123|Superraptor123]] ([[User talk:Superraptor123|talk]]) 14:07, 23 July 2026 (UTC)
:::::If you decide to go ahead with this, you should [[WF:Type_proposals#Templates|propose a new type]] since it looks like a simple [[Z881|list]] or [[Z883|dict]] won't cover it. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 15:31, 23 July 2026 (UTC)
:Did you look much into the possibility of encoding these in Wikidata somehow? Have [[d:WD:WikiProject Medicine]] / [[meta:Wiki Project Med]] investigated it before? [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 15:31, 23 July 2026 (UTC)
::I don't think so-- it could potentially be somewhat encoded in Wikidata-- main issue is that it uses a list of codes which Wikidata sometimes attaches to the same entity in ways that don't match up 1-to-1. And there may be drift in those codes over time, so the list of codes would have to be hard-coded. But there should generally be a way to link from the WikiFunction to Wikidata right? [[User:Superraptor123|Superraptor123]] ([[User talk:Superraptor123|talk]]) 22:06, 23 July 2026 (UTC)
:::Linking ''to WF'' from an Item on Wikidata [[d:WD:Wikifunctions/Development|is an open question]], beyond sitelinks of course. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 12:02, 24 July 2026 (UTC)
::::So maybe creating functions here makes the most sense for the time being? I want to make sure I'm following the rules as intended but would that be okay for now? (Creating one or two and then presenting to the community to see if things look acceptable?) [[User:Superraptor123|Superraptor123]] ([[User talk:Superraptor123|talk]]) 06:46, 25 July 2026 (UTC)
:::::Yes, you're welcome to try! --[[User:99of9|99of9]] ([[User talk:99of9|talk]]) 06:53, 25 July 2026 (UTC)
::::::Thanks! I've been thinking about this a little bit-- in terms of objects, it may make sense to have an object that is an OMOP CDM database (which is allowed by their licensing, as the database schema is open source). But I'm wondering if it should instead be an extension of a more generic database object? [[User:Superraptor123|Superraptor123]] ([[User talk:Superraptor123|talk]]) 11:06, 28 July 2026 (UTC)
== OWID's replacement for Extension:Graph ==
[[meta:OWID Gadget]] / [[c:Module:Owidslider]]<br>I'm currently watching the Wikimania talk "[https://wikimedia.eventyay.com/wm/wikimania2026/talk/CMPQQJ/ Bringing Interactive Graphs from Our World in Data to Wikipedia]" going through the latest iteration of their interactive graphs, and they seem to be in a good position now, including <abbr title="internationalisation">i18n</abbr>. I think it would be nice to use them in Abstract Wikipedia articles as well, but it's implemented as a Lua module + JS gadget. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 13:00, 23 July 2026 (UTC)
== Friday's talks at Wikimania ==
{{noping|Mahir256}} just finished his talk/workshop "[https://wikimedia.eventyay.com/wm/wikimania2026/talk/HYTQBF From Abstract Content to Concrete Text with Wikidata Lexemes]" on {{Q|136813071}}. You can [https://www.youtube.com/watch?v=hvpOFVZhgnE&t=24370s watch it on YouTube here] (though there were audio problems, '''volume warning''').
<br>The workshop immediately before that was "[https://wikimedia.eventyay.com/wm/wikimania2026/talk/TWGKWB/ Making indigenous languages ready for Wikifunctions]". Hello to anyone who came from there! [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 15:58, 24 July 2026 (UTC)
:@[[User:YoshiRulz|YoshiRulz]]: Thanks for highlighting these! There's also today's workshop [https://www.youtube.com/watch?v=nCVeXaAk77c on YouTube] about 90 minutes after the start of the stream, though that might not be as interesting to watch. [[User:Jdforrester (WMF)|Jdforrester (WMF)]] ([[User talk:Jdforrester (WMF)|talk]]) 13:28, 25 July 2026 (UTC)
== Testing an unconnected implementation ==
Hi everyone!
A few hours ago, I created [[Z38370|my first function]] together with [[Z38371|an unfinished Python implementation]]. When I wanted to test my implementation using the "Try this implementation" box in the bottom-right corner, I noticed that the button "Run function" was grayed out and there was a warning saying "This function has no connected implementations."
As it seems, you can only run an implementation if its corresponding function has at least one connected implementation. The implementation you want to run doesn't even have to be connected itself, as I can run the unconnected implementation [[Z12949]] without any problems, even when I modify its code in the editor.
Is this behavior intentional? And is there any way I can test my implementation? [[User:Tc14Hd|Tc14Hd]] ([[User talk:Tc14Hd|talk]]) 19:28, 28 July 2026 (UTC)
:Yeah, it's [[phab:T343559#11421293|a pointless limitation]]. I've connected the test for you. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 23:56, 28 July 2026 (UTC)
::Thanks! I knew I couldn't be the only one who noticed this problem... [[User:Tc14Hd|Tc14Hd]] ([[User talk:Tc14Hd|talk]]) 13:00, 29 July 2026 (UTC)
== [[Help:Categorization]] ==
Hi! Just wanted to let everyone know that I recently created [[Help:Categorization]] as a draft help page explaining how categories work. I'm new to Wikifunctions, but I used my knowledge of MediaWiki in general combined with some research to write it. If anyone would like to improve it, feel free to. [[User:Axolitl|Axolitl]] ([[User talk:Axolitl|talk]]) 04:32, 30 July 2026 (UTC)
:It's just a general MediaWiki categories guide. It doesn't have anything special for Wikifunctions, which doesn't really have categories in the main namespace. [[User:Amire80|Amir E. Aharoni]] ([[User talk:Amire80|talk]]) 16:42, 30 July 2026 (UTC)
== Wikifunctions & Abstract Wikipedia Newsletter #258: Abstract Wikipedia at Wikimania ==
<div lang="en" dir="ltr" class="mw-content-ltr">There is [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-07-29|a new update]] for Abstract Wikipedia and Wikifunctions. Please, come and read it!
In this issue, we discuss the presentations and workshops at Wikimania, including a features feedback request based on what we heard there, and highlight new features shipped this week including diffs for Wikifunctions.
Want to catch up with the previous updates? Check [[:f:Special:MyLanguage/Wikifunctions:Status updates|our archive]]!
Enjoy the reading! [[m:user:Quiddity (WMF)|Quiddity (WMF)]] 19:05, 30 July 2026 (UTC) </div>
<!-- Message sent by User:Quiddity (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Wikifunctions_%26_Abstract_Wikipedia&oldid=30870212 -->
== Impact of labels translation ==
A lot of the edits on Wikifunctions are additions and changes of labels, descriptions, and aliases of functions, inputs, tests, and implementations. (I will subsequently call this "labels" for simplicity.)
At Wikimania 2026, I heard from editors in several languages that they were encouraged to translate Wikifunctions' labels, and it made me wonder: Are there reasons to think that editing those labels has impact on the usage of Wikifunctions and Abstract Wikipedia by people who speak these languages? In general, I am quite famous as a major supporter of translating everything imaginable, but there should also be priorities, so if editing those labels doesn't have impact, then perhaps editors should be encouraged to translate something more visible.
After English, [https://quarry.wmcloud.org/query/103687 the most common languages for editing labels] are German, French, Igbo, Italian, Indonesian, Bengali, Dutch, Japanese, Hindi, and Hebrew <small>([[User:Amire80/wikifunctionsanalytics|information about this data]])</small>.
Looking a bit more deeply into some of those:
* Hebrew labels were mostly contributed by @[[User:מקף|מקף]] (pronounced Maqaf), and a few were contributed by myself. I edit them mostly because I love seeing the UI translated as completely as possible, and since some object labels are integrated into the site's UI, they should be translated. Does this complete translation raise the usage of Wikifunctions by Hebrew speakers, though? I doubt it. Maqaf probably edits them because he creates some functions related to the Hebrew language, but that's just a guess, and I'd love to hear more about his motivation.
* The top editor of German labels is @[[User:Ameisenigel|Ameisenigel]], who is generally a major contributor to translations across many Wikimedia projects, so perhaps his motivation is similar to mine, but he does it much more than I do. He also edits the content of actual functions, implementations, and tests. Some of the other German label editors do almost nothing but editing labels, although some, like @[[User:Lucas Werkmeister|Lucas Werkmeister]] and of course @[[User:Denny|Denny]] also contribute to actual functions and implementations. But back to the main question: German is the top language for label translations thanks to [[User:Ameisenigel|Ameisenigel]]'s huge work, but does it, for example, impact the creation of abstract content that works in German? When I try to select German on most abstract articles, I usually don't see a fully translated article. But maybe I'm not searching well?
* The situation is a bit similar with French. @[[User:Jérémy-Günther-Heinz Jähnick|Jérémy-Günther-Heinz Jähnick]] is the top French label editor, but he makes almost no contributions to functions and implementations. The second top label editor is @[[User:VIGNERON|VIGNERON]], who does contribute quite a lot to functions and implementations. There are several other prolific French label editors, but most of them contribute little or nothing at all to functions and implementations. And as with German, I almost never see abstract articles fully translated into French.
* Igbo has shown disproportionate label editing activity. I don't know why exactly, but I guess that there was some event that encouraged people to write labels (if anyone knows more, please tell me). All the top 10 Igbo label editors only wrote labels and didn't do anything else with functions or implementations. There are quite a lot of [[Wikifunctions:Catalogue/Natural language operations/Igbo|Igbo language functions]], all of which were made by @[[User:Dolphyb|Dolphyb]], who contributed very little to translations. This, by itself, is not a problem at all: it's very common that programmers mostly write code and translators mostly translate. There is still the same question, though: do those language functions and massive label translations contribute to achieving Abstract Wikipedia's goal of generating Igbo content? I haven't seen evidence to support that, but I'd love to see it if anyone can present it.
* The situation with Indonesian is similar to the situation with Igbo, but there are [[Wikifunctions:Catalogue/Natural language operations/Igbo|much fewer language functions for Indonesian]].
So that's what I can glean. If I'm incorrect about anything or if you can add some more info, please speak up. Because of my interest in localization, I'll be very grateful to learn more. [[User:Amire80|Amir E. Aharoni]] ([[User talk:Amire80|talk]]) 19:50, 30 July 2026 (UTC)
:Adding labels in other languages has several advantages for the project. To name a few
:* It is an easy introduction to Wikifunctions
:* it is good for the image of Wikifunctions and Abstract Wikipedia as not being English centric
:* Contributors of Wikifunctions should be able to add texts in their own languages, so translations main functions is vital for that. That includes labels, descriptions and inputs.
:Not many labels are translated yet and not many functions work yet for other languages than English at the moment. The community is still very small, but I hope both will grow over time. They can mutually benefit each other. [[User:HenkvD|HenkvD]] ([[User talk:HenkvD|talk]]) 21:19, 30 July 2026 (UTC)
::@[[User:HenkvD|HenkvD]], I heard similar claims before, but it's to scrutinize them.
::{{tq|It is an easy introduction to Wikifunctions}} - and what does this introduction lead to? I haven't seen clear evidence that translating labels leads to other contributions or to using functions.
::{{tq|it is good for the image of Wikifunctions and Abstract Wikipedia as not being English centric}} - is it actually good? Evidently, many people in recent critical discussions about Wikifunctions and Abstract Wikipedia still think that it's English-centric.
::{{tq|Contributors of Wikifunctions should be able to add texts in their own languages, so translations main functions is vital for that. That includes labels, descriptions and inputs}} - it ''sounds'' vital; as I said, I support localization of everything in principle, and this is the main reason for thinking like that. However, this doesn't answer my question: what is the ''actual'' impact? Wikifunctions has been online for three years, so we should have seen something by now, and we aren't seeing anything.
::{{tq|Not many labels are translated yet}} - how do you define "many"? Thousands of labels were translated, and I think that it is "many". But, as you say, {{tq|not many functions work yet for other languages than English at the moment}} - so evidently, translating labels didn't lead to writing those functions, at least yet. [[User:Amire80|Amir E. Aharoni]] ([[User talk:Amire80|talk]]) 21:43, 30 July 2026 (UTC)
:::Wikifunctions might be live for 3 years, but Abstract Wikipedia is only lie a few months. As it is early days for '''Language''' functions, and the first are made in English it still is English centric. THAT NEEDS TO CHANGE. Translations should help with that. [[User:HenkvD|HenkvD]] ([[User talk:HenkvD|talk]]) 22:08, 30 July 2026 (UTC)
:See also [[Help:Multilingual]]. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 21:25, 30 July 2026 (UTC)
::Does it say anything about the ''impact'' of translating labels? I don't see it. [[User:Amire80|Amir E. Aharoni]] ([[User talk:Amire80|talk]]) 21:44, 30 July 2026 (UTC)
:::No, I bring it up only as a possible explanation of translators' motives, and to point out where the documentation is should you want to improve it. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 22:00, 30 July 2026 (UTC)
:@[[User:Amire80|Amire80]]: I've seen folks at Wikimania use Abstract Wikipedia in their language and start and edit articles in Tyap, Japanese, and French. Having labels for those functions unlocks the Abstract Wikipedia to be used entirely in their language. --[[User:Denny|Denny]] ([[User talk:Denny|talk]]) 06:07, 31 July 2026 (UTC)
::I understand the general idea of what this is supposed to be. I wonder whether there is actual measurable impact.
::You give Tyap as a successful example, but it's in fact the example of the opposite. I found zero functions whose name is translated into this language. I found one implementation whose name is translated into Tyap, [[Z29740]], and also a few translated language names and type names. My ''intuition'' is that type names are actually among the most important things to translate here, but very few of them are translated at the moment, and I'm trying to talk about measurable impact here and not about intuition. And as you say in the newsletter, the Tyap contributor was able to do something, even though almost nothing is translated into his language.
::The label translation statistics for Japanese and French are very good, but seeing something at Wikimania is anecdotal; it's not measurable impact.
::So again: I understand the general idea of why localization is desirable. I've dedicated more than sixteen years of my life to promoting this idea, I keep doing it now, and I plan to keep doing for as long as my health allows me to do it. But here, I'm asking not about the idea, but about the impact. [[User:Amire80|Amir E. Aharoni]] ([[User talk:Amire80|talk]]) 09:57, 31 July 2026 (UTC)
:::Hi {{ping|Amire80}}. I’m not skilled at programming, but I manage to handle the translation work—even if it isn’t perfect. I’m doing my bit to help out. [[User:Jérémy-Günther-Heinz Jähnick|Jérémy-Günther-Heinz Jähnick]] ([[User talk:Jérémy-Günther-Heinz Jähnick|talk]]) 22:29, 1 August 2026 (UTC)
::::Thank you! It's fine, not everyone has to know programming. I'm just wondering how much is it actually helping out. I'm not necessarily saying that it doesn't, but I do wonder how to measure that it does. [[User:Amire80|Amir E. Aharoni]] ([[User talk:Amire80|talk]]) 05:50, 2 August 2026 (UTC)
:::@[[User:Amire80|Amire80]]: I don't even understand what you are asking for. Measuring what impact, and how? The Tyap editor was able to use it because he also spoke English. If he wouldn't have, he would have an even harder time to use the interface. --[[User:Denny|Denny]] ([[User talk:Denny|talk]]) 07:30, 2 August 2026 (UTC)
::::Does the translation of function labels into a language have a measurable impact on the usage of Wikifunctions and Abstract Wikipedia in that language?
::::For example, a lot of function labels are translated into Igbo. Does it mean that a lot of abstract articles are fully readable in Igbo?
::::Same question about German, French, Italian, etc. [[User:Amire80|Amir E. Aharoni]] ([[User talk:Amire80|talk]]) 11:44, 2 August 2026 (UTC)
:::::Translation of labels makes it easier to understand the function side of Abstract Wikipedia, and easier to add and change the lemma. It does NOT have affect on the final text in the language. It may help in writing functions for that language. As Abstract Wikipedia is a fairly new project with few contributors the impact cannot be measured. How would you measure that anyway? [[User:HenkvD|HenkvD]] ([[User talk:HenkvD|talk]]) 12:02, 2 August 2026 (UTC)
::::::They ''can'' make it easier to understand the function, but ''do'' they make it easier?
::::::For example, there was obviously some organized activity to translate labels into Igbo. Look at [https://quarry.wmcloud.org/query/107942 this query]: You can see that there was a lot of label editing activity in Igbo in February, March, April, May, June, and September 2024, and very little activity in other times. It was probably related to this event: [[:m:Event:Translation of catalogue of available functions on wikifunctions igbo]].
::::::There was also [https://diff.wikimedia.org/2026/01/16/introducing-data-and-functions-reflections-from-indonesian-data-and-technology-week-2025/ a similar event for Indonesian], and you can see in [https://quarry.wmcloud.org/query/107943 the statistics for Indonesian] that there was a peak of edits in December 2025, as described in the blog post.
::::::I don't know if these events were funded with money, but they were definitely ''organized''. Organization requires effort. And of course, effort was also invested into the actual translation. Effort should be invested if it has some impact, and if it has no impact, then it should be invested elsewhere.
::::::How would I measure it? Some examples:
::::::# Are there abstract articles that can actually be fully viewable in Igbo and Indonesian? As far as I can see, there aren't, but correct me if I'm wrong.
::::::# Are there many language functions that can generate text in Igbo and Indonesian, and are those functions actually used? The answer to the first question is "not many" ([[Wikifunctions:Catalogue/Natural language operations/Igbo|Igbo]], [[Wikifunctions:Catalogue/Natural language operations/Indonesian|Indonesian]]); the answer to the second and more important question is "they are probably not used". But again, correct me if I'm wrong.
::::::[[User:Amire80|Amir E. Aharoni]] ([[User talk:Amire80|talk]]) 21:14, 4 August 2026 (UTC)
:::::::I think you're right. To help translation to make more impact, we could document which of our 39,000 objects are most important to translate. For example, the list of types, the list of the fragment functions most used on AW, and the list of functions most used in compositions on WF. Your query tool may be able to help make the third of these? --[[User:99of9|99of9]] ([[User talk:99of9|talk]]) 00:58, 5 August 2026 (UTC)
::::::::I'll try, thanks for the tip! [[User:Amire80|Amir E. Aharoni]] ([[User talk:Amire80|talk]]) 02:09, 5 August 2026 (UTC)
:Perhaps the more useful question is not the impact of contributing labels, but the impact of not contributing them. At present, a user who cannot search for a function using their own language is effectively required to use English (or another well-supported language). Such users do not create a visible failure case.
:It may therefore be difficult to measure the benefit of translated labels from usage statistics alone because the absence of translations creates a barrier before usage even begins.
:There may also be a feedback loop. English currently has the greatest discoverability, which means English-speaking contributors are more likely to notice when a function cannot be found, and to add aliases or improve labels accordingly. This may mean that English has a higher proportion of functions with aliases, and typically more aliases for any such function. Languages with less discoverability have fewer opportunities for this kind of positive feedback. [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 10:09, 5 August 2026 (UTC)
::The questions to ask about this are: which languages are the most successful ones in terms of abstract articles translation? What made them successful? Can it be replicated?
::But that would be a topic for a separate thread.
::Here, I'm wondering about the impact of what people do invest their effort in. [[User:Amire80|Amir E. Aharoni]] ([[User talk:Amire80|talk]]) 11:04, 5 August 2026 (UTC)
== Contributing to language functions 1: Language Fragments ==
At Wikimania, @[[User:Dnshitobu|Dnshitobu]] recommended cloning a page like [[User:Dnshitobu/Dagbani Fragments]] and filling it with my own language. If I understand correctly, it's supposed to help to create functions for handling my language.
I created [[User:Amire80/Hebrew Fragments]] and started filling it. There are a bunch of problems with it, but let's say that I can complete it. Is it actually useful? Once it's complete, what do I do with it?
More broadly, if it is useful, is there a written guideline anywhere that recommends doing it? If I didn't visit Wikimania, I wouldn't know about it. [[User:Amire80|Amir E. Aharoni]] ([[User talk:Amire80|talk]]) 22:10, 30 July 2026 (UTC)
:From [[WF:Status_updates/2026-07-29#Abstract_Wikipedia_at_Wikimania|this week's newsletter]]: <q>[Dnshitobu's] main proposal is that editors can create simple wikitext tables of example fragments in their language so that others could later do the technical work of setting up the lexemes and NLG functions.</q> The next step is to correlate your example sentences to the top-level NLG functions, then add 1 or 2 test cases to each function from your table.<br>I don't believe {{noping|Dnshitobu}} wrote up the process anywhere on-wiki, but that would be worth doing. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 22:30, 30 July 2026 (UTC)
::OK, I can try to do it.
::However, I should mention that the examples work kind of well in English, and perhaps they work in Dagbani, but they don't translate easily into Hebrew. Different nouns need different prepositions some letters require morphology transformations and some don't, etc. It cannot really be solved with a few basic concatenations as it was probably done in English.
::The same is true for probably most other languages. [[User:Amire80|Amir E. Aharoni]] ([[User talk:Amire80|talk]]) 23:49, 30 July 2026 (UTC)
::Also, who do I notify when it's ready? [[User:Amire80|Amir E. Aharoni]] ([[User talk:Amire80|talk]]) 00:58, 31 July 2026 (UTC)
:::[[WF:Requests for connection and disconnection]] [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 01:15, 31 July 2026 (UTC)
::::But these are not functions or implementations. These are just example strings. [[User:Amire80|Amir E. Aharoni]] ([[User talk:Amire80|talk]]) 09:58, 31 July 2026 (UTC)
:::::Right, you have to create test cases from them. For example, the "part of" sentences #7 and #8 correspond to [[Z34637]], so start by adding a test there. Then create a new function with the same shape as [[Z34867]] and add all your sentences to it as tests. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 17:49, 31 July 2026 (UTC)
::::::I think people should get help also if they can just write down how a fragment looks like for a specific language. So it should be not required to create a test case. So far I am not good in implementing functions in Wikifunctions. In the last days I have thinked about how to find a good way to define the fragments if the inputs are modified. This is difficult and I am not sure what is the best way. In the past I proposed [[User:Hogü-456/Decision table for Fragment experiments|decision tables]] for it. From my point of view more ideas and ways how to implement functions are needed as I expected more content in more languages in Abstract Wikipedia so far. It seems to me like it is too complicated to contribute to Wikifunctions at the moment. [[User:Hogü-456|Hogü-456]] ([[User talk:Hogü-456|talk]]) 21:31, 11 August 2026 (UTC)
== Contributing to language functions 2: Natural language operations ==
At [https://meta.wikimedia.org/wiki/Requests_for_comment/The_future_of_Abstract_Wikipedia#c-YoshiRulz-20260730202700-Amire80-20260730200900 this comment], @[[User:YoshiRulz|YoshiRulz]] recommended using pages like [[Wikifunctions:Catalogue/Natural language operations/Hebrew]] to see what functions are missing.
What can I actually do with that table? Is there a guide for writing such functions and fitting them into the NLG system?
Is this much better than something like [[User:Dnshitobu/Dagbani Fragments]], which I've mentioned in another comment on this talk page? Or can both be used? [[User:Amire80|Amir E. Aharoni]] ([[User talk:Amire80|talk]]) 22:17, 30 July 2026 (UTC)
:The guide is at [[User:DSantamaria-WMF/Guide: Working with Z14294]] ({{ping|DSantamaria-WMF}} why is this not in Helpspace?), and mirrored in [[toolforge:abstract-data]] IIRC.<br>You can use whatever organisational method you find easiest. (Or if you're lucky enough to have someone to collaborate with, find consensus.) Starting with a Wikitext table means you're not forced to learn about {{Z|14294}} and function creation before you can start working. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 22:34, 30 July 2026 (UTC)
::About the guide, I just end that guide one week ago and I was asking for some feedback on its correctness, once I have some feedback on that I will move it to the proper space.
::And definitely the tool is meant to be used for those purposes (finding all the [https://www.wikifunctions.org/view/en/Z14294 Z14294] that needs coverage in a specific language for example). Let me know if I can help with that. [[User:DSantamaria-WMF|DSantamaria-WMF]] ([[User talk:DSantamaria-WMF|talk]]) 05:36, 31 July 2026 (UTC)
:On [[Abstract:User:HenkvD/Tasks per language]] I drafted a list of tasks per languages and per language fragment. Feel free to comment on this draft. [[User:HenkvD|HenkvD]] ([[User talk:HenkvD|talk]]) 10:17, 31 July 2026 (UTC)
::Linking to the topic two above, one extra thing for Tasks per Language could be a link to a (sectioned) list of ZIDs that are most important to translate. --[[User:99of9|99of9]] ([[User talk:99of9|talk]]) 13:22, 5 August 2026 (UTC)
== On a set type ==
In [[WF:TP]], sets were refused as an independent type (and we are redirected towards using Typed lists). After adding many functions relative to hereditary sets and von Neumann ordinals, I believe a proper hereditary set type could be welcome on Wikifunctions. Here is the rationale behind this:
* In its current state the Wikifunctions composition language lacks basic arithmetic operations. It is interesting to provide a set-based "fallback" for those, even if its performance makes it rarely used. One of Wikifunction's goals is to "Imagine a programming system that allows us to make the next big leap in knowledge representation"<ref group="set">[[Wikifunctions:About]]</ref>, having a proper representation of natural numbers is a good start.
* Set operations are the basis of mathematics. Mathematically, natural numbers are typically defined with sets.<ref group="set">[[w:Set-theoretic definition of natural numbers]]</ref> Note that these mathematical sets are well defined ''hereditary sets'': sets that only contain other hereditary sets or are the empty set.
* Currently Typed list(Object) is the best available representation of hereditary sets. They are however unclear (Object could be anything, while hereditary sets can't contain anything), and a pain to document: every function performing arithmetic using set representation needs to write "von Neumann ordinals represented as hereditary sets"; simply making the input type "Hereditary set" is a much cleaner and clear solution.
* Hereditary sets can easily be defined as Typed list(Hereditary set). I am however unsure wether this kind of recursive type is possible in Wikifunctions.
* Hereditary sets have all the characteristics of a normal type (a validator, an equality function<ref group="set">{{Z+|Z34273}}</ref>, and even type converters<ref group="set">{{Z|Z39064}}'s <code>to_set</code> function</ref>). Making a proper type for them avoids repetitive work and allow for better integration in the Wikisource ecosystem. Note that all these functions are different from their Typed list equivalents (equality ignores duplicates, type converters return set objects and not list objects).
I would love to see a proper hereditary set type being discussed. If this isn't the right place, please tell me, I'm quite new to the type proposal process :) [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 20:30, 8 August 2026 (UTC)
:Another use is to avoid confusion, such as between {{Z|Z34270}} and {{Z|Z34273}}, which has already caused issues before.<ref group="set">[[Talk:Z36677#Wrong set equality]]</ref> [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 20:32, 8 August 2026 (UTC)
:IMO being "reliant" on code Implementations for arithmetic isn't a problem. Von Neumann ordinals are useful as a mathematical foundation but not as a computational one. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 05:18, 9 August 2026 (UTC)
:After further work on von Neumann ordinals related functions, it appears Wikifunctions' builtin type converter from a Python list to a Typed list really struggles with deeply nested lists. I believe having a strong type converter for hereditary sets can really help with fast computations. [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 00:06, 13 August 2026 (UTC)
:I don't have the whole answer, but here's some information to start.
:> Hereditary sets can easily be defined as Typed list(Hereditary set). I am however unsure wether this kind of recursive type is possible in Wikifunctions.
:This is possible! All of the needed features exist in Wikifunctions. If you try to define this type and find it's not possible, then that should be filed as a bug in Wikifunctions (and one we will triage fix through the normal channels).
:I also want to set some expectations. While Wikifunctions can (barring bugs?) absolutely represent a hereditary set type, operations on that type will not necessarily have the expected asymptotic performance characteristics. Generally, the ZObject language specification doesn't allow for an object to have an arbitrary number of members, so any container type will end up relying on some kind of recursively-defined structure like WF's own List type. Practically, this means that the composition language could never do something like an O(1) set lookup.
:That said, I also want to point you to code converters, which would allow the hereditary set type to be converted to a more efficient representation inside of the JS and Python code executors. That's a secondary concern for after the type exists.
:Happy to discuss further! [[User:CMassaro (WMF)|CMassaro (WMF)]] ([[User talk:CMassaro (WMF)|talk]]) 16:02, 13 August 2026 (UTC)
::Hi! I'm guessing the proper way to discuss this would be to make a draft type proposal? I still have some free time left on my holiday and I would love to develop that idea further :)
::I'm aware of performance limitations; my goal is to rely on composition only as some kind of ''theoretical fallback'' while all performance intensive computation is done with code implementations. That way what I make can be "well-defined" and fast at the same time (ideally...). [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 21:38, 13 August 2026 (UTC)
:::Yes, that makes sense. Are you on IRC? #wikipedia-abstract is a very friendly and helpful group; if you're looking to make a new type, that would be a good place to get pointers. [[User:CMassaro (WMF)|CMassaro (WMF)]] ([[User talk:CMassaro (WMF)|talk]]) 09:36, 14 August 2026 (UTC)
<references group="set" />
== Wikifunctions & Abstract Wikipedia Newsletter #259: Congratulations Jules*. An apple is a fruit ==
There is [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-08-05|a new update]] for Abstract Wikipedia and Wikifunctions. Please, come and read it!
In this issue, we congratulate Wikimedian of the Year and we discuss his favourite article in relation to Abstract Wikipedia, we introduce a new Type of function on Wikifunctions, and we take a look at the latest software developments.
Want to catch up with the previous updates? Check [[:f:Special:MyLanguage/Wikifunctions:Status updates|our archive]]!
We also remind you that in the next weeks these newsletter reminders will be paused, and that they will resume in mid-August.
Enjoy the reading! -- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 13:19, 10 August 2026 (UTC)
<!-- Message sent by User:Sannita (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Wikifunctions_%26_Abstract_Wikipedia&oldid=30870212 -->
: {{tq|Given that they are stored as persistent objects, their anonymity is kinda defeated, but it may be useful for testing and documentation purposes.}} Not exactly sure what the point is, then, since we'd still need the same amount of documentation in the description to say which function this is a nonce for. [[User:Aaron Liu|Aaron Liu]] ([[User talk:Aaron Liu|talk]]) 17:55, 10 August 2026 (UTC)
::You can use them without creating a persistent object, [https://www.wikifunctions.org/wiki/Z801?call=%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z801%22%2C%22Z801K1%22%3A%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z39025%22%2C%22Z39025K1%22%3A%5B%22Z38546%22%2C%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z38926%22%2C%22Z38926K1%22%3A%22Z30795%22%2C%22Z38926K2%22%3A%22%5D%5D%22%7D%2C%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z38926%22%2C%22Z38926K1%22%3A%22Z30035%22%2C%22Z38926K2%22%3A%22%5B%5B%22%7D%5D%2C%22Z39025K2%22%3A%7B%22Z1K1%22%3A%22Z11%22%2C%22Z11K1%22%3A%22Z1002%22%2C%22Z11K2%22%3A%22currying%22%7D%7D%7D example]. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 21:54, 10 August 2026 (UTC)
::: Ooh, that's neat. [[User:Aaron Liu|Aaron Liu]] ([[User talk:Aaron Liu|talk]]) 00:17, 11 August 2026 (UTC)
== Wikifunctions as a programming system ==
With [[Z38546|lambda]] and half<ref group="note">For it to be considered complete, shouldn't it take the environment in which to evaluate? Which reminds me, where's local variables in composition? Sure, it can be emulated via an [[w:Immediately invoked function expression|IIFE]], but how does that look like? So, macros as well. I look forward to how a generalized, multilingual Lisp interpreter function would look like..</ref>-of-an-[[Z38590|eval]], the runtime environment of Wikifunctions now resembles a somewhat less [[w:Greenspun's tenth rule|poor LISP]]. Whereas the runtime, as it stands now, is somewhat reminiscent of [[w:Smalltalk|Smalltalk]], [[w:Self (programming language)|Self]] and others, an [[w:object-oriented programming|object-oriented programming]] [https://arxiv.org/abs/2302.10003 ''system'']. <ref group="note">How I wish there was a Wikipedia article about programming systems in this sense... </ref> I wonder: how far/well the ''theory'' (in the sense of [[w:programming language theory|programming language theory]], [[w:semantics (programming languages)|semantics]] and such) behind Wikifunctions have been developed, whether that has been documented somewhere (beyond [[WF:Function model|Function model]]) or it still resides [[w:tacit knowledge|in the minds]] of the implementors for now, which direction<ref group="note">e.g. [[w:Metaobject#Metaobject protocol|Metaobject protocol]] (quite relevant, since it's object-oriented), higher-[[w:Kind (type theory)|kind]]ed types and so on</ref> you wish to develop this system and so on; where such discussions can take place.
Among the [https://meta.wikimedia.org/wiki/Abstract_Wikipedia/Goals#Secondary_goals secondary goals] is: <q>Faster development of new programming languages due to accessing a wider standard library (or repository) of functions in a new dedicated wiki.</q> For which we should have categorized and isolated the portion of functions (and objects), to be made available seperately as self-contained/sufficient collections, that are most relevant to implementing programming languages/systems. Has (if so, how much) there already been any work in this direction?
Since Wikifunctions aims to be natural-language- as well as programming-language-[[w:agnostic (data)|agnostic]], it should be agnostic of any particular representation as well. Thus it should work with different representations (whether it's the underlying (JSON) representation of the objects, the specific choice of numberings, type system or even ontology) and be convertible among equivalence classes of representations (and conceptualizations?). It's this level of generality I'm quite interested about, and wish to have some in-depth discussion (here, insofar relevant to this project and elsewhere).
----
<references group="note"/>
[[User:Smlckz|Smlckz]] ([[User talk:Smlckz|talk]]) 11:31, 12 August 2026 (UTC)
:Hi @[[User:Smlckz|Smlckz]]! I am really interested in the viability of Wikifunctions as a programming system too, but I don't think you're in a for a great experience... While my experience here is quite limited, I worked a lot on a major issue that still bothers me: the composition language is incapable of basic arithmetic. If you look into [[Wikifunctions:Reserved ZIDs]], you'll notice that there isn't any built in implementation for addition, subtraction, and there isn't even a builtin type for Natural numbers. This leads to quite a few fundamental issues, like the fact that the built-in {{Z|80}} depends on the non-built-in {{Z|13518}}...
:Strings aren't much better: the only core functions to manipulate them, {{Z|886}} and {{Z|888}} have been deprecated.
:And while [[Wikifunctions:Function model]] is a great start it is out of date and is nowhere complete enough to be considered a proper specification. If you want any information as to how evaluation and the object model actually work you have to look into the Gitlab repos for the current implementation.
:Last thing, the {{Z|823}} function is a total breach of purity, and allows functions to get information about there own implementation, the environment they run in, etc. This can even be used, I believe, as a source of randomness.
:I have great hopes that Wikifunctions will become a strong programming system one day, but as of now, it's far behind any other functional programming languages. [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 00:15, 13 August 2026 (UTC)
::I hope that folks who are interested, like you two, can help with moving in that direction.
::The development team is not focusing on that secondary goal currently. That shouldn't preclude anyone else from doing so.
::How does Z823 break purity?
::Honest question: do we need closure for anonymous functions, or is alpha conversion sufficient? --[[User:DVrandecic (WMF)|DVrandecic (WMF)]] ([[User talk:DVrandecic (WMF)|talk]]) 12:25, 13 August 2026 (UTC)
:::Sorry for the use of the maybe unclear term purity, I stole it from the Nix language :)
:::Purity would be the principle that the same inputs always return the same outputs, independently from the running environement. {{Z|823}} does the exact opposite by literally giving you information about the outside environment. This constitues a source of randomness that I really do not appreciate from a theoretical standpoint, as it potentially introduces painful runtime errors (race conditions even, albeit only in extreme cases) which no one likes to debug.
:::I personally think that it is quite an useless function (4 uses in mainspace), but if people really want to keep it, I propose to restrict its usage to tests or make any function using it be marked as "impure" too.
:::To answer your last question, I don't really understand it --- I'm sorry for showing my lack of computer science basics here :') If you wish to explain it further, I'd be happy to give you my opinion. [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 21:44, 13 August 2026 (UTC)
:::{{tq|Honest question: do we need closure for anonymous functions, or is alpha conversion sufficient?}} If we want to evolve towards a proper [[w:rewriting|rewriting]] system, conversion and reduction rules from lambda calculus might suffice. But, for now, if I have understood the current system correctly, we'd need to have closures, if only for reasons of efficiency. Imagine big, non-persistent, runtime objects, being referenced multiple times in anonymous functions, after beta reduction, to get represented with that many copies in their bodies.. (The evaluator might not be affected, but once these anonymous functions need to persist or even just pass through programming language boundaries, forcing normalization/serialization..) So, if we want to support anonymous functions as first-class objects of the kind of system we currently have, closures are essential. [[User:Smlckz|Smlckz]] ([[User talk:Smlckz|talk]]) 03:09, 14 August 2026 (UTC)
::{{tq|I worked a lot on a major issue that still bothers me: the composition language is incapable of basic arithmetic.}} When anonymous functions work better, we should be able to implement [[w:Church encoding|Church numerals]] using them. Similarly, when we'll have support for sum types, we could use that to implement [[w:Peano axioms|Peano arithmetic]] (as linked list of unit type). While these are interesting for theoretical purposes, we can't rely on them in practice, due to the kind of runtime we have here; it'd be too inefficient for any non-trivial use. Like functions can have multiple implementations, types could do the same, giving rise to typeclasses.. <small>The aspiration towards purity gives rise to expectations of realization of [[w:Curry–Howard correspondence|program-proof equivalence]], in having proofs of theorems hosted alongside ordinary functions (and perhaps proofs of correctness of such ordinary functions), but that's too far in the future for us to consider.</small> We can then have performant implementations of types alongside theoretically interesting ones. {{tq|This leads to quite a few fundamental issues, like the fact that the built-in {{Z|80}} depends on the non-built-in {{Z|13518}}...}} Which does sound quite backwards. I'd've expected to see a built-in natural number type, with byte defined as a derived type out of it. (For comparison, here's what Common Lisp came up with: [https://metaspec.dev/t_integer.html] [https://metaspec.dev/t_unsigned-byte.html]) {{tq|Last thing, the {{Z|823}} function is a total breach of purity, and allows functions to get information about there own implementation, the environment they run in, etc.}} This information can also be used to choose more performant (or, for a particular environment, a better-suited) implementation amongst available. I don't expect this system to be able uphold the level of purity expected from a purely functional programming language, but only up to a certain degree: that most functions won't directly need to rely on such escape hatches. (Compare Rust's <code>unsafe</code>. Similarly, consider the caveats of [https://wiki.haskell.org/index.php?title=Hask '''Hask'''].) [[User:Smlckz|Smlckz]] ([[User talk:Smlckz|talk]]) 17:41, 13 August 2026 (UTC)
:::Church numerals are an idea I love, and Peano arithmetic too! My initial attempt with von Neumann ordinals quickly stopped because of speed concerns :') Typeclasses is an idea I had a while ago (although I phrased it as Single Type, Multiple Representations) and could further improve Wikifunctions' abstractness and maybe even performance. I agree the lack of a number type is a major flaw in the system. Last point, I think implementation choice should mostly be done by the system automatically; what you call <code>unsafe</code> is similar to the concept of impurity in Nix, where calling an impure function makes the function calling it impure too. I believe an automatic explicit visible marking of such impure functions could help prevent their abusive use.
:::Given that some people seem interested in the ideas we discussed but it isn't a main focus at the moment, would you like us to discuss further ideas such as the writing of a formal Wikifunctions ''specification'', some new type proposals for an integer type, and maybe even develop the idea of typeclasses?
:::If you'd like a more dynamic discussion I have Discord if needed (hope it's not illegal to say that!) [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 21:52, 13 August 2026 (UTC)
::::I'd like to discuss, along with participation from implementors, such that we don't build [[wikt:castle in the air|castle in the air]]. With how things are in flux, designing a specification now might not be a good idea. At least, we'd need multiple competing full-featured implementations such that the need for specification can naturally arise. We can certainly discuss existing implementations of various programming systems: what to pick, what to discard and what to innovate in our circumstances.. <small><small>I don't use Discord. You can talk with me on [[w:IRC|IRC]]: find me in the Libera.chat channel <code>#wikipedia-abstract</code>. If you don't have an IRC client set up, you can use Libera's [https://libera.chat/guides/clients web clients]. Mention the time (with timezone) you'll be available. We can discuss which (better or worse) protocol/platform to use for further communication there. </small></small> [[User:Smlckz|Smlckz]] ([[User talk:Smlckz|talk]]) 04:16, 14 August 2026 (UTC)
:::::I do have IRC! <code>virinas-code</code>, I use the Konversation client. You do seem to have a lot more experience than me with functional programming so I'll be happy to discuss ideas with you :)
:::::I'm typically available from 2PM to 8PM and from 11PM to 2AM-4AM in the Europe/Paris timezone. I think one of the first thing we should do is fix the built-in lack of a number type. A specification can come much later, but we do need to reinforce existing documentation (e.g. by completing [[Wikifunctions:Function model]]). [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 12:48, 14 August 2026 (UTC)
== Wikifunctions & Abstract Wikipedia Newsletter #260: Shoutout to User:99of9 ==
There is [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-08-13|a new update]] for Abstract Wikipedia and Wikifunctions. Please, come and read it!
In this issue, we congratulate our own User:99of9 for his extensive work with the Wikifunctions & Abstract Wikipedia communities, we discuss what happened at Wikimania, we introduce a document for interested communities to join Abstract Wikipedia, and we take a look at the latest software developments.
Want to catch up with the previous updates? Check [[:f:Special:MyLanguage/Wikifunctions:Status updates|our archive]]!
Enjoy the reading! -- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 15:55, 13 August 2026 (UTC)
<!-- Message sent by User:Sannita (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Wikifunctions_%26_Abstract_Wikipedia&oldid=30870212 -->
== Showing where a function is used ==
Compositions allows to see the smaller functions/compositions that a specific implementation has used, but what about the other way around? Showing where a certain small function or composition was used in other bigger implementations. This would both show the impact of smaller, essential functions while also being helpful for people trying to build new implementations by following the same logic that has been implemented by someone else already to save time. What do you all think? [[User:Omar M. Ghaly|Omar M. Ghaly]] ([[User talk:Omar M. Ghaly|talk]]) 05:47, 16 August 2026 (UTC)
e5lsexr8ew95p4g30ov9j9otlvo3m2e
299808
299806
2026-08-16T05:50:32Z
YoshiRulz
10156
/* Showing where a function is used */ Reply
299808
wikitext
text/x-wiki
{{shortcut|[[WF:CHAT]]|[[WF:PC]]|[[WF:VP]]}}
__NEWSECTIONLINK__
[[Category:Help]] <!-- please do not remove this line -->
Welcome to the Project chat, a place to discuss any and all aspects of Wikifunctions: the project itself, policy and proposals, individual data items, technical issues, etc.
Other places to find help:
* [[Wikifunctions:Administrators' noticeboard]]
* [[Wikifunctions:Report a technical problem]]
* [[Wikifunctions:FAQ]]
{{Autoarchive resolved section
|age = 1
|archive = ((FULLPAGENAME))/Archive/((year))/((month:##))
|timeout=30
}}
{{Archives|{{#tag:div|<br />{{Flatlist|{{Special:PrefixIndex/WF:Project chat/Archive/|stripprefix=1|hideredirects=1}}
|class=mw-collapsible-content|style=font-size:92%;}}|class="mw-collapsible mw-collapsible-toggle mw-collapsed"}}
|prefix=WF:Project chat/Archive/
}}
== Wikifunctions & Abstract Wikipedia Newsletter #257: Beyond syntactic tables ==
There is [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-07-16|a new update]] for Abstract Wikipedia and Wikifunctions. Please, come and read it!
In this issue, we discuss syntactic tables and news in Types, we show some community blogposts and tools, we remind you of the Wikifunctions and Abstract Wikipedia events at Wikimania 2026, and we take a look at the latest software developments.
Want to catch up with the previous updates? Check [[:f:Special:MyLanguage/Wikifunctions:Status updates|our archive]]!
We also remind you that in the next weeks these newsletter reminders will be paused, and that they will resume in mid-August.
Enjoy the reading! -- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 10:55, 17 July 2026 (UTC)
<!-- Message sent by User:Sannita (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Wikifunctions_%26_Abstract_Wikipedia&oldid=30755600 -->
== Update on Blockly editor ==
In case anyone is actually using [[User:YoshiRulz/Blockly|my external editor based on Blockly]] (there's no analytics so I have no idea): I cleared out my "papercut" backlog yesterday, fixing bugs, making exporting smoother, and adding more blocks necessary for NLG functions. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 15:35, 20 July 2026 (UTC)
:Great! I'll try it out now. [[User:So9q|So9q]] ([[User talk:So9q|talk]]) 18:15, 21 July 2026 (UTC)
== Building reproducible, computable phenotypes on WikiFunctions ==
Hello all! Very new to WikiFunctions, more involved in the Wikidata side of things, but I was thinking that WikiFunctions may be a great space for computable phenotypes. These are structures (lists of rules) used in medicine to determine if a person has or doesn't have a particular condition (type 2 diabetes, asthma, etc.). There is a constant issue in my field of recreating the wheel for these phenotypes and very few resources where they are openly available (there was PheKB but it isn't updated often and only contains natural language descriptions of the phenotypes and often no code or other information to reproduce). My thought process was that an algorithm for a computable phenotype would essentially be a list of synthetic (fake) patients with certain characteristics, and then the computable phenotype would be run, and it would return a list of patients who have that condition. The major use case would be allowing individuals to download these code snippets to increase general reproducibility in medical care and studies overall. Would it be possible to utilize WikiFunctions for this? [[User:Superraptor123|Superraptor123]] ([[User talk:Superraptor123|talk]]) 08:25, 23 July 2026 (UTC)
:({{Q|25203551}})<br>What system(s) are currently in use for doing such computations? Python scripts?<br>{{SITENAME}} currently does not cater to offline execution, so I imagine it wouldn't be suitable for medical ''practice'' where there are strict data protections. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 11:35, 23 July 2026 (UTC)
::Currently this involves something along the lines of a structured series of descriptors that make up the computable phenotype (ICD codes, RxNorm codes, lab test levels, age ranges, etc.), a fake "patient" (or list of "fake" patients) as input, and the patients that fit the computable phenotype criteria as output. In terms of systems currently in use, they are kind of-- everything. SQL, Java, SPARQL, Python, Perl, Ruby, etc. Currently I develop mostly using Python, so I would likely use that for implementation. And of course, yes, they would not be suitable for practice due to protections! For an example of an algorithm that I think could be useful to adapt, see: https://phekb.org/phenotype/type-2-diabetes-mellitus. [[User:Superraptor123|Superraptor123]] ([[User talk:Superraptor123|talk]]) 12:02, 23 July 2026 (UTC)
:::So your reference is a decision tree, and are each of the "questions" evaluated by looking up a property/element in the input? That could be translated into a Function relatively easily. Most examples I can think of are NLG-related, like [[Z36580]], but there are [[WF:Catalogue/Wikidata_operations#Real_life_information_retrieved_using_Wikidata|some simpler Functions]] which extract parts of a given Wikidata Item, and [[Z34840]] works with the representations of numbers. What is the structure of the input EMR? [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 13:54, 23 July 2026 (UTC)
::::Precisely-- I think most of these would be simple implementations, but good to generally have archived as most of them become lost media(-ish). Best-case, the input EMR would be a set of synthetic patients using the OMOP CDM (https://ohdsi.github.io/CommonDataModel/), the most common open data model in the space. It does mean it wouldn't be completely system agnostic, but it would most in the majority of situations. [[User:Superraptor123|Superraptor123]] ([[User talk:Superraptor123|talk]]) 14:07, 23 July 2026 (UTC)
:::::If you decide to go ahead with this, you should [[WF:Type_proposals#Templates|propose a new type]] since it looks like a simple [[Z881|list]] or [[Z883|dict]] won't cover it. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 15:31, 23 July 2026 (UTC)
:Did you look much into the possibility of encoding these in Wikidata somehow? Have [[d:WD:WikiProject Medicine]] / [[meta:Wiki Project Med]] investigated it before? [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 15:31, 23 July 2026 (UTC)
::I don't think so-- it could potentially be somewhat encoded in Wikidata-- main issue is that it uses a list of codes which Wikidata sometimes attaches to the same entity in ways that don't match up 1-to-1. And there may be drift in those codes over time, so the list of codes would have to be hard-coded. But there should generally be a way to link from the WikiFunction to Wikidata right? [[User:Superraptor123|Superraptor123]] ([[User talk:Superraptor123|talk]]) 22:06, 23 July 2026 (UTC)
:::Linking ''to WF'' from an Item on Wikidata [[d:WD:Wikifunctions/Development|is an open question]], beyond sitelinks of course. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 12:02, 24 July 2026 (UTC)
::::So maybe creating functions here makes the most sense for the time being? I want to make sure I'm following the rules as intended but would that be okay for now? (Creating one or two and then presenting to the community to see if things look acceptable?) [[User:Superraptor123|Superraptor123]] ([[User talk:Superraptor123|talk]]) 06:46, 25 July 2026 (UTC)
:::::Yes, you're welcome to try! --[[User:99of9|99of9]] ([[User talk:99of9|talk]]) 06:53, 25 July 2026 (UTC)
::::::Thanks! I've been thinking about this a little bit-- in terms of objects, it may make sense to have an object that is an OMOP CDM database (which is allowed by their licensing, as the database schema is open source). But I'm wondering if it should instead be an extension of a more generic database object? [[User:Superraptor123|Superraptor123]] ([[User talk:Superraptor123|talk]]) 11:06, 28 July 2026 (UTC)
== OWID's replacement for Extension:Graph ==
[[meta:OWID Gadget]] / [[c:Module:Owidslider]]<br>I'm currently watching the Wikimania talk "[https://wikimedia.eventyay.com/wm/wikimania2026/talk/CMPQQJ/ Bringing Interactive Graphs from Our World in Data to Wikipedia]" going through the latest iteration of their interactive graphs, and they seem to be in a good position now, including <abbr title="internationalisation">i18n</abbr>. I think it would be nice to use them in Abstract Wikipedia articles as well, but it's implemented as a Lua module + JS gadget. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 13:00, 23 July 2026 (UTC)
== Friday's talks at Wikimania ==
{{noping|Mahir256}} just finished his talk/workshop "[https://wikimedia.eventyay.com/wm/wikimania2026/talk/HYTQBF From Abstract Content to Concrete Text with Wikidata Lexemes]" on {{Q|136813071}}. You can [https://www.youtube.com/watch?v=hvpOFVZhgnE&t=24370s watch it on YouTube here] (though there were audio problems, '''volume warning''').
<br>The workshop immediately before that was "[https://wikimedia.eventyay.com/wm/wikimania2026/talk/TWGKWB/ Making indigenous languages ready for Wikifunctions]". Hello to anyone who came from there! [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 15:58, 24 July 2026 (UTC)
:@[[User:YoshiRulz|YoshiRulz]]: Thanks for highlighting these! There's also today's workshop [https://www.youtube.com/watch?v=nCVeXaAk77c on YouTube] about 90 minutes after the start of the stream, though that might not be as interesting to watch. [[User:Jdforrester (WMF)|Jdforrester (WMF)]] ([[User talk:Jdforrester (WMF)|talk]]) 13:28, 25 July 2026 (UTC)
== Testing an unconnected implementation ==
Hi everyone!
A few hours ago, I created [[Z38370|my first function]] together with [[Z38371|an unfinished Python implementation]]. When I wanted to test my implementation using the "Try this implementation" box in the bottom-right corner, I noticed that the button "Run function" was grayed out and there was a warning saying "This function has no connected implementations."
As it seems, you can only run an implementation if its corresponding function has at least one connected implementation. The implementation you want to run doesn't even have to be connected itself, as I can run the unconnected implementation [[Z12949]] without any problems, even when I modify its code in the editor.
Is this behavior intentional? And is there any way I can test my implementation? [[User:Tc14Hd|Tc14Hd]] ([[User talk:Tc14Hd|talk]]) 19:28, 28 July 2026 (UTC)
:Yeah, it's [[phab:T343559#11421293|a pointless limitation]]. I've connected the test for you. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 23:56, 28 July 2026 (UTC)
::Thanks! I knew I couldn't be the only one who noticed this problem... [[User:Tc14Hd|Tc14Hd]] ([[User talk:Tc14Hd|talk]]) 13:00, 29 July 2026 (UTC)
== [[Help:Categorization]] ==
Hi! Just wanted to let everyone know that I recently created [[Help:Categorization]] as a draft help page explaining how categories work. I'm new to Wikifunctions, but I used my knowledge of MediaWiki in general combined with some research to write it. If anyone would like to improve it, feel free to. [[User:Axolitl|Axolitl]] ([[User talk:Axolitl|talk]]) 04:32, 30 July 2026 (UTC)
:It's just a general MediaWiki categories guide. It doesn't have anything special for Wikifunctions, which doesn't really have categories in the main namespace. [[User:Amire80|Amir E. Aharoni]] ([[User talk:Amire80|talk]]) 16:42, 30 July 2026 (UTC)
== Wikifunctions & Abstract Wikipedia Newsletter #258: Abstract Wikipedia at Wikimania ==
<div lang="en" dir="ltr" class="mw-content-ltr">There is [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-07-29|a new update]] for Abstract Wikipedia and Wikifunctions. Please, come and read it!
In this issue, we discuss the presentations and workshops at Wikimania, including a features feedback request based on what we heard there, and highlight new features shipped this week including diffs for Wikifunctions.
Want to catch up with the previous updates? Check [[:f:Special:MyLanguage/Wikifunctions:Status updates|our archive]]!
Enjoy the reading! [[m:user:Quiddity (WMF)|Quiddity (WMF)]] 19:05, 30 July 2026 (UTC) </div>
<!-- Message sent by User:Quiddity (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Wikifunctions_%26_Abstract_Wikipedia&oldid=30870212 -->
== Impact of labels translation ==
A lot of the edits on Wikifunctions are additions and changes of labels, descriptions, and aliases of functions, inputs, tests, and implementations. (I will subsequently call this "labels" for simplicity.)
At Wikimania 2026, I heard from editors in several languages that they were encouraged to translate Wikifunctions' labels, and it made me wonder: Are there reasons to think that editing those labels has impact on the usage of Wikifunctions and Abstract Wikipedia by people who speak these languages? In general, I am quite famous as a major supporter of translating everything imaginable, but there should also be priorities, so if editing those labels doesn't have impact, then perhaps editors should be encouraged to translate something more visible.
After English, [https://quarry.wmcloud.org/query/103687 the most common languages for editing labels] are German, French, Igbo, Italian, Indonesian, Bengali, Dutch, Japanese, Hindi, and Hebrew <small>([[User:Amire80/wikifunctionsanalytics|information about this data]])</small>.
Looking a bit more deeply into some of those:
* Hebrew labels were mostly contributed by @[[User:מקף|מקף]] (pronounced Maqaf), and a few were contributed by myself. I edit them mostly because I love seeing the UI translated as completely as possible, and since some object labels are integrated into the site's UI, they should be translated. Does this complete translation raise the usage of Wikifunctions by Hebrew speakers, though? I doubt it. Maqaf probably edits them because he creates some functions related to the Hebrew language, but that's just a guess, and I'd love to hear more about his motivation.
* The top editor of German labels is @[[User:Ameisenigel|Ameisenigel]], who is generally a major contributor to translations across many Wikimedia projects, so perhaps his motivation is similar to mine, but he does it much more than I do. He also edits the content of actual functions, implementations, and tests. Some of the other German label editors do almost nothing but editing labels, although some, like @[[User:Lucas Werkmeister|Lucas Werkmeister]] and of course @[[User:Denny|Denny]] also contribute to actual functions and implementations. But back to the main question: German is the top language for label translations thanks to [[User:Ameisenigel|Ameisenigel]]'s huge work, but does it, for example, impact the creation of abstract content that works in German? When I try to select German on most abstract articles, I usually don't see a fully translated article. But maybe I'm not searching well?
* The situation is a bit similar with French. @[[User:Jérémy-Günther-Heinz Jähnick|Jérémy-Günther-Heinz Jähnick]] is the top French label editor, but he makes almost no contributions to functions and implementations. The second top label editor is @[[User:VIGNERON|VIGNERON]], who does contribute quite a lot to functions and implementations. There are several other prolific French label editors, but most of them contribute little or nothing at all to functions and implementations. And as with German, I almost never see abstract articles fully translated into French.
* Igbo has shown disproportionate label editing activity. I don't know why exactly, but I guess that there was some event that encouraged people to write labels (if anyone knows more, please tell me). All the top 10 Igbo label editors only wrote labels and didn't do anything else with functions or implementations. There are quite a lot of [[Wikifunctions:Catalogue/Natural language operations/Igbo|Igbo language functions]], all of which were made by @[[User:Dolphyb|Dolphyb]], who contributed very little to translations. This, by itself, is not a problem at all: it's very common that programmers mostly write code and translators mostly translate. There is still the same question, though: do those language functions and massive label translations contribute to achieving Abstract Wikipedia's goal of generating Igbo content? I haven't seen evidence to support that, but I'd love to see it if anyone can present it.
* The situation with Indonesian is similar to the situation with Igbo, but there are [[Wikifunctions:Catalogue/Natural language operations/Igbo|much fewer language functions for Indonesian]].
So that's what I can glean. If I'm incorrect about anything or if you can add some more info, please speak up. Because of my interest in localization, I'll be very grateful to learn more. [[User:Amire80|Amir E. Aharoni]] ([[User talk:Amire80|talk]]) 19:50, 30 July 2026 (UTC)
:Adding labels in other languages has several advantages for the project. To name a few
:* It is an easy introduction to Wikifunctions
:* it is good for the image of Wikifunctions and Abstract Wikipedia as not being English centric
:* Contributors of Wikifunctions should be able to add texts in their own languages, so translations main functions is vital for that. That includes labels, descriptions and inputs.
:Not many labels are translated yet and not many functions work yet for other languages than English at the moment. The community is still very small, but I hope both will grow over time. They can mutually benefit each other. [[User:HenkvD|HenkvD]] ([[User talk:HenkvD|talk]]) 21:19, 30 July 2026 (UTC)
::@[[User:HenkvD|HenkvD]], I heard similar claims before, but it's to scrutinize them.
::{{tq|It is an easy introduction to Wikifunctions}} - and what does this introduction lead to? I haven't seen clear evidence that translating labels leads to other contributions or to using functions.
::{{tq|it is good for the image of Wikifunctions and Abstract Wikipedia as not being English centric}} - is it actually good? Evidently, many people in recent critical discussions about Wikifunctions and Abstract Wikipedia still think that it's English-centric.
::{{tq|Contributors of Wikifunctions should be able to add texts in their own languages, so translations main functions is vital for that. That includes labels, descriptions and inputs}} - it ''sounds'' vital; as I said, I support localization of everything in principle, and this is the main reason for thinking like that. However, this doesn't answer my question: what is the ''actual'' impact? Wikifunctions has been online for three years, so we should have seen something by now, and we aren't seeing anything.
::{{tq|Not many labels are translated yet}} - how do you define "many"? Thousands of labels were translated, and I think that it is "many". But, as you say, {{tq|not many functions work yet for other languages than English at the moment}} - so evidently, translating labels didn't lead to writing those functions, at least yet. [[User:Amire80|Amir E. Aharoni]] ([[User talk:Amire80|talk]]) 21:43, 30 July 2026 (UTC)
:::Wikifunctions might be live for 3 years, but Abstract Wikipedia is only lie a few months. As it is early days for '''Language''' functions, and the first are made in English it still is English centric. THAT NEEDS TO CHANGE. Translations should help with that. [[User:HenkvD|HenkvD]] ([[User talk:HenkvD|talk]]) 22:08, 30 July 2026 (UTC)
:See also [[Help:Multilingual]]. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 21:25, 30 July 2026 (UTC)
::Does it say anything about the ''impact'' of translating labels? I don't see it. [[User:Amire80|Amir E. Aharoni]] ([[User talk:Amire80|talk]]) 21:44, 30 July 2026 (UTC)
:::No, I bring it up only as a possible explanation of translators' motives, and to point out where the documentation is should you want to improve it. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 22:00, 30 July 2026 (UTC)
:@[[User:Amire80|Amire80]]: I've seen folks at Wikimania use Abstract Wikipedia in their language and start and edit articles in Tyap, Japanese, and French. Having labels for those functions unlocks the Abstract Wikipedia to be used entirely in their language. --[[User:Denny|Denny]] ([[User talk:Denny|talk]]) 06:07, 31 July 2026 (UTC)
::I understand the general idea of what this is supposed to be. I wonder whether there is actual measurable impact.
::You give Tyap as a successful example, but it's in fact the example of the opposite. I found zero functions whose name is translated into this language. I found one implementation whose name is translated into Tyap, [[Z29740]], and also a few translated language names and type names. My ''intuition'' is that type names are actually among the most important things to translate here, but very few of them are translated at the moment, and I'm trying to talk about measurable impact here and not about intuition. And as you say in the newsletter, the Tyap contributor was able to do something, even though almost nothing is translated into his language.
::The label translation statistics for Japanese and French are very good, but seeing something at Wikimania is anecdotal; it's not measurable impact.
::So again: I understand the general idea of why localization is desirable. I've dedicated more than sixteen years of my life to promoting this idea, I keep doing it now, and I plan to keep doing for as long as my health allows me to do it. But here, I'm asking not about the idea, but about the impact. [[User:Amire80|Amir E. Aharoni]] ([[User talk:Amire80|talk]]) 09:57, 31 July 2026 (UTC)
:::Hi {{ping|Amire80}}. I’m not skilled at programming, but I manage to handle the translation work—even if it isn’t perfect. I’m doing my bit to help out. [[User:Jérémy-Günther-Heinz Jähnick|Jérémy-Günther-Heinz Jähnick]] ([[User talk:Jérémy-Günther-Heinz Jähnick|talk]]) 22:29, 1 August 2026 (UTC)
::::Thank you! It's fine, not everyone has to know programming. I'm just wondering how much is it actually helping out. I'm not necessarily saying that it doesn't, but I do wonder how to measure that it does. [[User:Amire80|Amir E. Aharoni]] ([[User talk:Amire80|talk]]) 05:50, 2 August 2026 (UTC)
:::@[[User:Amire80|Amire80]]: I don't even understand what you are asking for. Measuring what impact, and how? The Tyap editor was able to use it because he also spoke English. If he wouldn't have, he would have an even harder time to use the interface. --[[User:Denny|Denny]] ([[User talk:Denny|talk]]) 07:30, 2 August 2026 (UTC)
::::Does the translation of function labels into a language have a measurable impact on the usage of Wikifunctions and Abstract Wikipedia in that language?
::::For example, a lot of function labels are translated into Igbo. Does it mean that a lot of abstract articles are fully readable in Igbo?
::::Same question about German, French, Italian, etc. [[User:Amire80|Amir E. Aharoni]] ([[User talk:Amire80|talk]]) 11:44, 2 August 2026 (UTC)
:::::Translation of labels makes it easier to understand the function side of Abstract Wikipedia, and easier to add and change the lemma. It does NOT have affect on the final text in the language. It may help in writing functions for that language. As Abstract Wikipedia is a fairly new project with few contributors the impact cannot be measured. How would you measure that anyway? [[User:HenkvD|HenkvD]] ([[User talk:HenkvD|talk]]) 12:02, 2 August 2026 (UTC)
::::::They ''can'' make it easier to understand the function, but ''do'' they make it easier?
::::::For example, there was obviously some organized activity to translate labels into Igbo. Look at [https://quarry.wmcloud.org/query/107942 this query]: You can see that there was a lot of label editing activity in Igbo in February, March, April, May, June, and September 2024, and very little activity in other times. It was probably related to this event: [[:m:Event:Translation of catalogue of available functions on wikifunctions igbo]].
::::::There was also [https://diff.wikimedia.org/2026/01/16/introducing-data-and-functions-reflections-from-indonesian-data-and-technology-week-2025/ a similar event for Indonesian], and you can see in [https://quarry.wmcloud.org/query/107943 the statistics for Indonesian] that there was a peak of edits in December 2025, as described in the blog post.
::::::I don't know if these events were funded with money, but they were definitely ''organized''. Organization requires effort. And of course, effort was also invested into the actual translation. Effort should be invested if it has some impact, and if it has no impact, then it should be invested elsewhere.
::::::How would I measure it? Some examples:
::::::# Are there abstract articles that can actually be fully viewable in Igbo and Indonesian? As far as I can see, there aren't, but correct me if I'm wrong.
::::::# Are there many language functions that can generate text in Igbo and Indonesian, and are those functions actually used? The answer to the first question is "not many" ([[Wikifunctions:Catalogue/Natural language operations/Igbo|Igbo]], [[Wikifunctions:Catalogue/Natural language operations/Indonesian|Indonesian]]); the answer to the second and more important question is "they are probably not used". But again, correct me if I'm wrong.
::::::[[User:Amire80|Amir E. Aharoni]] ([[User talk:Amire80|talk]]) 21:14, 4 August 2026 (UTC)
:::::::I think you're right. To help translation to make more impact, we could document which of our 39,000 objects are most important to translate. For example, the list of types, the list of the fragment functions most used on AW, and the list of functions most used in compositions on WF. Your query tool may be able to help make the third of these? --[[User:99of9|99of9]] ([[User talk:99of9|talk]]) 00:58, 5 August 2026 (UTC)
::::::::I'll try, thanks for the tip! [[User:Amire80|Amir E. Aharoni]] ([[User talk:Amire80|talk]]) 02:09, 5 August 2026 (UTC)
:Perhaps the more useful question is not the impact of contributing labels, but the impact of not contributing them. At present, a user who cannot search for a function using their own language is effectively required to use English (or another well-supported language). Such users do not create a visible failure case.
:It may therefore be difficult to measure the benefit of translated labels from usage statistics alone because the absence of translations creates a barrier before usage even begins.
:There may also be a feedback loop. English currently has the greatest discoverability, which means English-speaking contributors are more likely to notice when a function cannot be found, and to add aliases or improve labels accordingly. This may mean that English has a higher proportion of functions with aliases, and typically more aliases for any such function. Languages with less discoverability have fewer opportunities for this kind of positive feedback. [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 10:09, 5 August 2026 (UTC)
::The questions to ask about this are: which languages are the most successful ones in terms of abstract articles translation? What made them successful? Can it be replicated?
::But that would be a topic for a separate thread.
::Here, I'm wondering about the impact of what people do invest their effort in. [[User:Amire80|Amir E. Aharoni]] ([[User talk:Amire80|talk]]) 11:04, 5 August 2026 (UTC)
== Contributing to language functions 1: Language Fragments ==
At Wikimania, @[[User:Dnshitobu|Dnshitobu]] recommended cloning a page like [[User:Dnshitobu/Dagbani Fragments]] and filling it with my own language. If I understand correctly, it's supposed to help to create functions for handling my language.
I created [[User:Amire80/Hebrew Fragments]] and started filling it. There are a bunch of problems with it, but let's say that I can complete it. Is it actually useful? Once it's complete, what do I do with it?
More broadly, if it is useful, is there a written guideline anywhere that recommends doing it? If I didn't visit Wikimania, I wouldn't know about it. [[User:Amire80|Amir E. Aharoni]] ([[User talk:Amire80|talk]]) 22:10, 30 July 2026 (UTC)
:From [[WF:Status_updates/2026-07-29#Abstract_Wikipedia_at_Wikimania|this week's newsletter]]: <q>[Dnshitobu's] main proposal is that editors can create simple wikitext tables of example fragments in their language so that others could later do the technical work of setting up the lexemes and NLG functions.</q> The next step is to correlate your example sentences to the top-level NLG functions, then add 1 or 2 test cases to each function from your table.<br>I don't believe {{noping|Dnshitobu}} wrote up the process anywhere on-wiki, but that would be worth doing. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 22:30, 30 July 2026 (UTC)
::OK, I can try to do it.
::However, I should mention that the examples work kind of well in English, and perhaps they work in Dagbani, but they don't translate easily into Hebrew. Different nouns need different prepositions some letters require morphology transformations and some don't, etc. It cannot really be solved with a few basic concatenations as it was probably done in English.
::The same is true for probably most other languages. [[User:Amire80|Amir E. Aharoni]] ([[User talk:Amire80|talk]]) 23:49, 30 July 2026 (UTC)
::Also, who do I notify when it's ready? [[User:Amire80|Amir E. Aharoni]] ([[User talk:Amire80|talk]]) 00:58, 31 July 2026 (UTC)
:::[[WF:Requests for connection and disconnection]] [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 01:15, 31 July 2026 (UTC)
::::But these are not functions or implementations. These are just example strings. [[User:Amire80|Amir E. Aharoni]] ([[User talk:Amire80|talk]]) 09:58, 31 July 2026 (UTC)
:::::Right, you have to create test cases from them. For example, the "part of" sentences #7 and #8 correspond to [[Z34637]], so start by adding a test there. Then create a new function with the same shape as [[Z34867]] and add all your sentences to it as tests. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 17:49, 31 July 2026 (UTC)
::::::I think people should get help also if they can just write down how a fragment looks like for a specific language. So it should be not required to create a test case. So far I am not good in implementing functions in Wikifunctions. In the last days I have thinked about how to find a good way to define the fragments if the inputs are modified. This is difficult and I am not sure what is the best way. In the past I proposed [[User:Hogü-456/Decision table for Fragment experiments|decision tables]] for it. From my point of view more ideas and ways how to implement functions are needed as I expected more content in more languages in Abstract Wikipedia so far. It seems to me like it is too complicated to contribute to Wikifunctions at the moment. [[User:Hogü-456|Hogü-456]] ([[User talk:Hogü-456|talk]]) 21:31, 11 August 2026 (UTC)
== Contributing to language functions 2: Natural language operations ==
At [https://meta.wikimedia.org/wiki/Requests_for_comment/The_future_of_Abstract_Wikipedia#c-YoshiRulz-20260730202700-Amire80-20260730200900 this comment], @[[User:YoshiRulz|YoshiRulz]] recommended using pages like [[Wikifunctions:Catalogue/Natural language operations/Hebrew]] to see what functions are missing.
What can I actually do with that table? Is there a guide for writing such functions and fitting them into the NLG system?
Is this much better than something like [[User:Dnshitobu/Dagbani Fragments]], which I've mentioned in another comment on this talk page? Or can both be used? [[User:Amire80|Amir E. Aharoni]] ([[User talk:Amire80|talk]]) 22:17, 30 July 2026 (UTC)
:The guide is at [[User:DSantamaria-WMF/Guide: Working with Z14294]] ({{ping|DSantamaria-WMF}} why is this not in Helpspace?), and mirrored in [[toolforge:abstract-data]] IIRC.<br>You can use whatever organisational method you find easiest. (Or if you're lucky enough to have someone to collaborate with, find consensus.) Starting with a Wikitext table means you're not forced to learn about {{Z|14294}} and function creation before you can start working. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 22:34, 30 July 2026 (UTC)
::About the guide, I just end that guide one week ago and I was asking for some feedback on its correctness, once I have some feedback on that I will move it to the proper space.
::And definitely the tool is meant to be used for those purposes (finding all the [https://www.wikifunctions.org/view/en/Z14294 Z14294] that needs coverage in a specific language for example). Let me know if I can help with that. [[User:DSantamaria-WMF|DSantamaria-WMF]] ([[User talk:DSantamaria-WMF|talk]]) 05:36, 31 July 2026 (UTC)
:On [[Abstract:User:HenkvD/Tasks per language]] I drafted a list of tasks per languages and per language fragment. Feel free to comment on this draft. [[User:HenkvD|HenkvD]] ([[User talk:HenkvD|talk]]) 10:17, 31 July 2026 (UTC)
::Linking to the topic two above, one extra thing for Tasks per Language could be a link to a (sectioned) list of ZIDs that are most important to translate. --[[User:99of9|99of9]] ([[User talk:99of9|talk]]) 13:22, 5 August 2026 (UTC)
== On a set type ==
In [[WF:TP]], sets were refused as an independent type (and we are redirected towards using Typed lists). After adding many functions relative to hereditary sets and von Neumann ordinals, I believe a proper hereditary set type could be welcome on Wikifunctions. Here is the rationale behind this:
* In its current state the Wikifunctions composition language lacks basic arithmetic operations. It is interesting to provide a set-based "fallback" for those, even if its performance makes it rarely used. One of Wikifunction's goals is to "Imagine a programming system that allows us to make the next big leap in knowledge representation"<ref group="set">[[Wikifunctions:About]]</ref>, having a proper representation of natural numbers is a good start.
* Set operations are the basis of mathematics. Mathematically, natural numbers are typically defined with sets.<ref group="set">[[w:Set-theoretic definition of natural numbers]]</ref> Note that these mathematical sets are well defined ''hereditary sets'': sets that only contain other hereditary sets or are the empty set.
* Currently Typed list(Object) is the best available representation of hereditary sets. They are however unclear (Object could be anything, while hereditary sets can't contain anything), and a pain to document: every function performing arithmetic using set representation needs to write "von Neumann ordinals represented as hereditary sets"; simply making the input type "Hereditary set" is a much cleaner and clear solution.
* Hereditary sets can easily be defined as Typed list(Hereditary set). I am however unsure wether this kind of recursive type is possible in Wikifunctions.
* Hereditary sets have all the characteristics of a normal type (a validator, an equality function<ref group="set">{{Z+|Z34273}}</ref>, and even type converters<ref group="set">{{Z|Z39064}}'s <code>to_set</code> function</ref>). Making a proper type for them avoids repetitive work and allow for better integration in the Wikisource ecosystem. Note that all these functions are different from their Typed list equivalents (equality ignores duplicates, type converters return set objects and not list objects).
I would love to see a proper hereditary set type being discussed. If this isn't the right place, please tell me, I'm quite new to the type proposal process :) [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 20:30, 8 August 2026 (UTC)
:Another use is to avoid confusion, such as between {{Z|Z34270}} and {{Z|Z34273}}, which has already caused issues before.<ref group="set">[[Talk:Z36677#Wrong set equality]]</ref> [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 20:32, 8 August 2026 (UTC)
:IMO being "reliant" on code Implementations for arithmetic isn't a problem. Von Neumann ordinals are useful as a mathematical foundation but not as a computational one. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 05:18, 9 August 2026 (UTC)
:After further work on von Neumann ordinals related functions, it appears Wikifunctions' builtin type converter from a Python list to a Typed list really struggles with deeply nested lists. I believe having a strong type converter for hereditary sets can really help with fast computations. [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 00:06, 13 August 2026 (UTC)
:I don't have the whole answer, but here's some information to start.
:> Hereditary sets can easily be defined as Typed list(Hereditary set). I am however unsure wether this kind of recursive type is possible in Wikifunctions.
:This is possible! All of the needed features exist in Wikifunctions. If you try to define this type and find it's not possible, then that should be filed as a bug in Wikifunctions (and one we will triage fix through the normal channels).
:I also want to set some expectations. While Wikifunctions can (barring bugs?) absolutely represent a hereditary set type, operations on that type will not necessarily have the expected asymptotic performance characteristics. Generally, the ZObject language specification doesn't allow for an object to have an arbitrary number of members, so any container type will end up relying on some kind of recursively-defined structure like WF's own List type. Practically, this means that the composition language could never do something like an O(1) set lookup.
:That said, I also want to point you to code converters, which would allow the hereditary set type to be converted to a more efficient representation inside of the JS and Python code executors. That's a secondary concern for after the type exists.
:Happy to discuss further! [[User:CMassaro (WMF)|CMassaro (WMF)]] ([[User talk:CMassaro (WMF)|talk]]) 16:02, 13 August 2026 (UTC)
::Hi! I'm guessing the proper way to discuss this would be to make a draft type proposal? I still have some free time left on my holiday and I would love to develop that idea further :)
::I'm aware of performance limitations; my goal is to rely on composition only as some kind of ''theoretical fallback'' while all performance intensive computation is done with code implementations. That way what I make can be "well-defined" and fast at the same time (ideally...). [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 21:38, 13 August 2026 (UTC)
:::Yes, that makes sense. Are you on IRC? #wikipedia-abstract is a very friendly and helpful group; if you're looking to make a new type, that would be a good place to get pointers. [[User:CMassaro (WMF)|CMassaro (WMF)]] ([[User talk:CMassaro (WMF)|talk]]) 09:36, 14 August 2026 (UTC)
<references group="set" />
== Wikifunctions & Abstract Wikipedia Newsletter #259: Congratulations Jules*. An apple is a fruit ==
There is [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-08-05|a new update]] for Abstract Wikipedia and Wikifunctions. Please, come and read it!
In this issue, we congratulate Wikimedian of the Year and we discuss his favourite article in relation to Abstract Wikipedia, we introduce a new Type of function on Wikifunctions, and we take a look at the latest software developments.
Want to catch up with the previous updates? Check [[:f:Special:MyLanguage/Wikifunctions:Status updates|our archive]]!
We also remind you that in the next weeks these newsletter reminders will be paused, and that they will resume in mid-August.
Enjoy the reading! -- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 13:19, 10 August 2026 (UTC)
<!-- Message sent by User:Sannita (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Wikifunctions_%26_Abstract_Wikipedia&oldid=30870212 -->
: {{tq|Given that they are stored as persistent objects, their anonymity is kinda defeated, but it may be useful for testing and documentation purposes.}} Not exactly sure what the point is, then, since we'd still need the same amount of documentation in the description to say which function this is a nonce for. [[User:Aaron Liu|Aaron Liu]] ([[User talk:Aaron Liu|talk]]) 17:55, 10 August 2026 (UTC)
::You can use them without creating a persistent object, [https://www.wikifunctions.org/wiki/Z801?call=%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z801%22%2C%22Z801K1%22%3A%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z39025%22%2C%22Z39025K1%22%3A%5B%22Z38546%22%2C%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z38926%22%2C%22Z38926K1%22%3A%22Z30795%22%2C%22Z38926K2%22%3A%22%5D%5D%22%7D%2C%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z38926%22%2C%22Z38926K1%22%3A%22Z30035%22%2C%22Z38926K2%22%3A%22%5B%5B%22%7D%5D%2C%22Z39025K2%22%3A%7B%22Z1K1%22%3A%22Z11%22%2C%22Z11K1%22%3A%22Z1002%22%2C%22Z11K2%22%3A%22currying%22%7D%7D%7D example]. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 21:54, 10 August 2026 (UTC)
::: Ooh, that's neat. [[User:Aaron Liu|Aaron Liu]] ([[User talk:Aaron Liu|talk]]) 00:17, 11 August 2026 (UTC)
== Wikifunctions as a programming system ==
With [[Z38546|lambda]] and half<ref group="note">For it to be considered complete, shouldn't it take the environment in which to evaluate? Which reminds me, where's local variables in composition? Sure, it can be emulated via an [[w:Immediately invoked function expression|IIFE]], but how does that look like? So, macros as well. I look forward to how a generalized, multilingual Lisp interpreter function would look like..</ref>-of-an-[[Z38590|eval]], the runtime environment of Wikifunctions now resembles a somewhat less [[w:Greenspun's tenth rule|poor LISP]]. Whereas the runtime, as it stands now, is somewhat reminiscent of [[w:Smalltalk|Smalltalk]], [[w:Self (programming language)|Self]] and others, an [[w:object-oriented programming|object-oriented programming]] [https://arxiv.org/abs/2302.10003 ''system'']. <ref group="note">How I wish there was a Wikipedia article about programming systems in this sense... </ref> I wonder: how far/well the ''theory'' (in the sense of [[w:programming language theory|programming language theory]], [[w:semantics (programming languages)|semantics]] and such) behind Wikifunctions have been developed, whether that has been documented somewhere (beyond [[WF:Function model|Function model]]) or it still resides [[w:tacit knowledge|in the minds]] of the implementors for now, which direction<ref group="note">e.g. [[w:Metaobject#Metaobject protocol|Metaobject protocol]] (quite relevant, since it's object-oriented), higher-[[w:Kind (type theory)|kind]]ed types and so on</ref> you wish to develop this system and so on; where such discussions can take place.
Among the [https://meta.wikimedia.org/wiki/Abstract_Wikipedia/Goals#Secondary_goals secondary goals] is: <q>Faster development of new programming languages due to accessing a wider standard library (or repository) of functions in a new dedicated wiki.</q> For which we should have categorized and isolated the portion of functions (and objects), to be made available seperately as self-contained/sufficient collections, that are most relevant to implementing programming languages/systems. Has (if so, how much) there already been any work in this direction?
Since Wikifunctions aims to be natural-language- as well as programming-language-[[w:agnostic (data)|agnostic]], it should be agnostic of any particular representation as well. Thus it should work with different representations (whether it's the underlying (JSON) representation of the objects, the specific choice of numberings, type system or even ontology) and be convertible among equivalence classes of representations (and conceptualizations?). It's this level of generality I'm quite interested about, and wish to have some in-depth discussion (here, insofar relevant to this project and elsewhere).
----
<references group="note"/>
[[User:Smlckz|Smlckz]] ([[User talk:Smlckz|talk]]) 11:31, 12 August 2026 (UTC)
:Hi @[[User:Smlckz|Smlckz]]! I am really interested in the viability of Wikifunctions as a programming system too, but I don't think you're in a for a great experience... While my experience here is quite limited, I worked a lot on a major issue that still bothers me: the composition language is incapable of basic arithmetic. If you look into [[Wikifunctions:Reserved ZIDs]], you'll notice that there isn't any built in implementation for addition, subtraction, and there isn't even a builtin type for Natural numbers. This leads to quite a few fundamental issues, like the fact that the built-in {{Z|80}} depends on the non-built-in {{Z|13518}}...
:Strings aren't much better: the only core functions to manipulate them, {{Z|886}} and {{Z|888}} have been deprecated.
:And while [[Wikifunctions:Function model]] is a great start it is out of date and is nowhere complete enough to be considered a proper specification. If you want any information as to how evaluation and the object model actually work you have to look into the Gitlab repos for the current implementation.
:Last thing, the {{Z|823}} function is a total breach of purity, and allows functions to get information about there own implementation, the environment they run in, etc. This can even be used, I believe, as a source of randomness.
:I have great hopes that Wikifunctions will become a strong programming system one day, but as of now, it's far behind any other functional programming languages. [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 00:15, 13 August 2026 (UTC)
::I hope that folks who are interested, like you two, can help with moving in that direction.
::The development team is not focusing on that secondary goal currently. That shouldn't preclude anyone else from doing so.
::How does Z823 break purity?
::Honest question: do we need closure for anonymous functions, or is alpha conversion sufficient? --[[User:DVrandecic (WMF)|DVrandecic (WMF)]] ([[User talk:DVrandecic (WMF)|talk]]) 12:25, 13 August 2026 (UTC)
:::Sorry for the use of the maybe unclear term purity, I stole it from the Nix language :)
:::Purity would be the principle that the same inputs always return the same outputs, independently from the running environement. {{Z|823}} does the exact opposite by literally giving you information about the outside environment. This constitues a source of randomness that I really do not appreciate from a theoretical standpoint, as it potentially introduces painful runtime errors (race conditions even, albeit only in extreme cases) which no one likes to debug.
:::I personally think that it is quite an useless function (4 uses in mainspace), but if people really want to keep it, I propose to restrict its usage to tests or make any function using it be marked as "impure" too.
:::To answer your last question, I don't really understand it --- I'm sorry for showing my lack of computer science basics here :') If you wish to explain it further, I'd be happy to give you my opinion. [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 21:44, 13 August 2026 (UTC)
:::{{tq|Honest question: do we need closure for anonymous functions, or is alpha conversion sufficient?}} If we want to evolve towards a proper [[w:rewriting|rewriting]] system, conversion and reduction rules from lambda calculus might suffice. But, for now, if I have understood the current system correctly, we'd need to have closures, if only for reasons of efficiency. Imagine big, non-persistent, runtime objects, being referenced multiple times in anonymous functions, after beta reduction, to get represented with that many copies in their bodies.. (The evaluator might not be affected, but once these anonymous functions need to persist or even just pass through programming language boundaries, forcing normalization/serialization..) So, if we want to support anonymous functions as first-class objects of the kind of system we currently have, closures are essential. [[User:Smlckz|Smlckz]] ([[User talk:Smlckz|talk]]) 03:09, 14 August 2026 (UTC)
::{{tq|I worked a lot on a major issue that still bothers me: the composition language is incapable of basic arithmetic.}} When anonymous functions work better, we should be able to implement [[w:Church encoding|Church numerals]] using them. Similarly, when we'll have support for sum types, we could use that to implement [[w:Peano axioms|Peano arithmetic]] (as linked list of unit type). While these are interesting for theoretical purposes, we can't rely on them in practice, due to the kind of runtime we have here; it'd be too inefficient for any non-trivial use. Like functions can have multiple implementations, types could do the same, giving rise to typeclasses.. <small>The aspiration towards purity gives rise to expectations of realization of [[w:Curry–Howard correspondence|program-proof equivalence]], in having proofs of theorems hosted alongside ordinary functions (and perhaps proofs of correctness of such ordinary functions), but that's too far in the future for us to consider.</small> We can then have performant implementations of types alongside theoretically interesting ones. {{tq|This leads to quite a few fundamental issues, like the fact that the built-in {{Z|80}} depends on the non-built-in {{Z|13518}}...}} Which does sound quite backwards. I'd've expected to see a built-in natural number type, with byte defined as a derived type out of it. (For comparison, here's what Common Lisp came up with: [https://metaspec.dev/t_integer.html] [https://metaspec.dev/t_unsigned-byte.html]) {{tq|Last thing, the {{Z|823}} function is a total breach of purity, and allows functions to get information about there own implementation, the environment they run in, etc.}} This information can also be used to choose more performant (or, for a particular environment, a better-suited) implementation amongst available. I don't expect this system to be able uphold the level of purity expected from a purely functional programming language, but only up to a certain degree: that most functions won't directly need to rely on such escape hatches. (Compare Rust's <code>unsafe</code>. Similarly, consider the caveats of [https://wiki.haskell.org/index.php?title=Hask '''Hask'''].) [[User:Smlckz|Smlckz]] ([[User talk:Smlckz|talk]]) 17:41, 13 August 2026 (UTC)
:::Church numerals are an idea I love, and Peano arithmetic too! My initial attempt with von Neumann ordinals quickly stopped because of speed concerns :') Typeclasses is an idea I had a while ago (although I phrased it as Single Type, Multiple Representations) and could further improve Wikifunctions' abstractness and maybe even performance. I agree the lack of a number type is a major flaw in the system. Last point, I think implementation choice should mostly be done by the system automatically; what you call <code>unsafe</code> is similar to the concept of impurity in Nix, where calling an impure function makes the function calling it impure too. I believe an automatic explicit visible marking of such impure functions could help prevent their abusive use.
:::Given that some people seem interested in the ideas we discussed but it isn't a main focus at the moment, would you like us to discuss further ideas such as the writing of a formal Wikifunctions ''specification'', some new type proposals for an integer type, and maybe even develop the idea of typeclasses?
:::If you'd like a more dynamic discussion I have Discord if needed (hope it's not illegal to say that!) [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 21:52, 13 August 2026 (UTC)
::::I'd like to discuss, along with participation from implementors, such that we don't build [[wikt:castle in the air|castle in the air]]. With how things are in flux, designing a specification now might not be a good idea. At least, we'd need multiple competing full-featured implementations such that the need for specification can naturally arise. We can certainly discuss existing implementations of various programming systems: what to pick, what to discard and what to innovate in our circumstances.. <small><small>I don't use Discord. You can talk with me on [[w:IRC|IRC]]: find me in the Libera.chat channel <code>#wikipedia-abstract</code>. If you don't have an IRC client set up, you can use Libera's [https://libera.chat/guides/clients web clients]. Mention the time (with timezone) you'll be available. We can discuss which (better or worse) protocol/platform to use for further communication there. </small></small> [[User:Smlckz|Smlckz]] ([[User talk:Smlckz|talk]]) 04:16, 14 August 2026 (UTC)
:::::I do have IRC! <code>virinas-code</code>, I use the Konversation client. You do seem to have a lot more experience than me with functional programming so I'll be happy to discuss ideas with you :)
:::::I'm typically available from 2PM to 8PM and from 11PM to 2AM-4AM in the Europe/Paris timezone. I think one of the first thing we should do is fix the built-in lack of a number type. A specification can come much later, but we do need to reinforce existing documentation (e.g. by completing [[Wikifunctions:Function model]]). [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 12:48, 14 August 2026 (UTC)
== Wikifunctions & Abstract Wikipedia Newsletter #260: Shoutout to User:99of9 ==
There is [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-08-13|a new update]] for Abstract Wikipedia and Wikifunctions. Please, come and read it!
In this issue, we congratulate our own User:99of9 for his extensive work with the Wikifunctions & Abstract Wikipedia communities, we discuss what happened at Wikimania, we introduce a document for interested communities to join Abstract Wikipedia, and we take a look at the latest software developments.
Want to catch up with the previous updates? Check [[:f:Special:MyLanguage/Wikifunctions:Status updates|our archive]]!
Enjoy the reading! -- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 15:55, 13 August 2026 (UTC)
<!-- Message sent by User:Sannita (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Wikifunctions_%26_Abstract_Wikipedia&oldid=30870212 -->
== Showing where a function is used ==
Compositions allows to see the smaller functions/compositions that a specific implementation has used, but what about the other way around? Showing where a certain small function or composition was used in other bigger implementations. This would both show the impact of smaller, essential functions while also being helpful for people trying to build new implementations by following the same logic that has been implemented by someone else already to save time. What do you all think? [[User:Omar M. Ghaly|Omar M. Ghaly]] ([[User talk:Omar M. Ghaly|talk]]) 05:47, 16 August 2026 (UTC)
:[[Special:WhatLinksHere]]/[[Special:FunctionUsage]] [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 05:50, 16 August 2026 (UTC)
sc8cc3349yhuvn3f8lfxbjpdgxyuxqu
Wikifunctions talk:Main Page
5
3346
299791
296054
2026-08-16T01:02:04Z
Omar M. Ghaly
99256
/* Showing where a function is used */ new section
299791
wikitext
text/x-wiki
*''This is the place where you can discuss the Main Page.''
** ''The Main Page can be translated at [[Template:Main page]].''
** ''The Main Page News can be translated at [[Template:Main page/News]].''
*'''''General project discussion takes place at [[Wikifunctions:Project chat]].'''''
{{Autoarchive resolved section
|age = 1
|archive = ((FULLPAGENAME))/Archive/((year))/((month:##))
|timeout=30
}}
{{Archives|{{Flatlist|{{Special:PrefixIndex/Wikifunctions talk:Main Page/Archive/|stripprefix=1}} }} }}
;Sandbox links:
Use the sandboxes for complex edit suggestions.
* [[Template:Main page/sandbox]] and [[Template:Main page/sandbox/styles.css]]
== Promotion of multilingual functions ==
Could we replace the following?
* {{Z|13587}} with {{Z|16437}}
* {{Z|19514}} seems to only work for English despite taking Lexemes as input
[[User:Autom|Autom]] ([[User talk:Autom|talk]]) 15:32, 22 July 2026 (UTC)
:{{s}} do you have a suggestion for the second replacement? [[User:99of9|99of9]] ([[User talk:99of9|talk]]) 00:46, 23 July 2026 (UTC)
::No, I couldn't find a function that performs a similar task. It would be great to showcase a function that works with lexemes in the spirit of Z19514 (useful but not overly complicated). [[User:Autom|Autom]] ([[User talk:Autom|talk]]) 08:13, 24 July 2026 (UTC)
::The generalisation of [[Z19514]] would be {{Z|19530}}. See also the several other times this topic has been raised here in the archives. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 15:03, 26 July 2026 (UTC)
== Showing where a function is used ==
Compositions allows to see the smaller functions/compositions that a specific implementation has used, but what about the other way around? Showing where a certain small function or composition was used in other bigger implementations. This would both show the impact of smaller, essential functions while also being helpful for people trying to build new implementations by following the same logic that has been implemented by someone else already to save time. What do you all think? [[User:Omar M. Ghaly|Omar M. Ghaly]] ([[User talk:Omar M. Ghaly|talk]]) 01:02, 16 August 2026 (UTC)
nmmbs38osxexc87j0q98dmf20a47ibq
299797
299791
2026-08-16T01:59:59Z
99of9
1622
/* Showing where a function is used */ Reply
299797
wikitext
text/x-wiki
*''This is the place where you can discuss the Main Page.''
** ''The Main Page can be translated at [[Template:Main page]].''
** ''The Main Page News can be translated at [[Template:Main page/News]].''
*'''''General project discussion takes place at [[Wikifunctions:Project chat]].'''''
{{Autoarchive resolved section
|age = 1
|archive = ((FULLPAGENAME))/Archive/((year))/((month:##))
|timeout=30
}}
{{Archives|{{Flatlist|{{Special:PrefixIndex/Wikifunctions talk:Main Page/Archive/|stripprefix=1}} }} }}
;Sandbox links:
Use the sandboxes for complex edit suggestions.
* [[Template:Main page/sandbox]] and [[Template:Main page/sandbox/styles.css]]
== Promotion of multilingual functions ==
Could we replace the following?
* {{Z|13587}} with {{Z|16437}}
* {{Z|19514}} seems to only work for English despite taking Lexemes as input
[[User:Autom|Autom]] ([[User talk:Autom|talk]]) 15:32, 22 July 2026 (UTC)
:{{s}} do you have a suggestion for the second replacement? [[User:99of9|99of9]] ([[User talk:99of9|talk]]) 00:46, 23 July 2026 (UTC)
::No, I couldn't find a function that performs a similar task. It would be great to showcase a function that works with lexemes in the spirit of Z19514 (useful but not overly complicated). [[User:Autom|Autom]] ([[User talk:Autom|talk]]) 08:13, 24 July 2026 (UTC)
::The generalisation of [[Z19514]] would be {{Z|19530}}. See also the several other times this topic has been raised here in the archives. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 15:03, 26 July 2026 (UTC)
== Showing where a function is used ==
Compositions allows to see the smaller functions/compositions that a specific implementation has used, but what about the other way around? Showing where a certain small function or composition was used in other bigger implementations. This would both show the impact of smaller, essential functions while also being helpful for people trying to build new implementations by following the same logic that has been implemented by someone else already to save time. What do you all think? [[User:Omar M. Ghaly|Omar M. Ghaly]] ([[User talk:Omar M. Ghaly|talk]]) 01:02, 16 August 2026 (UTC)
:You'd be better posting this at [[Wikifunctions:Project_chat]]. --[[User:99of9|99of9]] ([[User talk:99of9|talk]]) 01:59, 16 August 2026 (UTC)
gutfvopzggpmoksl54wmhz7vwe2wvrs
299807
299797
2026-08-16T05:48:15Z
Omar M. Ghaly
99256
/* Showing where a function is used */ Reply
299807
wikitext
text/x-wiki
*''This is the place where you can discuss the Main Page.''
** ''The Main Page can be translated at [[Template:Main page]].''
** ''The Main Page News can be translated at [[Template:Main page/News]].''
*'''''General project discussion takes place at [[Wikifunctions:Project chat]].'''''
{{Autoarchive resolved section
|age = 1
|archive = ((FULLPAGENAME))/Archive/((year))/((month:##))
|timeout=30
}}
{{Archives|{{Flatlist|{{Special:PrefixIndex/Wikifunctions talk:Main Page/Archive/|stripprefix=1}} }} }}
;Sandbox links:
Use the sandboxes for complex edit suggestions.
* [[Template:Main page/sandbox]] and [[Template:Main page/sandbox/styles.css]]
== Promotion of multilingual functions ==
Could we replace the following?
* {{Z|13587}} with {{Z|16437}}
* {{Z|19514}} seems to only work for English despite taking Lexemes as input
[[User:Autom|Autom]] ([[User talk:Autom|talk]]) 15:32, 22 July 2026 (UTC)
:{{s}} do you have a suggestion for the second replacement? [[User:99of9|99of9]] ([[User talk:99of9|talk]]) 00:46, 23 July 2026 (UTC)
::No, I couldn't find a function that performs a similar task. It would be great to showcase a function that works with lexemes in the spirit of Z19514 (useful but not overly complicated). [[User:Autom|Autom]] ([[User talk:Autom|talk]]) 08:13, 24 July 2026 (UTC)
::The generalisation of [[Z19514]] would be {{Z|19530}}. See also the several other times this topic has been raised here in the archives. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 15:03, 26 July 2026 (UTC)
== Showing where a function is used ==
Compositions allows to see the smaller functions/compositions that a specific implementation has used, but what about the other way around? Showing where a certain small function or composition was used in other bigger implementations. This would both show the impact of smaller, essential functions while also being helpful for people trying to build new implementations by following the same logic that has been implemented by someone else already to save time. What do you all think? [[User:Omar M. Ghaly|Omar M. Ghaly]] ([[User talk:Omar M. Ghaly|talk]]) 01:02, 16 August 2026 (UTC)
:You'd be better posting this at [[Wikifunctions:Project_chat]]. --[[User:99of9|99of9]] ([[User talk:99of9|talk]]) 01:59, 16 August 2026 (UTC)
::Thanks for informing me! [[User:Omar M. Ghaly|Omar M. Ghaly]] ([[User talk:Omar M. Ghaly|talk]]) 05:48, 16 August 2026 (UTC)
2eb7z6ak05fktbf67gocoyuy7f4g905
Z21794
0
48021
299800
158268
2026-08-16T02:45:18Z
Feeglgeef
8776
299800
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z21794"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z21791",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z21791",
"Z21791K1": {
"Z1K1": "Z7",
"Z7K1": "Z6825",
"Z6825K1": {
"Z1K1": "Z6095",
"Z6095K1": "L55756"
}
},
"Z21791K2": {
"Z1K1": "Z7",
"Z7K1": "Z6825",
"Z6825K1": {
"Z1K1": "Z6095",
"Z6095K1": "L721785"
}
},
"Z21791K3": "Z16662"
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z866",
"Z866K2": "ella es una fundadora española"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "ella es una fundadora española"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
eideh8c59c7z8l7tds18xaforslx8s2
Z32823
0
79253
299641
298113
2026-08-15T15:19:14Z
Artsiom91
2118
add Russian
299641
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z32823"
},
"Z2K2": {
"Z1K1": "Z14294",
"Z14294K1": [
"Z14293",
{
"Z1K1": "Z14293",
"Z14293K1": "Z38994",
"Z14293K2": "Z33034"
},
{
"Z1K1": "Z14293",
"Z14293K1": "Z39489",
"Z14293K2": [
"Z60",
"Z1005"
]
}
],
"Z14294K2": "Z39018"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "config for demonym"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1592",
"Z11K2": "konfiguration för demonym"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
n5ldjrsve2l8k2xsop103fqzx1frewf
Z33024
0
79571
299670
299537
2026-08-15T18:27:59Z
WikiLambda system
3
Updated the implementation list (see [[Help:Wikifunctions/Implementation_ordering_and_choosing|About implementation selection]])
299670
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z33024"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": {
"Z1K1": "Z7",
"Z7K1": "Z881",
"Z881K1": "Z6091"
},
"Z17K2": "Z33024K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "items"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1430",
"Z11K2": "Elemente"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z60",
"Z17K2": "Z33024K2",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "language "
},
{
"Z1K1": "Z11",
"Z11K1": "Z1430",
"Z11K2": "Sprache"
}
]
}
}
],
"Z8K2": {
"Z1K1": "Z7",
"Z7K1": "Z881",
"Z881K1": "Z11"
},
"Z8K3": [
"Z20",
"Z33025",
"Z34679",
"Z34688",
"Z38847"
],
"Z8K4": [
"Z14",
"Z39472",
"Z34678"
],
"Z8K5": "Z33024"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "label texts for Wikidata items [QIDs]"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1430",
"Z11K2": "Bezeichnungstexte für Wikidata-Elemente"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31",
{
"Z1K1": "Z31",
"Z31K1": "Z1002",
"Z31K2": [
"Z6",
"label monolingual texts for Wikidata items"
]
}
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "returns the text from label in the given language, for each Wikidata item referenced"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1430",
"Z11K2": "Gibt für jedes referenzierte Wikidata-Element den Text aus der Bezeichnung in der angegebenen Sprache zurück"
}
]
}
}
g6aa9vacjbwxpqjk95nupe1isuwimz0
Wikifunctions:Type proposals/Syntactic table
4
79588
299804
288660
2026-08-16T05:44:38Z
Carnildo
54460
/* Comments */
299804
wikitext
text/x-wiki
: ''Experimentally implemented'': {{Z+|Z36462}} --[[User:DVrandecic (WMF)|DVrandecic (WMF)]] ([[User talk:DVrandecic (WMF)|talk]]) 12:49, 17 June 2026 (UTC)
One aim of the NLG system is to have a small number of language-specific functions. It is OK to have many abstract functions, but the specific languages should ideally be less numerous.
For example, consider the following six outputs:
# Brač is an island.
# Brač is a beautiful island.
# Brač is a beautiful [[:en:Island|island]].
# '''Brač''' is an island.
# '''Brač''' is a beautiful island.
# '''Brač''' is a beautiful [[:en:Island|island]].
How many language-specific functions would that need?
If I look at the current best practices, I seem to land on six language-specific functions, one for each output. Even though grammatically there seem to be only two major operations:
* Connect two noun phrases in a predicative sentence: Brač is an island
* Combine an adjective and a noun to form a noun phrase: a beautiful island
Besides that, we would have functions to turn a phrase into a link or to give strong emphasis to a phrase, but do these need to be language-specific? I think not.
We seem to have all the necessary pieces for the outputs already available:
* <code>Indefinite noun phrase with adjective</code>: a beautiful island ([https://www.wikifunctions.org/wiki/Z22664?call=%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z22664%22%2C%22Z22664K1%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q23442%22%7D%2C%22Z22664K2%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q7242%22%7D%2C%22Z22664K3%22%3A%22Z1002%22%7D function call])
* <code>Article-less instantiating fragment</code>: Brač is an island. ([https://www.wikifunctions.org/wiki/Z26039?call=%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z26039%22%2C%22Z26039K1%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q922%22%7D%2C%22Z26039K2%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q23442%22%7D%2C%22Z26039K3%22%3A%22Z1002%22%7D function call])
* <code>Strong importance</code>: '''Brač''' ([https://www.wikifunctions.org/view/en/Z28914?call=%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z28914%22%2C%22Z28914K1%22%3A%22Bra%C4%8D%22%7D function call])
* <code>HTML link to Wikipedia article about Wikidata item</code>: [[:en:Island|island]] ([https://www.wikifunctions.org/view/en/Z29588?call=%7B%22Z1K1%22%3A%22Z7%22%2C%22Z7K1%22%3A%22Z29588%22%2C%22Z29588K1%22%3A%22Z1002%22%2C%22Z29588K2%22%3A%7B%22Z1K1%22%3A%22Z6091%22%2C%22Z6091K1%22%3A%22Q23442%22%7D%7D function call])
But it is currently not possible to plug these together to allow for the creation of the outputs above, beyond the first one.
That’s partially because of the involved types:
* <code>indefinite noun phrase with adjective</code> takes two <code>Wikidata item references</code> and a <code>language</code> and returns a <code>string</code>
* <code>article-less instantiating fragment</code> does the same
* <code>Strong importance</code> takes a <code>string</code> and returns an <code>HTML fragment</code>
* <code>HTML link to Wikipedia article about Wikidata item</code> takes a <code>language</code> and a <code>Wikidata item reference</code> and returns an <code>HTML fragment</code>
It seems that what we would want to do is the following (the language parameter has been omitted for legibility):
# <code>instantiating( Brač, island )</code>
# <code>instantiating( Brač, noun with adjective( island, beauty ) )</code>
# <code>instantiating( Brač, noun with adjective( link( island ), beauty ) )</code>
# <code>instantiating( strong( Brač ), island )</code>
# <code>instantiating( strong( Brač ), noun with adjective( island, beauty ) )</code>
# <code>instantiating( strong( Brač ), noun with adjective( link( island ), beauty ) )</code>
If we want to be able to do this, the type of <code>Brač</code> and the return type of <code>strong</code> must be the same, as well as the type of <code>island</code> and the return types of <code>link</code> and <code>noun with adjective</code>.
What could that type be?
In English, as usual, we may get seduced to a certain simplicity: we could probably just use <code>HTML fragment</code> as the type and probably get away with it! All of the operations above seem to work out.
But in French (or Italian or Spanish or many other languages) that wouldn’t work: <code>noun with adjective</code> needs to know the gender of the noun in order to select the right form of the adjective (the adjective and the noun need to agree with each other). HTML fragment does not provide that information.
I don’t think that there currently is a good type for that. I suggest introducing a new type, the <code>syntactic table</code>. This is inspired by [[:en:Grammatical Framework (programming language)|Grammatical Framework]], and in core similar to a [[Wikifunctions:Type proposals/Syntactic type|proposal I made last year]], but I learned a lot from the comments and modified the type accordingly, making it considerably simpler.
<code>Syntactic table</code> has the following four keys:
# <code>Language</code>, i.e. which <code>natural language</code> is this table for
# <code>Part of speech</code>, i.e. which part of speech is this (noun, noun phrase, verb, adjective, etc.) (is this a lightweight enumeration or a <code>Wikidata item reference</code>?)
# <code>Inherent features</code>, <code>list</code> of <code>Wikidata item references</code> representing grammatical features, e.g. <code>masculine</code>, <code>plural</code>, etc.
# <code>Options</code>, a <code>list</code> of <code>pairs</code> of a <code>list</code> of <code>Wikidata item references</code> (representing grammatical features) and a <code>list</code> of <code>HTML fragments</code>
Or, do visualize it, here is a visualization of the syntactic table for the German noun ''“Stadt”'', meaning ''city''.
{| class="wikitable"
|'''''language'''''
| colspan="4" |German
|-
|'''''Part of speech'''''
| colspan="4" |noun
|-
|'''''Inherent feature'''''
| colspan="4" |feminine
|-
|'''''options'''''
|'''nominative'''
|'''genitive'''
|'''dative'''
|'''accusative'''
|-
|'''singular'''
|Stadt
|Stadt
|Stadt
|Stadt
|-
|'''plural'''
|Städte
|Städte
|Städten
|Städte
|}
And here is a partial visualization of the syntactic table for the German adjective ''“schön”'', meaning ''beautiful''.
{| class="wikitable"
|'''''language'''''
| colspan="4" |German
|-
|'''''Part of speech'''''
| colspan="4" |adjective
|-
|'''''Inherent feature'''''
| colspan="4" |—
|-
| rowspan="2" |'''''options'''''
| colspan="3" |'''singular'''
| rowspan="2" |'''plural'''
|-
|'''masculine'''
|'''feminine'''
|'''neuter'''
|-
|'''nominative'''
|schöner
|schöne
|schönes
|schönen
|-
|'''genitive'''
|schönen
|schönen
|schönen
|schönen
|-
|'''dative'''
|schönen
|schönen
|schönen
|schönen
|-
|'''accusative'''
|schönen
|schöne
|schönes
|schönen
|}
Now there would be a number of functions working on <code>syntactic tables</code>: for example, the <code>merge</code> function, which takes two tables and returns a table, representing the merger.
The inherent features of each of the tables are used to filter the options in each other tables. In addition, the options are combined together to create a new map of forms. So the result of the merging the two tables with a simple spaced concatenation would be:
{| class="wikitable"
|'''''language'''''
| colspan="4" |German
|-
|'''''Part of speech'''''
| colspan="4" |core noun phrase
|-
|'''''Inherent feature'''''
| colspan="4" |feminine
|-
|'''''options'''''
|'''nominative'''
|'''genitive'''
|'''dative'''
|'''accusative'''
|-
|'''singular'''
|schöne Stadt
|schönen Stadt
|schönen Stadt
|schöne Stadt
|-
|'''plural'''
|schönen Städte
|schönen Städte
|schönen Städten
|schönen Städte
|}
Another function could be used to bold a part of the text (which is a mostly language-independent operation). So we might have bolded the noun ''‘Stadt’'' before, which would result in the following output:
{| class="wikitable"
|'''''language'''''
| colspan="4" |German
|-
|'''''Part of speech'''''
| colspan="4" |noun
|-
|'''''Inherent feature'''''
| colspan="4" |feminine
|-
|'''''options'''''
|'''nominative'''
|'''genitive'''
|'''dative'''
|'''accusative'''
|-
|'''singular'''
|'''Stadt'''
|'''Stadt'''
|'''Stadt'''
|'''Stadt'''
|-
|'''plural'''
|'''Städte'''
|'''Städte'''
|'''Städten'''
|'''Städte'''
|}
If we merge that with the adjective as before, we get the following result:
{| class="wikitable"
|'''''language'''''
| colspan="4" |German
|-
|'''''Part of speech'''''
| colspan="4" |core noun phrase
|-
|'''''Inherent feature'''''
| colspan="4" |feminine
|-
|'''''options'''''
|'''nominative'''
|'''genitive'''
|'''dative'''
|'''accusative'''
|-
|'''singular'''
|schöne '''Stadt'''
|schönen '''Stadt'''
|schönen '''Stadt'''
|schöne '''Stadt'''
|-
|'''plural'''
|schönen '''Städte'''
|schönen '''Städte'''
|schönen '''Städten'''
|schönen '''Städte'''
|}
And if we merge that with an indefinite article, we get a full noun phrase:
{| class="wikitable"
|'''''language'''''
| colspan="4" |German
|-
|'''''Part of speech'''''
| colspan="4" |noun phrase
|-
|'''''Inherent feature'''''
| colspan="4" |feminine
|-
|'''''options'''''
|'''nominative'''
|'''genitive'''
|'''dative'''
|'''accusative'''
|-
|'''singular'''
|eine schöne '''Stadt'''
|einer schönen '''Stadt'''
|einer schönen '''Stadt'''
|eine schöne '''Stadt'''
|-
|'''plural'''
|schönen '''Städte'''
|schönen '''Städte'''
|schönen '''Städten'''
|schönen '''Städte'''
|}
Note that we are always operating on <code>syntactic tables</code>, both in the input and in the output, allowing us to combine the functions flexibly.
Compared to my [[Wikifunctions:Type proposals/Syntactic type|previous proposal]], we would not be creating hundreds of types, but just a small number (one basically, maybe some supporting types), answering one of the biggest criticisms. Also, the new type will be available immediately for all languages that want to use it.
To summarize, the idea is to have two kind of functions: functions that are usable across all (or at least most) languages (such as <code>link</code> or <code>strong emphasis</code>) and functions that need to be implemented in each language (such as <code>noun with adjective</code>). Both can use the same type, and thus be combined in a way that can reduce the number of functions in the latter group.
== Discusssion ==
=== Cory's thoughts ===
This proposal can get us very far for languages with simple (-ish) morphologies. It will be less effective for morphologically rich language, where a syntactic table might contain thousands of forms, and where it might be more natural to apply these kinds of transformations only to parts of words. For example, while some languages might be okay with
<blockquote>schönen <bold>Städte</bold></blockquote>
others might prefer something like
<blockquote>schönen <bold>Städt</bold>e</blockquote>
(note the "e" standing outside of the bold chunk). This can even happen in English: if we wanted to make the phrasal verb "pick up" bold in a sentence, we'd have to deal with non-consecutive bold tokens, e.g.
<blockquote>Please <bold>pick</bold> it <bold>up</bold>.</blockquote>
More broadly, NLP systems tend to handle this kind of metadata in one of two ways: offset and inset annotation. Inset annotation looks like the above examples: tags that intervene directly in a data structure. Offset annotation might look more like this:
<pre>
{
"text": "Please pick it up.",
"spans": [
{ "tag": "bold", "begin": 7, "end": 11 },
{ "tag": "bold", "begin": 15, "end": 17 }
]
}
</pre>
Decisions like this are not unrelated to how we decide to represent linguistic elements more generally. A general, robust solution would involve treating linguistic units not as literal text strings but as symbolic transformational nodes. In this case, the system wouldn't operate over "Stadt" but over a richer structure containing 1) the syntactic usage of "Stadt," 2) the eventual inflected form of "Stadt," and 3) any additional annotations, such as bold text, that should be applied to the token.
It is also possible for these two paradigms to play nicely together. At the end of the day, our system will need to produce specific surface forms in sequence to create sentences, but how we get to those surface forms can vary. Some languages might use syntactic tables while others might need to function in terms of symbolic morphological transformations (if only to reduce the search space of possible syntactic tables!).
=== Further thoughts by Denny ===
Cory’s point is valid. In some languages, we will easily get to hundreds of forms. That may not be feasible. Questions are whether we can avoid to expand all these forms, or whether, maybe with a smart usage of quoting functions or some other mechanism, we can find a way to scale the system.
== Alternatives ==
* [[WF:Type proposals/Semantic unit]]
* [[WF:Type proposals/Abstract sentence]]
== Comments ==
* <s>{{s}}: this isn't perfect, but it's much much better. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 16:32, 2 April 2026 (UTC)</s> {{neutral}}: I'd like more opporitunity to review the two competing proposals on this topic, which one we go with is important. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 13:59, 10 April 2026 (UTC)
* {{s}} I feel that this is a step that's required for handling different types of phrases. [[User:Jsamwrites|John Samuel]] 17:59, 2 April 2026 (UTC)
* {{s}} I like the idea as I really like spreadsheet functions and tables. As I like Boilerplate templates I hope this proposal can help making it easier to create a function for a specific sentence representing some Wikidata statements.--[[User:Hogü-456|Hogü-456]] ([[User talk:Hogü-456|talk]]) 16:17, 3 April 2026 (UTC)
* {{neutral|Comment}} I'm skeptical that we can attain general prose in non-European languages even with this extra context.<!--
--><br>Looking at your example of <code>noun_with_adjective[de] := (noun, adj) => matrix_product(concat_with_space)(adj, noun)</code>,<!--
--> each of the cells/entries in the table is a single [[Z89]], so it seems this Type is limited to grammars where applying an adjective to a noun is just a prefix and/or suffix.<!--
--> I've [[Talk:Z27137#Japanese|previously remarked]] that [[d:Q2116774|counters in Japanese]] can "migrate" to the verb (unlike in English, German, etc. where counters behave like adjectives).<!--
--> To accommodate this, either the language-specific <code>merge</code> Function would have to parse and split off the counter when embedding the noun phrase into a sentence,<!--
--> or this Type would have to somehow encode a split result with additional tagging on each segment.<!--
--><br>IMO a better model for applying formatting like boldface and hyperlinks would be as <code>Z882(Z11, Z883(Z6091, Z881(Z882(Z13518, Z13518))))</code>,<!--
--> that is, to do all linguistic processing on plaintext, but keep track of which span(s) in the string corresponds to each Item from the outer callsite.<!--
--> Then that outer Function can format and linkify the final string by iterating those ranges as ordered by their start index.<!--
--> edit: [[abstract:Project:Abstract article architectures#Modest improvement to current architecture using spans]]<!--
--> [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 17:53, 3 April 2026 (UTC)
* {{o|Weakly oppose}} While I completely support the need to scale NLG functions outside simple fragment generating functions, I'm skeptical on the bottom-up approach that syntactic tables use. As already addressed, starting composing a sentence from the constituent parts is problematic, since in many instances the behaviour of a part of the sentence depends in non trivial ways to the entire structure of the sentence (in ways that are sometimes not neatly encodable in a simple table). I think that usually the best approach for NLG is top-down, which means that a function should try to generate an entire sentence, delegating to other functions the generation of parts of a sentence (providing the necessary grammatical context). When I have time, I'll try to formulate an alternative proposal. This type could still be a useful intetnal tool, but I think using it as the foundation for modular NLG can be very problematic. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 15:14, 5 April 2026 (UTC)
*:I've now formulated the proposal for [[Wikifunctions:Type proposals/Abstract sentence]] [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 12:22, 7 April 2026 (UTC)
* {{o}} per YoshiRulz and Dv103; I have started proposing types based on my own efforts at language generation at ,[[Wikifunctions:Type proposals/Syntactic unit]] and [[Wikifunctions:Type proposals/Semantic unit]]. [[User:Mahir256|Mahir256]] ([[User talk:Mahir256|talk]]) 17:54, 5 April 2026 (UTC)
*:Thanks for the links :) [[User:So9q|So9q]] ([[User talk:So9q|talk]]) 21:00, 5 April 2026 (UTC)
* I’m not opposed to this proposal, but I do question the wisdom of characterizing a type without formalizing it. We already see the inconvenience with {{Z|Z11}}, where we are unable to identify that a function is limited to a particular language. For what are logically more constrained functions, I think the “too many types” is a valid objection, but if types have no part to play in managing the inevitable complexity, what is the alternative?
: I hesitate to leap to solutions, but we should at least explore “generic” types here. In any event, I believe we should make some distinction at the type level, based on the syntactic category (“part of speech” in the proposal). For example, constructions that (logically) require a noun phrase for a particular argument should resist having that argument provided by a function that returns a verb phrase (which would need to be wrapped in a nominalization function). That looks and feels like type-handling, of course, but the real question remains: If syntactic categories are not represented by persistent or generic types, how are the constraints associated with those categories represented and enforced, particularly when constructing compositions, as opposed to evaluating them.
:[[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 10:16, 17 June 2026 (UTC)
::I think these are great questions. My favorite proposal is still to create specific types for (English / French / Dagbani / ...) (nouns / verb / noun phrase / adjective / ...), in addition to abstract (noun / verb / noun phrase / adjective ...), but there was too much pushback on that one.
::My sense is that we can kick off this one (I did so yesterday) and try it out. We can later still switch to a "many types" solution, most of the functions would be basically the same. --[[User:Denny|Denny]] ([[User talk:Denny|talk]]) 12:47, 17 June 2026 (UTC)
:::Yes. As I say, I’m not opposed; I just think that we should expect to end up with “many” types, with whichever structures, whether or not we factor out the language. As I understand the proposal, the complex “generic” type of a K4 object would be the same in every instance, so it is purely structural, with no surfacing of the permitted or expected combinations. Is that right? [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 13:58, 17 June 2026 (UTC)
::::that's correct, K4 is purely structural. One could write functions that check that the table for an English noun is all correct, but as a datatype it is not aware of it. --[[User:Denny|Denny]] ([[User talk:Denny|talk]]) 13:05, 22 June 2026 (UTC)
::::That's actually a good idea, I implemented {{Z|Z36770}} in order to validate English nouns, as an example. --[[User:Denny|Denny]] ([[User talk:Denny|talk]]) 13:26, 22 June 2026 (UTC)
{{o}} It seems likely that it'll work for English, and I'll accept Denny's claim that it works for German, but other languages will run into problems because this only deals with syntax, not semantics. To visualize the issue, let's look at the Spanish syntactic tables for the noun "amigo" (friend) and the adjective "viejo" (old):
{| class="wikitable"
|'''''language'''''
| colspan="2" |Spanish
|-
|'''''Part of speech'''''
| colspan="2" |noun
|-
|'''''Inherent feature'''''
| colspan="2" |masculine
|-
|'''''options'''''
|
|-
|'''singular'''
|amigo
|-
|'''plural'''
|amigos
|}
{| class="wikitable"
|'''''language'''''
| colspan="3" |Spanish
|-
|'''''Part of speech'''''
| colspan="3" |adjective
|-
|'''''Inherent feature'''''
| colspan="5" | -
|-
|rowspan="2"|'''''options'''''
|colspan="2"|'''singular'''
|colspan="2"|'''plural'''
|-
|'''''masculine'''''
|'''''feminine'''''
|'''''masculine'''''
|'''''feminine'''''
|-
|
|viejo
|vieja
|viejos
|viejas
|}
The hypothetical <code>merge</code> function, following the common rule for Spanish word order, might produce the following:
{| class="wikitable"
|'''''language'''''
| colspan="2" |Spanish
|-
|'''''Part of speech'''''
| colspan="2" |core noun phrase
|-
|'''''Inherent feature'''''
| colspan="2" |masculine
|-
|'''''options'''''
|
|-
|'''singular'''
|amigo viejo
|-
|'''plural'''
|amigos viejos
|}
But there's a problem: this table only represents half the possible meanings for combining the words "amigo" and "viejo". If you combine them in the other order, you get this table:
{| class="wikitable"
|'''''language'''''
| colspan="2" |Spanish
|-
|'''''Part of speech'''''
| colspan="2" |core noun phrase
|-
|'''''Inherent feature'''''
| colspan="2" |masculine
|-
|'''''options'''''
|
|-
|'''singular'''
|viejo amigo
|-
|'''plural'''
|viejos amigos
|}
The two don't mean the same thing. "Viejo amigo" means "old (=long-time) friend", while "amigo viejo" means "old (=elderly) friend". And "viejo" is hardly the only adjective with this property; I can purchase a "nuevo carro" from a used-car salesman.
This is all without getting into higher-level functions. <code>instantiating()</code> (Wiktionary "be" definition 2.3) might be reasonably simple in Spanish, but <code>attributive()</code> (Wiktionary "be" 2.4) requires a whole mess of semantic metadata to select the correct verb (for example, "está sucio" can be remedied by washing, while "es sucio" can't). --[[User:Carnildo|Carnildo]] ([[User talk:Carnildo|talk]]) 05:44, 16 August 2026 (UTC)
bcjunexy3h9vtdyeib7qc2w6ow03fao
Wikifunctions:Requests for connection and disconnection
4
81533
299656
297795
2026-08-15T16:18:56Z
Artsiom91
2118
new request
299656
wikitext
text/x-wiki
{{archives|{{flatlist|{{Special:PrefixIndex/WF:Requests for connection and disconnection/Archives/|stripprefix=1|hideredirects=1}}}}|prefix=WF:Requests for connection and disconnection/Archives/}}
This page allows non-[[WF:functioneers|functioneers]] to request the connection or disconnection of implementations and tests to/from a function. To add a request, add the details of your request (Remember to add <nowiki>~~~~</nowiki> to sign!), using the <nowiki>{{Z|<your five id numbers here>}}</nowiki> template to reference and link to a specific ZID. Functioneers may, at their discretion, refuse to connect implementations that do not pass or do not have tests, and tests that do not pass or do not make logical sense.
== Requests ==
Please connect the implementation and tests for [[Z39473]] and [[Z39489]] (the second depends on the first).--[[User:Artsiom91|Artsiom91]] ([[User talk:Artsiom91|talk]]) 16:18, 15 August 2026 (UTC)
Please connect the implementation and tests for [[Z32728]]. [[User:Webmaster2024|Webmaster2024]] ([[User talk:Webmaster2024|talk]]) 13:15, 1 August 2026 (UTC)
:The output is slightly different than expected for both tests. It's okay to have edge cases which fail, but there should be passing tests as well. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 16:22, 1 August 2026 (UTC)
::I've fixed one test now, please also connect nested functions. [[User:Webmaster2024|Webmaster2024]] ([[User talk:Webmaster2024|talk]]) 18:01, 1 August 2026 (UTC)
:::{{done}} [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 18:11, 1 August 2026 (UTC)
Please connect the implementation and test for [[Z33679]]. Thank you. [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 03:42, 17 April 2026 (UTC)
:{{done}} --[[User:99of9|99of9]] ([[User talk:99of9|talk]]) 03:50, 17 April 2026 (UTC)
Please connect the implementations and tests for [[Z33785]], [[Z33788]], and [[Z33780]]. Thank you! [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 03:13, 20 April 2026 (UTC)
:{{done}} [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 03:48, 20 April 2026 (UTC)
Please connect the Python implementation of {{Z|Z33803}}. Thank you. [[User:OzmoOzmo|OzmoOzmo]] ([[User talk:OzmoOzmo|talk]]) 10:48, 20 April 2026 (UTC)
:The function is a duplicate of {{Z|Z20430}} [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 10:56, 20 April 2026 (UTC)
::Now I've connected the implementation to {{Z|Z20430}}. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 11:02, 20 April 2026 (UTC)
{{Z|Z33859}} (an implementation of {{Z|Z32297}} for Filipino, Tagalog and Kapampangan) with its sole implementation {{Z|Z33860}}. —[[User:UndueMarmot|<span style="color:#705ccb;">Undue</span><span style="color:#cfdfa3;background-color:#705ccb;">Marmot</span>]] <small>([[User talk:UndueMarmot|talk]])</small> 12:20, 21 April 2026 (UTC)
:{{done}} [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 12:24, 21 April 2026 (UTC)
Please connect the implementation of {{Z|33878}}. Thank you! [[User:Some helpful person|Some helpful person]] ([[User talk:Some helpful person|talk]]) 16:42, 21 April 2026 (UTC)
:Could you add some tests to check its correctness? [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 16:54, 21 April 2026 (UTC)
::{{D}} [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 17:03, 21 April 2026 (UTC)
Please connect the test cases and passing implementation of {{Z|Z24602}}. Thank you! [[User:Some helpful person|Some helpful person]] ([[User talk:Some helpful person|talk]]) 21:12, 22 April 2026 (UTC)
:...Of course the moment I say that I find at least one of the test cases are passing with an invalid input... Will debug. [[User:Some helpful person|Some helpful person]] ([[User talk:Some helpful person|talk]]) 21:15, 22 April 2026 (UTC)
:Please connect the test cases instead so it will be easier to debug! [[User:Some helpful person|Some helpful person]] ([[User talk:Some helpful person|talk]]) 21:23, 22 April 2026 (UTC)
::{{done}} [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 21:34, 22 April 2026 (UTC)
Please connect [[Z33955]] with its implementation and test cases. Thanks. [[User:Sun8908|Sun8908]] ([[User talk:Sun8908|talk]]) 21:31, 22 April 2026 (UTC)
:{{done}}. Also, please consider requesting functioneer, I would support it! And thank you for your welcome on WD, too! [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 21:36, 22 April 2026 (UTC)
Please disconnect the implementation {{Z|Z30288}} so that it can be fixed and reconnected. It erroneously compares the second element of the second typed pair to itself, and thus breaks many other functions and test cases reliant on it. Added a test case for this, which it of course fails. Thank you very much! <small>(resolves many headaches)</small> [[User:Some helpful person|Some helpful person]] ([[User talk:Some helpful person|talk]]) 03:30, 24 April 2026 (UTC)
:{{done}} Please kindly check. [[User:NikolasKHF|NikolasKHF]] ([[User talk:NikolasKHF|talk]]) 03:40, 24 April 2026 (UTC)
:Oops! Sorry about that. Thanks for fixing this. [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 07:41, 24 April 2026 (UTC)
Please connect the implementations and tests for [[Z34124]] and its helper [[Z34127]]. Thank you! [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 23:49, 24 April 2026 (UTC)
:{{Done}} [[User:NikolasKHF|NikolasKHF]] ([[User talk:NikolasKHF|talk]]) 23:58, 24 April 2026 (UTC)
Please connect the implementation and tests for [[Z34204]]. Thank you! [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 05:28, 26 April 2026 (UTC)
:{{Done}} [[User:NikolasKHF|NikolasKHF]] ([[User talk:NikolasKHF|talk]]) 05:31, 26 April 2026 (UTC)
Please connect the implementation and test cases for [[Z33951]], [[Z34009]] and [[Z34008]]. Thank you. [[User:Sun8908|Sun8908]] ([[User talk:Sun8908|talk]]) 06:32, 26 April 2026 (UTC)
:{{done}} except for {{z|Z34008}} since it fail for all test cases. [[User:NikolasKHF|NikolasKHF]] ([[User talk:NikolasKHF|talk]]) 07:01, 26 April 2026 (UTC)
::Oh. The test cases fail mainly because the implementations for Z33951 and Z34009 were not connected yet. I guess we have to wait for a while until the connected implementation goes through. [[User:Sun8908|Sun8908]] ([[User talk:Sun8908|talk]]) 13:20, 26 April 2026 (UTC)
:::{{done}} by YoshiRulz. Thank you. [[User:Sun8908|Sun8908]] ([[User talk:Sun8908|talk]]) 15:58, 26 April 2026 (UTC)
Please connect the implementation and test cases for [[Z34212]]. Thank you. [[User:Sun8908|Sun8908]] ([[User talk:Sun8908|talk]]) 15:58, 26 April 2026 (UTC)
:{{done}} by myself, as I was just granted functioneer. [[User:Sun8908|Sun8908]] ([[User talk:Sun8908|talk]]) 16:20, 26 April 2026 (UTC)
Please disconnect {{Z|Z20694}}. A string without diacritics could be a valid pinyin due to the existence of neutral tone. The pinyin does not correspond to a real phrase, but it doesn't violate any rules for pinyin. [[User:Sun8908|Sun8908]] ([[User talk:Sun8908|talk]]) 16:08, 26 April 2026 (UTC)
:{{done}} by myself, as I was just granted functioneer. [[User:Sun8908|Sun8908]] ([[User talk:Sun8908|talk]]) 16:20, 26 April 2026 (UTC)
Is it possible to connect {{Z|Z34293}} and its respective tests please? It's a really simple piece of code, I might have gone a bit overboard with the tests though. [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 13:01, 27 April 2026 (UTC)
:{{done}} [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 13:13, 27 April 2026 (UTC)
A similar one (but any this time!): {{Z|Z34367}}. Could it be possible to connect it and its tests? This time there's a reasonable amount of them and they cover most cases too ;) [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 16:33, 27 April 2026 (UTC)
:{{done}} [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 17:24, 27 April 2026 (UTC)
Hello!
Can somebody please connect the following functions?
* {{Z|Z34308}}
* {{Z|Z34165}} (its dependency is currently unimplemented)
* {{Z|Z34139}}
And perhaps the tests for:
* {{Z|Z34149}}
* {{Z|Z34150}}
Pinging @[[User:Dv103|Dv103]] because they helped me with this function and have the functioneer role. <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 16:28, 27 April 2026 (UTC)
:{{d}} except the implementation of {{Z|Z34165}}, since it doesn't work (first requires the implementation of {{Z|Z34149}}). [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 17:13, 27 April 2026 (UTC)
Could {{Z|Z34273}}, {{Z|Z34378}} and {{Z|Z34380}} please be connected? Note that they all recursively depend on each other, so it's not possible to only activate a few of them. Thanks! [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 21:28, 27 April 2026 (UTC)
:{{done}}, thank you for your contributions. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 02:48, 28 April 2026 (UTC)
Another little thing, is it possible to disconnect {{Z|Z34263}}'s test cases {{Z|Z34269}} and {{Z|Z34267}} please? I'd like to rewrite them using {{Z|Z34273}}. [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 08:31, 28 April 2026 (UTC)
:{{Done}}, please proceed. [[User:NikolasKHF|NikolasKHF]] ([[User talk:NikolasKHF|talk]]) 09:01, 28 April 2026 (UTC)
::Sorry for the late response, had an exam today... Anyways, I reworked them a little and they can be connected again! [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 20:05, 28 April 2026 (UTC)
Is it possible to connect some new tests related to my previous functions ({{Z|Z34471}}, {{Z|Z34470}}, {{Z|Z34472}})? They implement the fact that in formal set theory {∅;∅} and {∅} are the exact same sets: duplicate elements behave in the same way as if they were only present once. Thanks in advance! [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 20:34, 28 April 2026 (UTC)
:{{done}} [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 20:40, 28 April 2026 (UTC)
Hello again! Could {{Z|Z34409}} and its tests please be connected? Thanks again! [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 10:41, 29 April 2026 (UTC)
:Your Implementation failed [[Z34491]] and [[Z34494]] when I connected it, so I've left it disconnected. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 11:05, 29 April 2026 (UTC)
::Interesting... What failed exactly? When I look at error logs for tests all it says is "no connected implementation"... [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 11:09, 29 April 2026 (UTC)
:::In all 3 cases, the returned value was equal to the input (a flattening step was missing). I think my fix is correct, but please double-check it. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 12:13, 29 April 2026 (UTC)
::::Took a look at it, forgot the <math>\operatorname{Pred}(\{ \O \})=\O</math> part in the recursion (whoopsies!). Made an alternative implementation {{Z|Z34509}} using only set operations and builtins; my goal with all those functions is that they don't depend on any other "complex" functions, they should be as simple as possible. Note that it doesn't remove duplicates, but this doesn't matter since <math>\{ \O, \O \} = \{ \O \}</math> anyways. [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 16:15, 29 April 2026 (UTC)
Andd back with another set-related function: {{Z|Z34519}}! This one paves the way for set union (and maybe an alternative implementation of predecessor?). Could it please be connected? Thanks!! [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 19:38, 29 April 2026 (UTC)
:{{done}} [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 19:38, 29 April 2026 (UTC)
As promised, here is {{Z|Z34538}}! Can it be connected please? If you need more tests before I'll add some! [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 20:59, 29 April 2026 (UTC)
:{{done}}. Also, if you'd like to request functioneer rights, I'd support it. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 21:59, 29 April 2026 (UTC)
::Thanks a lot for the offer! I might consider it a bit later, for now I promise to calm down a little with the requests :) [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 20:25, 30 April 2026 (UTC)
Hi! First could {{Z|Z34544}} please be connected? It corresponds to the mathematical definition of predecessor and seems to be a ''bit'' faster than other implementations :) I've also made {{Z|Z34585}} and {{Z|Z34620}}, could they please be connected? They both have a few tests, but I'm going to add some more for edge cases like duplicate elements (which should be ignored when working with sets). Thanks a lot! [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 20:28, 30 April 2026 (UTC)
:{{done}} [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 20:34, 30 April 2026 (UTC)
Please disconnect {{Z|21875}} so I can add a word to its hardcoded list of exceptions, and then it can be reconnected... Or if you're so willing, simply add "Unicode" to the EXCEPTIONS_DICT in the code for me. Thank you! [[User:Some helpful person|Some helpful person]] ([[User talk:Some helpful person|talk]]) 00:48, 6 May 2026 (UTC)
:{{done}} [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 01:02, 6 May 2026 (UTC)
Can you please connect implementation of {{Z|35161}}. This is my first function, to be used for {{Z|35158}} for which the implementation is to be written. [[User:HenkvD|HenkvD]] ([[User talk:HenkvD|talk]]) 10:25, 14 May 2026 (UTC)
:{{Done}}. I also have connected the tests on the {{z|35158}} [[User:OwlyKnight|OwlyKnight]] ([[User talk:OwlyKnight|talk]]) 10:36, 14 May 2026 (UTC)
I have created implementation {{Z|35166}}. It fails but I can't test it as it is not connected. Please connect if that is the proper procedure. If not: what should I do? [[User:HenkvD|HenkvD]] ([[User talk:HenkvD|talk]]) 17:22, 14 May 2026 (UTC)
:You were passing a literal <code>Z40(some_call(...))</code> to {{Z|802}}. {{Z|40}}'s identity field needs to be a {{Z|9}}, specifically [[Z41]] or [[Z42]]. [[Special:Diff/274691|Fixed]] (by passing <code>some_call(...)</code> unwrapped to [[Z802]]). [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 17:29, 14 May 2026 (UTC)
::Thanks for fixing that, but still the test case fail, amd I can't test it as it is not connected. What to do next? [[User:HenkvD|HenkvD]] ([[User talk:HenkvD|talk]]) 05:36, 15 May 2026 (UTC)
:::If you check on the (i) icon or Detail link, you can find why is it error. The [[Z35159]] test fail due to {{z|Z28290}}; while the [[Z35160]] fail due to {{z|Z28248}}. I think it's because of the lack of lexeme or grammatical feature on the given lexeme on Wikidata rather than the implementation itself. You may need to contribute more on Wikidata lexeme. Thanks! [[User:OwlyKnight|OwlyKnight]] ([[User talk:OwlyKnight|talk]]) 07:05, 15 May 2026 (UTC)
::::Thanks. I managed to fix the issues (gramatical feature and link of lexeme to Wikidata lemma for "dorp". It is working now. Please connect. [[User:HenkvD|HenkvD]] ([[User talk:HenkvD|talk]]) 09:11, 15 May 2026 (UTC)
:::::{{Done}} thank you for your contributions :D [[User:OwlyKnight|OwlyKnight]] ([[User talk:OwlyKnight|talk]]) 11:44, 15 May 2026 (UTC)
Please connect {{Z|35196}} and its tests. Thanks [[User:HenkvD|HenkvD]] ([[User talk:HenkvD|talk]])
: Was {{done}} [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 16:09, 15 May 2026 (UTC)
Please connect {{Z|35505}} and its tests. Thanks [[User:HenkvD|HenkvD]] ([[User talk:HenkvD|talk]]) 15:11, 22 May 2026 (UTC)
:{{already done}} by [[User:Dv103]]. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 00:52, 23 May 2026 (UTC)
Please connect {{Z|35978}} and its tests. [[User:Sophisticatedevening|Sophisticatedevening]] ([[User talk:Sophisticatedevening|talk]]) 07:54, 2 June 2026 (UTC)
:{{done}} [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 10:46, 2 June 2026 (UTC)
Please connect implementation {{Z|Z36113}} to function {{Z|Z36106}}. I don't see an way to do my own tests while the implementation is disconnected, the "Run function" button is always greyed out. [[User:Strobilomyces|Strobilomyces]] ([[User talk:Strobilomyces|talk]]) 13:33, 8 June 2026 (UTC)
:{{done}} [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 14:14, 8 June 2026 (UTC)
Please connect {{Z|36537}} and {{Z|36538}} to {{Z|36536}}. The function has already been added to {{Z|32402}}. PS: Is there a way to copy-paste a composition implementation? I can make an Esperanto function for this which has identical structure to the existing English, Spanish, and French functions besides the localized strings, but it’s unnecessarily difficult to do all the clicking and typing manually to recreate them. Thank you! [[User:Gabldotink|Gabldotink]] ([[User talk:Gabldotink|talk]]) 20:32, 19 June 2026 (UTC)
:{{done}} You can use the localStorage clipboard: Open the editor for the Implementation, click the topmost <code>…</code> button, then <code>Copy to clipboard</code>. When you make a blank Implementation, click the topmost(!) <code>…</code> button, then <code>Paste from clipboard</code>, select the expression, and then you can go through and fill in all [[Z18]]s (since they don't get converted automatically) and update any [[Z6]] literals. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 20:39, 19 June 2026 (UTC)
::Thank you very much! Please also connect {{Z|36541}} and {{Z|36546}} to {{Z|36540}}. [[User:Gabldotink|Gabldotink]] ([[User talk:Gabldotink|talk]]) 21:07, 19 June 2026 (UTC)
:::{{done}} [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 21:11, 19 June 2026 (UTC)
[[Category:Functioneers|*R]]
[[Category:Noticeboards]]
Please connect test cases {{z|Z37757}}, {{z|Z37758}} and {{z|Z37759}} to {{z|Z37756}} for testing! [[User:Chaotic Enby|Chaotic Enby]] ([[User talk:Chaotic Enby|talk]]) 17:02, 14 July 2026 (UTC)
:{{done}} [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 17:06, 14 July 2026 (UTC)
:: Now that {{z|Z37764}} works, can you please connect it too? Thanks a lot in advance! [[User:Chaotic Enby|Chaotic Enby]] ([[User talk:Chaotic Enby|talk]]) 21:48, 14 July 2026 (UTC)
:::{{done}} [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 21:55, 14 July 2026 (UTC)
Please temporarily disconnect test cases from {{z|Z37719}} so I can replace the argument "Plural subject: {{z|Z40}}" by the more precise "Subject number: {{z|Z26934}}" and update everything. [[User:Chaotic Enby|Chaotic Enby]] ([[User talk:Chaotic Enby|talk]]) 21:47, 14 July 2026 (UTC)
:{{done}} [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 21:56, 14 July 2026 (UTC)
:: Everything has been updated so it can be reconnected! Thanks a lot once more! (and sorry for the bother, please tell me if you prefer I straight-up request functioneer) [[User:Chaotic Enby|Chaotic Enby]] ([[User talk:Chaotic Enby|talk]]) 22:04, 14 July 2026 (UTC)
:::{{done}} [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 06:37, 15 July 2026 (UTC)
:I worry you're wasting your time with these new functions, for [[Talk:Z37719#This_function_cannot_be_implemented_in_every_language|reasons explained here]] by {{noping|Dv103}}. See [[WF:Type proposals/Abstract sentence]] etc. where the structure for the next "generation" of NLG functions are being worked out. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 06:44, 15 July 2026 (UTC)
:: Thanks a lot @[[User:YoshiRulz|YoshiRulz]]. I have been informed by several Wikifunctions editors (also on Telegram and Discord) that I shouldn't be using the new types as they were still experimental, what should I be doing in that case? [[User:Chaotic Enby|Chaotic Enby]] ([[User talk:Chaotic Enby|talk]]) 18:06, 18 July 2026 (UTC)
:::If you have nothing to add to the new type discussion, the next most helpful thing to do would probably be documenting and fixing edge cases in the [[WF:Catalogue/Natural_language_operations/English|helper functions for English]]. Outside of NLG, you could work on docs (projectspace, but also test cases), or functions that operate on WD items and their relationships. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 19:10, 18 July 2026 (UTC)
:::: Thanks again! Looking at that specific discussion, it looks like there isn't much support for the current proposal of abstract sentences? I'll look at the {{tq|functions that operate on WD items}} part, but I've been a bit worried that this limits us to relatively simple sentences for now – is there a way to implement some kind of syntactic recursion? [[User:Chaotic Enby|Chaotic Enby]] ([[User talk:Chaotic Enby|talk]]) 19:37, 18 July 2026 (UTC)
Please connect implementation and tests for {{z|Z38250}} for testing! [[User:Wcalenieja|Wcalenieja]] ([[User talk:Wcalenieja|talk]]) 15:40, 25 July 2026 (UTC)
:{{done}} [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 15:45, 25 July 2026 (UTC)
::Could you also connect the implementation and tests in {{z|Z38262}}? Thanks, [[User:Wcalenieja|Wcalenieja]] ([[User talk:Wcalenieja|talk]]) 16:02, 25 July 2026 (UTC)
:::{{done}} [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 16:11, 25 July 2026 (UTC)
Please connect {{Z|Z38277}} to {{Z|Z38274}}. I could not find a way to add a test before the implementation is connected to the function. This is my first contribution, so I'm sorry if I did something wrong. Thank you![[User:Seudo|Seudo]] ([[User talk:Seudo|talk]]) 17:31, 25 July 2026 (UTC)
:You can add tests immediately, they just don't show up in the editor for Implementations until they're connected, so you have to "guess-and-check". [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 18:00, 25 July 2026 (UTC)
::Thank you for the explanation. So I added tests [[Z38293]] and [[Z38292]], to be connected to {{Z|Z38274}}, and [[Z38294]] to be connected to {{Z|Z20785}} (the second and third ones currently fail because of a bug in {{Z|Z20786}} which I explained at [[Talk:Z20786]]. [[User:Seudo|Seudo]] ([[User talk:Seudo|talk]]) 19:46, 25 July 2026 (UTC)
:::Connected tests, disconnected implementations so you can fix them. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 19:50, 25 July 2026 (UTC)
::::I fixed {{Z|Z20786}}, thanks. [[User:Seudo|Seudo]] ([[User talk:Seudo|talk]]) 20:02, 25 July 2026 (UTC)
:::Your tests include the article "le" on the date, but the composition does not. Which is correct? [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 20:08, 25 July 2026 (UTC)
::::I fixed the composition and tried to handle also the differences between female and male genders (and therefore added a test [[Z38301]] for female). [[User:Seudo|Seudo]] ([[User talk:Seudo|talk]]) 20:31, 25 July 2026 (UTC)
:All {{done}}! [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 20:37, 25 July 2026 (UTC)
::::But I'm sorry I'm asking so much to you. Is there some kind of sandbox where I could test my composition before asking it to be connected? [[User:Seudo|Seudo]] ([[User talk:Seudo|talk]]) 20:38, 25 July 2026 (UTC)
:::::A sandbox Implementation? There are some on [[Z10119]], but I would say that's not a very effective way to edit/debug. You can build up compositions from scratch using the copy/paste feature and [[Z801]], or by using [[User:YoshiRulz/Blockly|my editor]], then use Test cases to help you refine it. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 20:48, 25 July 2026 (UTC)
Please connect the JavaScript implementation {{Z|38297}} and test cases {{Z|38296}} and {{Z|38298}} to {{Z|38295}} (missing properties from peer items). The implementation passes both tests (2/2). Thank you. [[User:Brianwinum|Brian Winum]] ([[User talk:Brianwinum|talk]]) 20:03, 25 July 2026 (UTC)
:{{done}}, but is this not just a worse [[d:WD:Recoin]]? [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 20:06, 25 July 2026 (UTC)
Please connect the implementation and the test for {{Z|38923}}. Thanks. [[User:Ioe2015|Ioe2015]] ([[User talk:Ioe2015|talk]]) 06:24, 6 August 2026 (UTC)
:Nice work! I made a change to the label calls in the composition, and it already works. --[[User:99of9|99of9]] ([[User talk:99of9|talk]]) 07:51, 6 August 2026 (UTC)
::@[[User:Ioe2015|Ioe2015]], {{done|connected}}. Regards, [[User:ZI Jony|<span style="color:#8B0000">'''ZI Jony'''</span>]] [[User talk:ZI Jony|<sup><span style="color:Green"><i>(Talk)</i></span></sup>]] 08:30, 6 August 2026 (UTC)
Back with more math functions! Could {{Z|Z39036}} be connected please? [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 17:23, 8 August 2026 (UTC)
:And, in a similar category, {{Z|Z39043}} too please :) [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 17:38, 8 August 2026 (UTC)
::@[[User:Virinas-code|Virinas-code]], {{done}}. Regards, [[User:ZI Jony|<span style="color:#8B0000">'''ZI Jony'''</span>]] [[User talk:ZI Jony|<sup><span style="color:Green"><i>(Talk)</i></span></sup>]] 17:47, 8 August 2026 (UTC)
Math is fun, fast math is best. Could {{Z|Z39064}} and {{Z|Z39065}} be connected please? [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 20:11, 8 August 2026 (UTC)
:And {{Z|Z39066}} too, it'll hopefully fix a bunch of tests :) [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 20:13, 8 August 2026 (UTC)
::{{done}} Please apply for functioneer if you feel ready. I would support your application. --[[User:99of9|99of9]] ([[User talk:99of9|talk]]) 04:12, 9 August 2026 (UTC)
A request for disconnection this time... Could {{Z|Z34264}} and {{Z|Z39064}} be disconnected while connecting the faster Python implementation {{Z|Z39071}}? The composition implementation seems to struggle with large numbers as it hits a recursion limit. I am unsure wether the Python implementation is affected too; I'd like to see if the disconnection helps. (oh, and I've applied for functioneer!) [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 22:30, 9 August 2026 (UTC)
:Oh, and could {{Z|Z39073}} have its Python implementation and tests connected too? It should hopefully fix test validation errors. [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 22:33, 9 August 2026 (UTC)
::{{done}} [[User:99of9|99of9]] ([[User talk:99of9|talk]]) 22:36, 9 August 2026 (UTC)
e5nv9rbhninjl5pc2b9xghl3ah5iv85
299661
299656
2026-08-15T16:22:13Z
ZI Jony
1002
/* Requests */ Reply
299661
wikitext
text/x-wiki
{{archives|{{flatlist|{{Special:PrefixIndex/WF:Requests for connection and disconnection/Archives/|stripprefix=1|hideredirects=1}}}}|prefix=WF:Requests for connection and disconnection/Archives/}}
This page allows non-[[WF:functioneers|functioneers]] to request the connection or disconnection of implementations and tests to/from a function. To add a request, add the details of your request (Remember to add <nowiki>~~~~</nowiki> to sign!), using the <nowiki>{{Z|<your five id numbers here>}}</nowiki> template to reference and link to a specific ZID. Functioneers may, at their discretion, refuse to connect implementations that do not pass or do not have tests, and tests that do not pass or do not make logical sense.
== Requests ==
Please connect the implementation and tests for [[Z39473]] and [[Z39489]] (the second depends on the first).--[[User:Artsiom91|Artsiom91]] ([[User talk:Artsiom91|talk]]) 16:18, 15 August 2026 (UTC)
:@[[User:Artsiom91|Artsiom91]] both {{done|done}}. Regards, [[User:ZI Jony|<span style="color:#8B0000">'''ZI Jony'''</span>]] [[User talk:ZI Jony|<sup><span style="color:Green"><i>(Talk)</i></span></sup>]] 16:22, 15 August 2026 (UTC)
Please connect the implementation and tests for [[Z32728]]. [[User:Webmaster2024|Webmaster2024]] ([[User talk:Webmaster2024|talk]]) 13:15, 1 August 2026 (UTC)
:The output is slightly different than expected for both tests. It's okay to have edge cases which fail, but there should be passing tests as well. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 16:22, 1 August 2026 (UTC)
::I've fixed one test now, please also connect nested functions. [[User:Webmaster2024|Webmaster2024]] ([[User talk:Webmaster2024|talk]]) 18:01, 1 August 2026 (UTC)
:::{{done}} [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 18:11, 1 August 2026 (UTC)
Please connect the implementation and test for [[Z33679]]. Thank you. [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 03:42, 17 April 2026 (UTC)
:{{done}} --[[User:99of9|99of9]] ([[User talk:99of9|talk]]) 03:50, 17 April 2026 (UTC)
Please connect the implementations and tests for [[Z33785]], [[Z33788]], and [[Z33780]]. Thank you! [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 03:13, 20 April 2026 (UTC)
:{{done}} [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 03:48, 20 April 2026 (UTC)
Please connect the Python implementation of {{Z|Z33803}}. Thank you. [[User:OzmoOzmo|OzmoOzmo]] ([[User talk:OzmoOzmo|talk]]) 10:48, 20 April 2026 (UTC)
:The function is a duplicate of {{Z|Z20430}} [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 10:56, 20 April 2026 (UTC)
::Now I've connected the implementation to {{Z|Z20430}}. [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 11:02, 20 April 2026 (UTC)
{{Z|Z33859}} (an implementation of {{Z|Z32297}} for Filipino, Tagalog and Kapampangan) with its sole implementation {{Z|Z33860}}. —[[User:UndueMarmot|<span style="color:#705ccb;">Undue</span><span style="color:#cfdfa3;background-color:#705ccb;">Marmot</span>]] <small>([[User talk:UndueMarmot|talk]])</small> 12:20, 21 April 2026 (UTC)
:{{done}} [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 12:24, 21 April 2026 (UTC)
Please connect the implementation of {{Z|33878}}. Thank you! [[User:Some helpful person|Some helpful person]] ([[User talk:Some helpful person|talk]]) 16:42, 21 April 2026 (UTC)
:Could you add some tests to check its correctness? [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 16:54, 21 April 2026 (UTC)
::{{D}} [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 17:03, 21 April 2026 (UTC)
Please connect the test cases and passing implementation of {{Z|Z24602}}. Thank you! [[User:Some helpful person|Some helpful person]] ([[User talk:Some helpful person|talk]]) 21:12, 22 April 2026 (UTC)
:...Of course the moment I say that I find at least one of the test cases are passing with an invalid input... Will debug. [[User:Some helpful person|Some helpful person]] ([[User talk:Some helpful person|talk]]) 21:15, 22 April 2026 (UTC)
:Please connect the test cases instead so it will be easier to debug! [[User:Some helpful person|Some helpful person]] ([[User talk:Some helpful person|talk]]) 21:23, 22 April 2026 (UTC)
::{{done}} [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 21:34, 22 April 2026 (UTC)
Please connect [[Z33955]] with its implementation and test cases. Thanks. [[User:Sun8908|Sun8908]] ([[User talk:Sun8908|talk]]) 21:31, 22 April 2026 (UTC)
:{{done}}. Also, please consider requesting functioneer, I would support it! And thank you for your welcome on WD, too! [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 21:36, 22 April 2026 (UTC)
Please disconnect the implementation {{Z|Z30288}} so that it can be fixed and reconnected. It erroneously compares the second element of the second typed pair to itself, and thus breaks many other functions and test cases reliant on it. Added a test case for this, which it of course fails. Thank you very much! <small>(resolves many headaches)</small> [[User:Some helpful person|Some helpful person]] ([[User talk:Some helpful person|talk]]) 03:30, 24 April 2026 (UTC)
:{{done}} Please kindly check. [[User:NikolasKHF|NikolasKHF]] ([[User talk:NikolasKHF|talk]]) 03:40, 24 April 2026 (UTC)
:Oops! Sorry about that. Thanks for fixing this. [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 07:41, 24 April 2026 (UTC)
Please connect the implementations and tests for [[Z34124]] and its helper [[Z34127]]. Thank you! [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 23:49, 24 April 2026 (UTC)
:{{Done}} [[User:NikolasKHF|NikolasKHF]] ([[User talk:NikolasKHF|talk]]) 23:58, 24 April 2026 (UTC)
Please connect the implementation and tests for [[Z34204]]. Thank you! [[User:JJPMaster|JJP]]<sub>[[User talk:JJPMaster|Mas]]<sub>[[Special:Contributions/JJPMaster|ter]]</sub></sub> ([[wikt:she|she]]/[[wikt:they|they]]) 05:28, 26 April 2026 (UTC)
:{{Done}} [[User:NikolasKHF|NikolasKHF]] ([[User talk:NikolasKHF|talk]]) 05:31, 26 April 2026 (UTC)
Please connect the implementation and test cases for [[Z33951]], [[Z34009]] and [[Z34008]]. Thank you. [[User:Sun8908|Sun8908]] ([[User talk:Sun8908|talk]]) 06:32, 26 April 2026 (UTC)
:{{done}} except for {{z|Z34008}} since it fail for all test cases. [[User:NikolasKHF|NikolasKHF]] ([[User talk:NikolasKHF|talk]]) 07:01, 26 April 2026 (UTC)
::Oh. The test cases fail mainly because the implementations for Z33951 and Z34009 were not connected yet. I guess we have to wait for a while until the connected implementation goes through. [[User:Sun8908|Sun8908]] ([[User talk:Sun8908|talk]]) 13:20, 26 April 2026 (UTC)
:::{{done}} by YoshiRulz. Thank you. [[User:Sun8908|Sun8908]] ([[User talk:Sun8908|talk]]) 15:58, 26 April 2026 (UTC)
Please connect the implementation and test cases for [[Z34212]]. Thank you. [[User:Sun8908|Sun8908]] ([[User talk:Sun8908|talk]]) 15:58, 26 April 2026 (UTC)
:{{done}} by myself, as I was just granted functioneer. [[User:Sun8908|Sun8908]] ([[User talk:Sun8908|talk]]) 16:20, 26 April 2026 (UTC)
Please disconnect {{Z|Z20694}}. A string without diacritics could be a valid pinyin due to the existence of neutral tone. The pinyin does not correspond to a real phrase, but it doesn't violate any rules for pinyin. [[User:Sun8908|Sun8908]] ([[User talk:Sun8908|talk]]) 16:08, 26 April 2026 (UTC)
:{{done}} by myself, as I was just granted functioneer. [[User:Sun8908|Sun8908]] ([[User talk:Sun8908|talk]]) 16:20, 26 April 2026 (UTC)
Is it possible to connect {{Z|Z34293}} and its respective tests please? It's a really simple piece of code, I might have gone a bit overboard with the tests though. [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 13:01, 27 April 2026 (UTC)
:{{done}} [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 13:13, 27 April 2026 (UTC)
A similar one (but any this time!): {{Z|Z34367}}. Could it be possible to connect it and its tests? This time there's a reasonable amount of them and they cover most cases too ;) [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 16:33, 27 April 2026 (UTC)
:{{done}} [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 17:24, 27 April 2026 (UTC)
Hello!
Can somebody please connect the following functions?
* {{Z|Z34308}}
* {{Z|Z34165}} (its dependency is currently unimplemented)
* {{Z|Z34139}}
And perhaps the tests for:
* {{Z|Z34149}}
* {{Z|Z34150}}
Pinging @[[User:Dv103|Dv103]] because they helped me with this function and have the functioneer role. <span style="border-radius:99q;padding:0 7q;background:#103;border:3q solid #FBF">[[User:QuickQuokka|<span style="color:#FBF">'''QuickQuokka'''</span>]]</span> <sup>[[[User talk:QuickQuokka|talk]] • [[Special:Contribs/QuickQuokka|contribs]]]</sup> 16:28, 27 April 2026 (UTC)
:{{d}} except the implementation of {{Z|Z34165}}, since it doesn't work (first requires the implementation of {{Z|Z34149}}). [[User:Dv103|Dv103]] ([[User talk:Dv103|talk]]) 17:13, 27 April 2026 (UTC)
Could {{Z|Z34273}}, {{Z|Z34378}} and {{Z|Z34380}} please be connected? Note that they all recursively depend on each other, so it's not possible to only activate a few of them. Thanks! [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 21:28, 27 April 2026 (UTC)
:{{done}}, thank you for your contributions. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 02:48, 28 April 2026 (UTC)
Another little thing, is it possible to disconnect {{Z|Z34263}}'s test cases {{Z|Z34269}} and {{Z|Z34267}} please? I'd like to rewrite them using {{Z|Z34273}}. [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 08:31, 28 April 2026 (UTC)
:{{Done}}, please proceed. [[User:NikolasKHF|NikolasKHF]] ([[User talk:NikolasKHF|talk]]) 09:01, 28 April 2026 (UTC)
::Sorry for the late response, had an exam today... Anyways, I reworked them a little and they can be connected again! [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 20:05, 28 April 2026 (UTC)
Is it possible to connect some new tests related to my previous functions ({{Z|Z34471}}, {{Z|Z34470}}, {{Z|Z34472}})? They implement the fact that in formal set theory {∅;∅} and {∅} are the exact same sets: duplicate elements behave in the same way as if they were only present once. Thanks in advance! [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 20:34, 28 April 2026 (UTC)
:{{done}} [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 20:40, 28 April 2026 (UTC)
Hello again! Could {{Z|Z34409}} and its tests please be connected? Thanks again! [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 10:41, 29 April 2026 (UTC)
:Your Implementation failed [[Z34491]] and [[Z34494]] when I connected it, so I've left it disconnected. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 11:05, 29 April 2026 (UTC)
::Interesting... What failed exactly? When I look at error logs for tests all it says is "no connected implementation"... [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 11:09, 29 April 2026 (UTC)
:::In all 3 cases, the returned value was equal to the input (a flattening step was missing). I think my fix is correct, but please double-check it. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 12:13, 29 April 2026 (UTC)
::::Took a look at it, forgot the <math>\operatorname{Pred}(\{ \O \})=\O</math> part in the recursion (whoopsies!). Made an alternative implementation {{Z|Z34509}} using only set operations and builtins; my goal with all those functions is that they don't depend on any other "complex" functions, they should be as simple as possible. Note that it doesn't remove duplicates, but this doesn't matter since <math>\{ \O, \O \} = \{ \O \}</math> anyways. [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 16:15, 29 April 2026 (UTC)
Andd back with another set-related function: {{Z|Z34519}}! This one paves the way for set union (and maybe an alternative implementation of predecessor?). Could it please be connected? Thanks!! [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 19:38, 29 April 2026 (UTC)
:{{done}} [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 19:38, 29 April 2026 (UTC)
As promised, here is {{Z|Z34538}}! Can it be connected please? If you need more tests before I'll add some! [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 20:59, 29 April 2026 (UTC)
:{{done}}. Also, if you'd like to request functioneer rights, I'd support it. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 21:59, 29 April 2026 (UTC)
::Thanks a lot for the offer! I might consider it a bit later, for now I promise to calm down a little with the requests :) [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 20:25, 30 April 2026 (UTC)
Hi! First could {{Z|Z34544}} please be connected? It corresponds to the mathematical definition of predecessor and seems to be a ''bit'' faster than other implementations :) I've also made {{Z|Z34585}} and {{Z|Z34620}}, could they please be connected? They both have a few tests, but I'm going to add some more for edge cases like duplicate elements (which should be ignored when working with sets). Thanks a lot! [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 20:28, 30 April 2026 (UTC)
:{{done}} [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 20:34, 30 April 2026 (UTC)
Please disconnect {{Z|21875}} so I can add a word to its hardcoded list of exceptions, and then it can be reconnected... Or if you're so willing, simply add "Unicode" to the EXCEPTIONS_DICT in the code for me. Thank you! [[User:Some helpful person|Some helpful person]] ([[User talk:Some helpful person|talk]]) 00:48, 6 May 2026 (UTC)
:{{done}} [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 01:02, 6 May 2026 (UTC)
Can you please connect implementation of {{Z|35161}}. This is my first function, to be used for {{Z|35158}} for which the implementation is to be written. [[User:HenkvD|HenkvD]] ([[User talk:HenkvD|talk]]) 10:25, 14 May 2026 (UTC)
:{{Done}}. I also have connected the tests on the {{z|35158}} [[User:OwlyKnight|OwlyKnight]] ([[User talk:OwlyKnight|talk]]) 10:36, 14 May 2026 (UTC)
I have created implementation {{Z|35166}}. It fails but I can't test it as it is not connected. Please connect if that is the proper procedure. If not: what should I do? [[User:HenkvD|HenkvD]] ([[User talk:HenkvD|talk]]) 17:22, 14 May 2026 (UTC)
:You were passing a literal <code>Z40(some_call(...))</code> to {{Z|802}}. {{Z|40}}'s identity field needs to be a {{Z|9}}, specifically [[Z41]] or [[Z42]]. [[Special:Diff/274691|Fixed]] (by passing <code>some_call(...)</code> unwrapped to [[Z802]]). [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 17:29, 14 May 2026 (UTC)
::Thanks for fixing that, but still the test case fail, amd I can't test it as it is not connected. What to do next? [[User:HenkvD|HenkvD]] ([[User talk:HenkvD|talk]]) 05:36, 15 May 2026 (UTC)
:::If you check on the (i) icon or Detail link, you can find why is it error. The [[Z35159]] test fail due to {{z|Z28290}}; while the [[Z35160]] fail due to {{z|Z28248}}. I think it's because of the lack of lexeme or grammatical feature on the given lexeme on Wikidata rather than the implementation itself. You may need to contribute more on Wikidata lexeme. Thanks! [[User:OwlyKnight|OwlyKnight]] ([[User talk:OwlyKnight|talk]]) 07:05, 15 May 2026 (UTC)
::::Thanks. I managed to fix the issues (gramatical feature and link of lexeme to Wikidata lemma for "dorp". It is working now. Please connect. [[User:HenkvD|HenkvD]] ([[User talk:HenkvD|talk]]) 09:11, 15 May 2026 (UTC)
:::::{{Done}} thank you for your contributions :D [[User:OwlyKnight|OwlyKnight]] ([[User talk:OwlyKnight|talk]]) 11:44, 15 May 2026 (UTC)
Please connect {{Z|35196}} and its tests. Thanks [[User:HenkvD|HenkvD]] ([[User talk:HenkvD|talk]])
: Was {{done}} [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 16:09, 15 May 2026 (UTC)
Please connect {{Z|35505}} and its tests. Thanks [[User:HenkvD|HenkvD]] ([[User talk:HenkvD|talk]]) 15:11, 22 May 2026 (UTC)
:{{already done}} by [[User:Dv103]]. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 00:52, 23 May 2026 (UTC)
Please connect {{Z|35978}} and its tests. [[User:Sophisticatedevening|Sophisticatedevening]] ([[User talk:Sophisticatedevening|talk]]) 07:54, 2 June 2026 (UTC)
:{{done}} [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 10:46, 2 June 2026 (UTC)
Please connect implementation {{Z|Z36113}} to function {{Z|Z36106}}. I don't see an way to do my own tests while the implementation is disconnected, the "Run function" button is always greyed out. [[User:Strobilomyces|Strobilomyces]] ([[User talk:Strobilomyces|talk]]) 13:33, 8 June 2026 (UTC)
:{{done}} [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 14:14, 8 June 2026 (UTC)
Please connect {{Z|36537}} and {{Z|36538}} to {{Z|36536}}. The function has already been added to {{Z|32402}}. PS: Is there a way to copy-paste a composition implementation? I can make an Esperanto function for this which has identical structure to the existing English, Spanish, and French functions besides the localized strings, but it’s unnecessarily difficult to do all the clicking and typing manually to recreate them. Thank you! [[User:Gabldotink|Gabldotink]] ([[User talk:Gabldotink|talk]]) 20:32, 19 June 2026 (UTC)
:{{done}} You can use the localStorage clipboard: Open the editor for the Implementation, click the topmost <code>…</code> button, then <code>Copy to clipboard</code>. When you make a blank Implementation, click the topmost(!) <code>…</code> button, then <code>Paste from clipboard</code>, select the expression, and then you can go through and fill in all [[Z18]]s (since they don't get converted automatically) and update any [[Z6]] literals. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 20:39, 19 June 2026 (UTC)
::Thank you very much! Please also connect {{Z|36541}} and {{Z|36546}} to {{Z|36540}}. [[User:Gabldotink|Gabldotink]] ([[User talk:Gabldotink|talk]]) 21:07, 19 June 2026 (UTC)
:::{{done}} [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 21:11, 19 June 2026 (UTC)
[[Category:Functioneers|*R]]
[[Category:Noticeboards]]
Please connect test cases {{z|Z37757}}, {{z|Z37758}} and {{z|Z37759}} to {{z|Z37756}} for testing! [[User:Chaotic Enby|Chaotic Enby]] ([[User talk:Chaotic Enby|talk]]) 17:02, 14 July 2026 (UTC)
:{{done}} [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 17:06, 14 July 2026 (UTC)
:: Now that {{z|Z37764}} works, can you please connect it too? Thanks a lot in advance! [[User:Chaotic Enby|Chaotic Enby]] ([[User talk:Chaotic Enby|talk]]) 21:48, 14 July 2026 (UTC)
:::{{done}} [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 21:55, 14 July 2026 (UTC)
Please temporarily disconnect test cases from {{z|Z37719}} so I can replace the argument "Plural subject: {{z|Z40}}" by the more precise "Subject number: {{z|Z26934}}" and update everything. [[User:Chaotic Enby|Chaotic Enby]] ([[User talk:Chaotic Enby|talk]]) 21:47, 14 July 2026 (UTC)
:{{done}} [[User:GrounderUK|GrounderUK]] ([[User talk:GrounderUK|talk]]) 21:56, 14 July 2026 (UTC)
:: Everything has been updated so it can be reconnected! Thanks a lot once more! (and sorry for the bother, please tell me if you prefer I straight-up request functioneer) [[User:Chaotic Enby|Chaotic Enby]] ([[User talk:Chaotic Enby|talk]]) 22:04, 14 July 2026 (UTC)
:::{{done}} [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 06:37, 15 July 2026 (UTC)
:I worry you're wasting your time with these new functions, for [[Talk:Z37719#This_function_cannot_be_implemented_in_every_language|reasons explained here]] by {{noping|Dv103}}. See [[WF:Type proposals/Abstract sentence]] etc. where the structure for the next "generation" of NLG functions are being worked out. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 06:44, 15 July 2026 (UTC)
:: Thanks a lot @[[User:YoshiRulz|YoshiRulz]]. I have been informed by several Wikifunctions editors (also on Telegram and Discord) that I shouldn't be using the new types as they were still experimental, what should I be doing in that case? [[User:Chaotic Enby|Chaotic Enby]] ([[User talk:Chaotic Enby|talk]]) 18:06, 18 July 2026 (UTC)
:::If you have nothing to add to the new type discussion, the next most helpful thing to do would probably be documenting and fixing edge cases in the [[WF:Catalogue/Natural_language_operations/English|helper functions for English]]. Outside of NLG, you could work on docs (projectspace, but also test cases), or functions that operate on WD items and their relationships. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 19:10, 18 July 2026 (UTC)
:::: Thanks again! Looking at that specific discussion, it looks like there isn't much support for the current proposal of abstract sentences? I'll look at the {{tq|functions that operate on WD items}} part, but I've been a bit worried that this limits us to relatively simple sentences for now – is there a way to implement some kind of syntactic recursion? [[User:Chaotic Enby|Chaotic Enby]] ([[User talk:Chaotic Enby|talk]]) 19:37, 18 July 2026 (UTC)
Please connect implementation and tests for {{z|Z38250}} for testing! [[User:Wcalenieja|Wcalenieja]] ([[User talk:Wcalenieja|talk]]) 15:40, 25 July 2026 (UTC)
:{{done}} [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 15:45, 25 July 2026 (UTC)
::Could you also connect the implementation and tests in {{z|Z38262}}? Thanks, [[User:Wcalenieja|Wcalenieja]] ([[User talk:Wcalenieja|talk]]) 16:02, 25 July 2026 (UTC)
:::{{done}} [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 16:11, 25 July 2026 (UTC)
Please connect {{Z|Z38277}} to {{Z|Z38274}}. I could not find a way to add a test before the implementation is connected to the function. This is my first contribution, so I'm sorry if I did something wrong. Thank you![[User:Seudo|Seudo]] ([[User talk:Seudo|talk]]) 17:31, 25 July 2026 (UTC)
:You can add tests immediately, they just don't show up in the editor for Implementations until they're connected, so you have to "guess-and-check". [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 18:00, 25 July 2026 (UTC)
::Thank you for the explanation. So I added tests [[Z38293]] and [[Z38292]], to be connected to {{Z|Z38274}}, and [[Z38294]] to be connected to {{Z|Z20785}} (the second and third ones currently fail because of a bug in {{Z|Z20786}} which I explained at [[Talk:Z20786]]. [[User:Seudo|Seudo]] ([[User talk:Seudo|talk]]) 19:46, 25 July 2026 (UTC)
:::Connected tests, disconnected implementations so you can fix them. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 19:50, 25 July 2026 (UTC)
::::I fixed {{Z|Z20786}}, thanks. [[User:Seudo|Seudo]] ([[User talk:Seudo|talk]]) 20:02, 25 July 2026 (UTC)
:::Your tests include the article "le" on the date, but the composition does not. Which is correct? [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 20:08, 25 July 2026 (UTC)
::::I fixed the composition and tried to handle also the differences between female and male genders (and therefore added a test [[Z38301]] for female). [[User:Seudo|Seudo]] ([[User talk:Seudo|talk]]) 20:31, 25 July 2026 (UTC)
:All {{done}}! [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 20:37, 25 July 2026 (UTC)
::::But I'm sorry I'm asking so much to you. Is there some kind of sandbox where I could test my composition before asking it to be connected? [[User:Seudo|Seudo]] ([[User talk:Seudo|talk]]) 20:38, 25 July 2026 (UTC)
:::::A sandbox Implementation? There are some on [[Z10119]], but I would say that's not a very effective way to edit/debug. You can build up compositions from scratch using the copy/paste feature and [[Z801]], or by using [[User:YoshiRulz/Blockly|my editor]], then use Test cases to help you refine it. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 20:48, 25 July 2026 (UTC)
Please connect the JavaScript implementation {{Z|38297}} and test cases {{Z|38296}} and {{Z|38298}} to {{Z|38295}} (missing properties from peer items). The implementation passes both tests (2/2). Thank you. [[User:Brianwinum|Brian Winum]] ([[User talk:Brianwinum|talk]]) 20:03, 25 July 2026 (UTC)
:{{done}}, but is this not just a worse [[d:WD:Recoin]]? [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 20:06, 25 July 2026 (UTC)
Please connect the implementation and the test for {{Z|38923}}. Thanks. [[User:Ioe2015|Ioe2015]] ([[User talk:Ioe2015|talk]]) 06:24, 6 August 2026 (UTC)
:Nice work! I made a change to the label calls in the composition, and it already works. --[[User:99of9|99of9]] ([[User talk:99of9|talk]]) 07:51, 6 August 2026 (UTC)
::@[[User:Ioe2015|Ioe2015]], {{done|connected}}. Regards, [[User:ZI Jony|<span style="color:#8B0000">'''ZI Jony'''</span>]] [[User talk:ZI Jony|<sup><span style="color:Green"><i>(Talk)</i></span></sup>]] 08:30, 6 August 2026 (UTC)
Back with more math functions! Could {{Z|Z39036}} be connected please? [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 17:23, 8 August 2026 (UTC)
:And, in a similar category, {{Z|Z39043}} too please :) [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 17:38, 8 August 2026 (UTC)
::@[[User:Virinas-code|Virinas-code]], {{done}}. Regards, [[User:ZI Jony|<span style="color:#8B0000">'''ZI Jony'''</span>]] [[User talk:ZI Jony|<sup><span style="color:Green"><i>(Talk)</i></span></sup>]] 17:47, 8 August 2026 (UTC)
Math is fun, fast math is best. Could {{Z|Z39064}} and {{Z|Z39065}} be connected please? [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 20:11, 8 August 2026 (UTC)
:And {{Z|Z39066}} too, it'll hopefully fix a bunch of tests :) [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 20:13, 8 August 2026 (UTC)
::{{done}} Please apply for functioneer if you feel ready. I would support your application. --[[User:99of9|99of9]] ([[User talk:99of9|talk]]) 04:12, 9 August 2026 (UTC)
A request for disconnection this time... Could {{Z|Z34264}} and {{Z|Z39064}} be disconnected while connecting the faster Python implementation {{Z|Z39071}}? The composition implementation seems to struggle with large numbers as it hits a recursion limit. I am unsure wether the Python implementation is affected too; I'd like to see if the disconnection helps. (oh, and I've applied for functioneer!) [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 22:30, 9 August 2026 (UTC)
:Oh, and could {{Z|Z39073}} have its Python implementation and tests connected too? It should hopefully fix test validation errors. [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 22:33, 9 August 2026 (UTC)
::{{done}} [[User:99of9|99of9]] ([[User talk:99of9|talk]]) 22:36, 9 August 2026 (UTC)
5ik4if7548swppfltbssuk9y4mxngzr
Wikifunctions:Project chat/Archive/2026/07
4
87913
299802
294580
2026-08-16T03:08:07Z
SpBot
978
archiving 1 section from [[Wikifunctions:Project chat]] (after section [[Wikifunctions:Project chat/Archive/2026/07#Discussion_at_Meta_Requests_for_comment:_The_future_of_Abstract_Wikipedia|Discussion_at_Meta_Requests_for_comment:_The_future_of_Abstract_Wikipedia]])
299802
wikitext
text/x-wiki
{{Talkarchive}}
== Wikifunctions & Abstract Wikipedia Newsletter #255: Integration on test wiki and annual plan ==
There is [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-07-01|a new update]] for Abstract Wikipedia and Wikifunctions. Please, come and read it!
In this issue, we discuss integration of Abstract Wikipedia in Test Wiki and our objectives for the new Wikimedia Foundation Fiscal Year, we remind you of the Wikifunctions and Abstract Wikipedia events at Wikimania 2026, and we take a look at the latest software developments.
Want to catch up with the previous updates? Check [[:f:Special:MyLanguage/Wikifunctions:Status updates|our archive]]!
Also, we remind you that if you have questions or ideas to discuss, the next '''Volunteers' Corner''' will be held on '''[https://zonestamp.toolforge.org/1783359000 July 6, at 17:30 UTC]''' ([https://meet.google.com/xuy-njxh-rkw link to the meeting]).
Enjoy the reading! -- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 08:22, 2 July 2026 (UTC)
<!-- Message sent by User:Sannita (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Wikifunctions_%26_Abstract_Wikipedia&oldid=30755600 -->
:<small>This section was archived on a request by: [[User:Sannita (WMF)|Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 12:40, 13 July 2026 (UTC)</small>
== [[Z37279]] ==
I have issues getting this function to work. It throws an error about a multilingual string, ''Unspecified error (error information: "cannot read property 'Z12K1' of undefined")'', but the function isn't using that type anywhere. It worked just as it should when I constructed it directly in the test section of [[Z26107]], so it is probably something obvious I've missed in the implementation. A fresh set of eyes would be much appreciated! [[User:Autom|Autom]] ([[User talk:Autom|talk]]) 23:03, 3 July 2026 (UTC)
:You were passing the 1st and 2nd arguments ([[Z6091]]s) to {{Z|23468}}, which takes a [[Z6001]]. Fixed. edit: Also please review the test case I added, it's probably wrong. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 04:14, 4 July 2026 (UTC)
::Thank you, I also found the trouble with the error above. It still doesn't work with the cities I tried yesterday, but all others work. There probably some caching left from before one of the changes. [[User:Autom|Autom]] ([[User talk:Autom|talk]]) 08:57, 4 July 2026 (UTC)
:<small>This section was archived on a request by: [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 13:49, 24 July 2026 (UTC)</small>
== Criticism from English Wikipedia ==
Hi all, you might be aware of [[:w:en:Wikipedia:Village pump (WMF)#Abstract Wikipedia goes somewhat live and already hosts unattributed enwiki copies...|this discussion on English Wikipedia]], that raised several criticisms about the project. As a team, we [[:abstract:Abstract Wikipedia:Response to English Wikipedia criticism|drafted an initial response]], that we want to run through you.
If you want to suggest changes or edits, please [[:abstract:Abstract Wikipedia talk:Response to English Wikipedia criticism|use the talk page]]. Please, keep a polite and constructive tone.
The editing period will be '''open until July 17'''. The final result of this editing will be published on Meta, and will be linked to the English Wikipedia community. [[User:Sannita (WMF)|Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 12:19, 6 July 2026 (UTC)
:<small>This section was archived on a request by: [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 13:49, 24 July 2026 (UTC)</small>
== Wikifunctions & Abstract Wikipedia Newsletter #256: Moving toward our first Abstract Wikipedia integration milestone ==
There is [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-07-08|a new update]] for Abstract Wikipedia and Wikifunctions. Please, come and read it!
In this issue, we discuss further our objectives for the new Wikimedia Foundation Fiscal Year, we show the latest community tool, we remind you of the Wikifunctions and Abstract Wikipedia events at Wikimania 2026, and we take a look at the latest software developments.
Want to catch up with the previous updates? Check [[:f:Special:MyLanguage/Wikifunctions:Status updates|our archive]]!
Enjoy the reading! -- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 09:43, 9 July 2026 (UTC)
<!-- Message sent by User:Sannita (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/Wikifunctions_%26_Abstract_Wikipedia&oldid=30755600 -->
:<small>This section was archived on a request by: [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 13:49, 24 July 2026 (UTC)</small>
== July 2026 Wikimedia Café meetups regarding Wikimedia governance and options for reform ==
<div class="border-box" style="background-color: var(--background-color-warning-subtle, #f8eaba); max-width: 875px; padding: 5px; border: 1px solid black; margin: 5px; color: var(--clr-dark)">
<div class="box" style="float:left; padding-top: 10px; padding-right: 10px; padding-left: 10px; padding-bottom: 10px;">[[File:Wikimedia Café logo in plain SVG format.svg|60px|alt=The logo for the Wikimedia Café]]</div>
Hello! There will be two '''[https://meta.wikimedia.org/wiki/Wikimedia_Caf%C3%A9 Wikimedia Café]''' discussion opportunities in July. Both sessions will focus on Wikimedia governance, including possible follow-ups to the [https://meta.wikimedia.org/wiki/Movement_Charter Movement Charter] and options for reform. Participants may attend either or both Café sessions.
This month, to deconflict the Café meetups from Wikimania, the meetups will be held one day later than usual.
#'''26 July 2026 15:00 UTC''' ([https://zonestamp.toolforge.org/1785078000 timestamp converter]), at a time friendly to the Americas, Africa, and Europe
#'''27 July 2026 03:00 UTC''' ([https://zonestamp.toolforge.org/1785121200 timestamp converter]), at a time friendly to Asia and the Pacific
Please see the Café page for more information, including [https://meta.wikimedia.org/wiki/Wikimedia_Caf%C3%A9#How_to_attend_the_session how to register]!
<br />
[[File:Buntstifte Eberhard Faber crop 64h.jpg|860px|alt=cropped image of colored pencils]]</div>
<span style="white-space:nowrap;">[[User:Pine|<span style="color:#01796f; text-shadow:#00BFFF 0 0 1.0em">↠Pine</span>]] [[User talk:Pine|<span style="color:DeepSkyBlue">(<b style="color:#FFDF00;text-shadow:#FFDF00 0 0 1.0em">✉</b>)</span>]]</span> 03:31, 13 July 2026 (UTC)
:<small>This section was archived on a request by: [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 02:37, 28 July 2026 (UTC)</small>
== Error with [[Z37683]] ==
Hello,
I am a newcomer and trying to use {{Z|Z37683}}, which apparently fails in English and succeeds in Swedish (see the test cases I added).
If I understand correctly, the English sub-function {{Z|Z36185}} is wrong because it expects {{Z|Z6001}} and should expect {{Z|Z6091}} (which is what the Swedish sub-function {{Z|Z37686}} expects). Am I right? If so, can I change it myself, or is it necessary to ask someone who has more rights than me? [[User:Seudo|Seudo]] ([[User talk:Seudo|talk]]) 12:39, 25 July 2026 (UTC)
:Fixed, sorry about that. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 12:57, 25 July 2026 (UTC)
::Thanks, it works now! [[User:Seudo|Seudo]] ([[User talk:Seudo|talk]]) 13:05, 25 July 2026 (UTC)
:<small>This section was archived on a request by: [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 02:37, 28 July 2026 (UTC)</small>
== Connecting tests and implementations ==
Is there any documentation about how to connect tests or implementations as a functioneer? I did so by editing the raw JSON, after looking at diffs of other users having connected tests and implementations. Maybe there is even an easier way to do so? --[[User:Volvox|Volvox]] ([[User talk:Volvox|talk]]) 14:10, 25 July 2026 (UTC)
:Huh? You check the box and then click <q>{{int:wikilambda-function-details-table-approve}}</q>. It's documented on [[WF:Introduction#Connect_an_Implementation_or_Test_to_a_Function|WF:Introduction]] FWIW. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 15:02, 25 July 2026 (UTC)
::Oof, thank you, and sorry for missing that ^^ --[[User:Volvox|Volvox]] ([[User talk:Volvox|talk]]) 20:28, 25 July 2026 (UTC)
:<small>This section was archived on a request by: [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 02:37, 28 July 2026 (UTC)</small>
==Discussion at [[Meta:Requests_for_comment/The_future_of_Abstract_Wikipedia|Meta Requests for comment: The future of Abstract Wikipedia]]==
[[File:Symbol watching blue lashes high contrast.svg|20px|link=|alt=]] You are invited to join the discussion at [[Meta:Requests_for_comment/The_future_of_Abstract_Wikipedia|Meta Requests for comment: The future of Abstract Wikipedia]]. <!-- Template:Please see --> [[User:Qcne|Qcne]] ([[User talk:Qcne|talk]]) 11:35, 14 July 2026 (UTC)
:Isn't it too early for this RFC? The project was released for public preview in March-only four months ago—and it has already demonstrated its technical feasibility. Furthermore, some of the examples cited in the RFC depend entirely on specific function choices. Since this is a community-built project, contributors should remain free to use the functions they prefer. Personally, I feel the repetition of words in every sentence simply shows that active contributors currently view this issue as a low priority. After all, fixing it would require rewriting sentences to use pronouns, or correcting them with a comma-separated list of occupations. [[User:Jsamwrites|John Samuel]] 13:37, 14 July 2026 (UTC)
::Thanks John. The project was approved in 2020 and WMF expected the first articles in 2023 so it is not four months old. Integration into language Wikipedias is planned for Q1 of the current annual plan. If it is too early to evaluate, it is too early to ship. I'd welcome your thoughts on the Meta RfC itself. [[User:Qcne|Qcne]] ([[User talk:Qcne|talk]]) 13:40, 14 July 2026 (UTC)
:<s>Speaking of "too early", [[abstract:Project:Response to English Wikipedia criticism]] has ~3 days left, so I'll hold off on commenting until then.</s> But on a first reading, I can see some of the same misunderstandings repeated. You could delete most of the text above your three proposals and get the same effect.<!--
--><br>edit: Yep, misunderstandings all the way down (the page). I've left [[meta:Requests_for_comment/The_future_of_Abstract_Wikipedia#c-YoshiRulz-20260716205200-Grapesurgeon-20260714140300|a brief comment]] since all my points had already been made by others. [[User:YoshiRulz|YoshiRulz]] ([[User talk:YoshiRulz|talk]]) 20:56, 16 July 2026 (UTC)
ql3q8e5xuj8l9eu42x8j2z3m9ogvuqi
Z37833
0
87977
299869
291592
2026-08-16T07:46:34Z
HenkvD
1290
Added Z39545, Z39547 and Z39548 to the approved list of test cases
299869
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z37833"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z37833K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Taxon"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z60",
"Z17K2": "Z37833K2",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Language"
}
]
}
}
],
"Z8K2": "Z6",
"Z8K3": [
"Z20",
"Z37835",
"Z39545",
"Z39547",
"Z39548"
],
"Z8K4": [
"Z14",
"Z37834"
],
"Z8K5": "Z37833"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "fetch IUCN conservation status string"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31",
{
"Z1K1": "Z31",
"Z31K1": "Z1002",
"Z31K2": [
"Z6",
" International Union for Conservation of Nature",
"extinct species",
"species status"
]
}
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Returns the International Union for Conservation of Nature conservation status of a taxon as a string in the given language"
}
]
}
}
ey57ygqx9z1sofb810hy7e2pfvhmz5z
299884
299869
2026-08-16T08:10:17Z
HenkvD
1290
Added Z39554 to the approved list of implementations
299884
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z37833"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z37833K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Taxon"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z60",
"Z17K2": "Z37833K2",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Language"
}
]
}
}
],
"Z8K2": "Z6",
"Z8K3": [
"Z20",
"Z37835",
"Z39545",
"Z39547",
"Z39548"
],
"Z8K4": [
"Z14",
"Z37834",
"Z39554"
],
"Z8K5": "Z37833"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "fetch IUCN conservation status string"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31",
{
"Z1K1": "Z31",
"Z31K1": "Z1002",
"Z31K2": [
"Z6",
" International Union for Conservation of Nature",
"extinct species",
"species status"
]
}
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Returns the International Union for Conservation of Nature conservation status of a taxon as a string in the given language"
}
]
}
}
ik1uwtitth2qwx2tqtp0mp8i1afy9l5
299885
299884
2026-08-16T08:10:20Z
HenkvD
1290
Removed Z37834 from the approved list of implementations
299885
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z37833"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z37833K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Taxon"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z60",
"Z17K2": "Z37833K2",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Language"
}
]
}
}
],
"Z8K2": "Z6",
"Z8K3": [
"Z20",
"Z37835",
"Z39545",
"Z39547",
"Z39548"
],
"Z8K4": [
"Z14",
"Z39554"
],
"Z8K5": "Z37833"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "fetch IUCN conservation status string"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31",
{
"Z1K1": "Z31",
"Z31K1": "Z1002",
"Z31K2": [
"Z6",
" International Union for Conservation of Nature",
"extinct species",
"species status"
]
}
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Returns the International Union for Conservation of Nature conservation status of a taxon as a string in the given language"
}
]
}
}
0pbxudqx1i26ugitbgy9r9e5pcnsbf7
Z37834
0
87978
299890
292675
2026-08-16T08:10:53Z
HenkvD
1290
DNU
299890
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z37834"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z37833",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z23468",
"Z23468K1": {
"Z1K1": "Z7",
"Z7K1": "Z30120",
"Z30120K1": {
"Z1K1": "Z7",
"Z7K1": "Z19308",
"Z19308K1": {
"Z1K1": "Z7",
"Z7K1": "Z23451",
"Z23451K1": {
"Z1K1": "Z7",
"Z7K1": "Z30120",
"Z30120K1": {
"Z1K1": "Z18",
"Z18K1": "Z37833K1"
},
"Z30120K2": [
"Z6030",
"Z6036"
],
"Z30120K3": [
"Z60"
],
"Z30120K4": [
"Z6092",
{
"Z1K1": "Z6092",
"Z6092K1": "P141"
}
]
},
"Z23451K2": {
"Z1K1": "Z6092",
"Z6092K1": "P141"
}
}
},
"Z30120K2": [
"Z6030",
"Z6033"
],
"Z30120K3": [
"Z60"
],
"Z30120K4": [
"Z6092"
]
},
"Z23468K2": {
"Z1K1": "Z18",
"Z18K1": "Z37833K2"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "DNU fetch IUCN conservation status string Comp"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
t6mir0t6vqiqitau902aam9hbifzhzq
Z37923
0
88113
299669
298808
2026-08-15T17:36:54Z
HenkvD
1290
+ Papiamento
299669
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z37923"
},
"Z2K2": {
"Z1K1": "Z14294",
"Z14294K1": [
"Z14293",
{
"Z1K1": "Z14293",
"Z14293K1": "Z37791",
"Z14293K2": "Z33034"
},
{
"Z1K1": "Z14293",
"Z14293K1": "Z37934",
"Z14293K2": [
"Z60",
"Z1592"
]
},
{
"Z1K1": "Z14293",
"Z14293K1": "Z38908",
"Z14293K2": "Z34075"
},
{
"Z1K1": "Z14293",
"Z14293K1": "Z39167",
"Z14293K2": [
"Z60",
"Z1576"
]
},
{
"Z1K1": "Z14293",
"Z14293K1": "Z39321",
"Z14293K2": "Z33056"
},
{
"Z1K1": "Z14293",
"Z14293K1": "Z39494",
"Z14293K2": [
"Z60",
"Z1137"
]
}
],
"Z14294K2": "Z38057"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "config for intro for species with hypernym"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
bayacublup96ztd8uwj9xvr3oz662hv
Z38424
0
88767
299629
294634
2026-08-15T12:33:27Z
99of9
1622
add real default
299629
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z38424"
},
"Z2K2": {
"Z1K1": "Z14294",
"Z14294K1": [
"Z14293",
{
"Z1K1": "Z14293",
"Z14293K1": "Z38411",
"Z14293K2": "Z33034"
}
],
"Z14294K2": "Z39486"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "config for shares border with-sentence"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
lujoeqbccpva65et08y3v0c3xsrto42
Wikifunctions:Status updates/2026-08-05
4
89354
299793
299003
2026-08-16T01:41:17Z
Minorax
213
299793
wikitext
text/x-wiki
<languages/>
{{Wikifunctions updates
| prevlabel = <translate><!--T:1--> Previous update</translate>
| prev = 2026-07-29
| nextlabel = <translate><!--T:2--> Next update</translate>
| next = 2026-08-13
}}
<translate>
=== Congratulations Jules*: An apple is a fruit === <!--T:3-->
<!--T:4-->
During the opening ceremony, also the Wikimedian of the Year was named: <tvar name="1">[[User:Jules*|Jules*]]</tvar>
</translate>
<blockquote><translate><!--T:5-->
''Jimmy Wales:'' What is your favourite Wikipedia article?
<!--T:6-->
''Jules*:'' My favourite is “''pomme''”, which is apple in English, and the reason is that on French Wikipedia it is very important, as folklore. When it was [<tvar name="2">https://fr.wikipedia.org/w/index.php?title=Pomme&oldid=18085</tvar> <nowiki>created in [November] 2002</nowiki>] it had only one sentence, "<tvar name="1">''Une pomme est un fruit.''</tvar>", which means “An apple is a fruit.”, and we often use it to remember that articles can start very small and grow over time as other editors improve it.</translate></blockquote>
<translate><!--T:7-->
Today, after 3,294 edits in almost 24 years, [[<tvar name="1">:fr:Pomme</tvar>|the article]] has 79,288 bytes of wikitext, and spans 16 pages when printed.
<!--T:8-->
Curious about this, I went to [[<tvar name="1">abstract:Q89</tvar>|the Abstract Wikipedia article]], and checked the French view:</translate>
<blockquote>''(<translate><!--T:9--> French</translate>)'' Une pomme est un fruit.</blockquote>
<translate><!--T:10--> This made me very happy. It felt symbolic. And even better, it also worked to switch it to a number of different languages:</translate>
<blockquote>''(<translate><!--T:11--> Chinese</translate>)'' 蘋果是一種水果。
''(<translate><!--T:12--> Czech</translate>)'' Jablko je ovoce.
''(<translate><!--T:13--> Japanese</translate>)'' リンゴは果物である。
''(<translate><!--T:14--> Malay</translate>)'' Epal ialah sejenis buah.
''(<translate><!--T:15--> Swedish</translate>)'' Ett äpple är en frukt.</blockquote>
<translate><!--T:16-->
None of these languages had a Wikipedia article about apples back then when the French article was written. Many Wikipedia language editions didn't exist yet.
<!--T:17-->
In other languages, it also provided text, but here the results were in need of improvement, going from missing capitalization (Serbian) to being ungrammatical (German, Italian) over incomplete sentences (Dagbani) to obvious placeholders (Spanish):</translate>
<blockquote>''(<translate><!--T:18--> Dagbani</translate>)'' nyɛla binwalli.
''(<translate><!--T:19--> German</translate>)'' Ein Apfel ist ein Obst.
''(<translate><!--T:20--> Italian</translate>)'' La mela è una frutta.
''(<translate><!--T:21--> Serbian</translate>)'' јабука је воће.
''(<translate><!--T:22--> Spanish</translate>)'' ❌≪(a) ≫❌manzana❌≪ (is a)≫❌fruta.</blockquote>
<translate><!--T:23-->
In other languages again, for example, English, Bangla, or Ukrainian, it failed for me with a variety of error messages. (Note: The review of the sentences above has been partially supported with a frontier LLM.)
<!--T:24-->
I can understand that some will focus on the mistakes in the text. Here, Wikipedia’s answer has been “so fix it”, and given the way Abstract Wikipedia is built, this is indeed possible. All of it has been designed in a way that allows volunteers to fix the mistakes.
<!--T:25-->
I can see some pointing to the many error messages the system produces. Here, I want to remind folks that we are still in an early beta. Things have already gotten much better, compared to a few weeks ago. We are working hard on making them even better.
<!--T:26-->
I can see that some won’t look beyond the simplicity of the sentence. But here, I am with Jules* and the French Wikipedia: this is a modest beginning. And if you don’t believe that this can grow into something useful, that is OK, you don’t have to volunteer your work on this project. There were plenty of people in 2002, when the French article was written, who dismissed Wikipedia. Understandably. And we welcome community members who believe this can grow into something useful to contribute to the project. The evolution of the original article from 2002 is the result of volunteers jumping in to make it better.
<!--T:27-->
But I am thankful to each and every one of you who looks at this modest beginning and sees a possible future where Abstract Wikipedia can provide knowledge across many languages, where people from all over the world speaking all kinds of different languages can work together, share their voices and their knowledge. We are still quite a journey away from that future. And we only can go this way together.
<!--T:28-->
Congratulations Jules* for your well-deserved reward! And thank you for that reminder!
<!--T:29-->
P.S.: you can also see the sentence render in [<tvar name="1">https://elemthala.toolforge.org/</tvar> Elemthala] (for more background see [<tvar name="2">https://commons.wikimedia.org/wiki/File:Wikimania_2026_%E2%80%93_From_Abstract_Content_to_Concrete_Text_with_Wikidata_Lexemes.webm?start=45:10</tvar> Mahir's Wikimania workshop]). For the abstract content, enter <tvar name="3"><code>["Q196626", ["Q124316841", ["Q151885", "Q89"], ["Q151885", "Q3314483"]]]</code></tvar>, select French from the dropdown as the language to render in, click "Validate!" and click "Render".
=== Recent Changes in the software === <!--T:30-->
<!--T:31-->
Most of the team's work last week was on internal matters, as part of our once-every-two-months "Fix It" week. We fixed the abstract article editor to enable the Publish button when you're looking at an old revision, such as when you're reverting or undoing (<tvar name="1">[[:phab:T431993|T431993]]</tvar>), and we've adjusted the back-end service to not hide errors in some cases (<tvar name="2">[[:phab:T433276|T433276]]</tvar>).
=== News in Types: Anonymous functions === <!--T:32-->
<!--T:33-->
This week we have created another experimental Type: [[<tvar name="1">Z38546</tvar>|anonymous functions]], also called lambdas. These are functions composed from functions and values, which are often just needed transiently, and are thus not stored as Wikifunctions functions on their own page. Examples are functions such as “add 259”. For more information, see the [[:en:Anonymous function|English Wikipedia article on anonymous functions]]. A [[<tvar name="2">Wikifunctions:Catalogue/Functional operations#Anonymous functions</tvar>|small catalogue of functions is available to work with anonymous functions]], but the set is not complete yet (particularly, composition is still missing).
<!--T:34-->
Anonymous functions have many different use cases, but we have been driven by the proposal to cover [[<tvar name="1">Wikifunctions:Type proposals/Words with many forms</tvar>|words with many forms]].
<!--T:35-->
We invite you all to create new and discuss the existing [[<tvar name="1">Wikifunctions:Type proposals</tvar>|Type proposals]] so we can keep on creating new Types. Thanks to all the community members contributing to the discussion and writing proposals, making it possible to extend Wikifunctions to new domains!
<!--T:36-->
As stated before Wikimania, the one Type we are really looking into right now is the [[<tvar name="1">Wikifunctions:Type_proposals/Wikifunctions object reference</tvar>|Wikifunctions object reference]]. We want to keep it both lightweight and useful, and have a few final questions open.
=== Fresh Functions weekly: 121 new Functions === <!--T:37-->
<!--T:38-->
This week we had 121 new Functions. Here is an incomplete list of Functions with Implementations and passing tests to get a taste of what Functions have been created. We crossed 4950 functions with all the energy around Wikimania. Thanks everybody for contributing!
</translate>
* {{Z|Z38556}}
* {{Z|Z38557}}
* {{Z|Z38563}}
* {{Z|Z38569}}
* {{Z|Z38573}}
* {{Z|Z38577}}
* {{Z|Z38581}}
* {{Z|Z38586}}
* {{Z|Z38590}}
* {{Z|Z38595}}
* {{Z|Z38598}}
* {{Z|Z38600}}
* {{Z|Z38604}}
* {{Z|Z38610}}
* {{Z|Z38614}}
* {{Z|Z38619}}
* {{Z|Z38620}}
* {{Z|Z38625}}
* {{Z|Z38635}}
* {{Z|Z38638}}
* {{Z|Z38641}}
* {{Z|Z38644}}
* {{Z|Z38645}}
* {{Z|Z38652}}
* {{Z|Z38657}}
* {{Z|Z38660}}
* {{Z|Z38664}}
* {{Z|Z38668}}
* {{Z|Z38672}}
* {{Z|Z38676}}
* {{Z|Z38680}}
* {{Z|Z38684}}
* {{Z|Z38691}}
* {{Z|Z38700}}
* {{Z|Z38702}}
* {{Z|Z38705}}
* {{Z|Z38710}}
* {{Z|Z38714}}
* {{Z|Z38720}}
* {{Z|Z38723}}
* {{Z|Z38726}}
* {{Z|Z38729}}
* {{Z|Z38734}}
* {{Z|Z38735}}
* {{Z|Z38739}}
* {{Z|Z38745}}
* {{Z|Z38748}}
* {{Z|Z38752}}
* {{Z|Z38757}}
* {{Z|Z38761}}
* {{Z|Z38765}}
* {{Z|Z38771}}
* {{Z|Z38772}}
* {{Z|Z38775}}
* {{Z|Z38778}}
* {{Z|Z38782}}
* {{Z|Z38788}}
* {{Z|Z38795}}
* {{Z|Z38797}}
* {{Z|Z38799}}
* {{Z|Z38804}}
* {{Z|Z38808}}
* {{Z|Z38814}}
* {{Z|Z38338}}
* {{Z|Z38345}}
* {{Z|Z38350}}
* {{Z|Z38355}}
* {{Z|Z38364}}
* {{Z|Z38367}}
* {{Z|Z38370}}
* {{Z|Z38373}}
* {{Z|Z38379}}
* {{Z|Z38382}}
* {{Z|Z38383}}
* {{Z|Z38388}}
* {{Z|Z38389}}
* {{Z|Z38395}}
* {{Z|Z38399}}
* {{Z|Z38402}}
* {{Z|Z38403}}
* {{Z|Z38404}}
* {{Z|Z38406}}
* {{Z|Z38407}}
* {{Z|Z38408}}
* {{Z|Z38409}}
* {{Z|Z38410}}
* {{Z|Z38411}}
* {{Z|Z38425}}
* {{Z|Z38428}}
* {{Z|Z38435}}
* {{Z|Z38440}}
* {{Z|Z38443}}
* {{Z|Z38448}}
* {{Z|Z38453}}
* {{Z|Z38458}}
* {{Z|Z38462}}
* {{Z|Z38472}}
* {{Z|Z38477}}
* {{Z|Z38482}}
* {{Z|Z38488}}
* {{Z|Z38495}}
* {{Z|Z38499}}
* {{Z|Z38503}}
* {{Z|Z38508}}
* {{Z|Z38515}}
* {{Z|Z38520}}
* {{Z|Z38521}}
* {{Z|Z38531}}
* {{Z|Z38536}}
* {{Z|Z38539}}
* {{Z|Z38542}}
* {{Z|Z38552}}
<translate>
<!--T:39-->
A [<tvar name="1">https://www.wikifunctions.org/wiki/Special:ListObjectsByType?type=Z8&orderby=latest</tvar> complete list of all functions sorted by when they were created] is available.
</translate>
[[Category:Status updates{{#translation:}}|2026-08-05]]
91wzoohl8i7qebk5kblbv0hdye5e1g9
Translations:Wikifunctions:Status updates/2026-08-05/38/en
1198
89493
299794
297233
2026-08-16T01:41:33Z
FuzzyBot
207
Importing a new version from external source
299794
wikitext
text/x-wiki
This week we had 121 new Functions. Here is an incomplete list of Functions with Implementations and passing tests to get a taste of what Functions have been created. We crossed 4950 functions with all the energy around Wikimania. Thanks everybody for contributing!
k8m8u1qiqmcwqk8b0bwadryr6u365c4
Wikifunctions:Status updates/2026-08-05/en
4
89495
299796
299005
2026-08-16T01:41:34Z
FuzzyBot
207
Updating to match new version of source page
299796
wikitext
text/x-wiki
<languages/>
{{Wikifunctions updates
| prevlabel = Previous update
| prev = 2026-07-29
| nextlabel = Next update
| next = 2026-08-13
}}
=== Congratulations Jules*: An apple is a fruit ===
During the opening ceremony, also the Wikimedian of the Year was named: [[User:Jules*|Jules*]]
<blockquote>''Jimmy Wales:'' What is your favourite Wikipedia article?
''Jules*:'' My favourite is “''pomme''”, which is apple in English, and the reason is that on French Wikipedia it is very important, as folklore. When it was [https://fr.wikipedia.org/w/index.php?title=Pomme&oldid=18085 <nowiki>created in [November] 2002</nowiki>] it had only one sentence, "''Une pomme est un fruit.''", which means “An apple is a fruit.”, and we often use it to remember that articles can start very small and grow over time as other editors improve it.</blockquote>
Today, after 3,294 edits in almost 24 years, [[:fr:Pomme|the article]] has 79,288 bytes of wikitext, and spans 16 pages when printed.
Curious about this, I went to [[abstract:Q89|the Abstract Wikipedia article]], and checked the French view:
<blockquote>''(French)'' Une pomme est un fruit.</blockquote>
This made me very happy. It felt symbolic. And even better, it also worked to switch it to a number of different languages:
<blockquote>''(Chinese)'' 蘋果是一種水果。
''(Czech)'' Jablko je ovoce.
''(Japanese)'' リンゴは果物である。
''(Malay)'' Epal ialah sejenis buah.
''(Swedish)'' Ett äpple är en frukt.</blockquote>
None of these languages had a Wikipedia article about apples back then when the French article was written. Many Wikipedia language editions didn't exist yet.
In other languages, it also provided text, but here the results were in need of improvement, going from missing capitalization (Serbian) to being ungrammatical (German, Italian) over incomplete sentences (Dagbani) to obvious placeholders (Spanish):
<blockquote>''(Dagbani)'' nyɛla binwalli.
''(German)'' Ein Apfel ist ein Obst.
''(Italian)'' La mela è una frutta.
''(Serbian)'' јабука је воће.
''(Spanish)'' ❌≪(a) ≫❌manzana❌≪ (is a)≫❌fruta.</blockquote>
In other languages again, for example, English, Bangla, or Ukrainian, it failed for me with a variety of error messages. (Note: The review of the sentences above has been partially supported with a frontier LLM.)
I can understand that some will focus on the mistakes in the text. Here, Wikipedia’s answer has been “so fix it”, and given the way Abstract Wikipedia is built, this is indeed possible. All of it has been designed in a way that allows volunteers to fix the mistakes.
I can see some pointing to the many error messages the system produces. Here, I want to remind folks that we are still in an early beta. Things have already gotten much better, compared to a few weeks ago. We are working hard on making them even better.
I can see that some won’t look beyond the simplicity of the sentence. But here, I am with Jules* and the French Wikipedia: this is a modest beginning. And if you don’t believe that this can grow into something useful, that is OK, you don’t have to volunteer your work on this project. There were plenty of people in 2002, when the French article was written, who dismissed Wikipedia. Understandably. And we welcome community members who believe this can grow into something useful to contribute to the project. The evolution of the original article from 2002 is the result of volunteers jumping in to make it better.
But I am thankful to each and every one of you who looks at this modest beginning and sees a possible future where Abstract Wikipedia can provide knowledge across many languages, where people from all over the world speaking all kinds of different languages can work together, share their voices and their knowledge. We are still quite a journey away from that future. And we only can go this way together.
Congratulations Jules* for your well-deserved reward! And thank you for that reminder!
P.S.: you can also see the sentence render in [https://elemthala.toolforge.org/ Elemthala] (for more background see [https://commons.wikimedia.org/wiki/File:Wikimania_2026_%E2%80%93_From_Abstract_Content_to_Concrete_Text_with_Wikidata_Lexemes.webm?start=45:10 Mahir's Wikimania workshop]). For the abstract content, enter <code>["Q196626", ["Q124316841", ["Q151885", "Q89"], ["Q151885", "Q3314483"]]]</code>, select French from the dropdown as the language to render in, click "Validate!" and click "Render".
=== Recent Changes in the software ===
Most of the team's work last week was on internal matters, as part of our once-every-two-months "Fix It" week. We fixed the abstract article editor to enable the Publish button when you're looking at an old revision, such as when you're reverting or undoing ([[:phab:T431993|T431993]]), and we've adjusted the back-end service to not hide errors in some cases ([[:phab:T433276|T433276]]).
=== News in Types: Anonymous functions ===
This week we have created another experimental Type: [[Z38546|anonymous functions]], also called lambdas. These are functions composed from functions and values, which are often just needed transiently, and are thus not stored as Wikifunctions functions on their own page. Examples are functions such as “add 259”. For more information, see the [[:en:Anonymous function|English Wikipedia article on anonymous functions]]. A [[Wikifunctions:Catalogue/Functional operations#Anonymous functions|small catalogue of functions is available to work with anonymous functions]], but the set is not complete yet (particularly, composition is still missing).
Anonymous functions have many different use cases, but we have been driven by the proposal to cover [[Wikifunctions:Type proposals/Words with many forms|words with many forms]].
We invite you all to create new and discuss the existing [[Wikifunctions:Type proposals|Type proposals]] so we can keep on creating new Types. Thanks to all the community members contributing to the discussion and writing proposals, making it possible to extend Wikifunctions to new domains!
As stated before Wikimania, the one Type we are really looking into right now is the [[Wikifunctions:Type_proposals/Wikifunctions object reference|Wikifunctions object reference]]. We want to keep it both lightweight and useful, and have a few final questions open.
=== Fresh Functions weekly: 121 new Functions ===
This week we had 121 new Functions. Here is an incomplete list of Functions with Implementations and passing tests to get a taste of what Functions have been created. We crossed 4950 functions with all the energy around Wikimania. Thanks everybody for contributing!
* {{Z|Z38556}}
* {{Z|Z38557}}
* {{Z|Z38563}}
* {{Z|Z38569}}
* {{Z|Z38573}}
* {{Z|Z38577}}
* {{Z|Z38581}}
* {{Z|Z38586}}
* {{Z|Z38590}}
* {{Z|Z38595}}
* {{Z|Z38598}}
* {{Z|Z38600}}
* {{Z|Z38604}}
* {{Z|Z38610}}
* {{Z|Z38614}}
* {{Z|Z38619}}
* {{Z|Z38620}}
* {{Z|Z38625}}
* {{Z|Z38635}}
* {{Z|Z38638}}
* {{Z|Z38641}}
* {{Z|Z38644}}
* {{Z|Z38645}}
* {{Z|Z38652}}
* {{Z|Z38657}}
* {{Z|Z38660}}
* {{Z|Z38664}}
* {{Z|Z38668}}
* {{Z|Z38672}}
* {{Z|Z38676}}
* {{Z|Z38680}}
* {{Z|Z38684}}
* {{Z|Z38691}}
* {{Z|Z38700}}
* {{Z|Z38702}}
* {{Z|Z38705}}
* {{Z|Z38710}}
* {{Z|Z38714}}
* {{Z|Z38720}}
* {{Z|Z38723}}
* {{Z|Z38726}}
* {{Z|Z38729}}
* {{Z|Z38734}}
* {{Z|Z38735}}
* {{Z|Z38739}}
* {{Z|Z38745}}
* {{Z|Z38748}}
* {{Z|Z38752}}
* {{Z|Z38757}}
* {{Z|Z38761}}
* {{Z|Z38765}}
* {{Z|Z38771}}
* {{Z|Z38772}}
* {{Z|Z38775}}
* {{Z|Z38778}}
* {{Z|Z38782}}
* {{Z|Z38788}}
* {{Z|Z38795}}
* {{Z|Z38797}}
* {{Z|Z38799}}
* {{Z|Z38804}}
* {{Z|Z38808}}
* {{Z|Z38814}}
* {{Z|Z38338}}
* {{Z|Z38345}}
* {{Z|Z38350}}
* {{Z|Z38355}}
* {{Z|Z38364}}
* {{Z|Z38367}}
* {{Z|Z38370}}
* {{Z|Z38373}}
* {{Z|Z38379}}
* {{Z|Z38382}}
* {{Z|Z38383}}
* {{Z|Z38388}}
* {{Z|Z38389}}
* {{Z|Z38395}}
* {{Z|Z38399}}
* {{Z|Z38402}}
* {{Z|Z38403}}
* {{Z|Z38404}}
* {{Z|Z38406}}
* {{Z|Z38407}}
* {{Z|Z38408}}
* {{Z|Z38409}}
* {{Z|Z38410}}
* {{Z|Z38411}}
* {{Z|Z38425}}
* {{Z|Z38428}}
* {{Z|Z38435}}
* {{Z|Z38440}}
* {{Z|Z38443}}
* {{Z|Z38448}}
* {{Z|Z38453}}
* {{Z|Z38458}}
* {{Z|Z38462}}
* {{Z|Z38472}}
* {{Z|Z38477}}
* {{Z|Z38482}}
* {{Z|Z38488}}
* {{Z|Z38495}}
* {{Z|Z38499}}
* {{Z|Z38503}}
* {{Z|Z38508}}
* {{Z|Z38515}}
* {{Z|Z38520}}
* {{Z|Z38521}}
* {{Z|Z38531}}
* {{Z|Z38536}}
* {{Z|Z38539}}
* {{Z|Z38542}}
* {{Z|Z38552}}
A [https://www.wikifunctions.org/wiki/Special:ListObjectsByType?type=Z8&orderby=latest complete list of all functions sorted by when they were created] is available.
[[Category:Status updates{{#translation:}}|2026-08-05]]
q9jscpm1h13igxuavnkrr23icgi98f9
Wikifunctions:Status updates/2026-08-05/fr
4
89500
299795
299006
2026-08-16T01:41:34Z
FuzzyBot
207
Updating to match new version of source page
299795
wikitext
text/x-wiki
<languages/>
{{Wikifunctions updates
| prevlabel = Mise à jour précédente
| prev = 2026-07-29
| nextlabel = Mise à jour suivante
| next = 2026-08-13
}}
<div lang="en" dir="ltr" class="mw-content-ltr">
=== Congratulations Jules*: An apple is a fruit ===
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
During the opening ceremony, also the Wikimedian of the Year was named: [[User:Jules*|Jules*]]
</div>
<blockquote><div lang="en" dir="ltr" class="mw-content-ltr">
''Jimmy Wales:'' What is your favourite Wikipedia article?
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
''Jules*:'' My favourite is “''pomme''”, which is apple in English, and the reason is that on French Wikipedia it is very important, as folklore. When it was [https://fr.wikipedia.org/w/index.php?title=Pomme&oldid=18085 <nowiki>created in [November] 2002</nowiki>] it had only one sentence, "''Une pomme est un fruit.''", which means “An apple is a fruit.”, and we often use it to remember that articles can start very small and grow over time as other editors improve it.
</div></blockquote>
<div lang="en" dir="ltr" class="mw-content-ltr">
Today, after 3,294 edits in almost 24 years, [[:fr:Pomme|the article]] has 79,288 bytes of wikitext, and spans 16 pages when printed.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
Curious about this, I went to [[abstract:Q89|the Abstract Wikipedia article]], and checked the French view:
</div>
<blockquote>''(<span lang="en" dir="ltr" class="mw-content-ltr">French</span>)'' Une pomme est un fruit.</blockquote>
<span lang="en" dir="ltr" class="mw-content-ltr">This made me very happy. It felt symbolic. And even better, it also worked to switch it to a number of different languages:</span>
<blockquote>''(<span lang="en" dir="ltr" class="mw-content-ltr">Chinese</span>)'' 蘋果是一種水果。
''(<span lang="en" dir="ltr" class="mw-content-ltr">Czech</span>)'' Jablko je ovoce.
''(<span lang="en" dir="ltr" class="mw-content-ltr">Japanese</span>)'' リンゴは果物である。
''(<span lang="en" dir="ltr" class="mw-content-ltr">Malay</span>)'' Epal ialah sejenis buah.
''(<span lang="en" dir="ltr" class="mw-content-ltr">Swedish</span>)'' Ett äpple är en frukt.</blockquote>
<div lang="en" dir="ltr" class="mw-content-ltr">
None of these languages had a Wikipedia article about apples back then when the French article was written. Many Wikipedia language editions didn't exist yet.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
In other languages, it also provided text, but here the results were in need of improvement, going from missing capitalization (Serbian) to being ungrammatical (German, Italian) over incomplete sentences (Dagbani) to obvious placeholders (Spanish):
</div>
<blockquote>''(<span lang="en" dir="ltr" class="mw-content-ltr">Dagbani</span>)'' nyɛla binwalli.
''(<span lang="en" dir="ltr" class="mw-content-ltr">German</span>)'' Ein Apfel ist ein Obst.
''(<span lang="en" dir="ltr" class="mw-content-ltr">Italian</span>)'' La mela è una frutta.
''(<span lang="en" dir="ltr" class="mw-content-ltr">Serbian</span>)'' јабука је воће.
''(<span lang="en" dir="ltr" class="mw-content-ltr">Spanish</span>)'' ❌≪(a) ≫❌manzana❌≪ (is a)≫❌fruta.</blockquote>
<div lang="en" dir="ltr" class="mw-content-ltr">
In other languages again, for example, English, Bangla, or Ukrainian, it failed for me with a variety of error messages. (Note: The review of the sentences above has been partially supported with a frontier LLM.)
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
I can understand that some will focus on the mistakes in the text. Here, Wikipedia’s answer has been “so fix it”, and given the way Abstract Wikipedia is built, this is indeed possible. All of it has been designed in a way that allows volunteers to fix the mistakes.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
I can see some pointing to the many error messages the system produces. Here, I want to remind folks that we are still in an early beta. Things have already gotten much better, compared to a few weeks ago. We are working hard on making them even better.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
I can see that some won’t look beyond the simplicity of the sentence. But here, I am with Jules* and the French Wikipedia: this is a modest beginning. And if you don’t believe that this can grow into something useful, that is OK, you don’t have to volunteer your work on this project. There were plenty of people in 2002, when the French article was written, who dismissed Wikipedia. Understandably. And we welcome community members who believe this can grow into something useful to contribute to the project. The evolution of the original article from 2002 is the result of volunteers jumping in to make it better.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
But I am thankful to each and every one of you who looks at this modest beginning and sees a possible future where Abstract Wikipedia can provide knowledge across many languages, where people from all over the world speaking all kinds of different languages can work together, share their voices and their knowledge. We are still quite a journey away from that future. And we only can go this way together.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
Congratulations Jules* for your well-deserved reward! And thank you for that reminder!
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
P.S.: you can also see the sentence render in [https://elemthala.toolforge.org/ Elemthala] (for more background see [https://commons.wikimedia.org/wiki/File:Wikimania_2026_%E2%80%93_From_Abstract_Content_to_Concrete_Text_with_Wikidata_Lexemes.webm?start=45:10 Mahir's Wikimania workshop]). For the abstract content, enter <code>["Q196626", ["Q124316841", ["Q151885", "Q89"], ["Q151885", "Q3314483"]]]</code>, select French from the dropdown as the language to render in, click "Validate!" and click "Render".
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
=== Recent Changes in the software ===
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
Most of the team's work last week was on internal matters, as part of our once-every-two-months "Fix It" week. We fixed the abstract article editor to enable the Publish button when you're looking at an old revision, such as when you're reverting or undoing ([[:phab:T431993|T431993]]), and we've adjusted the back-end service to not hide errors in some cases ([[:phab:T433276|T433276]]).
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
=== News in Types: Anonymous functions ===
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
This week we have created another experimental Type: [[Z38546|anonymous functions]], also called lambdas. These are functions composed from functions and values, which are often just needed transiently, and are thus not stored as Wikifunctions functions on their own page. Examples are functions such as “add 259”. For more information, see the [[:en:Anonymous function|English Wikipedia article on anonymous functions]]. A [[Wikifunctions:Catalogue/Functional operations#Anonymous functions|small catalogue of functions is available to work with anonymous functions]], but the set is not complete yet (particularly, composition is still missing).
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
Anonymous functions have many different use cases, but we have been driven by the proposal to cover [[Wikifunctions:Type proposals/Words with many forms|words with many forms]].
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
We invite you all to create new and discuss the existing [[Wikifunctions:Type proposals|Type proposals]] so we can keep on creating new Types. Thanks to all the community members contributing to the discussion and writing proposals, making it possible to extend Wikifunctions to new domains!
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
As stated before Wikimania, the one Type we are really looking into right now is the [[Wikifunctions:Type_proposals/Wikifunctions object reference|Wikifunctions object reference]]. We want to keep it both lightweight and useful, and have a few final questions open.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
=== Fresh Functions weekly: 121 new Functions ===
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
This week we had 121 new Functions. Here is an incomplete list of Functions with Implementations and passing tests to get a taste of what Functions have been created. We crossed 4950 functions with all the energy around Wikimania. Thanks everybody for contributing!
</div>
* {{Z|Z38556}}
* {{Z|Z38557}}
* {{Z|Z38563}}
* {{Z|Z38569}}
* {{Z|Z38573}}
* {{Z|Z38577}}
* {{Z|Z38581}}
* {{Z|Z38586}}
* {{Z|Z38590}}
* {{Z|Z38595}}
* {{Z|Z38598}}
* {{Z|Z38600}}
* {{Z|Z38604}}
* {{Z|Z38610}}
* {{Z|Z38614}}
* {{Z|Z38619}}
* {{Z|Z38620}}
* {{Z|Z38625}}
* {{Z|Z38635}}
* {{Z|Z38638}}
* {{Z|Z38641}}
* {{Z|Z38644}}
* {{Z|Z38645}}
* {{Z|Z38652}}
* {{Z|Z38657}}
* {{Z|Z38660}}
* {{Z|Z38664}}
* {{Z|Z38668}}
* {{Z|Z38672}}
* {{Z|Z38676}}
* {{Z|Z38680}}
* {{Z|Z38684}}
* {{Z|Z38691}}
* {{Z|Z38700}}
* {{Z|Z38702}}
* {{Z|Z38705}}
* {{Z|Z38710}}
* {{Z|Z38714}}
* {{Z|Z38720}}
* {{Z|Z38723}}
* {{Z|Z38726}}
* {{Z|Z38729}}
* {{Z|Z38734}}
* {{Z|Z38735}}
* {{Z|Z38739}}
* {{Z|Z38745}}
* {{Z|Z38748}}
* {{Z|Z38752}}
* {{Z|Z38757}}
* {{Z|Z38761}}
* {{Z|Z38765}}
* {{Z|Z38771}}
* {{Z|Z38772}}
* {{Z|Z38775}}
* {{Z|Z38778}}
* {{Z|Z38782}}
* {{Z|Z38788}}
* {{Z|Z38795}}
* {{Z|Z38797}}
* {{Z|Z38799}}
* {{Z|Z38804}}
* {{Z|Z38808}}
* {{Z|Z38814}}
* {{Z|Z38338}}
* {{Z|Z38345}}
* {{Z|Z38350}}
* {{Z|Z38355}}
* {{Z|Z38364}}
* {{Z|Z38367}}
* {{Z|Z38370}}
* {{Z|Z38373}}
* {{Z|Z38379}}
* {{Z|Z38382}}
* {{Z|Z38383}}
* {{Z|Z38388}}
* {{Z|Z38389}}
* {{Z|Z38395}}
* {{Z|Z38399}}
* {{Z|Z38402}}
* {{Z|Z38403}}
* {{Z|Z38404}}
* {{Z|Z38406}}
* {{Z|Z38407}}
* {{Z|Z38408}}
* {{Z|Z38409}}
* {{Z|Z38410}}
* {{Z|Z38411}}
* {{Z|Z38425}}
* {{Z|Z38428}}
* {{Z|Z38435}}
* {{Z|Z38440}}
* {{Z|Z38443}}
* {{Z|Z38448}}
* {{Z|Z38453}}
* {{Z|Z38458}}
* {{Z|Z38462}}
* {{Z|Z38472}}
* {{Z|Z38477}}
* {{Z|Z38482}}
* {{Z|Z38488}}
* {{Z|Z38495}}
* {{Z|Z38499}}
* {{Z|Z38503}}
* {{Z|Z38508}}
* {{Z|Z38515}}
* {{Z|Z38520}}
* {{Z|Z38521}}
* {{Z|Z38531}}
* {{Z|Z38536}}
* {{Z|Z38539}}
* {{Z|Z38542}}
* {{Z|Z38552}}
<div lang="en" dir="ltr" class="mw-content-ltr">
A [https://www.wikifunctions.org/wiki/Special:ListObjectsByType?type=Z8&orderby=latest complete list of all functions sorted by when they were created] is available.
</div>
[[Category:Status updates{{#translation:}}|2026-08-05]]
euq1tm85k1q5andg4lvw1ahkfkmcqtz
Z39191
0
89777
299633
299618
2026-08-15T12:55:58Z
99of9
1622
299633
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39191"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39191K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "entity"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z40",
"Z17K2": "Z39191K2",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "entity repeated?"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39191K3",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "tense (present tense = Q192613)"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z60",
"Z17K2": "Z39191K4",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "language"
}
]
}
}
],
"Z8K2": "Z89",
"Z8K3": [
"Z20",
"Z39193",
"Z39206",
"Z39207",
"Z39208"
],
"Z8K4": [
"Z14",
"Z39483",
"Z39192"
],
"Z8K5": "Z39191"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "shares border with-sentence from Wikidata"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31",
{
"Z1K1": "Z31",
"Z31K1": "Z1002",
"Z31K2": [
"Z6",
"shares border with-sentence (HTML)",
"auto-borders sentence",
"auto-sentence for borders"
]
}
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "to choose the list of neighbours manually, use Z39481"
}
]
}
}
83e2t3tu0aipo3qt3gz583t37xz6ae7
Talk:Z21794
1
90125
299801
299471
2026-08-16T02:46:26Z
Feeglgeef
8776
/* Grammar */ Reply
299801
wikitext
text/x-wiki
== Grammar ==
Hi @[[User:Feeglgeef|Feeglgeef]],
I think this test is incorrect (should be "ella es una fundadora española") but for some reason I don't have the rights to edit it.
[[User:Ornithorynque liminaire|Ornithorynque liminaire]] ([[User talk:Ornithorynque liminaire|talk]]) 22:23, 14 August 2026 (UTC)
:I fixed the test, the implementation still needs to be changed. Editing tests and implementations requires functioneer rights, you can request them [[WF:Requests for permissions|here]]. [[User:Feeglgeef|Feeglgeef]] ([[User talk:Feeglgeef|talk]]) 02:46, 16 August 2026 (UTC)
0ny203swf8dqt8dlxn3p2sbcyp7gxno
Z39466
0
90137
299744
299514
2026-08-15T21:34:02Z
Jsamwrites
938
299744
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39466"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39466K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "entity"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z40",
"Z17K2": "Z39466K2",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "definite article"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": {
"Z1K1": "Z7",
"Z7K1": "Z881",
"Z881K1": "Z6091"
},
"Z17K2": "Z39466K3",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "grammatical features"
}
]
}
}
],
"Z8K2": "Z11",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14"
],
"Z8K5": "Z39466"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "French determiner for Wikidata item"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "WIP"
}
]
}
}
crx57zyqqufv3ezq6ha17qzpabjtugk
299747
299744
2026-08-15T21:45:17Z
Jsamwrites
938
Added Z39516 to the approved list of implementations
299747
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39466"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39466K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "entity"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z40",
"Z17K2": "Z39466K2",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "definite article"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": {
"Z1K1": "Z7",
"Z7K1": "Z881",
"Z881K1": "Z6091"
},
"Z17K2": "Z39466K3",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "grammatical features"
}
]
}
}
],
"Z8K2": "Z11",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14",
"Z39516"
],
"Z8K5": "Z39466"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "French determiner for Wikidata item"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "WIP"
}
]
}
}
8kb6tmxfg1syluecxcob185erxdvc1w
299751
299747
2026-08-15T21:53:31Z
Jsamwrites
938
Added Z39517 to the approved list of test cases
299751
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39466"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39466K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "entity"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z40",
"Z17K2": "Z39466K2",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "definite article"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": {
"Z1K1": "Z7",
"Z7K1": "Z881",
"Z881K1": "Z6091"
},
"Z17K2": "Z39466K3",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "grammatical features"
}
]
}
}
],
"Z8K2": "Z11",
"Z8K3": [
"Z20",
"Z39517"
],
"Z8K4": [
"Z14",
"Z39516"
],
"Z8K5": "Z39466"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "French determiner for Wikidata item"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "WIP"
}
]
}
}
9paslu36it05m35itj4tl6gpv00o410
299765
299751
2026-08-15T22:06:54Z
Jsamwrites
938
Added Z39519, Z39520, Z39521 and Z39522 to the approved list of test cases
299765
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39466"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39466K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "entity"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z40",
"Z17K2": "Z39466K2",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "definite article"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": {
"Z1K1": "Z7",
"Z7K1": "Z881",
"Z881K1": "Z6091"
},
"Z17K2": "Z39466K3",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "grammatical features"
}
]
}
}
],
"Z8K2": "Z11",
"Z8K3": [
"Z20",
"Z39517",
"Z39519",
"Z39520",
"Z39521",
"Z39522"
],
"Z8K4": [
"Z14",
"Z39516"
],
"Z8K5": "Z39466"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "French determiner for Wikidata item"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "WIP"
}
]
}
}
1in9itd2g3uityqfx22317txup663ps
Wikifunctions:Proposal for built-in number types
4
90143
299630
299582
2026-08-15T12:43:29Z
Virinas-code
2884
Fix phrasing of integer-like types / built on top of integer types
299630
wikitext
text/x-wiki
'''This is a work in progress draft which is not ready for community submission yet.'''
== Issues ==
=== Regarding {{Z|80}} ===
{{Z|80}} is a {{Z|4}} with a single key: value (Z80K1), which is of type {{Z|13518}}. While {{Z|80}} is a built-in core type with an ID in the <code>Z1</code>--<code>Z99</code> range<ref>[[Wikifunctions:Reserved ZIDs#Ranges]] <code>Z1</code> – <code>Z99</code>: core types.</ref>, {{Z|13518}} is not. Given that {{Z|80}} is pre-defined in the system<ref>https://gitlab.wikimedia.org/repos/abstract-wiki/wikifunctions/function-schemata A number of ZObjects are pre-defined for the Wikifunctions system, and used by the WikiLambda MediaWiki extension as well as the function-orchestrator (and through that, the function-evaluator).</ref><ref name="Z80 initial">[[Special:PermanentLink/32]] Revision as of 2023-07-26T18:29:41 by [[User:WikiLambda system|WikiLambda system]] ''(Initial pre-defined WikiLambda content creation)''</ref>, having it depend on the later defined {{Z|13518}} is problematic.
It should be noted that, initially, a byte's value was stored as a {{Z|6}}<ref name="Z80 initial" />, one of the core builtin types of Wikifunctions. It is also still a {{Z|6}} in the [https://gitlab.wikimedia.org/repos/abstract-wiki/wikifunctions/function-schemata function-schemata]<ref>https://gitlab.wikimedia.org/repos/abstract-wiki/wikifunctions/function-schemata/-/blob/main/data/CANONICAL/Z80.yaml
<syntaxhighlight lang="yaml">
Z80K1:
$ref: "#/definitions/objects/Z6_byte"
</syntaxhighlight></ref>, which aims to provide a "single version of the truth" regarding what counts as a valid ZObject<ref>https://gitlab.wikimedia.org/repos/abstract-wiki/wikifunctions/function-schemata shared set of JSON schemata for the Wikifunctions project, to achieve a "single version of the truth" on what counts as a structurally valid ZObject, and provide shared utility code</ref>.
{{Z|80}} was changed to use {{Z|13518}} following [[Wikifunctions:Type proposals/Byte]]<ref>[[Wikifunctions:Type proposals/Byte#Alternatives]] The current proposal is Option 3 in the following list of Alternatives. (Option 3) A byte consists of one key that represents the value of the byte. The value is of type natural number, and has to be between the values of 0 and 255, including the edges.</ref>. This proposal highlights the lack of proper support for the {{Z|80}} type when it was defined upon {{Z|6}}, especially regarding code converters. This proposal added two type converters for JavaScript and Python where {{Z|80}} objects would get converted into Python <syntaxhighlight lang="python" inline>int</syntaxhighlight> and JavaScript <syntaxhighlight lang="javascript" inline>Number</syntaxhighlight>. Accordingly, the value's type was changed to {{Z|13518}}.
==== Lessons ====
Having {{Z|80}} be a built-in type is coherent: it is the fundamental unit used to measure and access memory in computing, and the most fundamental representation of a number<ref>[[w:Byte]]</ref>. Having it be defined upon a natural number type is also coherent: a byte represents a single value in the range 0-255, and is represented as a number in other programming languages<ref>[[Wikifunctions:Type proposals/Byte#Python]] The most idiomatic conversion in Python is to convert a Wikifunctions Byte to a Python int.</ref><ref>[[Wikifunctions:Type proposals/Byte#JavaScript]] The most idiomatic conversion in JavaScript is to convert a Wikifunctions Byte to a JavaScript number.</ref>. Hence, we argue that it is not coherent for {{Z|13518}} to not be a built-in. Having a built-in natural number type means that we can keep the preferred representation of having a byte's value stored as a number without breaking the hierarchy of built-ins and non-built-ins.
=== Arithmetic in the composition language ===
The [[Wikifunctions:Glossary#composition|composition]] language, while slow, is the most portable, abstract [[WF:PROG|programming language available on Wikifunctions]]. It defines functions as composition of other functions, which has multiple advantages:
* It is language agnostic. As Wikifunctions renders the composed function calls using the localized function labels, a composition implementation can be read entirely in the user's chosen language, given that the required labels are present. On the contrary, code implementations rely on English keywords<ref>See the [https://docs.python.org/3/reference/lexical_analysis.html#keywords list of Python keywords] and the [https://tc39.es/ecma262/#prod-ReservedWord ECMAScript list of reserved keywords].</ref> and can have inner variable or function names in any language that are not localized.
* It is portable and entirely defined within the scope of the Wikifunctions project, without relying on external specifications and implementations such as with code implementations.
* It serves as a well-understood formalism and a very simple implementation of a function in order to ensure that the other implementations of it are correct<ref>[[Wikifunctions:Function model#Composition]] it allows us to use a well-understood formalism and a very simple implementation of it in order to ensure that the other implementations of Z781/add are correct</ref>. Composition implementations are considered "defining implementations" and are used alongside faster, optimized, but harder to comprehend code implementations.
Ideally, all functions should have an implementation as a composition, or an implementaion as composition of functions which are themselves a composition of built-in, etc. This allows a proper clear definition of all functions, independently of their implementations technicalities.
In its current state, however, all arithmetic functions on Wikifunctions lack such a composition implementation. Let us take a look at {{Z|13521}} for example: all of its composition implementations end up calling {{Z|13578}}, whose only composition implementation relies back on {{Z|13521}}.
This is coherent: given that there is no built-in number type, there is also no built-in numeric operation. But this also implies that none of the [[Wikifunctions:Catalogue/Number operations|many number operations]] on Wikifunctions have a proper, well-defined implementation as composition of built-ins.
==== Lessons ====
Looking at [[Wikifunctions:Catalogue]] reveals that many of the functions on this website are related to arithmetic and mathematics, and hence operate on numbers. Having a built-in number type allows the creation of composition implementations for all those functions, proper, well-defined implementations as composition of built-ins. Given that composition is the language of Wikifunctions, it being incapable of representing most of its functions is incoherent.
== Proposal ==
As we said multiple times over the course of the previous section, we propose the creation of two new built-in types for numbers.
=== Current situation ===
Per the numeric type hierarchy found at [[Template:Type documentation]], we can identify two different type of number types:
* Integers, such as {{Z|80}}, {{Z|13518}}, or {{Z|19677}} (which is a pair of integers). These are usually unbounded. Most of them end up depending on {{Z|13518}}.
* Floating point numbers, such as {{Z|20838}}, or {{Z|33198}} (which is a pair of floating point numbers). These follow the IEEE 754 standard, which means they are bounded and have a limited precision. The parent for these types is {{Z|20838}}.
The only built-in type among these is {{Z|80}}, but as said before, it relies on a non-built-in internal representation.
=== Proposed change ===
* Adding a built-in integer type.
* Adding a built-in IEEE 754 floating point type.
* Adding built-in functions to manipulate these two types.
==== Advantages ====
* Type hierarchy issues about {{Z|80}} depending on non-built-ins are fixed: it now depends on another built-in. It also improves the overall hierarchy, where all number types can be defined upon these two built-ins. This could come in useful for later optimizations (for example, reprensenting numbers without going through conversion to string).
* We can have composition implementations for all mathematical and arithmetic functions, since these are now built-in types they can have built-in functions to work with them.
==== Further views ====
Currently, Wikifunctions only has two terminal types: {{Z|9}} and {{Z|6}}. This means that all types in Wikifunctions end up being represented as strings. Having built-in numbers opens the possibility for later software changes: for example, representing them internally and in the JSON as numbers. Considering the many performance issues of Wikifunctions, this could be interesting in a not-so-far future.
According to the [[Wikifunctions:About|Wikifunctions Mission statement]], we should "Imagine a programming system that allows us to make the next big leap in knowledge representation". Representing something as fundamental as numbers is definitely essential, further renforcing the need for an endorsed built-in number type. Wikifunctions also aims "to create both a well-defined common catalog of functions that can be widely reused and an environment where functions can be quickly combined and executed on the fly"; arithmetic operations and mathematical computations are one of the most common type of functions, and should therefore benefit from first-class support.
== Implementation ==
=== Integer type ===
There are multiple options regarding which integer type should be made built-in:
# The {{Z|80}} type, the only integer type which is bounded.
# The {{Z|13518}} type, which most integer types rely on at the moment.
# The {{Z|16683}} type.
We can look at what Python and ECMAScript do for further inspiration:
* Python has an <syntaxhighlight lang="python" inline>int</syntaxhighlight> type for representing integers; it is signed and unbounded.
* ECMAScript has a <syntaxhighlight lang="python" inline>BigInt</syntaxhighlight> type for representing integers; it is signed and unbounded too.
Considering these, we decided to go with {{Z|16683}} for our integer type.
* {{Z|80}} can be defined by having the validator ensure it is within the 0-255 range.
* {{Z|13518}} can be defined by having the validator ensure it is a non-negatuve integer.
Given this, we can have efficient type converters from and to programming language types, with the added bonus of having all possible values be valid (e.g., if a Python function returns an int, it can always be converted to a valid {{Z|16683}}, unlike {{Z|13518}} which wouldn't support negative numbers).
=== Floating-point type ===
We propose to make the {{Z|20838}} type built-in. The IEEE 754 standard for floating point numbers is the ideal representation: it is a reference standard that has already been adopted on Wikifunctions. In its current implementation following [[Wikifunctions:Type proposals/float64]], it does however require quite a few different types:
* The {{Z|16659}} enumeration (3 members)
* The {{Z|20825}} enumeration (8 members)
* Both a natural number and an integer type
Our options at the moment are:
# Turn all those types into built-ins
# Change the internal representation of float64
Considering the need for performant functions, we propose having a different float 64 type whose value is an hexadecimal string representing the raw IEEE 754 byte representation.
==== Converters ====
[[w:Endianness|Big Endian]] was chosen arbitrarly.
===== JavaScript =====
The ECMAScript <syntaxhighlight lang="javascript" inline>DataView</syntaxhighlight> offers the required functions to access the raw bytes of a floating point number and format them as hexadecimal:
<syntaxhighlight lang="javascript">
function fromNumber(num) {
const buffer = new ArrayBuffer(8);
const view = new DataView(buffer);
view.setFloat64(0, num, true);
return view.getBigUint64(0, true).toString(16);
}
</syntaxhighlight>
Converting an hexadecimal string back into a floating point number is trivial now:
<syntaxhighlight lang="javascript">
function toNumber(num) {
const buffer = new ArrayBuffer(8);
const view = new DataView(buffer);
view.setBigUint64(0, BigInt(`0x${num}`), true);
return view.getFloat64(0, true);
}
</syntaxhighlight>
===== Python =====
We have to use the <code>struct</code> module in order to access a floating point number's bytes:
<syntaxhighlight lang="python">
import struct
def fromNumber(num: float) -> str:
return struct.pack('<d', 666.67).hex()
</syntaxhighlight>
The reverse operation, converting hexadecimal bytes back into a floating point number, is trivial too:
<syntaxhighlight lang="python">
import struct
def toNumber(num: str) -> float:
return struct.unpack('<d', bytes.fromhex("4084d55c28f5c28f"))[0]
</syntaxhighlight>
=== ZIDs ===
This proposal includes the creation of multiple new ZObjects, all of which require a statically assigned ZID. In [[Wikifunctions:Function model|the function model documentation]], functions in the range Z700-Z799 are used as sample arithmetic functions. Since many new built-in functions will be included in this proposal, having a dedicated range for them is coherent and avoids taking too much space in the previously used Z800-Z899 space.
To remain coherent with this idea, new core types will be put in the Z70-Z79 range, which is coincidentally free.
The IEEE 754 standard includes many operations that a system needs to implement to be considered conformant. The Z7000 range could be used for those, as there is more than a hundred of them.
== Specifications ==
=== Integers ===
==== Summary ====
{{void|Short overview of the idea of this Type}}
We propose the creation of a new type, named '''integer'''. It is part of the wider proposal to add two new built-in types for numbers. This type would be a built-in type whose ZID is in the 0-99 range. We propose Z70, as functions in the Z700-Z799 range are numeric operations.
'''Integer''' is similar to the existing {{Z|16683}}, but there are some differences regarding its internal representation.
==== Uses ====
{{void|Prompts:
* Why should this exist?
* What kinds of functions would be created using this?
* What standard concepts, if any, does this align with?}}
There are many types built on top of an integer type on Wikifunctions: {{Z|80}}, {{Z|13518}}, {{Z|19677}}... Having them all defined relatively to one standard built-in type improves the type hierarchy, allows further optimisations in the future, and fixes issues regarding built-in dependence on non built-ins.
Integers are then used throughout Wikifunctions, wether for mathematical operations or for other uses (such as getting the length of a list). This new built-in type allows us to have composition of built-ins implementaions for all those functions.
==== Structure ====
{{void|Description of how a value of this type would look like and why}}
This type has a single key, value (Z70K1), whose type is {{Z|6}}. This key holds a little endian lowercase hexadecimal representation of the number described. The string is preceded by a single minus character <code>-</code> if the number is negative. <code>-0</code> is not a valid value: 0 is always positive.
This format was chosen because it is well supported by both available programming languages and should have rather good performance, as hexadecimal notation is close to how numbers are represented in the computer's memory.
===== Example values =====
Here is how the number <code>666</code> would be stored:
{|class="wikitable" style="margin:.6em 1.6em"
|-
| <syntaxhighlight lang="json" line="line">{
"type": "integer",
"value": "29a"
}</syntaxhighlight>
| <syntaxhighlight lang="json">{
"Z1K1": "Z70",
"Z70K1": "29a"
}</syntaxhighlight>
|}
And here is how its opposite <code>-666</code> would be stored:
{|class="wikitable" style="margin:.6em 1.6em"
|-
| <syntaxhighlight lang="json" line="line">{
"type": "integer",
"value": "-29a"
}</syntaxhighlight>
| <syntaxhighlight lang="json">{
"Z1K1": "Z70",
"Z70K1": "-29a"
}</syntaxhighlight>
|}
==== Identity ====
Two integers are equal if and only if their hexadecimal representations are equal.
==== Converting to code ====
===== Python =====
<syntaxhighlight lang="python">
def deserialize(Z70K1: str) -> int:
return int(Z70K1, 16)
</syntaxhighlight>
<syntaxhighlight lang="python">
def serialize(integer: int) -> str:
return f"{integer:x}"
</syntaxhighlight>
===== JavaScript =====
<syntaxhighlight lang="javascript">
function deserialize(Z70K1) {
if (Z70K1.startsWith("-")) {
return -BigInt(`0x${Z70K1.slice(1)}`);
}
return BigInt(`0x${Z70K1}`);
}
</syntaxhighlight>
<syntaxhighlight lang="javascript">
function serialize(big_int) {
return big_int.toString(16);
}
</syntaxhighlight>
==== Display function ====
{{void|How would a value of this type be displayed on Wikifunctions. Remove this section for types that should not be displayed as a string.}}
Integers should be displayed as localized numbers. For example, a French user would see <code>678910</code> as 678 910 while an American user might see 678,910.
==== Read function ====
{{void|When entering a value for this type as a string, what format should that string have? Remove this section for types that should not be entered as a string.}}
The input should be interpreted as a either localized number in the user's language, or as a standard decimal number (without separators).
==== Alternatives ====
{{void|In order to capture the idea presented in the summary, what alternative structures, display functions, read functions, etc. could have made sense too? Please also link to any type proposals that "compete" with this one.}}
# Having a separate Sign key in the type, but that would imply making Sign built-in too and would make conversion slower.
==== Comments ====
''For general comments, please reply to the proposer.''
* {{s}} as proposer. [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 09:20, 15 August 2026 (UTC)
=== Floating point numbers ===
==== Summary ====
{{void|Short overview of the idea of this Type}}
We propose the creation of a new type, named '''floating point number'''. It is part of the wider proposal to add two new built-in types for numbers. This type would be a built-in type whose ZID is in the 0-99 range. We propose Z71, as arithmetic functions occupy the Z700-Z999 range.
The name '''floating point number''' has be chosen to differentiate this type from {{Z|20838}}. The internal representation used is different: while {{Z|20838}} stores each part of an IEEE 754 floating point number separately, '''floating point number''' simply stores the bytes as hexadecimal in a {{Z|6}} key.
==== Uses ====
{{void|Prompts:
* Why should this exist?
* What kinds of functions would be created using this?
* What standard concepts, if any, does this align with?}}
{{Z|20838}} is already a widely used type<ref>[[Special:WhatLinksHere/Z20838]] returns more than 500 items.</ref>, this proposal simply turns it into a built-in type. The different representation allows faster performance for complex composed functions. Its new built-in nature also permits the creation of built-in functions operating on floating point number, and then permit the creation of pure composition mathematical operations.
This aligns with the standard concept of representing numbers; in that case, real numbers are approximated by floating point numbers. The international widely recoginzed IEEE 754 format is used as it has first-class support in code implementations.
==== Structure ====
{{void|Description of how a value of this type would look like and why}}
This type has a single key, value (Z71K1), whose type is {{Z|6}}. This key holds a little-endian IEEE 754 number, whose bytes are reprsesented as hexadecimal. This was done for performance reasons: most operations do not work with individual components of the floating point number, but rather with the number as a whole. It also avoids having to make two new enumerations builtin for the sign and special value.
===== Example values =====
Here is how the number <code>666.67</code> would be stored:
{|class="wikitable" style="margin:.6em 1.6em"
|-
| <syntaxhighlight lang="json" line="line">{
"type": "floating point number",
"value": "8fc2f5285cd58440"
}</syntaxhighlight>
| <syntaxhighlight lang="json">{
"Z1K1": "Z71",
"Z71K1": "8fc2f5285cd58440"
}</syntaxhighlight>
|}
==== Identity ====
Two floating point numbers are the same if the subtraction of their values (Z71K1) is equal to zero. The special case where either is equal to NaN means that they are not equal, even if both are NaN.
==== Converting to code ====
===== Python =====
<syntaxhighlight lang="python">
import struct
def fromNumber(num: float) -> str:
return struct.pack('<d', num).hex()
</syntaxhighlight>
<syntaxhighlight lang="python">
import struct
def toNumber(num: str) -> float:
return struct.unpack('<d', bytes.fromhex(num))[0]
</syntaxhighlight>
===== JavaScript =====
<syntaxhighlight lang="javascript">
function fromNumber(num) {
const buffer = new ArrayBuffer(8);
const view = new DataView(buffer);
view.setFloat64(0, num, true);
return view.getBigUint64(0, true).toString(16);
}
</syntaxhighlight>
<syntaxhighlight lang="javascript">
function toNumber(num) {
const buffer = new ArrayBuffer(8);
const view = new DataView(buffer);
view.setBigUint64(0, BigInt(`0x${num}`), true);
return view.getFloat64(0, true);
}
</syntaxhighlight>
==== Display function ====
{{void|How would a value of this type be displayed on Wikifunctions. Remove this section for types that should not be displayed as a string.}}
The cleanest way to display floating point numbers is using the localized number system. For example, a French user could have the sample number shown above displayed to them as <code>666,67</code>, while an user from the USA could see <code>666.67</code>. A Latin user might see <code>DCLXVI.LXVII</code>.
==== Read function ====
{{void|When entering a value for this type as a string, what format should that string have? Remove this section for types that should not be entered as a string.}}
The input should be interpreted as a localized number in the user's language and then parsed into its IEEE 754 representation.
==== Alternatives ====
{{void|In order to capture the idea presented in the summary, what alternative structures, display functions, read functions, etc. could have made sense too? Please also link to any type proposals that "compete" with this one.}}
# Using the existing float64 type structure, where each part has its own key.
==== Comments ====
''For general comments, please reply to the proposer.''
* {{s}} as proposer. [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 07:04, 15 August 2026 (UTC)
== Discussion ==
'''We are aware that what we propose are major breaking changes that could take time and effort to implement.''' We believe that, as its own programming system, Wikifunctions ''needs'' first-class support for a concept as fundamental as numbers; and that this proposal will make further work with numbers easier while opening the door to further improvements. We submit this first proposal for the community to discuss it and to get advice regarding its implementation if it is approved. [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 09:36, 15 August 2026 (UTC)
dygqivzth1gaib0xu7xm6vo6l802wl1
299631
299630
2026-08-15T12:44:20Z
Virinas-code
2884
/* Structure */ The representation is actually big endian
299631
wikitext
text/x-wiki
'''This is a work in progress draft which is not ready for community submission yet.'''
== Issues ==
=== Regarding {{Z|80}} ===
{{Z|80}} is a {{Z|4}} with a single key: value (Z80K1), which is of type {{Z|13518}}. While {{Z|80}} is a built-in core type with an ID in the <code>Z1</code>--<code>Z99</code> range<ref>[[Wikifunctions:Reserved ZIDs#Ranges]] <code>Z1</code> – <code>Z99</code>: core types.</ref>, {{Z|13518}} is not. Given that {{Z|80}} is pre-defined in the system<ref>https://gitlab.wikimedia.org/repos/abstract-wiki/wikifunctions/function-schemata A number of ZObjects are pre-defined for the Wikifunctions system, and used by the WikiLambda MediaWiki extension as well as the function-orchestrator (and through that, the function-evaluator).</ref><ref name="Z80 initial">[[Special:PermanentLink/32]] Revision as of 2023-07-26T18:29:41 by [[User:WikiLambda system|WikiLambda system]] ''(Initial pre-defined WikiLambda content creation)''</ref>, having it depend on the later defined {{Z|13518}} is problematic.
It should be noted that, initially, a byte's value was stored as a {{Z|6}}<ref name="Z80 initial" />, one of the core builtin types of Wikifunctions. It is also still a {{Z|6}} in the [https://gitlab.wikimedia.org/repos/abstract-wiki/wikifunctions/function-schemata function-schemata]<ref>https://gitlab.wikimedia.org/repos/abstract-wiki/wikifunctions/function-schemata/-/blob/main/data/CANONICAL/Z80.yaml
<syntaxhighlight lang="yaml">
Z80K1:
$ref: "#/definitions/objects/Z6_byte"
</syntaxhighlight></ref>, which aims to provide a "single version of the truth" regarding what counts as a valid ZObject<ref>https://gitlab.wikimedia.org/repos/abstract-wiki/wikifunctions/function-schemata shared set of JSON schemata for the Wikifunctions project, to achieve a "single version of the truth" on what counts as a structurally valid ZObject, and provide shared utility code</ref>.
{{Z|80}} was changed to use {{Z|13518}} following [[Wikifunctions:Type proposals/Byte]]<ref>[[Wikifunctions:Type proposals/Byte#Alternatives]] The current proposal is Option 3 in the following list of Alternatives. (Option 3) A byte consists of one key that represents the value of the byte. The value is of type natural number, and has to be between the values of 0 and 255, including the edges.</ref>. This proposal highlights the lack of proper support for the {{Z|80}} type when it was defined upon {{Z|6}}, especially regarding code converters. This proposal added two type converters for JavaScript and Python where {{Z|80}} objects would get converted into Python <syntaxhighlight lang="python" inline>int</syntaxhighlight> and JavaScript <syntaxhighlight lang="javascript" inline>Number</syntaxhighlight>. Accordingly, the value's type was changed to {{Z|13518}}.
==== Lessons ====
Having {{Z|80}} be a built-in type is coherent: it is the fundamental unit used to measure and access memory in computing, and the most fundamental representation of a number<ref>[[w:Byte]]</ref>. Having it be defined upon a natural number type is also coherent: a byte represents a single value in the range 0-255, and is represented as a number in other programming languages<ref>[[Wikifunctions:Type proposals/Byte#Python]] The most idiomatic conversion in Python is to convert a Wikifunctions Byte to a Python int.</ref><ref>[[Wikifunctions:Type proposals/Byte#JavaScript]] The most idiomatic conversion in JavaScript is to convert a Wikifunctions Byte to a JavaScript number.</ref>. Hence, we argue that it is not coherent for {{Z|13518}} to not be a built-in. Having a built-in natural number type means that we can keep the preferred representation of having a byte's value stored as a number without breaking the hierarchy of built-ins and non-built-ins.
=== Arithmetic in the composition language ===
The [[Wikifunctions:Glossary#composition|composition]] language, while slow, is the most portable, abstract [[WF:PROG|programming language available on Wikifunctions]]. It defines functions as composition of other functions, which has multiple advantages:
* It is language agnostic. As Wikifunctions renders the composed function calls using the localized function labels, a composition implementation can be read entirely in the user's chosen language, given that the required labels are present. On the contrary, code implementations rely on English keywords<ref>See the [https://docs.python.org/3/reference/lexical_analysis.html#keywords list of Python keywords] and the [https://tc39.es/ecma262/#prod-ReservedWord ECMAScript list of reserved keywords].</ref> and can have inner variable or function names in any language that are not localized.
* It is portable and entirely defined within the scope of the Wikifunctions project, without relying on external specifications and implementations such as with code implementations.
* It serves as a well-understood formalism and a very simple implementation of a function in order to ensure that the other implementations of it are correct<ref>[[Wikifunctions:Function model#Composition]] it allows us to use a well-understood formalism and a very simple implementation of it in order to ensure that the other implementations of Z781/add are correct</ref>. Composition implementations are considered "defining implementations" and are used alongside faster, optimized, but harder to comprehend code implementations.
Ideally, all functions should have an implementation as a composition, or an implementaion as composition of functions which are themselves a composition of built-in, etc. This allows a proper clear definition of all functions, independently of their implementations technicalities.
In its current state, however, all arithmetic functions on Wikifunctions lack such a composition implementation. Let us take a look at {{Z|13521}} for example: all of its composition implementations end up calling {{Z|13578}}, whose only composition implementation relies back on {{Z|13521}}.
This is coherent: given that there is no built-in number type, there is also no built-in numeric operation. But this also implies that none of the [[Wikifunctions:Catalogue/Number operations|many number operations]] on Wikifunctions have a proper, well-defined implementation as composition of built-ins.
==== Lessons ====
Looking at [[Wikifunctions:Catalogue]] reveals that many of the functions on this website are related to arithmetic and mathematics, and hence operate on numbers. Having a built-in number type allows the creation of composition implementations for all those functions, proper, well-defined implementations as composition of built-ins. Given that composition is the language of Wikifunctions, it being incapable of representing most of its functions is incoherent.
== Proposal ==
As we said multiple times over the course of the previous section, we propose the creation of two new built-in types for numbers.
=== Current situation ===
Per the numeric type hierarchy found at [[Template:Type documentation]], we can identify two different type of number types:
* Integers, such as {{Z|80}}, {{Z|13518}}, or {{Z|19677}} (which is a pair of integers). These are usually unbounded. Most of them end up depending on {{Z|13518}}.
* Floating point numbers, such as {{Z|20838}}, or {{Z|33198}} (which is a pair of floating point numbers). These follow the IEEE 754 standard, which means they are bounded and have a limited precision. The parent for these types is {{Z|20838}}.
The only built-in type among these is {{Z|80}}, but as said before, it relies on a non-built-in internal representation.
=== Proposed change ===
* Adding a built-in integer type.
* Adding a built-in IEEE 754 floating point type.
* Adding built-in functions to manipulate these two types.
==== Advantages ====
* Type hierarchy issues about {{Z|80}} depending on non-built-ins are fixed: it now depends on another built-in. It also improves the overall hierarchy, where all number types can be defined upon these two built-ins. This could come in useful for later optimizations (for example, reprensenting numbers without going through conversion to string).
* We can have composition implementations for all mathematical and arithmetic functions, since these are now built-in types they can have built-in functions to work with them.
==== Further views ====
Currently, Wikifunctions only has two terminal types: {{Z|9}} and {{Z|6}}. This means that all types in Wikifunctions end up being represented as strings. Having built-in numbers opens the possibility for later software changes: for example, representing them internally and in the JSON as numbers. Considering the many performance issues of Wikifunctions, this could be interesting in a not-so-far future.
According to the [[Wikifunctions:About|Wikifunctions Mission statement]], we should "Imagine a programming system that allows us to make the next big leap in knowledge representation". Representing something as fundamental as numbers is definitely essential, further renforcing the need for an endorsed built-in number type. Wikifunctions also aims "to create both a well-defined common catalog of functions that can be widely reused and an environment where functions can be quickly combined and executed on the fly"; arithmetic operations and mathematical computations are one of the most common type of functions, and should therefore benefit from first-class support.
== Implementation ==
=== Integer type ===
There are multiple options regarding which integer type should be made built-in:
# The {{Z|80}} type, the only integer type which is bounded.
# The {{Z|13518}} type, which most integer types rely on at the moment.
# The {{Z|16683}} type.
We can look at what Python and ECMAScript do for further inspiration:
* Python has an <syntaxhighlight lang="python" inline>int</syntaxhighlight> type for representing integers; it is signed and unbounded.
* ECMAScript has a <syntaxhighlight lang="python" inline>BigInt</syntaxhighlight> type for representing integers; it is signed and unbounded too.
Considering these, we decided to go with {{Z|16683}} for our integer type.
* {{Z|80}} can be defined by having the validator ensure it is within the 0-255 range.
* {{Z|13518}} can be defined by having the validator ensure it is a non-negatuve integer.
Given this, we can have efficient type converters from and to programming language types, with the added bonus of having all possible values be valid (e.g., if a Python function returns an int, it can always be converted to a valid {{Z|16683}}, unlike {{Z|13518}} which wouldn't support negative numbers).
=== Floating-point type ===
We propose to make the {{Z|20838}} type built-in. The IEEE 754 standard for floating point numbers is the ideal representation: it is a reference standard that has already been adopted on Wikifunctions. In its current implementation following [[Wikifunctions:Type proposals/float64]], it does however require quite a few different types:
* The {{Z|16659}} enumeration (3 members)
* The {{Z|20825}} enumeration (8 members)
* Both a natural number and an integer type
Our options at the moment are:
# Turn all those types into built-ins
# Change the internal representation of float64
Considering the need for performant functions, we propose having a different float 64 type whose value is an hexadecimal string representing the raw IEEE 754 byte representation.
==== Converters ====
[[w:Endianness|Big Endian]] was chosen arbitrarly.
===== JavaScript =====
The ECMAScript <syntaxhighlight lang="javascript" inline>DataView</syntaxhighlight> offers the required functions to access the raw bytes of a floating point number and format them as hexadecimal:
<syntaxhighlight lang="javascript">
function fromNumber(num) {
const buffer = new ArrayBuffer(8);
const view = new DataView(buffer);
view.setFloat64(0, num, true);
return view.getBigUint64(0, true).toString(16);
}
</syntaxhighlight>
Converting an hexadecimal string back into a floating point number is trivial now:
<syntaxhighlight lang="javascript">
function toNumber(num) {
const buffer = new ArrayBuffer(8);
const view = new DataView(buffer);
view.setBigUint64(0, BigInt(`0x${num}`), true);
return view.getFloat64(0, true);
}
</syntaxhighlight>
===== Python =====
We have to use the <code>struct</code> module in order to access a floating point number's bytes:
<syntaxhighlight lang="python">
import struct
def fromNumber(num: float) -> str:
return struct.pack('<d', 666.67).hex()
</syntaxhighlight>
The reverse operation, converting hexadecimal bytes back into a floating point number, is trivial too:
<syntaxhighlight lang="python">
import struct
def toNumber(num: str) -> float:
return struct.unpack('<d', bytes.fromhex("4084d55c28f5c28f"))[0]
</syntaxhighlight>
=== ZIDs ===
This proposal includes the creation of multiple new ZObjects, all of which require a statically assigned ZID. In [[Wikifunctions:Function model|the function model documentation]], functions in the range Z700-Z799 are used as sample arithmetic functions. Since many new built-in functions will be included in this proposal, having a dedicated range for them is coherent and avoids taking too much space in the previously used Z800-Z899 space.
To remain coherent with this idea, new core types will be put in the Z70-Z79 range, which is coincidentally free.
The IEEE 754 standard includes many operations that a system needs to implement to be considered conformant. The Z7000 range could be used for those, as there is more than a hundred of them.
== Specifications ==
=== Integers ===
==== Summary ====
{{void|Short overview of the idea of this Type}}
We propose the creation of a new type, named '''integer'''. It is part of the wider proposal to add two new built-in types for numbers. This type would be a built-in type whose ZID is in the 0-99 range. We propose Z70, as functions in the Z700-Z799 range are numeric operations.
'''Integer''' is similar to the existing {{Z|16683}}, but there are some differences regarding its internal representation.
==== Uses ====
{{void|Prompts:
* Why should this exist?
* What kinds of functions would be created using this?
* What standard concepts, if any, does this align with?}}
There are many types built on top of an integer type on Wikifunctions: {{Z|80}}, {{Z|13518}}, {{Z|19677}}... Having them all defined relatively to one standard built-in type improves the type hierarchy, allows further optimisations in the future, and fixes issues regarding built-in dependence on non built-ins.
Integers are then used throughout Wikifunctions, wether for mathematical operations or for other uses (such as getting the length of a list). This new built-in type allows us to have composition of built-ins implementaions for all those functions.
==== Structure ====
{{void|Description of how a value of this type would look like and why}}
This type has a single key, value (Z70K1), whose type is {{Z|6}}. This key holds a big endian lowercase hexadecimal representation of the number described. The string is preceded by a single minus character <code>-</code> if the number is negative. <code>-0</code> is not a valid value: 0 is always positive.
This format was chosen because it is well supported by both available programming languages and should have rather good performance, as hexadecimal notation is close to how numbers are represented in the computer's memory.
===== Example values =====
Here is how the number <code>666</code> would be stored:
{|class="wikitable" style="margin:.6em 1.6em"
|-
| <syntaxhighlight lang="json" line="line">{
"type": "integer",
"value": "29a"
}</syntaxhighlight>
| <syntaxhighlight lang="json">{
"Z1K1": "Z70",
"Z70K1": "29a"
}</syntaxhighlight>
|}
And here is how its opposite <code>-666</code> would be stored:
{|class="wikitable" style="margin:.6em 1.6em"
|-
| <syntaxhighlight lang="json" line="line">{
"type": "integer",
"value": "-29a"
}</syntaxhighlight>
| <syntaxhighlight lang="json">{
"Z1K1": "Z70",
"Z70K1": "-29a"
}</syntaxhighlight>
|}
==== Identity ====
Two integers are equal if and only if their hexadecimal representations are equal.
==== Converting to code ====
===== Python =====
<syntaxhighlight lang="python">
def deserialize(Z70K1: str) -> int:
return int(Z70K1, 16)
</syntaxhighlight>
<syntaxhighlight lang="python">
def serialize(integer: int) -> str:
return f"{integer:x}"
</syntaxhighlight>
===== JavaScript =====
<syntaxhighlight lang="javascript">
function deserialize(Z70K1) {
if (Z70K1.startsWith("-")) {
return -BigInt(`0x${Z70K1.slice(1)}`);
}
return BigInt(`0x${Z70K1}`);
}
</syntaxhighlight>
<syntaxhighlight lang="javascript">
function serialize(big_int) {
return big_int.toString(16);
}
</syntaxhighlight>
==== Display function ====
{{void|How would a value of this type be displayed on Wikifunctions. Remove this section for types that should not be displayed as a string.}}
Integers should be displayed as localized numbers. For example, a French user would see <code>678910</code> as 678 910 while an American user might see 678,910.
==== Read function ====
{{void|When entering a value for this type as a string, what format should that string have? Remove this section for types that should not be entered as a string.}}
The input should be interpreted as a either localized number in the user's language, or as a standard decimal number (without separators).
==== Alternatives ====
{{void|In order to capture the idea presented in the summary, what alternative structures, display functions, read functions, etc. could have made sense too? Please also link to any type proposals that "compete" with this one.}}
# Having a separate Sign key in the type, but that would imply making Sign built-in too and would make conversion slower.
==== Comments ====
''For general comments, please reply to the proposer.''
* {{s}} as proposer. [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 09:20, 15 August 2026 (UTC)
=== Floating point numbers ===
==== Summary ====
{{void|Short overview of the idea of this Type}}
We propose the creation of a new type, named '''floating point number'''. It is part of the wider proposal to add two new built-in types for numbers. This type would be a built-in type whose ZID is in the 0-99 range. We propose Z71, as arithmetic functions occupy the Z700-Z999 range.
The name '''floating point number''' has be chosen to differentiate this type from {{Z|20838}}. The internal representation used is different: while {{Z|20838}} stores each part of an IEEE 754 floating point number separately, '''floating point number''' simply stores the bytes as hexadecimal in a {{Z|6}} key.
==== Uses ====
{{void|Prompts:
* Why should this exist?
* What kinds of functions would be created using this?
* What standard concepts, if any, does this align with?}}
{{Z|20838}} is already a widely used type<ref>[[Special:WhatLinksHere/Z20838]] returns more than 500 items.</ref>, this proposal simply turns it into a built-in type. The different representation allows faster performance for complex composed functions. Its new built-in nature also permits the creation of built-in functions operating on floating point number, and then permit the creation of pure composition mathematical operations.
This aligns with the standard concept of representing numbers; in that case, real numbers are approximated by floating point numbers. The international widely recoginzed IEEE 754 format is used as it has first-class support in code implementations.
==== Structure ====
{{void|Description of how a value of this type would look like and why}}
This type has a single key, value (Z71K1), whose type is {{Z|6}}. This key holds a little-endian IEEE 754 number, whose bytes are reprsesented as hexadecimal. This was done for performance reasons: most operations do not work with individual components of the floating point number, but rather with the number as a whole. It also avoids having to make two new enumerations builtin for the sign and special value.
===== Example values =====
Here is how the number <code>666.67</code> would be stored:
{|class="wikitable" style="margin:.6em 1.6em"
|-
| <syntaxhighlight lang="json" line="line">{
"type": "floating point number",
"value": "8fc2f5285cd58440"
}</syntaxhighlight>
| <syntaxhighlight lang="json">{
"Z1K1": "Z71",
"Z71K1": "8fc2f5285cd58440"
}</syntaxhighlight>
|}
==== Identity ====
Two floating point numbers are the same if the subtraction of their values (Z71K1) is equal to zero. The special case where either is equal to NaN means that they are not equal, even if both are NaN.
==== Converting to code ====
===== Python =====
<syntaxhighlight lang="python">
import struct
def fromNumber(num: float) -> str:
return struct.pack('<d', num).hex()
</syntaxhighlight>
<syntaxhighlight lang="python">
import struct
def toNumber(num: str) -> float:
return struct.unpack('<d', bytes.fromhex(num))[0]
</syntaxhighlight>
===== JavaScript =====
<syntaxhighlight lang="javascript">
function fromNumber(num) {
const buffer = new ArrayBuffer(8);
const view = new DataView(buffer);
view.setFloat64(0, num, true);
return view.getBigUint64(0, true).toString(16);
}
</syntaxhighlight>
<syntaxhighlight lang="javascript">
function toNumber(num) {
const buffer = new ArrayBuffer(8);
const view = new DataView(buffer);
view.setBigUint64(0, BigInt(`0x${num}`), true);
return view.getFloat64(0, true);
}
</syntaxhighlight>
==== Display function ====
{{void|How would a value of this type be displayed on Wikifunctions. Remove this section for types that should not be displayed as a string.}}
The cleanest way to display floating point numbers is using the localized number system. For example, a French user could have the sample number shown above displayed to them as <code>666,67</code>, while an user from the USA could see <code>666.67</code>. A Latin user might see <code>DCLXVI.LXVII</code>.
==== Read function ====
{{void|When entering a value for this type as a string, what format should that string have? Remove this section for types that should not be entered as a string.}}
The input should be interpreted as a localized number in the user's language and then parsed into its IEEE 754 representation.
==== Alternatives ====
{{void|In order to capture the idea presented in the summary, what alternative structures, display functions, read functions, etc. could have made sense too? Please also link to any type proposals that "compete" with this one.}}
# Using the existing float64 type structure, where each part has its own key.
==== Comments ====
''For general comments, please reply to the proposer.''
* {{s}} as proposer. [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 07:04, 15 August 2026 (UTC)
== Discussion ==
'''We are aware that what we propose are major breaking changes that could take time and effort to implement.''' We believe that, as its own programming system, Wikifunctions ''needs'' first-class support for a concept as fundamental as numbers; and that this proposal will make further work with numbers easier while opening the door to further improvements. We submit this first proposal for the community to discuss it and to get advice regarding its implementation if it is approved. [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 09:36, 15 August 2026 (UTC)
4cib5g1gdwfthm2n3b1f1xh8s7sxkpl
299632
299631
2026-08-15T12:46:59Z
Virinas-code
2884
/* Structure */ Clarify wording: zero is not positive
299632
wikitext
text/x-wiki
'''This is a work in progress draft which is not ready for community submission yet.'''
== Issues ==
=== Regarding {{Z|80}} ===
{{Z|80}} is a {{Z|4}} with a single key: value (Z80K1), which is of type {{Z|13518}}. While {{Z|80}} is a built-in core type with an ID in the <code>Z1</code>--<code>Z99</code> range<ref>[[Wikifunctions:Reserved ZIDs#Ranges]] <code>Z1</code> – <code>Z99</code>: core types.</ref>, {{Z|13518}} is not. Given that {{Z|80}} is pre-defined in the system<ref>https://gitlab.wikimedia.org/repos/abstract-wiki/wikifunctions/function-schemata A number of ZObjects are pre-defined for the Wikifunctions system, and used by the WikiLambda MediaWiki extension as well as the function-orchestrator (and through that, the function-evaluator).</ref><ref name="Z80 initial">[[Special:PermanentLink/32]] Revision as of 2023-07-26T18:29:41 by [[User:WikiLambda system|WikiLambda system]] ''(Initial pre-defined WikiLambda content creation)''</ref>, having it depend on the later defined {{Z|13518}} is problematic.
It should be noted that, initially, a byte's value was stored as a {{Z|6}}<ref name="Z80 initial" />, one of the core builtin types of Wikifunctions. It is also still a {{Z|6}} in the [https://gitlab.wikimedia.org/repos/abstract-wiki/wikifunctions/function-schemata function-schemata]<ref>https://gitlab.wikimedia.org/repos/abstract-wiki/wikifunctions/function-schemata/-/blob/main/data/CANONICAL/Z80.yaml
<syntaxhighlight lang="yaml">
Z80K1:
$ref: "#/definitions/objects/Z6_byte"
</syntaxhighlight></ref>, which aims to provide a "single version of the truth" regarding what counts as a valid ZObject<ref>https://gitlab.wikimedia.org/repos/abstract-wiki/wikifunctions/function-schemata shared set of JSON schemata for the Wikifunctions project, to achieve a "single version of the truth" on what counts as a structurally valid ZObject, and provide shared utility code</ref>.
{{Z|80}} was changed to use {{Z|13518}} following [[Wikifunctions:Type proposals/Byte]]<ref>[[Wikifunctions:Type proposals/Byte#Alternatives]] The current proposal is Option 3 in the following list of Alternatives. (Option 3) A byte consists of one key that represents the value of the byte. The value is of type natural number, and has to be between the values of 0 and 255, including the edges.</ref>. This proposal highlights the lack of proper support for the {{Z|80}} type when it was defined upon {{Z|6}}, especially regarding code converters. This proposal added two type converters for JavaScript and Python where {{Z|80}} objects would get converted into Python <syntaxhighlight lang="python" inline>int</syntaxhighlight> and JavaScript <syntaxhighlight lang="javascript" inline>Number</syntaxhighlight>. Accordingly, the value's type was changed to {{Z|13518}}.
==== Lessons ====
Having {{Z|80}} be a built-in type is coherent: it is the fundamental unit used to measure and access memory in computing, and the most fundamental representation of a number<ref>[[w:Byte]]</ref>. Having it be defined upon a natural number type is also coherent: a byte represents a single value in the range 0-255, and is represented as a number in other programming languages<ref>[[Wikifunctions:Type proposals/Byte#Python]] The most idiomatic conversion in Python is to convert a Wikifunctions Byte to a Python int.</ref><ref>[[Wikifunctions:Type proposals/Byte#JavaScript]] The most idiomatic conversion in JavaScript is to convert a Wikifunctions Byte to a JavaScript number.</ref>. Hence, we argue that it is not coherent for {{Z|13518}} to not be a built-in. Having a built-in natural number type means that we can keep the preferred representation of having a byte's value stored as a number without breaking the hierarchy of built-ins and non-built-ins.
=== Arithmetic in the composition language ===
The [[Wikifunctions:Glossary#composition|composition]] language, while slow, is the most portable, abstract [[WF:PROG|programming language available on Wikifunctions]]. It defines functions as composition of other functions, which has multiple advantages:
* It is language agnostic. As Wikifunctions renders the composed function calls using the localized function labels, a composition implementation can be read entirely in the user's chosen language, given that the required labels are present. On the contrary, code implementations rely on English keywords<ref>See the [https://docs.python.org/3/reference/lexical_analysis.html#keywords list of Python keywords] and the [https://tc39.es/ecma262/#prod-ReservedWord ECMAScript list of reserved keywords].</ref> and can have inner variable or function names in any language that are not localized.
* It is portable and entirely defined within the scope of the Wikifunctions project, without relying on external specifications and implementations such as with code implementations.
* It serves as a well-understood formalism and a very simple implementation of a function in order to ensure that the other implementations of it are correct<ref>[[Wikifunctions:Function model#Composition]] it allows us to use a well-understood formalism and a very simple implementation of it in order to ensure that the other implementations of Z781/add are correct</ref>. Composition implementations are considered "defining implementations" and are used alongside faster, optimized, but harder to comprehend code implementations.
Ideally, all functions should have an implementation as a composition, or an implementaion as composition of functions which are themselves a composition of built-in, etc. This allows a proper clear definition of all functions, independently of their implementations technicalities.
In its current state, however, all arithmetic functions on Wikifunctions lack such a composition implementation. Let us take a look at {{Z|13521}} for example: all of its composition implementations end up calling {{Z|13578}}, whose only composition implementation relies back on {{Z|13521}}.
This is coherent: given that there is no built-in number type, there is also no built-in numeric operation. But this also implies that none of the [[Wikifunctions:Catalogue/Number operations|many number operations]] on Wikifunctions have a proper, well-defined implementation as composition of built-ins.
==== Lessons ====
Looking at [[Wikifunctions:Catalogue]] reveals that many of the functions on this website are related to arithmetic and mathematics, and hence operate on numbers. Having a built-in number type allows the creation of composition implementations for all those functions, proper, well-defined implementations as composition of built-ins. Given that composition is the language of Wikifunctions, it being incapable of representing most of its functions is incoherent.
== Proposal ==
As we said multiple times over the course of the previous section, we propose the creation of two new built-in types for numbers.
=== Current situation ===
Per the numeric type hierarchy found at [[Template:Type documentation]], we can identify two different type of number types:
* Integers, such as {{Z|80}}, {{Z|13518}}, or {{Z|19677}} (which is a pair of integers). These are usually unbounded. Most of them end up depending on {{Z|13518}}.
* Floating point numbers, such as {{Z|20838}}, or {{Z|33198}} (which is a pair of floating point numbers). These follow the IEEE 754 standard, which means they are bounded and have a limited precision. The parent for these types is {{Z|20838}}.
The only built-in type among these is {{Z|80}}, but as said before, it relies on a non-built-in internal representation.
=== Proposed change ===
* Adding a built-in integer type.
* Adding a built-in IEEE 754 floating point type.
* Adding built-in functions to manipulate these two types.
==== Advantages ====
* Type hierarchy issues about {{Z|80}} depending on non-built-ins are fixed: it now depends on another built-in. It also improves the overall hierarchy, where all number types can be defined upon these two built-ins. This could come in useful for later optimizations (for example, reprensenting numbers without going through conversion to string).
* We can have composition implementations for all mathematical and arithmetic functions, since these are now built-in types they can have built-in functions to work with them.
==== Further views ====
Currently, Wikifunctions only has two terminal types: {{Z|9}} and {{Z|6}}. This means that all types in Wikifunctions end up being represented as strings. Having built-in numbers opens the possibility for later software changes: for example, representing them internally and in the JSON as numbers. Considering the many performance issues of Wikifunctions, this could be interesting in a not-so-far future.
According to the [[Wikifunctions:About|Wikifunctions Mission statement]], we should "Imagine a programming system that allows us to make the next big leap in knowledge representation". Representing something as fundamental as numbers is definitely essential, further renforcing the need for an endorsed built-in number type. Wikifunctions also aims "to create both a well-defined common catalog of functions that can be widely reused and an environment where functions can be quickly combined and executed on the fly"; arithmetic operations and mathematical computations are one of the most common type of functions, and should therefore benefit from first-class support.
== Implementation ==
=== Integer type ===
There are multiple options regarding which integer type should be made built-in:
# The {{Z|80}} type, the only integer type which is bounded.
# The {{Z|13518}} type, which most integer types rely on at the moment.
# The {{Z|16683}} type.
We can look at what Python and ECMAScript do for further inspiration:
* Python has an <syntaxhighlight lang="python" inline>int</syntaxhighlight> type for representing integers; it is signed and unbounded.
* ECMAScript has a <syntaxhighlight lang="python" inline>BigInt</syntaxhighlight> type for representing integers; it is signed and unbounded too.
Considering these, we decided to go with {{Z|16683}} for our integer type.
* {{Z|80}} can be defined by having the validator ensure it is within the 0-255 range.
* {{Z|13518}} can be defined by having the validator ensure it is a non-negatuve integer.
Given this, we can have efficient type converters from and to programming language types, with the added bonus of having all possible values be valid (e.g., if a Python function returns an int, it can always be converted to a valid {{Z|16683}}, unlike {{Z|13518}} which wouldn't support negative numbers).
=== Floating-point type ===
We propose to make the {{Z|20838}} type built-in. The IEEE 754 standard for floating point numbers is the ideal representation: it is a reference standard that has already been adopted on Wikifunctions. In its current implementation following [[Wikifunctions:Type proposals/float64]], it does however require quite a few different types:
* The {{Z|16659}} enumeration (3 members)
* The {{Z|20825}} enumeration (8 members)
* Both a natural number and an integer type
Our options at the moment are:
# Turn all those types into built-ins
# Change the internal representation of float64
Considering the need for performant functions, we propose having a different float 64 type whose value is an hexadecimal string representing the raw IEEE 754 byte representation.
==== Converters ====
[[w:Endianness|Big Endian]] was chosen arbitrarly.
===== JavaScript =====
The ECMAScript <syntaxhighlight lang="javascript" inline>DataView</syntaxhighlight> offers the required functions to access the raw bytes of a floating point number and format them as hexadecimal:
<syntaxhighlight lang="javascript">
function fromNumber(num) {
const buffer = new ArrayBuffer(8);
const view = new DataView(buffer);
view.setFloat64(0, num, true);
return view.getBigUint64(0, true).toString(16);
}
</syntaxhighlight>
Converting an hexadecimal string back into a floating point number is trivial now:
<syntaxhighlight lang="javascript">
function toNumber(num) {
const buffer = new ArrayBuffer(8);
const view = new DataView(buffer);
view.setBigUint64(0, BigInt(`0x${num}`), true);
return view.getFloat64(0, true);
}
</syntaxhighlight>
===== Python =====
We have to use the <code>struct</code> module in order to access a floating point number's bytes:
<syntaxhighlight lang="python">
import struct
def fromNumber(num: float) -> str:
return struct.pack('<d', 666.67).hex()
</syntaxhighlight>
The reverse operation, converting hexadecimal bytes back into a floating point number, is trivial too:
<syntaxhighlight lang="python">
import struct
def toNumber(num: str) -> float:
return struct.unpack('<d', bytes.fromhex("4084d55c28f5c28f"))[0]
</syntaxhighlight>
=== ZIDs ===
This proposal includes the creation of multiple new ZObjects, all of which require a statically assigned ZID. In [[Wikifunctions:Function model|the function model documentation]], functions in the range Z700-Z799 are used as sample arithmetic functions. Since many new built-in functions will be included in this proposal, having a dedicated range for them is coherent and avoids taking too much space in the previously used Z800-Z899 space.
To remain coherent with this idea, new core types will be put in the Z70-Z79 range, which is coincidentally free.
The IEEE 754 standard includes many operations that a system needs to implement to be considered conformant. The Z7000 range could be used for those, as there is more than a hundred of them.
== Specifications ==
=== Integers ===
==== Summary ====
{{void|Short overview of the idea of this Type}}
We propose the creation of a new type, named '''integer'''. It is part of the wider proposal to add two new built-in types for numbers. This type would be a built-in type whose ZID is in the 0-99 range. We propose Z70, as functions in the Z700-Z799 range are numeric operations.
'''Integer''' is similar to the existing {{Z|16683}}, but there are some differences regarding its internal representation.
==== Uses ====
{{void|Prompts:
* Why should this exist?
* What kinds of functions would be created using this?
* What standard concepts, if any, does this align with?}}
There are many types built on top of an integer type on Wikifunctions: {{Z|80}}, {{Z|13518}}, {{Z|19677}}... Having them all defined relatively to one standard built-in type improves the type hierarchy, allows further optimisations in the future, and fixes issues regarding built-in dependence on non built-ins.
Integers are then used throughout Wikifunctions, wether for mathematical operations or for other uses (such as getting the length of a list). This new built-in type allows us to have composition of built-ins implementaions for all those functions.
==== Structure ====
{{void|Description of how a value of this type would look like and why}}
This type has a single key, value (Z70K1), whose type is {{Z|6}}. This key holds a big endian lowercase hexadecimal representation of the number described. The string is preceded by a single minus character <code>-</code> if the number is negative. Note that <code>-0</code> is not a valid value.
This format was chosen because it is well supported by both available programming languages and should have rather good performance, as hexadecimal notation is close to how numbers are represented in the computer's memory.
===== Example values =====
Here is how the number <code>666</code> would be stored:
{|class="wikitable" style="margin:.6em 1.6em"
|-
| <syntaxhighlight lang="json" line="line">{
"type": "integer",
"value": "29a"
}</syntaxhighlight>
| <syntaxhighlight lang="json">{
"Z1K1": "Z70",
"Z70K1": "29a"
}</syntaxhighlight>
|}
And here is how its opposite <code>-666</code> would be stored:
{|class="wikitable" style="margin:.6em 1.6em"
|-
| <syntaxhighlight lang="json" line="line">{
"type": "integer",
"value": "-29a"
}</syntaxhighlight>
| <syntaxhighlight lang="json">{
"Z1K1": "Z70",
"Z70K1": "-29a"
}</syntaxhighlight>
|}
==== Identity ====
Two integers are equal if and only if their hexadecimal representations are equal.
==== Converting to code ====
===== Python =====
<syntaxhighlight lang="python">
def deserialize(Z70K1: str) -> int:
return int(Z70K1, 16)
</syntaxhighlight>
<syntaxhighlight lang="python">
def serialize(integer: int) -> str:
return f"{integer:x}"
</syntaxhighlight>
===== JavaScript =====
<syntaxhighlight lang="javascript">
function deserialize(Z70K1) {
if (Z70K1.startsWith("-")) {
return -BigInt(`0x${Z70K1.slice(1)}`);
}
return BigInt(`0x${Z70K1}`);
}
</syntaxhighlight>
<syntaxhighlight lang="javascript">
function serialize(big_int) {
return big_int.toString(16);
}
</syntaxhighlight>
==== Display function ====
{{void|How would a value of this type be displayed on Wikifunctions. Remove this section for types that should not be displayed as a string.}}
Integers should be displayed as localized numbers. For example, a French user would see <code>678910</code> as 678 910 while an American user might see 678,910.
==== Read function ====
{{void|When entering a value for this type as a string, what format should that string have? Remove this section for types that should not be entered as a string.}}
The input should be interpreted as a either localized number in the user's language, or as a standard decimal number (without separators).
==== Alternatives ====
{{void|In order to capture the idea presented in the summary, what alternative structures, display functions, read functions, etc. could have made sense too? Please also link to any type proposals that "compete" with this one.}}
# Having a separate Sign key in the type, but that would imply making Sign built-in too and would make conversion slower.
==== Comments ====
''For general comments, please reply to the proposer.''
* {{s}} as proposer. [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 09:20, 15 August 2026 (UTC)
=== Floating point numbers ===
==== Summary ====
{{void|Short overview of the idea of this Type}}
We propose the creation of a new type, named '''floating point number'''. It is part of the wider proposal to add two new built-in types for numbers. This type would be a built-in type whose ZID is in the 0-99 range. We propose Z71, as arithmetic functions occupy the Z700-Z999 range.
The name '''floating point number''' has be chosen to differentiate this type from {{Z|20838}}. The internal representation used is different: while {{Z|20838}} stores each part of an IEEE 754 floating point number separately, '''floating point number''' simply stores the bytes as hexadecimal in a {{Z|6}} key.
==== Uses ====
{{void|Prompts:
* Why should this exist?
* What kinds of functions would be created using this?
* What standard concepts, if any, does this align with?}}
{{Z|20838}} is already a widely used type<ref>[[Special:WhatLinksHere/Z20838]] returns more than 500 items.</ref>, this proposal simply turns it into a built-in type. The different representation allows faster performance for complex composed functions. Its new built-in nature also permits the creation of built-in functions operating on floating point number, and then permit the creation of pure composition mathematical operations.
This aligns with the standard concept of representing numbers; in that case, real numbers are approximated by floating point numbers. The international widely recoginzed IEEE 754 format is used as it has first-class support in code implementations.
==== Structure ====
{{void|Description of how a value of this type would look like and why}}
This type has a single key, value (Z71K1), whose type is {{Z|6}}. This key holds a little-endian IEEE 754 number, whose bytes are reprsesented as hexadecimal. This was done for performance reasons: most operations do not work with individual components of the floating point number, but rather with the number as a whole. It also avoids having to make two new enumerations builtin for the sign and special value.
===== Example values =====
Here is how the number <code>666.67</code> would be stored:
{|class="wikitable" style="margin:.6em 1.6em"
|-
| <syntaxhighlight lang="json" line="line">{
"type": "floating point number",
"value": "8fc2f5285cd58440"
}</syntaxhighlight>
| <syntaxhighlight lang="json">{
"Z1K1": "Z71",
"Z71K1": "8fc2f5285cd58440"
}</syntaxhighlight>
|}
==== Identity ====
Two floating point numbers are the same if the subtraction of their values (Z71K1) is equal to zero. The special case where either is equal to NaN means that they are not equal, even if both are NaN.
==== Converting to code ====
===== Python =====
<syntaxhighlight lang="python">
import struct
def fromNumber(num: float) -> str:
return struct.pack('<d', num).hex()
</syntaxhighlight>
<syntaxhighlight lang="python">
import struct
def toNumber(num: str) -> float:
return struct.unpack('<d', bytes.fromhex(num))[0]
</syntaxhighlight>
===== JavaScript =====
<syntaxhighlight lang="javascript">
function fromNumber(num) {
const buffer = new ArrayBuffer(8);
const view = new DataView(buffer);
view.setFloat64(0, num, true);
return view.getBigUint64(0, true).toString(16);
}
</syntaxhighlight>
<syntaxhighlight lang="javascript">
function toNumber(num) {
const buffer = new ArrayBuffer(8);
const view = new DataView(buffer);
view.setBigUint64(0, BigInt(`0x${num}`), true);
return view.getFloat64(0, true);
}
</syntaxhighlight>
==== Display function ====
{{void|How would a value of this type be displayed on Wikifunctions. Remove this section for types that should not be displayed as a string.}}
The cleanest way to display floating point numbers is using the localized number system. For example, a French user could have the sample number shown above displayed to them as <code>666,67</code>, while an user from the USA could see <code>666.67</code>. A Latin user might see <code>DCLXVI.LXVII</code>.
==== Read function ====
{{void|When entering a value for this type as a string, what format should that string have? Remove this section for types that should not be entered as a string.}}
The input should be interpreted as a localized number in the user's language and then parsed into its IEEE 754 representation.
==== Alternatives ====
{{void|In order to capture the idea presented in the summary, what alternative structures, display functions, read functions, etc. could have made sense too? Please also link to any type proposals that "compete" with this one.}}
# Using the existing float64 type structure, where each part has its own key.
==== Comments ====
''For general comments, please reply to the proposer.''
* {{s}} as proposer. [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 07:04, 15 August 2026 (UTC)
== Discussion ==
'''We are aware that what we propose are major breaking changes that could take time and effort to implement.''' We believe that, as its own programming system, Wikifunctions ''needs'' first-class support for a concept as fundamental as numbers; and that this proposal will make further work with numbers easier while opening the door to further improvements. We submit this first proposal for the community to discuss it and to get advice regarding its implementation if it is approved. [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 09:36, 15 August 2026 (UTC)
g94icuvv73ccbf3gd746cnr6uy806my
299634
299632
2026-08-15T13:04:46Z
Virinas-code
2884
/* Uses */ Typo: wether -> whether
299634
wikitext
text/x-wiki
'''This is a work in progress draft which is not ready for community submission yet.'''
== Issues ==
=== Regarding {{Z|80}} ===
{{Z|80}} is a {{Z|4}} with a single key: value (Z80K1), which is of type {{Z|13518}}. While {{Z|80}} is a built-in core type with an ID in the <code>Z1</code>--<code>Z99</code> range<ref>[[Wikifunctions:Reserved ZIDs#Ranges]] <code>Z1</code> – <code>Z99</code>: core types.</ref>, {{Z|13518}} is not. Given that {{Z|80}} is pre-defined in the system<ref>https://gitlab.wikimedia.org/repos/abstract-wiki/wikifunctions/function-schemata A number of ZObjects are pre-defined for the Wikifunctions system, and used by the WikiLambda MediaWiki extension as well as the function-orchestrator (and through that, the function-evaluator).</ref><ref name="Z80 initial">[[Special:PermanentLink/32]] Revision as of 2023-07-26T18:29:41 by [[User:WikiLambda system|WikiLambda system]] ''(Initial pre-defined WikiLambda content creation)''</ref>, having it depend on the later defined {{Z|13518}} is problematic.
It should be noted that, initially, a byte's value was stored as a {{Z|6}}<ref name="Z80 initial" />, one of the core builtin types of Wikifunctions. It is also still a {{Z|6}} in the [https://gitlab.wikimedia.org/repos/abstract-wiki/wikifunctions/function-schemata function-schemata]<ref>https://gitlab.wikimedia.org/repos/abstract-wiki/wikifunctions/function-schemata/-/blob/main/data/CANONICAL/Z80.yaml
<syntaxhighlight lang="yaml">
Z80K1:
$ref: "#/definitions/objects/Z6_byte"
</syntaxhighlight></ref>, which aims to provide a "single version of the truth" regarding what counts as a valid ZObject<ref>https://gitlab.wikimedia.org/repos/abstract-wiki/wikifunctions/function-schemata shared set of JSON schemata for the Wikifunctions project, to achieve a "single version of the truth" on what counts as a structurally valid ZObject, and provide shared utility code</ref>.
{{Z|80}} was changed to use {{Z|13518}} following [[Wikifunctions:Type proposals/Byte]]<ref>[[Wikifunctions:Type proposals/Byte#Alternatives]] The current proposal is Option 3 in the following list of Alternatives. (Option 3) A byte consists of one key that represents the value of the byte. The value is of type natural number, and has to be between the values of 0 and 255, including the edges.</ref>. This proposal highlights the lack of proper support for the {{Z|80}} type when it was defined upon {{Z|6}}, especially regarding code converters. This proposal added two type converters for JavaScript and Python where {{Z|80}} objects would get converted into Python <syntaxhighlight lang="python" inline>int</syntaxhighlight> and JavaScript <syntaxhighlight lang="javascript" inline>Number</syntaxhighlight>. Accordingly, the value's type was changed to {{Z|13518}}.
==== Lessons ====
Having {{Z|80}} be a built-in type is coherent: it is the fundamental unit used to measure and access memory in computing, and the most fundamental representation of a number<ref>[[w:Byte]]</ref>. Having it be defined upon a natural number type is also coherent: a byte represents a single value in the range 0-255, and is represented as a number in other programming languages<ref>[[Wikifunctions:Type proposals/Byte#Python]] The most idiomatic conversion in Python is to convert a Wikifunctions Byte to a Python int.</ref><ref>[[Wikifunctions:Type proposals/Byte#JavaScript]] The most idiomatic conversion in JavaScript is to convert a Wikifunctions Byte to a JavaScript number.</ref>. Hence, we argue that it is not coherent for {{Z|13518}} to not be a built-in. Having a built-in natural number type means that we can keep the preferred representation of having a byte's value stored as a number without breaking the hierarchy of built-ins and non-built-ins.
=== Arithmetic in the composition language ===
The [[Wikifunctions:Glossary#composition|composition]] language, while slow, is the most portable, abstract [[WF:PROG|programming language available on Wikifunctions]]. It defines functions as composition of other functions, which has multiple advantages:
* It is language agnostic. As Wikifunctions renders the composed function calls using the localized function labels, a composition implementation can be read entirely in the user's chosen language, given that the required labels are present. On the contrary, code implementations rely on English keywords<ref>See the [https://docs.python.org/3/reference/lexical_analysis.html#keywords list of Python keywords] and the [https://tc39.es/ecma262/#prod-ReservedWord ECMAScript list of reserved keywords].</ref> and can have inner variable or function names in any language that are not localized.
* It is portable and entirely defined within the scope of the Wikifunctions project, without relying on external specifications and implementations such as with code implementations.
* It serves as a well-understood formalism and a very simple implementation of a function in order to ensure that the other implementations of it are correct<ref>[[Wikifunctions:Function model#Composition]] it allows us to use a well-understood formalism and a very simple implementation of it in order to ensure that the other implementations of Z781/add are correct</ref>. Composition implementations are considered "defining implementations" and are used alongside faster, optimized, but harder to comprehend code implementations.
Ideally, all functions should have an implementation as a composition, or an implementaion as composition of functions which are themselves a composition of built-in, etc. This allows a proper clear definition of all functions, independently of their implementations technicalities.
In its current state, however, all arithmetic functions on Wikifunctions lack such a composition implementation. Let us take a look at {{Z|13521}} for example: all of its composition implementations end up calling {{Z|13578}}, whose only composition implementation relies back on {{Z|13521}}.
This is coherent: given that there is no built-in number type, there is also no built-in numeric operation. But this also implies that none of the [[Wikifunctions:Catalogue/Number operations|many number operations]] on Wikifunctions have a proper, well-defined implementation as composition of built-ins.
==== Lessons ====
Looking at [[Wikifunctions:Catalogue]] reveals that many of the functions on this website are related to arithmetic and mathematics, and hence operate on numbers. Having a built-in number type allows the creation of composition implementations for all those functions, proper, well-defined implementations as composition of built-ins. Given that composition is the language of Wikifunctions, it being incapable of representing most of its functions is incoherent.
== Proposal ==
As we said multiple times over the course of the previous section, we propose the creation of two new built-in types for numbers.
=== Current situation ===
Per the numeric type hierarchy found at [[Template:Type documentation]], we can identify two different type of number types:
* Integers, such as {{Z|80}}, {{Z|13518}}, or {{Z|19677}} (which is a pair of integers). These are usually unbounded. Most of them end up depending on {{Z|13518}}.
* Floating point numbers, such as {{Z|20838}}, or {{Z|33198}} (which is a pair of floating point numbers). These follow the IEEE 754 standard, which means they are bounded and have a limited precision. The parent for these types is {{Z|20838}}.
The only built-in type among these is {{Z|80}}, but as said before, it relies on a non-built-in internal representation.
=== Proposed change ===
* Adding a built-in integer type.
* Adding a built-in IEEE 754 floating point type.
* Adding built-in functions to manipulate these two types.
==== Advantages ====
* Type hierarchy issues about {{Z|80}} depending on non-built-ins are fixed: it now depends on another built-in. It also improves the overall hierarchy, where all number types can be defined upon these two built-ins. This could come in useful for later optimizations (for example, reprensenting numbers without going through conversion to string).
* We can have composition implementations for all mathematical and arithmetic functions, since these are now built-in types they can have built-in functions to work with them.
==== Further views ====
Currently, Wikifunctions only has two terminal types: {{Z|9}} and {{Z|6}}. This means that all types in Wikifunctions end up being represented as strings. Having built-in numbers opens the possibility for later software changes: for example, representing them internally and in the JSON as numbers. Considering the many performance issues of Wikifunctions, this could be interesting in a not-so-far future.
According to the [[Wikifunctions:About|Wikifunctions Mission statement]], we should "Imagine a programming system that allows us to make the next big leap in knowledge representation". Representing something as fundamental as numbers is definitely essential, further renforcing the need for an endorsed built-in number type. Wikifunctions also aims "to create both a well-defined common catalog of functions that can be widely reused and an environment where functions can be quickly combined and executed on the fly"; arithmetic operations and mathematical computations are one of the most common type of functions, and should therefore benefit from first-class support.
== Implementation ==
=== Integer type ===
There are multiple options regarding which integer type should be made built-in:
# The {{Z|80}} type, the only integer type which is bounded.
# The {{Z|13518}} type, which most integer types rely on at the moment.
# The {{Z|16683}} type.
We can look at what Python and ECMAScript do for further inspiration:
* Python has an <syntaxhighlight lang="python" inline>int</syntaxhighlight> type for representing integers; it is signed and unbounded.
* ECMAScript has a <syntaxhighlight lang="python" inline>BigInt</syntaxhighlight> type for representing integers; it is signed and unbounded too.
Considering these, we decided to go with {{Z|16683}} for our integer type.
* {{Z|80}} can be defined by having the validator ensure it is within the 0-255 range.
* {{Z|13518}} can be defined by having the validator ensure it is a non-negatuve integer.
Given this, we can have efficient type converters from and to programming language types, with the added bonus of having all possible values be valid (e.g., if a Python function returns an int, it can always be converted to a valid {{Z|16683}}, unlike {{Z|13518}} which wouldn't support negative numbers).
=== Floating-point type ===
We propose to make the {{Z|20838}} type built-in. The IEEE 754 standard for floating point numbers is the ideal representation: it is a reference standard that has already been adopted on Wikifunctions. In its current implementation following [[Wikifunctions:Type proposals/float64]], it does however require quite a few different types:
* The {{Z|16659}} enumeration (3 members)
* The {{Z|20825}} enumeration (8 members)
* Both a natural number and an integer type
Our options at the moment are:
# Turn all those types into built-ins
# Change the internal representation of float64
Considering the need for performant functions, we propose having a different float 64 type whose value is an hexadecimal string representing the raw IEEE 754 byte representation.
==== Converters ====
[[w:Endianness|Big Endian]] was chosen arbitrarly.
===== JavaScript =====
The ECMAScript <syntaxhighlight lang="javascript" inline>DataView</syntaxhighlight> offers the required functions to access the raw bytes of a floating point number and format them as hexadecimal:
<syntaxhighlight lang="javascript">
function fromNumber(num) {
const buffer = new ArrayBuffer(8);
const view = new DataView(buffer);
view.setFloat64(0, num, true);
return view.getBigUint64(0, true).toString(16);
}
</syntaxhighlight>
Converting an hexadecimal string back into a floating point number is trivial now:
<syntaxhighlight lang="javascript">
function toNumber(num) {
const buffer = new ArrayBuffer(8);
const view = new DataView(buffer);
view.setBigUint64(0, BigInt(`0x${num}`), true);
return view.getFloat64(0, true);
}
</syntaxhighlight>
===== Python =====
We have to use the <code>struct</code> module in order to access a floating point number's bytes:
<syntaxhighlight lang="python">
import struct
def fromNumber(num: float) -> str:
return struct.pack('<d', 666.67).hex()
</syntaxhighlight>
The reverse operation, converting hexadecimal bytes back into a floating point number, is trivial too:
<syntaxhighlight lang="python">
import struct
def toNumber(num: str) -> float:
return struct.unpack('<d', bytes.fromhex("4084d55c28f5c28f"))[0]
</syntaxhighlight>
=== ZIDs ===
This proposal includes the creation of multiple new ZObjects, all of which require a statically assigned ZID. In [[Wikifunctions:Function model|the function model documentation]], functions in the range Z700-Z799 are used as sample arithmetic functions. Since many new built-in functions will be included in this proposal, having a dedicated range for them is coherent and avoids taking too much space in the previously used Z800-Z899 space.
To remain coherent with this idea, new core types will be put in the Z70-Z79 range, which is coincidentally free.
The IEEE 754 standard includes many operations that a system needs to implement to be considered conformant. The Z7000 range could be used for those, as there is more than a hundred of them.
== Specifications ==
=== Integers ===
==== Summary ====
{{void|Short overview of the idea of this Type}}
We propose the creation of a new type, named '''integer'''. It is part of the wider proposal to add two new built-in types for numbers. This type would be a built-in type whose ZID is in the 0-99 range. We propose Z70, as functions in the Z700-Z799 range are numeric operations.
'''Integer''' is similar to the existing {{Z|16683}}, but there are some differences regarding its internal representation.
==== Uses ====
{{void|Prompts:
* Why should this exist?
* What kinds of functions would be created using this?
* What standard concepts, if any, does this align with?}}
There are many types built on top of an integer type on Wikifunctions: {{Z|80}}, {{Z|13518}}, {{Z|19677}}... Having them all defined relatively to one standard built-in type improves the type hierarchy, allows further optimisations in the future, and fixes issues regarding built-in dependence on non built-ins.
Integers are then used throughout Wikifunctions, whether for mathematical operations or for other uses (such as getting the length of a list). This new built-in type allows us to have composition of built-ins implementaions for all those functions.
==== Structure ====
{{void|Description of how a value of this type would look like and why}}
This type has a single key, value (Z70K1), whose type is {{Z|6}}. This key holds a big endian lowercase hexadecimal representation of the number described. The string is preceded by a single minus character <code>-</code> if the number is negative. Note that <code>-0</code> is not a valid value.
This format was chosen because it is well supported by both available programming languages and should have rather good performance, as hexadecimal notation is close to how numbers are represented in the computer's memory.
===== Example values =====
Here is how the number <code>666</code> would be stored:
{|class="wikitable" style="margin:.6em 1.6em"
|-
| <syntaxhighlight lang="json" line="line">{
"type": "integer",
"value": "29a"
}</syntaxhighlight>
| <syntaxhighlight lang="json">{
"Z1K1": "Z70",
"Z70K1": "29a"
}</syntaxhighlight>
|}
And here is how its opposite <code>-666</code> would be stored:
{|class="wikitable" style="margin:.6em 1.6em"
|-
| <syntaxhighlight lang="json" line="line">{
"type": "integer",
"value": "-29a"
}</syntaxhighlight>
| <syntaxhighlight lang="json">{
"Z1K1": "Z70",
"Z70K1": "-29a"
}</syntaxhighlight>
|}
==== Identity ====
Two integers are equal if and only if their hexadecimal representations are equal.
==== Converting to code ====
===== Python =====
<syntaxhighlight lang="python">
def deserialize(Z70K1: str) -> int:
return int(Z70K1, 16)
</syntaxhighlight>
<syntaxhighlight lang="python">
def serialize(integer: int) -> str:
return f"{integer:x}"
</syntaxhighlight>
===== JavaScript =====
<syntaxhighlight lang="javascript">
function deserialize(Z70K1) {
if (Z70K1.startsWith("-")) {
return -BigInt(`0x${Z70K1.slice(1)}`);
}
return BigInt(`0x${Z70K1}`);
}
</syntaxhighlight>
<syntaxhighlight lang="javascript">
function serialize(big_int) {
return big_int.toString(16);
}
</syntaxhighlight>
==== Display function ====
{{void|How would a value of this type be displayed on Wikifunctions. Remove this section for types that should not be displayed as a string.}}
Integers should be displayed as localized numbers. For example, a French user would see <code>678910</code> as 678 910 while an American user might see 678,910.
==== Read function ====
{{void|When entering a value for this type as a string, what format should that string have? Remove this section for types that should not be entered as a string.}}
The input should be interpreted as a either localized number in the user's language, or as a standard decimal number (without separators).
==== Alternatives ====
{{void|In order to capture the idea presented in the summary, what alternative structures, display functions, read functions, etc. could have made sense too? Please also link to any type proposals that "compete" with this one.}}
# Having a separate Sign key in the type, but that would imply making Sign built-in too and would make conversion slower.
==== Comments ====
''For general comments, please reply to the proposer.''
* {{s}} as proposer. [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 09:20, 15 August 2026 (UTC)
=== Floating point numbers ===
==== Summary ====
{{void|Short overview of the idea of this Type}}
We propose the creation of a new type, named '''floating point number'''. It is part of the wider proposal to add two new built-in types for numbers. This type would be a built-in type whose ZID is in the 0-99 range. We propose Z71, as arithmetic functions occupy the Z700-Z999 range.
The name '''floating point number''' has be chosen to differentiate this type from {{Z|20838}}. The internal representation used is different: while {{Z|20838}} stores each part of an IEEE 754 floating point number separately, '''floating point number''' simply stores the bytes as hexadecimal in a {{Z|6}} key.
==== Uses ====
{{void|Prompts:
* Why should this exist?
* What kinds of functions would be created using this?
* What standard concepts, if any, does this align with?}}
{{Z|20838}} is already a widely used type<ref>[[Special:WhatLinksHere/Z20838]] returns more than 500 items.</ref>, this proposal simply turns it into a built-in type. The different representation allows faster performance for complex composed functions. Its new built-in nature also permits the creation of built-in functions operating on floating point number, and then permit the creation of pure composition mathematical operations.
This aligns with the standard concept of representing numbers; in that case, real numbers are approximated by floating point numbers. The international widely recoginzed IEEE 754 format is used as it has first-class support in code implementations.
==== Structure ====
{{void|Description of how a value of this type would look like and why}}
This type has a single key, value (Z71K1), whose type is {{Z|6}}. This key holds a little-endian IEEE 754 number, whose bytes are reprsesented as hexadecimal. This was done for performance reasons: most operations do not work with individual components of the floating point number, but rather with the number as a whole. It also avoids having to make two new enumerations builtin for the sign and special value.
===== Example values =====
Here is how the number <code>666.67</code> would be stored:
{|class="wikitable" style="margin:.6em 1.6em"
|-
| <syntaxhighlight lang="json" line="line">{
"type": "floating point number",
"value": "8fc2f5285cd58440"
}</syntaxhighlight>
| <syntaxhighlight lang="json">{
"Z1K1": "Z71",
"Z71K1": "8fc2f5285cd58440"
}</syntaxhighlight>
|}
==== Identity ====
Two floating point numbers are the same if the subtraction of their values (Z71K1) is equal to zero. The special case where either is equal to NaN means that they are not equal, even if both are NaN.
==== Converting to code ====
===== Python =====
<syntaxhighlight lang="python">
import struct
def fromNumber(num: float) -> str:
return struct.pack('<d', num).hex()
</syntaxhighlight>
<syntaxhighlight lang="python">
import struct
def toNumber(num: str) -> float:
return struct.unpack('<d', bytes.fromhex(num))[0]
</syntaxhighlight>
===== JavaScript =====
<syntaxhighlight lang="javascript">
function fromNumber(num) {
const buffer = new ArrayBuffer(8);
const view = new DataView(buffer);
view.setFloat64(0, num, true);
return view.getBigUint64(0, true).toString(16);
}
</syntaxhighlight>
<syntaxhighlight lang="javascript">
function toNumber(num) {
const buffer = new ArrayBuffer(8);
const view = new DataView(buffer);
view.setBigUint64(0, BigInt(`0x${num}`), true);
return view.getFloat64(0, true);
}
</syntaxhighlight>
==== Display function ====
{{void|How would a value of this type be displayed on Wikifunctions. Remove this section for types that should not be displayed as a string.}}
The cleanest way to display floating point numbers is using the localized number system. For example, a French user could have the sample number shown above displayed to them as <code>666,67</code>, while an user from the USA could see <code>666.67</code>. A Latin user might see <code>DCLXVI.LXVII</code>.
==== Read function ====
{{void|When entering a value for this type as a string, what format should that string have? Remove this section for types that should not be entered as a string.}}
The input should be interpreted as a localized number in the user's language and then parsed into its IEEE 754 representation.
==== Alternatives ====
{{void|In order to capture the idea presented in the summary, what alternative structures, display functions, read functions, etc. could have made sense too? Please also link to any type proposals that "compete" with this one.}}
# Using the existing float64 type structure, where each part has its own key.
==== Comments ====
''For general comments, please reply to the proposer.''
* {{s}} as proposer. [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 07:04, 15 August 2026 (UTC)
== Discussion ==
'''We are aware that what we propose are major breaking changes that could take time and effort to implement.''' We believe that, as its own programming system, Wikifunctions ''needs'' first-class support for a concept as fundamental as numbers; and that this proposal will make further work with numbers easier while opening the door to further improvements. We submit this first proposal for the community to discuss it and to get advice regarding its implementation if it is approved. [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 09:36, 15 August 2026 (UTC)
eb78cu6cugd4pf6n994je0tc94uxuzi
299635
299634
2026-08-15T13:05:56Z
Virinas-code
2884
/* Uses */ We do not have a good type hierarchy yet
299635
wikitext
text/x-wiki
'''This is a work in progress draft which is not ready for community submission yet.'''
== Issues ==
=== Regarding {{Z|80}} ===
{{Z|80}} is a {{Z|4}} with a single key: value (Z80K1), which is of type {{Z|13518}}. While {{Z|80}} is a built-in core type with an ID in the <code>Z1</code>--<code>Z99</code> range<ref>[[Wikifunctions:Reserved ZIDs#Ranges]] <code>Z1</code> – <code>Z99</code>: core types.</ref>, {{Z|13518}} is not. Given that {{Z|80}} is pre-defined in the system<ref>https://gitlab.wikimedia.org/repos/abstract-wiki/wikifunctions/function-schemata A number of ZObjects are pre-defined for the Wikifunctions system, and used by the WikiLambda MediaWiki extension as well as the function-orchestrator (and through that, the function-evaluator).</ref><ref name="Z80 initial">[[Special:PermanentLink/32]] Revision as of 2023-07-26T18:29:41 by [[User:WikiLambda system|WikiLambda system]] ''(Initial pre-defined WikiLambda content creation)''</ref>, having it depend on the later defined {{Z|13518}} is problematic.
It should be noted that, initially, a byte's value was stored as a {{Z|6}}<ref name="Z80 initial" />, one of the core builtin types of Wikifunctions. It is also still a {{Z|6}} in the [https://gitlab.wikimedia.org/repos/abstract-wiki/wikifunctions/function-schemata function-schemata]<ref>https://gitlab.wikimedia.org/repos/abstract-wiki/wikifunctions/function-schemata/-/blob/main/data/CANONICAL/Z80.yaml
<syntaxhighlight lang="yaml">
Z80K1:
$ref: "#/definitions/objects/Z6_byte"
</syntaxhighlight></ref>, which aims to provide a "single version of the truth" regarding what counts as a valid ZObject<ref>https://gitlab.wikimedia.org/repos/abstract-wiki/wikifunctions/function-schemata shared set of JSON schemata for the Wikifunctions project, to achieve a "single version of the truth" on what counts as a structurally valid ZObject, and provide shared utility code</ref>.
{{Z|80}} was changed to use {{Z|13518}} following [[Wikifunctions:Type proposals/Byte]]<ref>[[Wikifunctions:Type proposals/Byte#Alternatives]] The current proposal is Option 3 in the following list of Alternatives. (Option 3) A byte consists of one key that represents the value of the byte. The value is of type natural number, and has to be between the values of 0 and 255, including the edges.</ref>. This proposal highlights the lack of proper support for the {{Z|80}} type when it was defined upon {{Z|6}}, especially regarding code converters. This proposal added two type converters for JavaScript and Python where {{Z|80}} objects would get converted into Python <syntaxhighlight lang="python" inline>int</syntaxhighlight> and JavaScript <syntaxhighlight lang="javascript" inline>Number</syntaxhighlight>. Accordingly, the value's type was changed to {{Z|13518}}.
==== Lessons ====
Having {{Z|80}} be a built-in type is coherent: it is the fundamental unit used to measure and access memory in computing, and the most fundamental representation of a number<ref>[[w:Byte]]</ref>. Having it be defined upon a natural number type is also coherent: a byte represents a single value in the range 0-255, and is represented as a number in other programming languages<ref>[[Wikifunctions:Type proposals/Byte#Python]] The most idiomatic conversion in Python is to convert a Wikifunctions Byte to a Python int.</ref><ref>[[Wikifunctions:Type proposals/Byte#JavaScript]] The most idiomatic conversion in JavaScript is to convert a Wikifunctions Byte to a JavaScript number.</ref>. Hence, we argue that it is not coherent for {{Z|13518}} to not be a built-in. Having a built-in natural number type means that we can keep the preferred representation of having a byte's value stored as a number without breaking the hierarchy of built-ins and non-built-ins.
=== Arithmetic in the composition language ===
The [[Wikifunctions:Glossary#composition|composition]] language, while slow, is the most portable, abstract [[WF:PROG|programming language available on Wikifunctions]]. It defines functions as composition of other functions, which has multiple advantages:
* It is language agnostic. As Wikifunctions renders the composed function calls using the localized function labels, a composition implementation can be read entirely in the user's chosen language, given that the required labels are present. On the contrary, code implementations rely on English keywords<ref>See the [https://docs.python.org/3/reference/lexical_analysis.html#keywords list of Python keywords] and the [https://tc39.es/ecma262/#prod-ReservedWord ECMAScript list of reserved keywords].</ref> and can have inner variable or function names in any language that are not localized.
* It is portable and entirely defined within the scope of the Wikifunctions project, without relying on external specifications and implementations such as with code implementations.
* It serves as a well-understood formalism and a very simple implementation of a function in order to ensure that the other implementations of it are correct<ref>[[Wikifunctions:Function model#Composition]] it allows us to use a well-understood formalism and a very simple implementation of it in order to ensure that the other implementations of Z781/add are correct</ref>. Composition implementations are considered "defining implementations" and are used alongside faster, optimized, but harder to comprehend code implementations.
Ideally, all functions should have an implementation as a composition, or an implementaion as composition of functions which are themselves a composition of built-in, etc. This allows a proper clear definition of all functions, independently of their implementations technicalities.
In its current state, however, all arithmetic functions on Wikifunctions lack such a composition implementation. Let us take a look at {{Z|13521}} for example: all of its composition implementations end up calling {{Z|13578}}, whose only composition implementation relies back on {{Z|13521}}.
This is coherent: given that there is no built-in number type, there is also no built-in numeric operation. But this also implies that none of the [[Wikifunctions:Catalogue/Number operations|many number operations]] on Wikifunctions have a proper, well-defined implementation as composition of built-ins.
==== Lessons ====
Looking at [[Wikifunctions:Catalogue]] reveals that many of the functions on this website are related to arithmetic and mathematics, and hence operate on numbers. Having a built-in number type allows the creation of composition implementations for all those functions, proper, well-defined implementations as composition of built-ins. Given that composition is the language of Wikifunctions, it being incapable of representing most of its functions is incoherent.
== Proposal ==
As we said multiple times over the course of the previous section, we propose the creation of two new built-in types for numbers.
=== Current situation ===
Per the numeric type hierarchy found at [[Template:Type documentation]], we can identify two different type of number types:
* Integers, such as {{Z|80}}, {{Z|13518}}, or {{Z|19677}} (which is a pair of integers). These are usually unbounded. Most of them end up depending on {{Z|13518}}.
* Floating point numbers, such as {{Z|20838}}, or {{Z|33198}} (which is a pair of floating point numbers). These follow the IEEE 754 standard, which means they are bounded and have a limited precision. The parent for these types is {{Z|20838}}.
The only built-in type among these is {{Z|80}}, but as said before, it relies on a non-built-in internal representation.
=== Proposed change ===
* Adding a built-in integer type.
* Adding a built-in IEEE 754 floating point type.
* Adding built-in functions to manipulate these two types.
==== Advantages ====
* Type hierarchy issues about {{Z|80}} depending on non-built-ins are fixed: it now depends on another built-in. It also improves the overall hierarchy, where all number types can be defined upon these two built-ins. This could come in useful for later optimizations (for example, reprensenting numbers without going through conversion to string).
* We can have composition implementations for all mathematical and arithmetic functions, since these are now built-in types they can have built-in functions to work with them.
==== Further views ====
Currently, Wikifunctions only has two terminal types: {{Z|9}} and {{Z|6}}. This means that all types in Wikifunctions end up being represented as strings. Having built-in numbers opens the possibility for later software changes: for example, representing them internally and in the JSON as numbers. Considering the many performance issues of Wikifunctions, this could be interesting in a not-so-far future.
According to the [[Wikifunctions:About|Wikifunctions Mission statement]], we should "Imagine a programming system that allows us to make the next big leap in knowledge representation". Representing something as fundamental as numbers is definitely essential, further renforcing the need for an endorsed built-in number type. Wikifunctions also aims "to create both a well-defined common catalog of functions that can be widely reused and an environment where functions can be quickly combined and executed on the fly"; arithmetic operations and mathematical computations are one of the most common type of functions, and should therefore benefit from first-class support.
== Implementation ==
=== Integer type ===
There are multiple options regarding which integer type should be made built-in:
# The {{Z|80}} type, the only integer type which is bounded.
# The {{Z|13518}} type, which most integer types rely on at the moment.
# The {{Z|16683}} type.
We can look at what Python and ECMAScript do for further inspiration:
* Python has an <syntaxhighlight lang="python" inline>int</syntaxhighlight> type for representing integers; it is signed and unbounded.
* ECMAScript has a <syntaxhighlight lang="python" inline>BigInt</syntaxhighlight> type for representing integers; it is signed and unbounded too.
Considering these, we decided to go with {{Z|16683}} for our integer type.
* {{Z|80}} can be defined by having the validator ensure it is within the 0-255 range.
* {{Z|13518}} can be defined by having the validator ensure it is a non-negatuve integer.
Given this, we can have efficient type converters from and to programming language types, with the added bonus of having all possible values be valid (e.g., if a Python function returns an int, it can always be converted to a valid {{Z|16683}}, unlike {{Z|13518}} which wouldn't support negative numbers).
=== Floating-point type ===
We propose to make the {{Z|20838}} type built-in. The IEEE 754 standard for floating point numbers is the ideal representation: it is a reference standard that has already been adopted on Wikifunctions. In its current implementation following [[Wikifunctions:Type proposals/float64]], it does however require quite a few different types:
* The {{Z|16659}} enumeration (3 members)
* The {{Z|20825}} enumeration (8 members)
* Both a natural number and an integer type
Our options at the moment are:
# Turn all those types into built-ins
# Change the internal representation of float64
Considering the need for performant functions, we propose having a different float 64 type whose value is an hexadecimal string representing the raw IEEE 754 byte representation.
==== Converters ====
[[w:Endianness|Big Endian]] was chosen arbitrarly.
===== JavaScript =====
The ECMAScript <syntaxhighlight lang="javascript" inline>DataView</syntaxhighlight> offers the required functions to access the raw bytes of a floating point number and format them as hexadecimal:
<syntaxhighlight lang="javascript">
function fromNumber(num) {
const buffer = new ArrayBuffer(8);
const view = new DataView(buffer);
view.setFloat64(0, num, true);
return view.getBigUint64(0, true).toString(16);
}
</syntaxhighlight>
Converting an hexadecimal string back into a floating point number is trivial now:
<syntaxhighlight lang="javascript">
function toNumber(num) {
const buffer = new ArrayBuffer(8);
const view = new DataView(buffer);
view.setBigUint64(0, BigInt(`0x${num}`), true);
return view.getFloat64(0, true);
}
</syntaxhighlight>
===== Python =====
We have to use the <code>struct</code> module in order to access a floating point number's bytes:
<syntaxhighlight lang="python">
import struct
def fromNumber(num: float) -> str:
return struct.pack('<d', 666.67).hex()
</syntaxhighlight>
The reverse operation, converting hexadecimal bytes back into a floating point number, is trivial too:
<syntaxhighlight lang="python">
import struct
def toNumber(num: str) -> float:
return struct.unpack('<d', bytes.fromhex("4084d55c28f5c28f"))[0]
</syntaxhighlight>
=== ZIDs ===
This proposal includes the creation of multiple new ZObjects, all of which require a statically assigned ZID. In [[Wikifunctions:Function model|the function model documentation]], functions in the range Z700-Z799 are used as sample arithmetic functions. Since many new built-in functions will be included in this proposal, having a dedicated range for them is coherent and avoids taking too much space in the previously used Z800-Z899 space.
To remain coherent with this idea, new core types will be put in the Z70-Z79 range, which is coincidentally free.
The IEEE 754 standard includes many operations that a system needs to implement to be considered conformant. The Z7000 range could be used for those, as there is more than a hundred of them.
== Specifications ==
=== Integers ===
==== Summary ====
{{void|Short overview of the idea of this Type}}
We propose the creation of a new type, named '''integer'''. It is part of the wider proposal to add two new built-in types for numbers. This type would be a built-in type whose ZID is in the 0-99 range. We propose Z70, as functions in the Z700-Z799 range are numeric operations.
'''Integer''' is similar to the existing {{Z|16683}}, but there are some differences regarding its internal representation.
==== Uses ====
{{void|Prompts:
* Why should this exist?
* What kinds of functions would be created using this?
* What standard concepts, if any, does this align with?}}
There are many types that could be built on top of an integer type on Wikifunctions: {{Z|80}}, {{Z|13518}}, {{Z|19677}}... Having them all defined relatively to one standard built-in type improves the type hierarchy, allows further optimisations in the future, and fixes issues regarding built-in dependence on non built-ins.
Integers are then used throughout Wikifunctions, whether for mathematical operations or for other uses (such as getting the length of a list). This new built-in type allows us to have composition of built-ins implementaions for all those functions.
==== Structure ====
{{void|Description of how a value of this type would look like and why}}
This type has a single key, value (Z70K1), whose type is {{Z|6}}. This key holds a big endian lowercase hexadecimal representation of the number described. The string is preceded by a single minus character <code>-</code> if the number is negative. Note that <code>-0</code> is not a valid value.
This format was chosen because it is well supported by both available programming languages and should have rather good performance, as hexadecimal notation is close to how numbers are represented in the computer's memory.
===== Example values =====
Here is how the number <code>666</code> would be stored:
{|class="wikitable" style="margin:.6em 1.6em"
|-
| <syntaxhighlight lang="json" line="line">{
"type": "integer",
"value": "29a"
}</syntaxhighlight>
| <syntaxhighlight lang="json">{
"Z1K1": "Z70",
"Z70K1": "29a"
}</syntaxhighlight>
|}
And here is how its opposite <code>-666</code> would be stored:
{|class="wikitable" style="margin:.6em 1.6em"
|-
| <syntaxhighlight lang="json" line="line">{
"type": "integer",
"value": "-29a"
}</syntaxhighlight>
| <syntaxhighlight lang="json">{
"Z1K1": "Z70",
"Z70K1": "-29a"
}</syntaxhighlight>
|}
==== Identity ====
Two integers are equal if and only if their hexadecimal representations are equal.
==== Converting to code ====
===== Python =====
<syntaxhighlight lang="python">
def deserialize(Z70K1: str) -> int:
return int(Z70K1, 16)
</syntaxhighlight>
<syntaxhighlight lang="python">
def serialize(integer: int) -> str:
return f"{integer:x}"
</syntaxhighlight>
===== JavaScript =====
<syntaxhighlight lang="javascript">
function deserialize(Z70K1) {
if (Z70K1.startsWith("-")) {
return -BigInt(`0x${Z70K1.slice(1)}`);
}
return BigInt(`0x${Z70K1}`);
}
</syntaxhighlight>
<syntaxhighlight lang="javascript">
function serialize(big_int) {
return big_int.toString(16);
}
</syntaxhighlight>
==== Display function ====
{{void|How would a value of this type be displayed on Wikifunctions. Remove this section for types that should not be displayed as a string.}}
Integers should be displayed as localized numbers. For example, a French user would see <code>678910</code> as 678 910 while an American user might see 678,910.
==== Read function ====
{{void|When entering a value for this type as a string, what format should that string have? Remove this section for types that should not be entered as a string.}}
The input should be interpreted as a either localized number in the user's language, or as a standard decimal number (without separators).
==== Alternatives ====
{{void|In order to capture the idea presented in the summary, what alternative structures, display functions, read functions, etc. could have made sense too? Please also link to any type proposals that "compete" with this one.}}
# Having a separate Sign key in the type, but that would imply making Sign built-in too and would make conversion slower.
==== Comments ====
''For general comments, please reply to the proposer.''
* {{s}} as proposer. [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 09:20, 15 August 2026 (UTC)
=== Floating point numbers ===
==== Summary ====
{{void|Short overview of the idea of this Type}}
We propose the creation of a new type, named '''floating point number'''. It is part of the wider proposal to add two new built-in types for numbers. This type would be a built-in type whose ZID is in the 0-99 range. We propose Z71, as arithmetic functions occupy the Z700-Z999 range.
The name '''floating point number''' has be chosen to differentiate this type from {{Z|20838}}. The internal representation used is different: while {{Z|20838}} stores each part of an IEEE 754 floating point number separately, '''floating point number''' simply stores the bytes as hexadecimal in a {{Z|6}} key.
==== Uses ====
{{void|Prompts:
* Why should this exist?
* What kinds of functions would be created using this?
* What standard concepts, if any, does this align with?}}
{{Z|20838}} is already a widely used type<ref>[[Special:WhatLinksHere/Z20838]] returns more than 500 items.</ref>, this proposal simply turns it into a built-in type. The different representation allows faster performance for complex composed functions. Its new built-in nature also permits the creation of built-in functions operating on floating point number, and then permit the creation of pure composition mathematical operations.
This aligns with the standard concept of representing numbers; in that case, real numbers are approximated by floating point numbers. The international widely recoginzed IEEE 754 format is used as it has first-class support in code implementations.
==== Structure ====
{{void|Description of how a value of this type would look like and why}}
This type has a single key, value (Z71K1), whose type is {{Z|6}}. This key holds a little-endian IEEE 754 number, whose bytes are reprsesented as hexadecimal. This was done for performance reasons: most operations do not work with individual components of the floating point number, but rather with the number as a whole. It also avoids having to make two new enumerations builtin for the sign and special value.
===== Example values =====
Here is how the number <code>666.67</code> would be stored:
{|class="wikitable" style="margin:.6em 1.6em"
|-
| <syntaxhighlight lang="json" line="line">{
"type": "floating point number",
"value": "8fc2f5285cd58440"
}</syntaxhighlight>
| <syntaxhighlight lang="json">{
"Z1K1": "Z71",
"Z71K1": "8fc2f5285cd58440"
}</syntaxhighlight>
|}
==== Identity ====
Two floating point numbers are the same if the subtraction of their values (Z71K1) is equal to zero. The special case where either is equal to NaN means that they are not equal, even if both are NaN.
==== Converting to code ====
===== Python =====
<syntaxhighlight lang="python">
import struct
def fromNumber(num: float) -> str:
return struct.pack('<d', num).hex()
</syntaxhighlight>
<syntaxhighlight lang="python">
import struct
def toNumber(num: str) -> float:
return struct.unpack('<d', bytes.fromhex(num))[0]
</syntaxhighlight>
===== JavaScript =====
<syntaxhighlight lang="javascript">
function fromNumber(num) {
const buffer = new ArrayBuffer(8);
const view = new DataView(buffer);
view.setFloat64(0, num, true);
return view.getBigUint64(0, true).toString(16);
}
</syntaxhighlight>
<syntaxhighlight lang="javascript">
function toNumber(num) {
const buffer = new ArrayBuffer(8);
const view = new DataView(buffer);
view.setBigUint64(0, BigInt(`0x${num}`), true);
return view.getFloat64(0, true);
}
</syntaxhighlight>
==== Display function ====
{{void|How would a value of this type be displayed on Wikifunctions. Remove this section for types that should not be displayed as a string.}}
The cleanest way to display floating point numbers is using the localized number system. For example, a French user could have the sample number shown above displayed to them as <code>666,67</code>, while an user from the USA could see <code>666.67</code>. A Latin user might see <code>DCLXVI.LXVII</code>.
==== Read function ====
{{void|When entering a value for this type as a string, what format should that string have? Remove this section for types that should not be entered as a string.}}
The input should be interpreted as a localized number in the user's language and then parsed into its IEEE 754 representation.
==== Alternatives ====
{{void|In order to capture the idea presented in the summary, what alternative structures, display functions, read functions, etc. could have made sense too? Please also link to any type proposals that "compete" with this one.}}
# Using the existing float64 type structure, where each part has its own key.
==== Comments ====
''For general comments, please reply to the proposer.''
* {{s}} as proposer. [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 07:04, 15 August 2026 (UTC)
== Discussion ==
'''We are aware that what we propose are major breaking changes that could take time and effort to implement.''' We believe that, as its own programming system, Wikifunctions ''needs'' first-class support for a concept as fundamental as numbers; and that this proposal will make further work with numbers easier while opening the door to further improvements. We submit this first proposal for the community to discuss it and to get advice regarding its implementation if it is approved. [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 09:36, 15 August 2026 (UTC)
h325m1oqe614r89zcdk6ou8jtm29nvq
299636
299635
2026-08-15T13:08:56Z
Virinas-code
2884
/* Structure */ Python and ECMAScript aren't the only one who support our integer notation
299636
wikitext
text/x-wiki
'''This is a work in progress draft which is not ready for community submission yet.'''
== Issues ==
=== Regarding {{Z|80}} ===
{{Z|80}} is a {{Z|4}} with a single key: value (Z80K1), which is of type {{Z|13518}}. While {{Z|80}} is a built-in core type with an ID in the <code>Z1</code>--<code>Z99</code> range<ref>[[Wikifunctions:Reserved ZIDs#Ranges]] <code>Z1</code> – <code>Z99</code>: core types.</ref>, {{Z|13518}} is not. Given that {{Z|80}} is pre-defined in the system<ref>https://gitlab.wikimedia.org/repos/abstract-wiki/wikifunctions/function-schemata A number of ZObjects are pre-defined for the Wikifunctions system, and used by the WikiLambda MediaWiki extension as well as the function-orchestrator (and through that, the function-evaluator).</ref><ref name="Z80 initial">[[Special:PermanentLink/32]] Revision as of 2023-07-26T18:29:41 by [[User:WikiLambda system|WikiLambda system]] ''(Initial pre-defined WikiLambda content creation)''</ref>, having it depend on the later defined {{Z|13518}} is problematic.
It should be noted that, initially, a byte's value was stored as a {{Z|6}}<ref name="Z80 initial" />, one of the core builtin types of Wikifunctions. It is also still a {{Z|6}} in the [https://gitlab.wikimedia.org/repos/abstract-wiki/wikifunctions/function-schemata function-schemata]<ref>https://gitlab.wikimedia.org/repos/abstract-wiki/wikifunctions/function-schemata/-/blob/main/data/CANONICAL/Z80.yaml
<syntaxhighlight lang="yaml">
Z80K1:
$ref: "#/definitions/objects/Z6_byte"
</syntaxhighlight></ref>, which aims to provide a "single version of the truth" regarding what counts as a valid ZObject<ref>https://gitlab.wikimedia.org/repos/abstract-wiki/wikifunctions/function-schemata shared set of JSON schemata for the Wikifunctions project, to achieve a "single version of the truth" on what counts as a structurally valid ZObject, and provide shared utility code</ref>.
{{Z|80}} was changed to use {{Z|13518}} following [[Wikifunctions:Type proposals/Byte]]<ref>[[Wikifunctions:Type proposals/Byte#Alternatives]] The current proposal is Option 3 in the following list of Alternatives. (Option 3) A byte consists of one key that represents the value of the byte. The value is of type natural number, and has to be between the values of 0 and 255, including the edges.</ref>. This proposal highlights the lack of proper support for the {{Z|80}} type when it was defined upon {{Z|6}}, especially regarding code converters. This proposal added two type converters for JavaScript and Python where {{Z|80}} objects would get converted into Python <syntaxhighlight lang="python" inline>int</syntaxhighlight> and JavaScript <syntaxhighlight lang="javascript" inline>Number</syntaxhighlight>. Accordingly, the value's type was changed to {{Z|13518}}.
==== Lessons ====
Having {{Z|80}} be a built-in type is coherent: it is the fundamental unit used to measure and access memory in computing, and the most fundamental representation of a number<ref>[[w:Byte]]</ref>. Having it be defined upon a natural number type is also coherent: a byte represents a single value in the range 0-255, and is represented as a number in other programming languages<ref>[[Wikifunctions:Type proposals/Byte#Python]] The most idiomatic conversion in Python is to convert a Wikifunctions Byte to a Python int.</ref><ref>[[Wikifunctions:Type proposals/Byte#JavaScript]] The most idiomatic conversion in JavaScript is to convert a Wikifunctions Byte to a JavaScript number.</ref>. Hence, we argue that it is not coherent for {{Z|13518}} to not be a built-in. Having a built-in natural number type means that we can keep the preferred representation of having a byte's value stored as a number without breaking the hierarchy of built-ins and non-built-ins.
=== Arithmetic in the composition language ===
The [[Wikifunctions:Glossary#composition|composition]] language, while slow, is the most portable, abstract [[WF:PROG|programming language available on Wikifunctions]]. It defines functions as composition of other functions, which has multiple advantages:
* It is language agnostic. As Wikifunctions renders the composed function calls using the localized function labels, a composition implementation can be read entirely in the user's chosen language, given that the required labels are present. On the contrary, code implementations rely on English keywords<ref>See the [https://docs.python.org/3/reference/lexical_analysis.html#keywords list of Python keywords] and the [https://tc39.es/ecma262/#prod-ReservedWord ECMAScript list of reserved keywords].</ref> and can have inner variable or function names in any language that are not localized.
* It is portable and entirely defined within the scope of the Wikifunctions project, without relying on external specifications and implementations such as with code implementations.
* It serves as a well-understood formalism and a very simple implementation of a function in order to ensure that the other implementations of it are correct<ref>[[Wikifunctions:Function model#Composition]] it allows us to use a well-understood formalism and a very simple implementation of it in order to ensure that the other implementations of Z781/add are correct</ref>. Composition implementations are considered "defining implementations" and are used alongside faster, optimized, but harder to comprehend code implementations.
Ideally, all functions should have an implementation as a composition, or an implementaion as composition of functions which are themselves a composition of built-in, etc. This allows a proper clear definition of all functions, independently of their implementations technicalities.
In its current state, however, all arithmetic functions on Wikifunctions lack such a composition implementation. Let us take a look at {{Z|13521}} for example: all of its composition implementations end up calling {{Z|13578}}, whose only composition implementation relies back on {{Z|13521}}.
This is coherent: given that there is no built-in number type, there is also no built-in numeric operation. But this also implies that none of the [[Wikifunctions:Catalogue/Number operations|many number operations]] on Wikifunctions have a proper, well-defined implementation as composition of built-ins.
==== Lessons ====
Looking at [[Wikifunctions:Catalogue]] reveals that many of the functions on this website are related to arithmetic and mathematics, and hence operate on numbers. Having a built-in number type allows the creation of composition implementations for all those functions, proper, well-defined implementations as composition of built-ins. Given that composition is the language of Wikifunctions, it being incapable of representing most of its functions is incoherent.
== Proposal ==
As we said multiple times over the course of the previous section, we propose the creation of two new built-in types for numbers.
=== Current situation ===
Per the numeric type hierarchy found at [[Template:Type documentation]], we can identify two different type of number types:
* Integers, such as {{Z|80}}, {{Z|13518}}, or {{Z|19677}} (which is a pair of integers). These are usually unbounded. Most of them end up depending on {{Z|13518}}.
* Floating point numbers, such as {{Z|20838}}, or {{Z|33198}} (which is a pair of floating point numbers). These follow the IEEE 754 standard, which means they are bounded and have a limited precision. The parent for these types is {{Z|20838}}.
The only built-in type among these is {{Z|80}}, but as said before, it relies on a non-built-in internal representation.
=== Proposed change ===
* Adding a built-in integer type.
* Adding a built-in IEEE 754 floating point type.
* Adding built-in functions to manipulate these two types.
==== Advantages ====
* Type hierarchy issues about {{Z|80}} depending on non-built-ins are fixed: it now depends on another built-in. It also improves the overall hierarchy, where all number types can be defined upon these two built-ins. This could come in useful for later optimizations (for example, reprensenting numbers without going through conversion to string).
* We can have composition implementations for all mathematical and arithmetic functions, since these are now built-in types they can have built-in functions to work with them.
==== Further views ====
Currently, Wikifunctions only has two terminal types: {{Z|9}} and {{Z|6}}. This means that all types in Wikifunctions end up being represented as strings. Having built-in numbers opens the possibility for later software changes: for example, representing them internally and in the JSON as numbers. Considering the many performance issues of Wikifunctions, this could be interesting in a not-so-far future.
According to the [[Wikifunctions:About|Wikifunctions Mission statement]], we should "Imagine a programming system that allows us to make the next big leap in knowledge representation". Representing something as fundamental as numbers is definitely essential, further renforcing the need for an endorsed built-in number type. Wikifunctions also aims "to create both a well-defined common catalog of functions that can be widely reused and an environment where functions can be quickly combined and executed on the fly"; arithmetic operations and mathematical computations are one of the most common type of functions, and should therefore benefit from first-class support.
== Implementation ==
=== Integer type ===
There are multiple options regarding which integer type should be made built-in:
# The {{Z|80}} type, the only integer type which is bounded.
# The {{Z|13518}} type, which most integer types rely on at the moment.
# The {{Z|16683}} type.
We can look at what Python and ECMAScript do for further inspiration:
* Python has an <syntaxhighlight lang="python" inline>int</syntaxhighlight> type for representing integers; it is signed and unbounded.
* ECMAScript has a <syntaxhighlight lang="python" inline>BigInt</syntaxhighlight> type for representing integers; it is signed and unbounded too.
Considering these, we decided to go with {{Z|16683}} for our integer type.
* {{Z|80}} can be defined by having the validator ensure it is within the 0-255 range.
* {{Z|13518}} can be defined by having the validator ensure it is a non-negatuve integer.
Given this, we can have efficient type converters from and to programming language types, with the added bonus of having all possible values be valid (e.g., if a Python function returns an int, it can always be converted to a valid {{Z|16683}}, unlike {{Z|13518}} which wouldn't support negative numbers).
=== Floating-point type ===
We propose to make the {{Z|20838}} type built-in. The IEEE 754 standard for floating point numbers is the ideal representation: it is a reference standard that has already been adopted on Wikifunctions. In its current implementation following [[Wikifunctions:Type proposals/float64]], it does however require quite a few different types:
* The {{Z|16659}} enumeration (3 members)
* The {{Z|20825}} enumeration (8 members)
* Both a natural number and an integer type
Our options at the moment are:
# Turn all those types into built-ins
# Change the internal representation of float64
Considering the need for performant functions, we propose having a different float 64 type whose value is an hexadecimal string representing the raw IEEE 754 byte representation.
==== Converters ====
[[w:Endianness|Big Endian]] was chosen arbitrarly.
===== JavaScript =====
The ECMAScript <syntaxhighlight lang="javascript" inline>DataView</syntaxhighlight> offers the required functions to access the raw bytes of a floating point number and format them as hexadecimal:
<syntaxhighlight lang="javascript">
function fromNumber(num) {
const buffer = new ArrayBuffer(8);
const view = new DataView(buffer);
view.setFloat64(0, num, true);
return view.getBigUint64(0, true).toString(16);
}
</syntaxhighlight>
Converting an hexadecimal string back into a floating point number is trivial now:
<syntaxhighlight lang="javascript">
function toNumber(num) {
const buffer = new ArrayBuffer(8);
const view = new DataView(buffer);
view.setBigUint64(0, BigInt(`0x${num}`), true);
return view.getFloat64(0, true);
}
</syntaxhighlight>
===== Python =====
We have to use the <code>struct</code> module in order to access a floating point number's bytes:
<syntaxhighlight lang="python">
import struct
def fromNumber(num: float) -> str:
return struct.pack('<d', 666.67).hex()
</syntaxhighlight>
The reverse operation, converting hexadecimal bytes back into a floating point number, is trivial too:
<syntaxhighlight lang="python">
import struct
def toNumber(num: str) -> float:
return struct.unpack('<d', bytes.fromhex("4084d55c28f5c28f"))[0]
</syntaxhighlight>
=== ZIDs ===
This proposal includes the creation of multiple new ZObjects, all of which require a statically assigned ZID. In [[Wikifunctions:Function model|the function model documentation]], functions in the range Z700-Z799 are used as sample arithmetic functions. Since many new built-in functions will be included in this proposal, having a dedicated range for them is coherent and avoids taking too much space in the previously used Z800-Z899 space.
To remain coherent with this idea, new core types will be put in the Z70-Z79 range, which is coincidentally free.
The IEEE 754 standard includes many operations that a system needs to implement to be considered conformant. The Z7000 range could be used for those, as there is more than a hundred of them.
== Specifications ==
=== Integers ===
==== Summary ====
{{void|Short overview of the idea of this Type}}
We propose the creation of a new type, named '''integer'''. It is part of the wider proposal to add two new built-in types for numbers. This type would be a built-in type whose ZID is in the 0-99 range. We propose Z70, as functions in the Z700-Z799 range are numeric operations.
'''Integer''' is similar to the existing {{Z|16683}}, but there are some differences regarding its internal representation.
==== Uses ====
{{void|Prompts:
* Why should this exist?
* What kinds of functions would be created using this?
* What standard concepts, if any, does this align with?}}
There are many types that could be built on top of an integer type on Wikifunctions: {{Z|80}}, {{Z|13518}}, {{Z|19677}}... Having them all defined relatively to one standard built-in type improves the type hierarchy, allows further optimisations in the future, and fixes issues regarding built-in dependence on non built-ins.
Integers are then used throughout Wikifunctions, whether for mathematical operations or for other uses (such as getting the length of a list). This new built-in type allows us to have composition of built-ins implementaions for all those functions.
==== Structure ====
{{void|Description of how a value of this type would look like and why}}
This type has a single key, value (Z70K1), whose type is {{Z|6}}. This key holds a big endian lowercase hexadecimal representation of the number described. The string is preceded by a single minus character <code>-</code> if the number is negative. Note that <code>-0</code> is not a valid value.
This format was chosen because it is well supported by both available programming languages (and by many others should they be added to Wikifunctions in the future) and should have rather good performance, as hexadecimal notation is close to how numbers are represented in the computer's memory.
===== Example values =====
Here is how the number <code>666</code> would be stored:
{|class="wikitable" style="margin:.6em 1.6em"
|-
| <syntaxhighlight lang="json" line="line">{
"type": "integer",
"value": "29a"
}</syntaxhighlight>
| <syntaxhighlight lang="json">{
"Z1K1": "Z70",
"Z70K1": "29a"
}</syntaxhighlight>
|}
And here is how its opposite <code>-666</code> would be stored:
{|class="wikitable" style="margin:.6em 1.6em"
|-
| <syntaxhighlight lang="json" line="line">{
"type": "integer",
"value": "-29a"
}</syntaxhighlight>
| <syntaxhighlight lang="json">{
"Z1K1": "Z70",
"Z70K1": "-29a"
}</syntaxhighlight>
|}
==== Identity ====
Two integers are equal if and only if their hexadecimal representations are equal.
==== Converting to code ====
===== Python =====
<syntaxhighlight lang="python">
def deserialize(Z70K1: str) -> int:
return int(Z70K1, 16)
</syntaxhighlight>
<syntaxhighlight lang="python">
def serialize(integer: int) -> str:
return f"{integer:x}"
</syntaxhighlight>
===== JavaScript =====
<syntaxhighlight lang="javascript">
function deserialize(Z70K1) {
if (Z70K1.startsWith("-")) {
return -BigInt(`0x${Z70K1.slice(1)}`);
}
return BigInt(`0x${Z70K1}`);
}
</syntaxhighlight>
<syntaxhighlight lang="javascript">
function serialize(big_int) {
return big_int.toString(16);
}
</syntaxhighlight>
==== Display function ====
{{void|How would a value of this type be displayed on Wikifunctions. Remove this section for types that should not be displayed as a string.}}
Integers should be displayed as localized numbers. For example, a French user would see <code>678910</code> as 678 910 while an American user might see 678,910.
==== Read function ====
{{void|When entering a value for this type as a string, what format should that string have? Remove this section for types that should not be entered as a string.}}
The input should be interpreted as a either localized number in the user's language, or as a standard decimal number (without separators).
==== Alternatives ====
{{void|In order to capture the idea presented in the summary, what alternative structures, display functions, read functions, etc. could have made sense too? Please also link to any type proposals that "compete" with this one.}}
# Having a separate Sign key in the type, but that would imply making Sign built-in too and would make conversion slower.
==== Comments ====
''For general comments, please reply to the proposer.''
* {{s}} as proposer. [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 09:20, 15 August 2026 (UTC)
=== Floating point numbers ===
==== Summary ====
{{void|Short overview of the idea of this Type}}
We propose the creation of a new type, named '''floating point number'''. It is part of the wider proposal to add two new built-in types for numbers. This type would be a built-in type whose ZID is in the 0-99 range. We propose Z71, as arithmetic functions occupy the Z700-Z999 range.
The name '''floating point number''' has be chosen to differentiate this type from {{Z|20838}}. The internal representation used is different: while {{Z|20838}} stores each part of an IEEE 754 floating point number separately, '''floating point number''' simply stores the bytes as hexadecimal in a {{Z|6}} key.
==== Uses ====
{{void|Prompts:
* Why should this exist?
* What kinds of functions would be created using this?
* What standard concepts, if any, does this align with?}}
{{Z|20838}} is already a widely used type<ref>[[Special:WhatLinksHere/Z20838]] returns more than 500 items.</ref>, this proposal simply turns it into a built-in type. The different representation allows faster performance for complex composed functions. Its new built-in nature also permits the creation of built-in functions operating on floating point number, and then permit the creation of pure composition mathematical operations.
This aligns with the standard concept of representing numbers; in that case, real numbers are approximated by floating point numbers. The international widely recoginzed IEEE 754 format is used as it has first-class support in code implementations.
==== Structure ====
{{void|Description of how a value of this type would look like and why}}
This type has a single key, value (Z71K1), whose type is {{Z|6}}. This key holds a little-endian IEEE 754 number, whose bytes are reprsesented as hexadecimal. This was done for performance reasons: most operations do not work with individual components of the floating point number, but rather with the number as a whole. It also avoids having to make two new enumerations builtin for the sign and special value.
===== Example values =====
Here is how the number <code>666.67</code> would be stored:
{|class="wikitable" style="margin:.6em 1.6em"
|-
| <syntaxhighlight lang="json" line="line">{
"type": "floating point number",
"value": "8fc2f5285cd58440"
}</syntaxhighlight>
| <syntaxhighlight lang="json">{
"Z1K1": "Z71",
"Z71K1": "8fc2f5285cd58440"
}</syntaxhighlight>
|}
==== Identity ====
Two floating point numbers are the same if the subtraction of their values (Z71K1) is equal to zero. The special case where either is equal to NaN means that they are not equal, even if both are NaN.
==== Converting to code ====
===== Python =====
<syntaxhighlight lang="python">
import struct
def fromNumber(num: float) -> str:
return struct.pack('<d', num).hex()
</syntaxhighlight>
<syntaxhighlight lang="python">
import struct
def toNumber(num: str) -> float:
return struct.unpack('<d', bytes.fromhex(num))[0]
</syntaxhighlight>
===== JavaScript =====
<syntaxhighlight lang="javascript">
function fromNumber(num) {
const buffer = new ArrayBuffer(8);
const view = new DataView(buffer);
view.setFloat64(0, num, true);
return view.getBigUint64(0, true).toString(16);
}
</syntaxhighlight>
<syntaxhighlight lang="javascript">
function toNumber(num) {
const buffer = new ArrayBuffer(8);
const view = new DataView(buffer);
view.setBigUint64(0, BigInt(`0x${num}`), true);
return view.getFloat64(0, true);
}
</syntaxhighlight>
==== Display function ====
{{void|How would a value of this type be displayed on Wikifunctions. Remove this section for types that should not be displayed as a string.}}
The cleanest way to display floating point numbers is using the localized number system. For example, a French user could have the sample number shown above displayed to them as <code>666,67</code>, while an user from the USA could see <code>666.67</code>. A Latin user might see <code>DCLXVI.LXVII</code>.
==== Read function ====
{{void|When entering a value for this type as a string, what format should that string have? Remove this section for types that should not be entered as a string.}}
The input should be interpreted as a localized number in the user's language and then parsed into its IEEE 754 representation.
==== Alternatives ====
{{void|In order to capture the idea presented in the summary, what alternative structures, display functions, read functions, etc. could have made sense too? Please also link to any type proposals that "compete" with this one.}}
# Using the existing float64 type structure, where each part has its own key.
==== Comments ====
''For general comments, please reply to the proposer.''
* {{s}} as proposer. [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 07:04, 15 August 2026 (UTC)
== Discussion ==
'''We are aware that what we propose are major breaking changes that could take time and effort to implement.''' We believe that, as its own programming system, Wikifunctions ''needs'' first-class support for a concept as fundamental as numbers; and that this proposal will make further work with numbers easier while opening the door to further improvements. We submit this first proposal for the community to discuss it and to get advice regarding its implementation if it is approved. [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 09:36, 15 August 2026 (UTC)
ppghqfxetmiby2c8u1w2q3dgvk3ihwq
299637
299636
2026-08-15T13:13:01Z
Smlckz
13902
/* Python */ actually refer to function parameters
299637
wikitext
text/x-wiki
'''This is a work in progress draft which is not ready for community submission yet.'''
== Issues ==
=== Regarding {{Z|80}} ===
{{Z|80}} is a {{Z|4}} with a single key: value (Z80K1), which is of type {{Z|13518}}. While {{Z|80}} is a built-in core type with an ID in the <code>Z1</code>--<code>Z99</code> range<ref>[[Wikifunctions:Reserved ZIDs#Ranges]] <code>Z1</code> – <code>Z99</code>: core types.</ref>, {{Z|13518}} is not. Given that {{Z|80}} is pre-defined in the system<ref>https://gitlab.wikimedia.org/repos/abstract-wiki/wikifunctions/function-schemata A number of ZObjects are pre-defined for the Wikifunctions system, and used by the WikiLambda MediaWiki extension as well as the function-orchestrator (and through that, the function-evaluator).</ref><ref name="Z80 initial">[[Special:PermanentLink/32]] Revision as of 2023-07-26T18:29:41 by [[User:WikiLambda system|WikiLambda system]] ''(Initial pre-defined WikiLambda content creation)''</ref>, having it depend on the later defined {{Z|13518}} is problematic.
It should be noted that, initially, a byte's value was stored as a {{Z|6}}<ref name="Z80 initial" />, one of the core builtin types of Wikifunctions. It is also still a {{Z|6}} in the [https://gitlab.wikimedia.org/repos/abstract-wiki/wikifunctions/function-schemata function-schemata]<ref>https://gitlab.wikimedia.org/repos/abstract-wiki/wikifunctions/function-schemata/-/blob/main/data/CANONICAL/Z80.yaml
<syntaxhighlight lang="yaml">
Z80K1:
$ref: "#/definitions/objects/Z6_byte"
</syntaxhighlight></ref>, which aims to provide a "single version of the truth" regarding what counts as a valid ZObject<ref>https://gitlab.wikimedia.org/repos/abstract-wiki/wikifunctions/function-schemata shared set of JSON schemata for the Wikifunctions project, to achieve a "single version of the truth" on what counts as a structurally valid ZObject, and provide shared utility code</ref>.
{{Z|80}} was changed to use {{Z|13518}} following [[Wikifunctions:Type proposals/Byte]]<ref>[[Wikifunctions:Type proposals/Byte#Alternatives]] The current proposal is Option 3 in the following list of Alternatives. (Option 3) A byte consists of one key that represents the value of the byte. The value is of type natural number, and has to be between the values of 0 and 255, including the edges.</ref>. This proposal highlights the lack of proper support for the {{Z|80}} type when it was defined upon {{Z|6}}, especially regarding code converters. This proposal added two type converters for JavaScript and Python where {{Z|80}} objects would get converted into Python <syntaxhighlight lang="python" inline>int</syntaxhighlight> and JavaScript <syntaxhighlight lang="javascript" inline>Number</syntaxhighlight>. Accordingly, the value's type was changed to {{Z|13518}}.
==== Lessons ====
Having {{Z|80}} be a built-in type is coherent: it is the fundamental unit used to measure and access memory in computing, and the most fundamental representation of a number<ref>[[w:Byte]]</ref>. Having it be defined upon a natural number type is also coherent: a byte represents a single value in the range 0-255, and is represented as a number in other programming languages<ref>[[Wikifunctions:Type proposals/Byte#Python]] The most idiomatic conversion in Python is to convert a Wikifunctions Byte to a Python int.</ref><ref>[[Wikifunctions:Type proposals/Byte#JavaScript]] The most idiomatic conversion in JavaScript is to convert a Wikifunctions Byte to a JavaScript number.</ref>. Hence, we argue that it is not coherent for {{Z|13518}} to not be a built-in. Having a built-in natural number type means that we can keep the preferred representation of having a byte's value stored as a number without breaking the hierarchy of built-ins and non-built-ins.
=== Arithmetic in the composition language ===
The [[Wikifunctions:Glossary#composition|composition]] language, while slow, is the most portable, abstract [[WF:PROG|programming language available on Wikifunctions]]. It defines functions as composition of other functions, which has multiple advantages:
* It is language agnostic. As Wikifunctions renders the composed function calls using the localized function labels, a composition implementation can be read entirely in the user's chosen language, given that the required labels are present. On the contrary, code implementations rely on English keywords<ref>See the [https://docs.python.org/3/reference/lexical_analysis.html#keywords list of Python keywords] and the [https://tc39.es/ecma262/#prod-ReservedWord ECMAScript list of reserved keywords].</ref> and can have inner variable or function names in any language that are not localized.
* It is portable and entirely defined within the scope of the Wikifunctions project, without relying on external specifications and implementations such as with code implementations.
* It serves as a well-understood formalism and a very simple implementation of a function in order to ensure that the other implementations of it are correct<ref>[[Wikifunctions:Function model#Composition]] it allows us to use a well-understood formalism and a very simple implementation of it in order to ensure that the other implementations of Z781/add are correct</ref>. Composition implementations are considered "defining implementations" and are used alongside faster, optimized, but harder to comprehend code implementations.
Ideally, all functions should have an implementation as a composition, or an implementaion as composition of functions which are themselves a composition of built-in, etc. This allows a proper clear definition of all functions, independently of their implementations technicalities.
In its current state, however, all arithmetic functions on Wikifunctions lack such a composition implementation. Let us take a look at {{Z|13521}} for example: all of its composition implementations end up calling {{Z|13578}}, whose only composition implementation relies back on {{Z|13521}}.
This is coherent: given that there is no built-in number type, there is also no built-in numeric operation. But this also implies that none of the [[Wikifunctions:Catalogue/Number operations|many number operations]] on Wikifunctions have a proper, well-defined implementation as composition of built-ins.
==== Lessons ====
Looking at [[Wikifunctions:Catalogue]] reveals that many of the functions on this website are related to arithmetic and mathematics, and hence operate on numbers. Having a built-in number type allows the creation of composition implementations for all those functions, proper, well-defined implementations as composition of built-ins. Given that composition is the language of Wikifunctions, it being incapable of representing most of its functions is incoherent.
== Proposal ==
As we said multiple times over the course of the previous section, we propose the creation of two new built-in types for numbers.
=== Current situation ===
Per the numeric type hierarchy found at [[Template:Type documentation]], we can identify two different type of number types:
* Integers, such as {{Z|80}}, {{Z|13518}}, or {{Z|19677}} (which is a pair of integers). These are usually unbounded. Most of them end up depending on {{Z|13518}}.
* Floating point numbers, such as {{Z|20838}}, or {{Z|33198}} (which is a pair of floating point numbers). These follow the IEEE 754 standard, which means they are bounded and have a limited precision. The parent for these types is {{Z|20838}}.
The only built-in type among these is {{Z|80}}, but as said before, it relies on a non-built-in internal representation.
=== Proposed change ===
* Adding a built-in integer type.
* Adding a built-in IEEE 754 floating point type.
* Adding built-in functions to manipulate these two types.
==== Advantages ====
* Type hierarchy issues about {{Z|80}} depending on non-built-ins are fixed: it now depends on another built-in. It also improves the overall hierarchy, where all number types can be defined upon these two built-ins. This could come in useful for later optimizations (for example, reprensenting numbers without going through conversion to string).
* We can have composition implementations for all mathematical and arithmetic functions, since these are now built-in types they can have built-in functions to work with them.
==== Further views ====
Currently, Wikifunctions only has two terminal types: {{Z|9}} and {{Z|6}}. This means that all types in Wikifunctions end up being represented as strings. Having built-in numbers opens the possibility for later software changes: for example, representing them internally and in the JSON as numbers. Considering the many performance issues of Wikifunctions, this could be interesting in a not-so-far future.
According to the [[Wikifunctions:About|Wikifunctions Mission statement]], we should "Imagine a programming system that allows us to make the next big leap in knowledge representation". Representing something as fundamental as numbers is definitely essential, further renforcing the need for an endorsed built-in number type. Wikifunctions also aims "to create both a well-defined common catalog of functions that can be widely reused and an environment where functions can be quickly combined and executed on the fly"; arithmetic operations and mathematical computations are one of the most common type of functions, and should therefore benefit from first-class support.
== Implementation ==
=== Integer type ===
There are multiple options regarding which integer type should be made built-in:
# The {{Z|80}} type, the only integer type which is bounded.
# The {{Z|13518}} type, which most integer types rely on at the moment.
# The {{Z|16683}} type.
We can look at what Python and ECMAScript do for further inspiration:
* Python has an <syntaxhighlight lang="python" inline>int</syntaxhighlight> type for representing integers; it is signed and unbounded.
* ECMAScript has a <syntaxhighlight lang="python" inline>BigInt</syntaxhighlight> type for representing integers; it is signed and unbounded too.
Considering these, we decided to go with {{Z|16683}} for our integer type.
* {{Z|80}} can be defined by having the validator ensure it is within the 0-255 range.
* {{Z|13518}} can be defined by having the validator ensure it is a non-negatuve integer.
Given this, we can have efficient type converters from and to programming language types, with the added bonus of having all possible values be valid (e.g., if a Python function returns an int, it can always be converted to a valid {{Z|16683}}, unlike {{Z|13518}} which wouldn't support negative numbers).
=== Floating-point type ===
We propose to make the {{Z|20838}} type built-in. The IEEE 754 standard for floating point numbers is the ideal representation: it is a reference standard that has already been adopted on Wikifunctions. In its current implementation following [[Wikifunctions:Type proposals/float64]], it does however require quite a few different types:
* The {{Z|16659}} enumeration (3 members)
* The {{Z|20825}} enumeration (8 members)
* Both a natural number and an integer type
Our options at the moment are:
# Turn all those types into built-ins
# Change the internal representation of float64
Considering the need for performant functions, we propose having a different float 64 type whose value is an hexadecimal string representing the raw IEEE 754 byte representation.
==== Converters ====
[[w:Endianness|Big Endian]] was chosen arbitrarly.
===== JavaScript =====
The ECMAScript <syntaxhighlight lang="javascript" inline>DataView</syntaxhighlight> offers the required functions to access the raw bytes of a floating point number and format them as hexadecimal:
<syntaxhighlight lang="javascript">
function fromNumber(num) {
const buffer = new ArrayBuffer(8);
const view = new DataView(buffer);
view.setFloat64(0, num, true);
return view.getBigUint64(0, true).toString(16);
}
</syntaxhighlight>
Converting an hexadecimal string back into a floating point number is trivial now:
<syntaxhighlight lang="javascript">
function toNumber(num) {
const buffer = new ArrayBuffer(8);
const view = new DataView(buffer);
view.setBigUint64(0, BigInt(`0x${num}`), true);
return view.getFloat64(0, true);
}
</syntaxhighlight>
===== Python =====
We have to use the <code>struct</code> module in order to access a floating point number's bytes:
<syntaxhighlight lang="python">
import struct
def fromNumber(num: float) -> str:
return struct.pack('<d', num).hex()
</syntaxhighlight>
The reverse operation, converting hexadecimal bytes back into a floating point number, is trivial too:
<syntaxhighlight lang="python">
import struct
def toNumber(num: str) -> float:
return struct.unpack('<d', bytes.fromhex(num))[0]
</syntaxhighlight>
=== ZIDs ===
This proposal includes the creation of multiple new ZObjects, all of which require a statically assigned ZID. In [[Wikifunctions:Function model|the function model documentation]], functions in the range Z700-Z799 are used as sample arithmetic functions. Since many new built-in functions will be included in this proposal, having a dedicated range for them is coherent and avoids taking too much space in the previously used Z800-Z899 space.
To remain coherent with this idea, new core types will be put in the Z70-Z79 range, which is coincidentally free.
The IEEE 754 standard includes many operations that a system needs to implement to be considered conformant. The Z7000 range could be used for those, as there is more than a hundred of them.
== Specifications ==
=== Integers ===
==== Summary ====
{{void|Short overview of the idea of this Type}}
We propose the creation of a new type, named '''integer'''. It is part of the wider proposal to add two new built-in types for numbers. This type would be a built-in type whose ZID is in the 0-99 range. We propose Z70, as functions in the Z700-Z799 range are numeric operations.
'''Integer''' is similar to the existing {{Z|16683}}, but there are some differences regarding its internal representation.
==== Uses ====
{{void|Prompts:
* Why should this exist?
* What kinds of functions would be created using this?
* What standard concepts, if any, does this align with?}}
There are many types that could be built on top of an integer type on Wikifunctions: {{Z|80}}, {{Z|13518}}, {{Z|19677}}... Having them all defined relatively to one standard built-in type improves the type hierarchy, allows further optimisations in the future, and fixes issues regarding built-in dependence on non built-ins.
Integers are then used throughout Wikifunctions, whether for mathematical operations or for other uses (such as getting the length of a list). This new built-in type allows us to have composition of built-ins implementaions for all those functions.
==== Structure ====
{{void|Description of how a value of this type would look like and why}}
This type has a single key, value (Z70K1), whose type is {{Z|6}}. This key holds a big endian lowercase hexadecimal representation of the number described. The string is preceded by a single minus character <code>-</code> if the number is negative. Note that <code>-0</code> is not a valid value.
This format was chosen because it is well supported by both available programming languages (and by many others should they be added to Wikifunctions in the future) and should have rather good performance, as hexadecimal notation is close to how numbers are represented in the computer's memory.
===== Example values =====
Here is how the number <code>666</code> would be stored:
{|class="wikitable" style="margin:.6em 1.6em"
|-
| <syntaxhighlight lang="json" line="line">{
"type": "integer",
"value": "29a"
}</syntaxhighlight>
| <syntaxhighlight lang="json">{
"Z1K1": "Z70",
"Z70K1": "29a"
}</syntaxhighlight>
|}
And here is how its opposite <code>-666</code> would be stored:
{|class="wikitable" style="margin:.6em 1.6em"
|-
| <syntaxhighlight lang="json" line="line">{
"type": "integer",
"value": "-29a"
}</syntaxhighlight>
| <syntaxhighlight lang="json">{
"Z1K1": "Z70",
"Z70K1": "-29a"
}</syntaxhighlight>
|}
==== Identity ====
Two integers are equal if and only if their hexadecimal representations are equal.
==== Converting to code ====
===== Python =====
<syntaxhighlight lang="python">
def deserialize(Z70K1: str) -> int:
return int(Z70K1, 16)
</syntaxhighlight>
<syntaxhighlight lang="python">
def serialize(integer: int) -> str:
return f"{integer:x}"
</syntaxhighlight>
===== JavaScript =====
<syntaxhighlight lang="javascript">
function deserialize(Z70K1) {
if (Z70K1.startsWith("-")) {
return -BigInt(`0x${Z70K1.slice(1)}`);
}
return BigInt(`0x${Z70K1}`);
}
</syntaxhighlight>
<syntaxhighlight lang="javascript">
function serialize(big_int) {
return big_int.toString(16);
}
</syntaxhighlight>
==== Display function ====
{{void|How would a value of this type be displayed on Wikifunctions. Remove this section for types that should not be displayed as a string.}}
Integers should be displayed as localized numbers. For example, a French user would see <code>678910</code> as 678 910 while an American user might see 678,910.
==== Read function ====
{{void|When entering a value for this type as a string, what format should that string have? Remove this section for types that should not be entered as a string.}}
The input should be interpreted as a either localized number in the user's language, or as a standard decimal number (without separators).
==== Alternatives ====
{{void|In order to capture the idea presented in the summary, what alternative structures, display functions, read functions, etc. could have made sense too? Please also link to any type proposals that "compete" with this one.}}
# Having a separate Sign key in the type, but that would imply making Sign built-in too and would make conversion slower.
==== Comments ====
''For general comments, please reply to the proposer.''
* {{s}} as proposer. [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 09:20, 15 August 2026 (UTC)
=== Floating point numbers ===
==== Summary ====
{{void|Short overview of the idea of this Type}}
We propose the creation of a new type, named '''floating point number'''. It is part of the wider proposal to add two new built-in types for numbers. This type would be a built-in type whose ZID is in the 0-99 range. We propose Z71, as arithmetic functions occupy the Z700-Z999 range.
The name '''floating point number''' has be chosen to differentiate this type from {{Z|20838}}. The internal representation used is different: while {{Z|20838}} stores each part of an IEEE 754 floating point number separately, '''floating point number''' simply stores the bytes as hexadecimal in a {{Z|6}} key.
==== Uses ====
{{void|Prompts:
* Why should this exist?
* What kinds of functions would be created using this?
* What standard concepts, if any, does this align with?}}
{{Z|20838}} is already a widely used type<ref>[[Special:WhatLinksHere/Z20838]] returns more than 500 items.</ref>, this proposal simply turns it into a built-in type. The different representation allows faster performance for complex composed functions. Its new built-in nature also permits the creation of built-in functions operating on floating point number, and then permit the creation of pure composition mathematical operations.
This aligns with the standard concept of representing numbers; in that case, real numbers are approximated by floating point numbers. The international widely recoginzed IEEE 754 format is used as it has first-class support in code implementations.
==== Structure ====
{{void|Description of how a value of this type would look like and why}}
This type has a single key, value (Z71K1), whose type is {{Z|6}}. This key holds a little-endian IEEE 754 number, whose bytes are reprsesented as hexadecimal. This was done for performance reasons: most operations do not work with individual components of the floating point number, but rather with the number as a whole. It also avoids having to make two new enumerations builtin for the sign and special value.
===== Example values =====
Here is how the number <code>666.67</code> would be stored:
{|class="wikitable" style="margin:.6em 1.6em"
|-
| <syntaxhighlight lang="json" line="line">{
"type": "floating point number",
"value": "8fc2f5285cd58440"
}</syntaxhighlight>
| <syntaxhighlight lang="json">{
"Z1K1": "Z71",
"Z71K1": "8fc2f5285cd58440"
}</syntaxhighlight>
|}
==== Identity ====
Two floating point numbers are the same if the subtraction of their values (Z71K1) is equal to zero. The special case where either is equal to NaN means that they are not equal, even if both are NaN.
==== Converting to code ====
===== Python =====
<syntaxhighlight lang="python">
import struct
def fromNumber(num: float) -> str:
return struct.pack('<d', num).hex()
</syntaxhighlight>
<syntaxhighlight lang="python">
import struct
def toNumber(num: str) -> float:
return struct.unpack('<d', bytes.fromhex(num))[0]
</syntaxhighlight>
===== JavaScript =====
<syntaxhighlight lang="javascript">
function fromNumber(num) {
const buffer = new ArrayBuffer(8);
const view = new DataView(buffer);
view.setFloat64(0, num, true);
return view.getBigUint64(0, true).toString(16);
}
</syntaxhighlight>
<syntaxhighlight lang="javascript">
function toNumber(num) {
const buffer = new ArrayBuffer(8);
const view = new DataView(buffer);
view.setBigUint64(0, BigInt(`0x${num}`), true);
return view.getFloat64(0, true);
}
</syntaxhighlight>
==== Display function ====
{{void|How would a value of this type be displayed on Wikifunctions. Remove this section for types that should not be displayed as a string.}}
The cleanest way to display floating point numbers is using the localized number system. For example, a French user could have the sample number shown above displayed to them as <code>666,67</code>, while an user from the USA could see <code>666.67</code>. A Latin user might see <code>DCLXVI.LXVII</code>.
==== Read function ====
{{void|When entering a value for this type as a string, what format should that string have? Remove this section for types that should not be entered as a string.}}
The input should be interpreted as a localized number in the user's language and then parsed into its IEEE 754 representation.
==== Alternatives ====
{{void|In order to capture the idea presented in the summary, what alternative structures, display functions, read functions, etc. could have made sense too? Please also link to any type proposals that "compete" with this one.}}
# Using the existing float64 type structure, where each part has its own key.
==== Comments ====
''For general comments, please reply to the proposer.''
* {{s}} as proposer. [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 07:04, 15 August 2026 (UTC)
== Discussion ==
'''We are aware that what we propose are major breaking changes that could take time and effort to implement.''' We believe that, as its own programming system, Wikifunctions ''needs'' first-class support for a concept as fundamental as numbers; and that this proposal will make further work with numbers easier while opening the door to further improvements. We submit this first proposal for the community to discuss it and to get advice regarding its implementation if it is approved. [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 09:36, 15 August 2026 (UTC)
8qp7a1afshgcgxap1fjkt5ks9z5r970
299640
299637
2026-08-15T15:18:54Z
Smlckz
13902
/* Converters */ Correction: it's actually little endian because of passing true in the JS implementation; rephrase to sound nicer
299640
wikitext
text/x-wiki
'''This is a work in progress draft which is not ready for community submission yet.'''
== Issues ==
=== Regarding {{Z|80}} ===
{{Z|80}} is a {{Z|4}} with a single key: value (Z80K1), which is of type {{Z|13518}}. While {{Z|80}} is a built-in core type with an ID in the <code>Z1</code>--<code>Z99</code> range<ref>[[Wikifunctions:Reserved ZIDs#Ranges]] <code>Z1</code> – <code>Z99</code>: core types.</ref>, {{Z|13518}} is not. Given that {{Z|80}} is pre-defined in the system<ref>https://gitlab.wikimedia.org/repos/abstract-wiki/wikifunctions/function-schemata A number of ZObjects are pre-defined for the Wikifunctions system, and used by the WikiLambda MediaWiki extension as well as the function-orchestrator (and through that, the function-evaluator).</ref><ref name="Z80 initial">[[Special:PermanentLink/32]] Revision as of 2023-07-26T18:29:41 by [[User:WikiLambda system|WikiLambda system]] ''(Initial pre-defined WikiLambda content creation)''</ref>, having it depend on the later defined {{Z|13518}} is problematic.
It should be noted that, initially, a byte's value was stored as a {{Z|6}}<ref name="Z80 initial" />, one of the core builtin types of Wikifunctions. It is also still a {{Z|6}} in the [https://gitlab.wikimedia.org/repos/abstract-wiki/wikifunctions/function-schemata function-schemata]<ref>https://gitlab.wikimedia.org/repos/abstract-wiki/wikifunctions/function-schemata/-/blob/main/data/CANONICAL/Z80.yaml
<syntaxhighlight lang="yaml">
Z80K1:
$ref: "#/definitions/objects/Z6_byte"
</syntaxhighlight></ref>, which aims to provide a "single version of the truth" regarding what counts as a valid ZObject<ref>https://gitlab.wikimedia.org/repos/abstract-wiki/wikifunctions/function-schemata shared set of JSON schemata for the Wikifunctions project, to achieve a "single version of the truth" on what counts as a structurally valid ZObject, and provide shared utility code</ref>.
{{Z|80}} was changed to use {{Z|13518}} following [[Wikifunctions:Type proposals/Byte]]<ref>[[Wikifunctions:Type proposals/Byte#Alternatives]] The current proposal is Option 3 in the following list of Alternatives. (Option 3) A byte consists of one key that represents the value of the byte. The value is of type natural number, and has to be between the values of 0 and 255, including the edges.</ref>. This proposal highlights the lack of proper support for the {{Z|80}} type when it was defined upon {{Z|6}}, especially regarding code converters. This proposal added two type converters for JavaScript and Python where {{Z|80}} objects would get converted into Python <syntaxhighlight lang="python" inline>int</syntaxhighlight> and JavaScript <syntaxhighlight lang="javascript" inline>Number</syntaxhighlight>. Accordingly, the value's type was changed to {{Z|13518}}.
==== Lessons ====
Having {{Z|80}} be a built-in type is coherent: it is the fundamental unit used to measure and access memory in computing, and the most fundamental representation of a number<ref>[[w:Byte]]</ref>. Having it be defined upon a natural number type is also coherent: a byte represents a single value in the range 0-255, and is represented as a number in other programming languages<ref>[[Wikifunctions:Type proposals/Byte#Python]] The most idiomatic conversion in Python is to convert a Wikifunctions Byte to a Python int.</ref><ref>[[Wikifunctions:Type proposals/Byte#JavaScript]] The most idiomatic conversion in JavaScript is to convert a Wikifunctions Byte to a JavaScript number.</ref>. Hence, we argue that it is not coherent for {{Z|13518}} to not be a built-in. Having a built-in natural number type means that we can keep the preferred representation of having a byte's value stored as a number without breaking the hierarchy of built-ins and non-built-ins.
=== Arithmetic in the composition language ===
The [[Wikifunctions:Glossary#composition|composition]] language, while slow, is the most portable, abstract [[WF:PROG|programming language available on Wikifunctions]]. It defines functions as composition of other functions, which has multiple advantages:
* It is language agnostic. As Wikifunctions renders the composed function calls using the localized function labels, a composition implementation can be read entirely in the user's chosen language, given that the required labels are present. On the contrary, code implementations rely on English keywords<ref>See the [https://docs.python.org/3/reference/lexical_analysis.html#keywords list of Python keywords] and the [https://tc39.es/ecma262/#prod-ReservedWord ECMAScript list of reserved keywords].</ref> and can have inner variable or function names in any language that are not localized.
* It is portable and entirely defined within the scope of the Wikifunctions project, without relying on external specifications and implementations such as with code implementations.
* It serves as a well-understood formalism and a very simple implementation of a function in order to ensure that the other implementations of it are correct<ref>[[Wikifunctions:Function model#Composition]] it allows us to use a well-understood formalism and a very simple implementation of it in order to ensure that the other implementations of Z781/add are correct</ref>. Composition implementations are considered "defining implementations" and are used alongside faster, optimized, but harder to comprehend code implementations.
Ideally, all functions should have an implementation as a composition, or an implementaion as composition of functions which are themselves a composition of built-in, etc. This allows a proper clear definition of all functions, independently of their implementations technicalities.
In its current state, however, all arithmetic functions on Wikifunctions lack such a composition implementation. Let us take a look at {{Z|13521}} for example: all of its composition implementations end up calling {{Z|13578}}, whose only composition implementation relies back on {{Z|13521}}.
This is coherent: given that there is no built-in number type, there is also no built-in numeric operation. But this also implies that none of the [[Wikifunctions:Catalogue/Number operations|many number operations]] on Wikifunctions have a proper, well-defined implementation as composition of built-ins.
==== Lessons ====
Looking at [[Wikifunctions:Catalogue]] reveals that many of the functions on this website are related to arithmetic and mathematics, and hence operate on numbers. Having a built-in number type allows the creation of composition implementations for all those functions, proper, well-defined implementations as composition of built-ins. Given that composition is the language of Wikifunctions, it being incapable of representing most of its functions is incoherent.
== Proposal ==
As we said multiple times over the course of the previous section, we propose the creation of two new built-in types for numbers.
=== Current situation ===
Per the numeric type hierarchy found at [[Template:Type documentation]], we can identify two different type of number types:
* Integers, such as {{Z|80}}, {{Z|13518}}, or {{Z|19677}} (which is a pair of integers). These are usually unbounded. Most of them end up depending on {{Z|13518}}.
* Floating point numbers, such as {{Z|20838}}, or {{Z|33198}} (which is a pair of floating point numbers). These follow the IEEE 754 standard, which means they are bounded and have a limited precision. The parent for these types is {{Z|20838}}.
The only built-in type among these is {{Z|80}}, but as said before, it relies on a non-built-in internal representation.
=== Proposed change ===
* Adding a built-in integer type.
* Adding a built-in IEEE 754 floating point type.
* Adding built-in functions to manipulate these two types.
==== Advantages ====
* Type hierarchy issues about {{Z|80}} depending on non-built-ins are fixed: it now depends on another built-in. It also improves the overall hierarchy, where all number types can be defined upon these two built-ins. This could come in useful for later optimizations (for example, reprensenting numbers without going through conversion to string).
* We can have composition implementations for all mathematical and arithmetic functions, since these are now built-in types they can have built-in functions to work with them.
==== Further views ====
Currently, Wikifunctions only has two terminal types: {{Z|9}} and {{Z|6}}. This means that all types in Wikifunctions end up being represented as strings. Having built-in numbers opens the possibility for later software changes: for example, representing them internally and in the JSON as numbers. Considering the many performance issues of Wikifunctions, this could be interesting in a not-so-far future.
According to the [[Wikifunctions:About|Wikifunctions Mission statement]], we should "Imagine a programming system that allows us to make the next big leap in knowledge representation". Representing something as fundamental as numbers is definitely essential, further renforcing the need for an endorsed built-in number type. Wikifunctions also aims "to create both a well-defined common catalog of functions that can be widely reused and an environment where functions can be quickly combined and executed on the fly"; arithmetic operations and mathematical computations are one of the most common type of functions, and should therefore benefit from first-class support.
== Implementation ==
=== Integer type ===
There are multiple options regarding which integer type should be made built-in:
# The {{Z|80}} type, the only integer type which is bounded.
# The {{Z|13518}} type, which most integer types rely on at the moment.
# The {{Z|16683}} type.
We can look at what Python and ECMAScript do for further inspiration:
* Python has an <syntaxhighlight lang="python" inline>int</syntaxhighlight> type for representing integers; it is signed and unbounded.
* ECMAScript has a <syntaxhighlight lang="python" inline>BigInt</syntaxhighlight> type for representing integers; it is signed and unbounded too.
Considering these, we decided to go with {{Z|16683}} for our integer type.
* {{Z|80}} can be defined by having the validator ensure it is within the 0-255 range.
* {{Z|13518}} can be defined by having the validator ensure it is a non-negatuve integer.
Given this, we can have efficient type converters from and to programming language types, with the added bonus of having all possible values be valid (e.g., if a Python function returns an int, it can always be converted to a valid {{Z|16683}}, unlike {{Z|13518}} which wouldn't support negative numbers).
=== Floating-point type ===
We propose to make the {{Z|20838}} type built-in. The IEEE 754 standard for floating point numbers is the ideal representation: it is a reference standard that has already been adopted on Wikifunctions. In its current implementation following [[Wikifunctions:Type proposals/float64]], it does however require quite a few different types:
* The {{Z|16659}} enumeration (3 members)
* The {{Z|20825}} enumeration (8 members)
* Both a natural number and an integer type
Our options at the moment are:
# Turn all those types into built-ins
# Change the internal representation of float64
Considering the need for performant functions, we propose having a different float 64 type whose value is an hexadecimal string representing the raw IEEE 754 byte representation.
==== Converters ====
The representation was arbitrarily chosen to be [[w:Endianness|little-endian]].
===== JavaScript =====
The ECMAScript <syntaxhighlight lang="javascript" inline>DataView</syntaxhighlight> offers the required functions to access the raw bytes of a floating point number and format them as hexadecimal:
<syntaxhighlight lang="javascript">
function fromNumber(num) {
const buffer = new ArrayBuffer(8);
const view = new DataView(buffer);
view.setFloat64(0, num, true);
return view.getBigUint64(0, true).toString(16);
}
</syntaxhighlight>
Converting an hexadecimal string back into a floating point number is trivial now:
<syntaxhighlight lang="javascript">
function toNumber(num) {
const buffer = new ArrayBuffer(8);
const view = new DataView(buffer);
view.setBigUint64(0, BigInt(`0x${num}`), true);
return view.getFloat64(0, true);
}
</syntaxhighlight>
===== Python =====
We have to use the <code>struct</code> module in order to access a floating point number's bytes:
<syntaxhighlight lang="python">
import struct
def fromNumber(num: float) -> str:
return struct.pack('<d', num).hex()
</syntaxhighlight>
The reverse operation, converting hexadecimal bytes back into a floating point number, is trivial too:
<syntaxhighlight lang="python">
import struct
def toNumber(num: str) -> float:
return struct.unpack('<d', bytes.fromhex(num))[0]
</syntaxhighlight>
=== ZIDs ===
This proposal includes the creation of multiple new ZObjects, all of which require a statically assigned ZID. In [[Wikifunctions:Function model|the function model documentation]], functions in the range Z700-Z799 are used as sample arithmetic functions. Since many new built-in functions will be included in this proposal, having a dedicated range for them is coherent and avoids taking too much space in the previously used Z800-Z899 space.
To remain coherent with this idea, new core types will be put in the Z70-Z79 range, which is coincidentally free.
The IEEE 754 standard includes many operations that a system needs to implement to be considered conformant. The Z7000 range could be used for those, as there is more than a hundred of them.
== Specifications ==
=== Integers ===
==== Summary ====
{{void|Short overview of the idea of this Type}}
We propose the creation of a new type, named '''integer'''. It is part of the wider proposal to add two new built-in types for numbers. This type would be a built-in type whose ZID is in the 0-99 range. We propose Z70, as functions in the Z700-Z799 range are numeric operations.
'''Integer''' is similar to the existing {{Z|16683}}, but there are some differences regarding its internal representation.
==== Uses ====
{{void|Prompts:
* Why should this exist?
* What kinds of functions would be created using this?
* What standard concepts, if any, does this align with?}}
There are many types that could be built on top of an integer type on Wikifunctions: {{Z|80}}, {{Z|13518}}, {{Z|19677}}... Having them all defined relatively to one standard built-in type improves the type hierarchy, allows further optimisations in the future, and fixes issues regarding built-in dependence on non built-ins.
Integers are then used throughout Wikifunctions, whether for mathematical operations or for other uses (such as getting the length of a list). This new built-in type allows us to have composition of built-ins implementaions for all those functions.
==== Structure ====
{{void|Description of how a value of this type would look like and why}}
This type has a single key, value (Z70K1), whose type is {{Z|6}}. This key holds a big endian lowercase hexadecimal representation of the number described. The string is preceded by a single minus character <code>-</code> if the number is negative. Note that <code>-0</code> is not a valid value.
This format was chosen because it is well supported by both available programming languages (and by many others should they be added to Wikifunctions in the future) and should have rather good performance, as hexadecimal notation is close to how numbers are represented in the computer's memory.
===== Example values =====
Here is how the number <code>666</code> would be stored:
{|class="wikitable" style="margin:.6em 1.6em"
|-
| <syntaxhighlight lang="json" line="line">{
"type": "integer",
"value": "29a"
}</syntaxhighlight>
| <syntaxhighlight lang="json">{
"Z1K1": "Z70",
"Z70K1": "29a"
}</syntaxhighlight>
|}
And here is how its opposite <code>-666</code> would be stored:
{|class="wikitable" style="margin:.6em 1.6em"
|-
| <syntaxhighlight lang="json" line="line">{
"type": "integer",
"value": "-29a"
}</syntaxhighlight>
| <syntaxhighlight lang="json">{
"Z1K1": "Z70",
"Z70K1": "-29a"
}</syntaxhighlight>
|}
==== Identity ====
Two integers are equal if and only if their hexadecimal representations are equal.
==== Converting to code ====
===== Python =====
<syntaxhighlight lang="python">
def deserialize(Z70K1: str) -> int:
return int(Z70K1, 16)
</syntaxhighlight>
<syntaxhighlight lang="python">
def serialize(integer: int) -> str:
return f"{integer:x}"
</syntaxhighlight>
===== JavaScript =====
<syntaxhighlight lang="javascript">
function deserialize(Z70K1) {
if (Z70K1.startsWith("-")) {
return -BigInt(`0x${Z70K1.slice(1)}`);
}
return BigInt(`0x${Z70K1}`);
}
</syntaxhighlight>
<syntaxhighlight lang="javascript">
function serialize(big_int) {
return big_int.toString(16);
}
</syntaxhighlight>
==== Display function ====
{{void|How would a value of this type be displayed on Wikifunctions. Remove this section for types that should not be displayed as a string.}}
Integers should be displayed as localized numbers. For example, a French user would see <code>678910</code> as 678 910 while an American user might see 678,910.
==== Read function ====
{{void|When entering a value for this type as a string, what format should that string have? Remove this section for types that should not be entered as a string.}}
The input should be interpreted as a either localized number in the user's language, or as a standard decimal number (without separators).
==== Alternatives ====
{{void|In order to capture the idea presented in the summary, what alternative structures, display functions, read functions, etc. could have made sense too? Please also link to any type proposals that "compete" with this one.}}
# Having a separate Sign key in the type, but that would imply making Sign built-in too and would make conversion slower.
==== Comments ====
''For general comments, please reply to the proposer.''
* {{s}} as proposer. [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 09:20, 15 August 2026 (UTC)
=== Floating point numbers ===
==== Summary ====
{{void|Short overview of the idea of this Type}}
We propose the creation of a new type, named '''floating point number'''. It is part of the wider proposal to add two new built-in types for numbers. This type would be a built-in type whose ZID is in the 0-99 range. We propose Z71, as arithmetic functions occupy the Z700-Z999 range.
The name '''floating point number''' has be chosen to differentiate this type from {{Z|20838}}. The internal representation used is different: while {{Z|20838}} stores each part of an IEEE 754 floating point number separately, '''floating point number''' simply stores the bytes as hexadecimal in a {{Z|6}} key.
==== Uses ====
{{void|Prompts:
* Why should this exist?
* What kinds of functions would be created using this?
* What standard concepts, if any, does this align with?}}
{{Z|20838}} is already a widely used type<ref>[[Special:WhatLinksHere/Z20838]] returns more than 500 items.</ref>, this proposal simply turns it into a built-in type. The different representation allows faster performance for complex composed functions. Its new built-in nature also permits the creation of built-in functions operating on floating point number, and then permit the creation of pure composition mathematical operations.
This aligns with the standard concept of representing numbers; in that case, real numbers are approximated by floating point numbers. The international widely recoginzed IEEE 754 format is used as it has first-class support in code implementations.
==== Structure ====
{{void|Description of how a value of this type would look like and why}}
This type has a single key, value (Z71K1), whose type is {{Z|6}}. This key holds a little-endian IEEE 754 number, whose bytes are reprsesented as hexadecimal. This was done for performance reasons: most operations do not work with individual components of the floating point number, but rather with the number as a whole. It also avoids having to make two new enumerations builtin for the sign and special value.
===== Example values =====
Here is how the number <code>666.67</code> would be stored:
{|class="wikitable" style="margin:.6em 1.6em"
|-
| <syntaxhighlight lang="json" line="line">{
"type": "floating point number",
"value": "8fc2f5285cd58440"
}</syntaxhighlight>
| <syntaxhighlight lang="json">{
"Z1K1": "Z71",
"Z71K1": "8fc2f5285cd58440"
}</syntaxhighlight>
|}
==== Identity ====
Two floating point numbers are the same if the subtraction of their values (Z71K1) is equal to zero. The special case where either is equal to NaN means that they are not equal, even if both are NaN.
==== Converting to code ====
===== Python =====
<syntaxhighlight lang="python">
import struct
def fromNumber(num: float) -> str:
return struct.pack('<d', num).hex()
</syntaxhighlight>
<syntaxhighlight lang="python">
import struct
def toNumber(num: str) -> float:
return struct.unpack('<d', bytes.fromhex(num))[0]
</syntaxhighlight>
===== JavaScript =====
<syntaxhighlight lang="javascript">
function fromNumber(num) {
const buffer = new ArrayBuffer(8);
const view = new DataView(buffer);
view.setFloat64(0, num, true);
return view.getBigUint64(0, true).toString(16);
}
</syntaxhighlight>
<syntaxhighlight lang="javascript">
function toNumber(num) {
const buffer = new ArrayBuffer(8);
const view = new DataView(buffer);
view.setBigUint64(0, BigInt(`0x${num}`), true);
return view.getFloat64(0, true);
}
</syntaxhighlight>
==== Display function ====
{{void|How would a value of this type be displayed on Wikifunctions. Remove this section for types that should not be displayed as a string.}}
The cleanest way to display floating point numbers is using the localized number system. For example, a French user could have the sample number shown above displayed to them as <code>666,67</code>, while an user from the USA could see <code>666.67</code>. A Latin user might see <code>DCLXVI.LXVII</code>.
==== Read function ====
{{void|When entering a value for this type as a string, what format should that string have? Remove this section for types that should not be entered as a string.}}
The input should be interpreted as a localized number in the user's language and then parsed into its IEEE 754 representation.
==== Alternatives ====
{{void|In order to capture the idea presented in the summary, what alternative structures, display functions, read functions, etc. could have made sense too? Please also link to any type proposals that "compete" with this one.}}
# Using the existing float64 type structure, where each part has its own key.
==== Comments ====
''For general comments, please reply to the proposer.''
* {{s}} as proposer. [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 07:04, 15 August 2026 (UTC)
== Discussion ==
'''We are aware that what we propose are major breaking changes that could take time and effort to implement.''' We believe that, as its own programming system, Wikifunctions ''needs'' first-class support for a concept as fundamental as numbers; and that this proposal will make further work with numbers easier while opening the door to further improvements. We submit this first proposal for the community to discuss it and to get advice regarding its implementation if it is approved. [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 09:36, 15 August 2026 (UTC)
d6dupgkcp4k9hthed4ijxexu9g2ue4h
299859
299640
2026-08-16T07:27:25Z
Virinas-code
2884
/* Lessons */ Reference lists of number functions
299859
wikitext
text/x-wiki
'''This is a work in progress draft which is not ready for community submission yet.'''
== Issues ==
=== Regarding {{Z|80}} ===
{{Z|80}} is a {{Z|4}} with a single key: value (Z80K1), which is of type {{Z|13518}}. While {{Z|80}} is a built-in core type with an ID in the <code>Z1</code>--<code>Z99</code> range<ref>[[Wikifunctions:Reserved ZIDs#Ranges]] <code>Z1</code> – <code>Z99</code>: core types.</ref>, {{Z|13518}} is not. Given that {{Z|80}} is pre-defined in the system<ref>https://gitlab.wikimedia.org/repos/abstract-wiki/wikifunctions/function-schemata A number of ZObjects are pre-defined for the Wikifunctions system, and used by the WikiLambda MediaWiki extension as well as the function-orchestrator (and through that, the function-evaluator).</ref><ref name="Z80 initial">[[Special:PermanentLink/32]] Revision as of 2023-07-26T18:29:41 by [[User:WikiLambda system|WikiLambda system]] ''(Initial pre-defined WikiLambda content creation)''</ref>, having it depend on the later defined {{Z|13518}} is problematic.
It should be noted that, initially, a byte's value was stored as a {{Z|6}}<ref name="Z80 initial" />, one of the core builtin types of Wikifunctions. It is also still a {{Z|6}} in the [https://gitlab.wikimedia.org/repos/abstract-wiki/wikifunctions/function-schemata function-schemata]<ref>https://gitlab.wikimedia.org/repos/abstract-wiki/wikifunctions/function-schemata/-/blob/main/data/CANONICAL/Z80.yaml
<syntaxhighlight lang="yaml">
Z80K1:
$ref: "#/definitions/objects/Z6_byte"
</syntaxhighlight></ref>, which aims to provide a "single version of the truth" regarding what counts as a valid ZObject<ref>https://gitlab.wikimedia.org/repos/abstract-wiki/wikifunctions/function-schemata shared set of JSON schemata for the Wikifunctions project, to achieve a "single version of the truth" on what counts as a structurally valid ZObject, and provide shared utility code</ref>.
{{Z|80}} was changed to use {{Z|13518}} following [[Wikifunctions:Type proposals/Byte]]<ref>[[Wikifunctions:Type proposals/Byte#Alternatives]] The current proposal is Option 3 in the following list of Alternatives. (Option 3) A byte consists of one key that represents the value of the byte. The value is of type natural number, and has to be between the values of 0 and 255, including the edges.</ref>. This proposal highlights the lack of proper support for the {{Z|80}} type when it was defined upon {{Z|6}}, especially regarding code converters. This proposal added two type converters for JavaScript and Python where {{Z|80}} objects would get converted into Python <syntaxhighlight lang="python" inline>int</syntaxhighlight> and JavaScript <syntaxhighlight lang="javascript" inline>Number</syntaxhighlight>. Accordingly, the value's type was changed to {{Z|13518}}.
==== Lessons ====
Having {{Z|80}} be a built-in type is coherent: it is the fundamental unit used to measure and access memory in computing, and the most fundamental representation of a number<ref>[[w:Byte]]</ref>. Having it be defined upon a natural number type is also coherent: a byte represents a single value in the range 0-255, and is represented as a number in other programming languages<ref>[[Wikifunctions:Type proposals/Byte#Python]] The most idiomatic conversion in Python is to convert a Wikifunctions Byte to a Python int.</ref><ref>[[Wikifunctions:Type proposals/Byte#JavaScript]] The most idiomatic conversion in JavaScript is to convert a Wikifunctions Byte to a JavaScript number.</ref>. Hence, we argue that it is not coherent for {{Z|13518}} to not be a built-in. Having a built-in natural number type means that we can keep the preferred representation of having a byte's value stored as a number without breaking the hierarchy of built-ins and non-built-ins.
=== Arithmetic in the composition language ===
The [[Wikifunctions:Glossary#composition|composition]] language, while slow, is the most portable, abstract [[WF:PROG|programming language available on Wikifunctions]]. It defines functions as composition of other functions, which has multiple advantages:
* It is language agnostic. As Wikifunctions renders the composed function calls using the localized function labels, a composition implementation can be read entirely in the user's chosen language, given that the required labels are present. On the contrary, code implementations rely on English keywords<ref>See the [https://docs.python.org/3/reference/lexical_analysis.html#keywords list of Python keywords] and the [https://tc39.es/ecma262/#prod-ReservedWord ECMAScript list of reserved keywords].</ref> and can have inner variable or function names in any language that are not localized.
* It is portable and entirely defined within the scope of the Wikifunctions project, without relying on external specifications and implementations such as with code implementations.
* It serves as a well-understood formalism and a very simple implementation of a function in order to ensure that the other implementations of it are correct<ref>[[Wikifunctions:Function model#Composition]] it allows us to use a well-understood formalism and a very simple implementation of it in order to ensure that the other implementations of Z781/add are correct</ref>. Composition implementations are considered "defining implementations" and are used alongside faster, optimized, but harder to comprehend code implementations.
Ideally, all functions should have an implementation as a composition, or an implementaion as composition of functions which are themselves a composition of built-in, etc. This allows a proper clear definition of all functions, independently of their implementations technicalities.
In its current state, however, all arithmetic functions on Wikifunctions lack such a composition implementation. Let us take a look at {{Z|13521}} for example: all of its composition implementations end up calling {{Z|13578}}, whose only composition implementation relies back on {{Z|13521}}.
This is coherent: given that there is no built-in number type, there is also no built-in numeric operation. But this also implies that none of the [[Wikifunctions:Catalogue/Number operations|many number operations]] on Wikifunctions have a proper, well-defined implementation as composition of built-ins.
==== Lessons ====
Looking at [[Wikifunctions:Catalogue]] reveals that many of the functions on this website are related to arithmetic and mathematics<ref>[[Wikifunctions:Catalogue/Sign operations|Sign operations]], [[Wikifunctions:Catalogue/Scientific functions|Scientific functions]], and [[Wikifunctions:Catalogue/Number operations|Number operations]] operate on number types.</ref>, and hence operate on numbers. Having a built-in number type allows the creation of composition implementations for all those functions, proper, well-defined implementations as composition of built-ins. Given that composition is the language of Wikifunctions, it being incapable of representing most of its functions is incoherent.
== Proposal ==
As we said multiple times over the course of the previous section, we propose the creation of two new built-in types for numbers.
=== Current situation ===
Per the numeric type hierarchy found at [[Template:Type documentation]], we can identify two different type of number types:
* Integers, such as {{Z|80}}, {{Z|13518}}, or {{Z|19677}} (which is a pair of integers). These are usually unbounded. Most of them end up depending on {{Z|13518}}.
* Floating point numbers, such as {{Z|20838}}, or {{Z|33198}} (which is a pair of floating point numbers). These follow the IEEE 754 standard, which means they are bounded and have a limited precision. The parent for these types is {{Z|20838}}.
The only built-in type among these is {{Z|80}}, but as said before, it relies on a non-built-in internal representation.
=== Proposed change ===
* Adding a built-in integer type.
* Adding a built-in IEEE 754 floating point type.
* Adding built-in functions to manipulate these two types.
==== Advantages ====
* Type hierarchy issues about {{Z|80}} depending on non-built-ins are fixed: it now depends on another built-in. It also improves the overall hierarchy, where all number types can be defined upon these two built-ins. This could come in useful for later optimizations (for example, reprensenting numbers without going through conversion to string).
* We can have composition implementations for all mathematical and arithmetic functions, since these are now built-in types they can have built-in functions to work with them.
==== Further views ====
Currently, Wikifunctions only has two terminal types: {{Z|9}} and {{Z|6}}. This means that all types in Wikifunctions end up being represented as strings. Having built-in numbers opens the possibility for later software changes: for example, representing them internally and in the JSON as numbers. Considering the many performance issues of Wikifunctions, this could be interesting in a not-so-far future.
According to the [[Wikifunctions:About|Wikifunctions Mission statement]], we should "Imagine a programming system that allows us to make the next big leap in knowledge representation". Representing something as fundamental as numbers is definitely essential, further renforcing the need for an endorsed built-in number type. Wikifunctions also aims "to create both a well-defined common catalog of functions that can be widely reused and an environment where functions can be quickly combined and executed on the fly"; arithmetic operations and mathematical computations are one of the most common type of functions, and should therefore benefit from first-class support.
== Implementation ==
=== Integer type ===
There are multiple options regarding which integer type should be made built-in:
# The {{Z|80}} type, the only integer type which is bounded.
# The {{Z|13518}} type, which most integer types rely on at the moment.
# The {{Z|16683}} type.
We can look at what Python and ECMAScript do for further inspiration:
* Python has an <syntaxhighlight lang="python" inline>int</syntaxhighlight> type for representing integers; it is signed and unbounded.
* ECMAScript has a <syntaxhighlight lang="python" inline>BigInt</syntaxhighlight> type for representing integers; it is signed and unbounded too.
Considering these, we decided to go with {{Z|16683}} for our integer type.
* {{Z|80}} can be defined by having the validator ensure it is within the 0-255 range.
* {{Z|13518}} can be defined by having the validator ensure it is a non-negatuve integer.
Given this, we can have efficient type converters from and to programming language types, with the added bonus of having all possible values be valid (e.g., if a Python function returns an int, it can always be converted to a valid {{Z|16683}}, unlike {{Z|13518}} which wouldn't support negative numbers).
=== Floating-point type ===
We propose to make the {{Z|20838}} type built-in. The IEEE 754 standard for floating point numbers is the ideal representation: it is a reference standard that has already been adopted on Wikifunctions. In its current implementation following [[Wikifunctions:Type proposals/float64]], it does however require quite a few different types:
* The {{Z|16659}} enumeration (3 members)
* The {{Z|20825}} enumeration (8 members)
* Both a natural number and an integer type
Our options at the moment are:
# Turn all those types into built-ins
# Change the internal representation of float64
Considering the need for performant functions, we propose having a different float 64 type whose value is an hexadecimal string representing the raw IEEE 754 byte representation.
==== Converters ====
The representation was arbitrarily chosen to be [[w:Endianness|little-endian]].
===== JavaScript =====
The ECMAScript <syntaxhighlight lang="javascript" inline>DataView</syntaxhighlight> offers the required functions to access the raw bytes of a floating point number and format them as hexadecimal:
<syntaxhighlight lang="javascript">
function fromNumber(num) {
const buffer = new ArrayBuffer(8);
const view = new DataView(buffer);
view.setFloat64(0, num, true);
return view.getBigUint64(0, true).toString(16);
}
</syntaxhighlight>
Converting an hexadecimal string back into a floating point number is trivial now:
<syntaxhighlight lang="javascript">
function toNumber(num) {
const buffer = new ArrayBuffer(8);
const view = new DataView(buffer);
view.setBigUint64(0, BigInt(`0x${num}`), true);
return view.getFloat64(0, true);
}
</syntaxhighlight>
===== Python =====
We have to use the <code>struct</code> module in order to access a floating point number's bytes:
<syntaxhighlight lang="python">
import struct
def fromNumber(num: float) -> str:
return struct.pack('<d', num).hex()
</syntaxhighlight>
The reverse operation, converting hexadecimal bytes back into a floating point number, is trivial too:
<syntaxhighlight lang="python">
import struct
def toNumber(num: str) -> float:
return struct.unpack('<d', bytes.fromhex(num))[0]
</syntaxhighlight>
=== ZIDs ===
This proposal includes the creation of multiple new ZObjects, all of which require a statically assigned ZID. In [[Wikifunctions:Function model|the function model documentation]], functions in the range Z700-Z799 are used as sample arithmetic functions. Since many new built-in functions will be included in this proposal, having a dedicated range for them is coherent and avoids taking too much space in the previously used Z800-Z899 space.
To remain coherent with this idea, new core types will be put in the Z70-Z79 range, which is coincidentally free.
The IEEE 754 standard includes many operations that a system needs to implement to be considered conformant. The Z7000 range could be used for those, as there is more than a hundred of them.
== Specifications ==
=== Integers ===
==== Summary ====
{{void|Short overview of the idea of this Type}}
We propose the creation of a new type, named '''integer'''. It is part of the wider proposal to add two new built-in types for numbers. This type would be a built-in type whose ZID is in the 0-99 range. We propose Z70, as functions in the Z700-Z799 range are numeric operations.
'''Integer''' is similar to the existing {{Z|16683}}, but there are some differences regarding its internal representation.
==== Uses ====
{{void|Prompts:
* Why should this exist?
* What kinds of functions would be created using this?
* What standard concepts, if any, does this align with?}}
There are many types that could be built on top of an integer type on Wikifunctions: {{Z|80}}, {{Z|13518}}, {{Z|19677}}... Having them all defined relatively to one standard built-in type improves the type hierarchy, allows further optimisations in the future, and fixes issues regarding built-in dependence on non built-ins.
Integers are then used throughout Wikifunctions, whether for mathematical operations or for other uses (such as getting the length of a list). This new built-in type allows us to have composition of built-ins implementaions for all those functions.
==== Structure ====
{{void|Description of how a value of this type would look like and why}}
This type has a single key, value (Z70K1), whose type is {{Z|6}}. This key holds a big endian lowercase hexadecimal representation of the number described. The string is preceded by a single minus character <code>-</code> if the number is negative. Note that <code>-0</code> is not a valid value.
This format was chosen because it is well supported by both available programming languages (and by many others should they be added to Wikifunctions in the future) and should have rather good performance, as hexadecimal notation is close to how numbers are represented in the computer's memory.
===== Example values =====
Here is how the number <code>666</code> would be stored:
{|class="wikitable" style="margin:.6em 1.6em"
|-
| <syntaxhighlight lang="json" line="line">{
"type": "integer",
"value": "29a"
}</syntaxhighlight>
| <syntaxhighlight lang="json">{
"Z1K1": "Z70",
"Z70K1": "29a"
}</syntaxhighlight>
|}
And here is how its opposite <code>-666</code> would be stored:
{|class="wikitable" style="margin:.6em 1.6em"
|-
| <syntaxhighlight lang="json" line="line">{
"type": "integer",
"value": "-29a"
}</syntaxhighlight>
| <syntaxhighlight lang="json">{
"Z1K1": "Z70",
"Z70K1": "-29a"
}</syntaxhighlight>
|}
==== Identity ====
Two integers are equal if and only if their hexadecimal representations are equal.
==== Converting to code ====
===== Python =====
<syntaxhighlight lang="python">
def deserialize(Z70K1: str) -> int:
return int(Z70K1, 16)
</syntaxhighlight>
<syntaxhighlight lang="python">
def serialize(integer: int) -> str:
return f"{integer:x}"
</syntaxhighlight>
===== JavaScript =====
<syntaxhighlight lang="javascript">
function deserialize(Z70K1) {
if (Z70K1.startsWith("-")) {
return -BigInt(`0x${Z70K1.slice(1)}`);
}
return BigInt(`0x${Z70K1}`);
}
</syntaxhighlight>
<syntaxhighlight lang="javascript">
function serialize(big_int) {
return big_int.toString(16);
}
</syntaxhighlight>
==== Display function ====
{{void|How would a value of this type be displayed on Wikifunctions. Remove this section for types that should not be displayed as a string.}}
Integers should be displayed as localized numbers. For example, a French user would see <code>678910</code> as 678 910 while an American user might see 678,910.
==== Read function ====
{{void|When entering a value for this type as a string, what format should that string have? Remove this section for types that should not be entered as a string.}}
The input should be interpreted as a either localized number in the user's language, or as a standard decimal number (without separators).
==== Alternatives ====
{{void|In order to capture the idea presented in the summary, what alternative structures, display functions, read functions, etc. could have made sense too? Please also link to any type proposals that "compete" with this one.}}
# Having a separate Sign key in the type, but that would imply making Sign built-in too and would make conversion slower.
==== Comments ====
''For general comments, please reply to the proposer.''
* {{s}} as proposer. [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 09:20, 15 August 2026 (UTC)
=== Floating point numbers ===
==== Summary ====
{{void|Short overview of the idea of this Type}}
We propose the creation of a new type, named '''floating point number'''. It is part of the wider proposal to add two new built-in types for numbers. This type would be a built-in type whose ZID is in the 0-99 range. We propose Z71, as arithmetic functions occupy the Z700-Z999 range.
The name '''floating point number''' has be chosen to differentiate this type from {{Z|20838}}. The internal representation used is different: while {{Z|20838}} stores each part of an IEEE 754 floating point number separately, '''floating point number''' simply stores the bytes as hexadecimal in a {{Z|6}} key.
==== Uses ====
{{void|Prompts:
* Why should this exist?
* What kinds of functions would be created using this?
* What standard concepts, if any, does this align with?}}
{{Z|20838}} is already a widely used type<ref>[[Special:WhatLinksHere/Z20838]] returns more than 500 items.</ref>, this proposal simply turns it into a built-in type. The different representation allows faster performance for complex composed functions. Its new built-in nature also permits the creation of built-in functions operating on floating point number, and then permit the creation of pure composition mathematical operations.
This aligns with the standard concept of representing numbers; in that case, real numbers are approximated by floating point numbers. The international widely recoginzed IEEE 754 format is used as it has first-class support in code implementations.
==== Structure ====
{{void|Description of how a value of this type would look like and why}}
This type has a single key, value (Z71K1), whose type is {{Z|6}}. This key holds a little-endian IEEE 754 number, whose bytes are reprsesented as hexadecimal. This was done for performance reasons: most operations do not work with individual components of the floating point number, but rather with the number as a whole. It also avoids having to make two new enumerations builtin for the sign and special value.
===== Example values =====
Here is how the number <code>666.67</code> would be stored:
{|class="wikitable" style="margin:.6em 1.6em"
|-
| <syntaxhighlight lang="json" line="line">{
"type": "floating point number",
"value": "8fc2f5285cd58440"
}</syntaxhighlight>
| <syntaxhighlight lang="json">{
"Z1K1": "Z71",
"Z71K1": "8fc2f5285cd58440"
}</syntaxhighlight>
|}
==== Identity ====
Two floating point numbers are the same if the subtraction of their values (Z71K1) is equal to zero. The special case where either is equal to NaN means that they are not equal, even if both are NaN.
==== Converting to code ====
===== Python =====
<syntaxhighlight lang="python">
import struct
def fromNumber(num: float) -> str:
return struct.pack('<d', num).hex()
</syntaxhighlight>
<syntaxhighlight lang="python">
import struct
def toNumber(num: str) -> float:
return struct.unpack('<d', bytes.fromhex(num))[0]
</syntaxhighlight>
===== JavaScript =====
<syntaxhighlight lang="javascript">
function fromNumber(num) {
const buffer = new ArrayBuffer(8);
const view = new DataView(buffer);
view.setFloat64(0, num, true);
return view.getBigUint64(0, true).toString(16);
}
</syntaxhighlight>
<syntaxhighlight lang="javascript">
function toNumber(num) {
const buffer = new ArrayBuffer(8);
const view = new DataView(buffer);
view.setBigUint64(0, BigInt(`0x${num}`), true);
return view.getFloat64(0, true);
}
</syntaxhighlight>
==== Display function ====
{{void|How would a value of this type be displayed on Wikifunctions. Remove this section for types that should not be displayed as a string.}}
The cleanest way to display floating point numbers is using the localized number system. For example, a French user could have the sample number shown above displayed to them as <code>666,67</code>, while an user from the USA could see <code>666.67</code>. A Latin user might see <code>DCLXVI.LXVII</code>.
==== Read function ====
{{void|When entering a value for this type as a string, what format should that string have? Remove this section for types that should not be entered as a string.}}
The input should be interpreted as a localized number in the user's language and then parsed into its IEEE 754 representation.
==== Alternatives ====
{{void|In order to capture the idea presented in the summary, what alternative structures, display functions, read functions, etc. could have made sense too? Please also link to any type proposals that "compete" with this one.}}
# Using the existing float64 type structure, where each part has its own key.
==== Comments ====
''For general comments, please reply to the proposer.''
* {{s}} as proposer. [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 07:04, 15 August 2026 (UTC)
== Discussion ==
'''We are aware that what we propose are major breaking changes that could take time and effort to implement.''' We believe that, as its own programming system, Wikifunctions ''needs'' first-class support for a concept as fundamental as numbers; and that this proposal will make further work with numbers easier while opening the door to further improvements. We submit this first proposal for the community to discuss it and to get advice regarding its implementation if it is approved. [[User:Virinas-code|Virinas-code]] ([[User talk:Virinas-code|talk]]) 09:36, 15 August 2026 (UTC)
hcqc4xd25cma60q0yiek23bjvhk2vhn
Z39473
0
90145
299654
299549
2026-08-15T16:14:48Z
Artsiom91
2118
fix en label
299654
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39473"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6",
"Z17K2": "Z39473K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "country name"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1005",
"Z11K2": "страна"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z25501",
"Z17K2": "Z39473K2",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "gender"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1005",
"Z11K2": "род"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z26934",
"Z17K2": "Z39473K3",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "number"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1005",
"Z11K2": "число"
}
]
}
}
],
"Z8K2": "Z6",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14"
],
"Z8K5": "Z39473"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Russian country denomym adjective (string input)"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1005",
"Z11K2": "русское прилагательное-демоним страны"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Returns demonym adjective of a country, continent, or former country in Russian."
},
{
"Z1K1": "Z11",
"Z11K1": "Z1005",
"Z11K2": "Возвращает прилагательное-демоним страны, региона или бывшей страны на русском языке."
}
]
}
}
970hsl4rp5hfh86yc4j86bb0rr2xwtb
299657
299654
2026-08-15T16:21:09Z
ZI Jony
1002
Added Z39474 to the approved list of implementations
299657
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39473"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6",
"Z17K2": "Z39473K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "country name"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1005",
"Z11K2": "страна"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z25501",
"Z17K2": "Z39473K2",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "gender"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1005",
"Z11K2": "род"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z26934",
"Z17K2": "Z39473K3",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "number"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1005",
"Z11K2": "число"
}
]
}
}
],
"Z8K2": "Z6",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14",
"Z39474"
],
"Z8K5": "Z39473"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Russian country denomym adjective (string input)"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1005",
"Z11K2": "русское прилагательное-демоним страны"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Returns demonym adjective of a country, continent, or former country in Russian."
},
{
"Z1K1": "Z11",
"Z11K1": "Z1005",
"Z11K2": "Возвращает прилагательное-демоним страны, региона или бывшей страны на русском языке."
}
]
}
}
0twwdwh0j7eavh2e9yrl87ps4sdm391
299658
299657
2026-08-15T16:21:13Z
ZI Jony
1002
Added Z39475, Z39476 and Z39477 to the approved list of test cases
299658
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39473"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6",
"Z17K2": "Z39473K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "country name"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1005",
"Z11K2": "страна"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z25501",
"Z17K2": "Z39473K2",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "gender"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1005",
"Z11K2": "род"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z26934",
"Z17K2": "Z39473K3",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "number"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1005",
"Z11K2": "число"
}
]
}
}
],
"Z8K2": "Z6",
"Z8K3": [
"Z20",
"Z39475",
"Z39476",
"Z39477"
],
"Z8K4": [
"Z14",
"Z39474"
],
"Z8K5": "Z39473"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Russian country denomym adjective (string input)"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1005",
"Z11K2": "русское прилагательное-демоним страны"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Returns demonym adjective of a country, continent, or former country in Russian."
},
{
"Z1K1": "Z11",
"Z11K1": "Z1005",
"Z11K2": "Возвращает прилагательное-демоним страны, региона или бывшей страны на русском языке."
}
]
}
}
04mnqr47e6c1v42oxc5dl3yvmiqf868
Z39474
0
90146
299655
299592
2026-08-15T16:15:43Z
Artsiom91
2118
add en label
299655
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39474"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z39473",
"Z14K3": {
"Z1K1": "Z16",
"Z16K1": "Z610",
"Z16K2": "def Z39473(Z39473K1, Z39473K2, Z39473K3):\n country = Z39473K1.lower()\n stem = country\n \n exceptional = { # to extendм\n \"абхазия\": \"абхазск\",\n \"австралия\": \"австралийск\",\n \"англия\": \"английск\",\n \"австрия\": \"австрийск\",\n \"армения\": \"армянск\",\n \"беларусь\": \"белорусск\",\n \"великобритания\": \"британск\",\n \"венгрия\": \"венгерск\",\n \"германия\": \"немецк\",\n \"греция\": \"греческ\",\n \"дания\": \"датск\",\n \"зимбабве\": \"зимбабвийск\",\n \"индия\": \"индийск\",\n \"италия\": \"итальянск\",\n \"кения\": \"кенийск\",\n \"коста-рика\": \"костариканск\",\n \"кот-д’ивуар\": \"ивуарийск\",\n \"литва\": \"литовск\",\n \"марокко\": \"марокканск\",\n \"мьянма\": \"мьянманск\",\n \"мексика\": \"мексиканск\",\n \"новая зеландия\": \"новозеландск\",\n \"норвегия\": \"норвежск\",\n \"польша\": \"польск\",\n \"сан-марино\": \"сан-маринск\",\n \"сербия\": \"сербск\",\n \"сирия\": \"сирийск\",\n \"словакия\": \"словацк\",\n \"сша\": \"американск\",\n \"финляндия\": \"финск\",\n \"франция\": \"французск\",\n \"чехия\": \"чешск\",\n \"швеция\": \"шведск\"\n }\n \n if country in exceptional:\n stem = exceptional[country]\n \n elif country.endswith(\" империя\"):\n stem = country[:-10]\n \n elif country.endswith(\" республика\"):\n stem = country[:-13]\n \n elif country.endswith(\"ы\"):\n stem = country[:-1] + \"ск\"\n \n elif country.endswith(\"ла\"):\n stem = country[:-1] + \"ьск\"\n \n elif country.endswith(\"а\"):\n stem = country[:-1] + \"ск\"\n \n elif country.endswith(\"о\"):\n stem = country[:-1] + \"ск\"\n \n elif country.endswith(\"лия\"):\n stem = country[:-2] + \"ьск\"\n \n elif country.endswith(\"ния\"):\n stem = country[:-2] + \"ск\"\n\n elif country.endswith(\"бия\"):\n stem = country[:-2] + \"ийск\"\n \n elif country.endswith(\"сия\"):\n stem = country[:-2] + \"ийск\"\n \n elif country.endswith(\"зия\"):\n stem = country[:-2] + \"ийск\"\n\n elif country.endswith(\"ия\"):\n stem = country[:-2] + \"ск\"\n\n else:\n stem = country + \"ск\"\n\n match Z39473K3.Z26934K1.Z6091K1:\n case \"Q146786\": # Plural\n return (stem + \"ие\")\n case _:\n match Z39473K2.Z25501K1.Z6091K1:\n\t case \"Q499327\": #masculine\n return (stem + \"ий\")\n\t case \"Q1775415\": #feminine\n return (stem + \"ая\")\n\t case _: #neuter\n\t return (stem + \"ое\")\n\t"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1005",
"Z11K2": "русское прилагательное-демоним страны (python)"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Russian country denomym adjective python"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
0fw1bph90je1rjct7yzz2ycto5v3ev0
Z39478
0
90152
299672
299573
2026-08-15T19:35:10Z
Jsamwrites
938
Added Z39497 to the approved list of test cases
299672
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39478"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39478K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "entity"
}
]
}
}
],
"Z8K2": "Z40",
"Z8K3": [
"Z20",
"Z39497"
],
"Z8K4": [
"Z14",
"Z39479"
],
"Z8K5": "Z39478"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "French lexical form requires elision"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
2a7txrvd6v0r1ze7dsipane7d73cm2i
299690
299672
2026-08-15T20:00:25Z
Jsamwrites
938
Added Z39501 to the approved list of test cases
299690
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39478"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39478K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "entity"
}
]
}
}
],
"Z8K2": "Z40",
"Z8K3": [
"Z20",
"Z39497",
"Z39501"
],
"Z8K4": [
"Z14",
"Z39479"
],
"Z8K5": "Z39478"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "French lexical form requires elision"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
b5tczhsk0j4vhf9b4lnxpz6a7j4emw9
299694
299690
2026-08-15T20:13:10Z
Jsamwrites
938
Added Z39502 to the approved list of test cases
299694
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39478"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39478K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "entity"
}
]
}
}
],
"Z8K2": "Z40",
"Z8K3": [
"Z20",
"Z39497",
"Z39501",
"Z39502"
],
"Z8K4": [
"Z14",
"Z39479"
],
"Z8K5": "Z39478"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "French lexical form requires elision"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
0vv5mxll5im0f3ehpw7t573b9gw4d8e
299697
299694
2026-08-15T20:16:12Z
Jsamwrites
938
Added Z39503 and Z39504 to the approved list of test cases
299697
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39478"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39478K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "entity"
}
]
}
}
],
"Z8K2": "Z40",
"Z8K3": [
"Z20",
"Z39497",
"Z39501",
"Z39502",
"Z39503",
"Z39504"
],
"Z8K4": [
"Z14",
"Z39479"
],
"Z8K5": "Z39478"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "French lexical form requires elision"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
8r1kmveh6q8njht2jp1v54b5psq5ppm
Z39479
0
90153
299688
299571
2026-08-15T19:57:38Z
Jsamwrites
938
299688
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39479"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z39478",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z10196",
"Z10196K1": {
"Z1K1": "Z7",
"Z7K1": "Z14396",
"Z14396K1": {
"Z1K1": "Z7",
"Z7K1": "Z39422",
"Z39422K1": {
"Z1K1": "Z18",
"Z18K1": "Z39478K1"
},
"Z39422K2": [
"Z6091"
],
"Z39422K3": "Z1004"
}
},
"Z10196K2": "^[b-df-gj-np-tv-xzB-DF-GJ-NP-TV-XZ]"
},
"Z802K2": {
"Z1K1": "Z40",
"Z40K1": "Z42"
},
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z19565",
"Z19565K1": {
"Z1K1": "Z7",
"Z7K1": "Z10196",
"Z10196K1": {
"Z1K1": "Z7",
"Z7K1": "Z14396",
"Z14396K1": {
"Z1K1": "Z7",
"Z7K1": "Z39422",
"Z39422K1": {
"Z1K1": "Z18",
"Z18K1": "Z39478K1"
},
"Z39422K2": [
"Z6091"
],
"Z39422K3": "Z1004"
}
},
"Z10196K2": "^[h]"
},
"Z19565K2": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z23568",
"Z23568K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q131441009"
},
"Z23568K2": {
"Z1K1": "Z7",
"Z7K1": "Z39498",
"Z39498K1": {
"Z1K1": "Z7",
"Z7K1": "Z811",
"Z811K1": {
"Z1K1": "Z7",
"Z7K1": "Z6830",
"Z6830K1": {
"Z1K1": "Z18",
"Z18K1": "Z39478K1"
},
"Z6830K2": {
"Z1K1": "Z6092",
"Z6092K1": "P5137"
},
"Z6830K3": "Z1004"
}
}
}
},
"Z802K2": {
"Z1K1": "Z40",
"Z40K1": "Z42"
},
"Z802K3": {
"Z1K1": "Z40",
"Z40K1": "Z41"
}
},
"Z19565K3": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z10196",
"Z10196K1": {
"Z1K1": "Z7",
"Z7K1": "Z14396",
"Z14396K1": {
"Z1K1": "Z7",
"Z7K1": "Z39422",
"Z39422K1": {
"Z1K1": "Z18",
"Z18K1": "Z39478K1"
},
"Z39422K2": [
"Z6091"
],
"Z39422K3": "Z1004"
}
},
"Z10196K2": "[^aàâäeéèêëiîïoôöuùûüyÿ]"
},
"Z802K2": {
"Z1K1": "Z40",
"Z40K1": "Z41"
},
"Z802K3": {
"Z1K1": "Z40",
"Z40K1": "Z42"
}
},
"Z19565K4": {
"Z1K1": "Z40",
"Z40K1": "Z42"
},
"Z19565K5": {
"Z1K1": "Z40",
"Z40K1": "Z42"
}
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "French lexical form requires elision, comp"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
cbmb9a5p1kceospddhco0ft8wz1d2jm
299691
299688
2026-08-15T20:04:34Z
Jsamwrites
938
299691
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39479"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z39478",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z10196",
"Z10196K1": {
"Z1K1": "Z7",
"Z7K1": "Z14396",
"Z14396K1": {
"Z1K1": "Z7",
"Z7K1": "Z39422",
"Z39422K1": {
"Z1K1": "Z18",
"Z18K1": "Z39478K1"
},
"Z39422K2": [
"Z6091"
],
"Z39422K3": "Z1004"
}
},
"Z10196K2": "^[b-df-gj-np-tv-xzB-DF-GJ-NP-TV-XZ]"
},
"Z802K2": {
"Z1K1": "Z40",
"Z40K1": "Z42"
},
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z19565",
"Z19565K1": {
"Z1K1": "Z7",
"Z7K1": "Z10196",
"Z10196K1": {
"Z1K1": "Z7",
"Z7K1": "Z14396",
"Z14396K1": {
"Z1K1": "Z7",
"Z7K1": "Z39422",
"Z39422K1": {
"Z1K1": "Z18",
"Z18K1": "Z39478K1"
},
"Z39422K2": [
"Z6091"
],
"Z39422K3": "Z1004"
}
},
"Z10196K2": "^[h]"
},
"Z19565K2": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z23568",
"Z23568K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q131441009"
},
"Z23568K2": {
"Z1K1": "Z7",
"Z7K1": "Z39498",
"Z39498K1": {
"Z1K1": "Z7",
"Z7K1": "Z811",
"Z811K1": {
"Z1K1": "Z7",
"Z7K1": "Z6830",
"Z6830K1": {
"Z1K1": "Z18",
"Z18K1": "Z39478K1"
},
"Z6830K2": {
"Z1K1": "Z6092",
"Z6092K1": "P5137"
},
"Z6830K3": "Z1004"
}
}
}
},
"Z802K2": {
"Z1K1": "Z40",
"Z40K1": "Z42"
},
"Z802K3": {
"Z1K1": "Z40",
"Z40K1": "Z41"
}
},
"Z19565K3": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z10196",
"Z10196K1": {
"Z1K1": "Z7",
"Z7K1": "Z14396",
"Z14396K1": {
"Z1K1": "Z7",
"Z7K1": "Z39422",
"Z39422K1": {
"Z1K1": "Z18",
"Z18K1": "Z39478K1"
},
"Z39422K2": [
"Z6091"
],
"Z39422K3": "Z1004"
}
},
"Z10196K2": "^[aàâäeéèêëiîïoôöuùûüyÿ]"
},
"Z802K2": {
"Z1K1": "Z40",
"Z40K1": "Z41"
},
"Z802K3": {
"Z1K1": "Z40",
"Z40K1": "Z42"
}
},
"Z19565K4": {
"Z1K1": "Z40",
"Z40K1": "Z42"
},
"Z19565K5": {
"Z1K1": "Z40",
"Z40K1": "Z42"
}
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "French lexical form requires elision, comp"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
tbsb43dlg0p15xx8uygpjo9tdtzyqsb
299692
299691
2026-08-15T20:11:55Z
Jsamwrites
938
299692
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39479"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z39478",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z10196",
"Z10196K1": {
"Z1K1": "Z7",
"Z7K1": "Z14396",
"Z14396K1": {
"Z1K1": "Z7",
"Z7K1": "Z39422",
"Z39422K1": {
"Z1K1": "Z18",
"Z18K1": "Z39478K1"
},
"Z39422K2": [
"Z6091"
],
"Z39422K3": "Z1004"
}
},
"Z10196K2": "^[b-df-gj-np-tv-xzB-DF-GJ-NP-TV-XZ]"
},
"Z802K2": {
"Z1K1": "Z40",
"Z40K1": "Z42"
},
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z10196",
"Z10196K1": {
"Z1K1": "Z7",
"Z7K1": "Z14396",
"Z14396K1": {
"Z1K1": "Z7",
"Z7K1": "Z39422",
"Z39422K1": {
"Z1K1": "Z18",
"Z18K1": "Z39478K1"
},
"Z39422K2": [
"Z6091"
],
"Z39422K3": "Z1004"
}
},
"Z10196K2": "^[h]"
},
"Z802K2": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z23568",
"Z23568K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q131441009"
},
"Z23568K2": {
"Z1K1": "Z7",
"Z7K1": "Z39498",
"Z39498K1": {
"Z1K1": "Z7",
"Z7K1": "Z811",
"Z811K1": {
"Z1K1": "Z7",
"Z7K1": "Z6830",
"Z6830K1": {
"Z1K1": "Z18",
"Z18K1": "Z39478K1"
},
"Z6830K2": {
"Z1K1": "Z6092",
"Z6092K1": "P5137"
},
"Z6830K3": "Z1004"
}
}
}
},
"Z802K2": {
"Z1K1": "Z40",
"Z40K1": "Z42"
},
"Z802K3": {
"Z1K1": "Z40",
"Z40K1": "Z41"
}
},
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z10196",
"Z10196K1": {
"Z1K1": "Z7",
"Z7K1": "Z14396",
"Z14396K1": {
"Z1K1": "Z7",
"Z7K1": "Z39422",
"Z39422K1": {
"Z1K1": "Z18",
"Z18K1": "Z39478K1"
},
"Z39422K2": [
"Z6091"
],
"Z39422K3": "Z1004"
}
},
"Z10196K2": "^[aàâäeéèêëiîïoôöuùûüyÿ]"
},
"Z802K2": {
"Z1K1": "Z40",
"Z40K1": "Z41"
},
"Z802K3": {
"Z1K1": "Z40",
"Z40K1": "Z42"
}
}
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "French lexical form requires elision, comp"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
moa9n6avhe9lzrqbaut6j51k1jv9hfk
Z39480
0
90154
299622
299597
2026-08-15T12:13:32Z
99of9
1622
299622
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39480"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z38411",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z38411",
"Z38411K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q55771891"
},
"Z38411K2": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q17985717"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q17001625"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q7230471"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q31039436"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q24189336"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q31202277"
}
],
"Z38411K3": {
"Z1K1": "Z40",
"Z40K1": "Z41"
},
"Z38411K4": {
"Z1K1": "Z6091",
"Z6091K1": "Q192613"
},
"Z38411K5": "Z1113"
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z14392",
"Z14392K2": {
"Z1K1": "Z11",
"Z11K1": "Z1113",
"Z11K2": " It shares borders with Bajool, Bouldercombe, Port Alma, Port Curtis, Nerimbera and Nankin."
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "[en-au] Midgee borders 6 localities"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
pbu1oshs9b2bedg6b8mv652gdshl3t3
299623
299622
2026-08-15T12:15:38Z
99of9
1622
remove errant space
299623
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39480"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z38411",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z38411",
"Z38411K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q55771891"
},
"Z38411K2": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q17985717"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q17001625"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q7230471"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q31039436"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q24189336"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q31202277"
}
],
"Z38411K3": {
"Z1K1": "Z40",
"Z40K1": "Z41"
},
"Z38411K4": {
"Z1K1": "Z6091",
"Z6091K1": "Q192613"
},
"Z38411K5": "Z1113"
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z14392",
"Z14392K2": {
"Z1K1": "Z11",
"Z11K1": "Z1113",
"Z11K2": "It shares borders with Bajool, Bouldercombe, Port Alma, Port Curtis, Nerimbera and Nankin."
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "[en-au] Midgee borders 6 localities"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
8kbwdtvvxxhcbae2qujd1enl5ut1hqc
Z39485
0
90159
299621
2026-08-15T12:12:38Z
99of9
1622
299621
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39485"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z14392",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z14392",
"Z14392K1": {
"Z1K1": "Z7",
"Z7K1": "Z38425",
"Z38425K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q55771891"
},
"Z38425K2": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q17985717"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q17001625"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q7230471"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q31039436"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q24189336"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q31202277"
}
],
"Z38425K3": {
"Z1K1": "Z40",
"Z40K1": "Z41"
},
"Z38425K4": {
"Z1K1": "Z6091",
"Z6091K1": "Q192613"
},
"Z38425K5": "Z1113"
},
"Z14392K2": {
"Z1K1": "Z11",
"Z11K1": "Z1113",
"Z11K2": "It shares borders with Bajool, Bouldercombe, Port Alma, Port Curtis, Nerimbera and Nankin."
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z844",
"Z844K2": {
"Z1K1": "Z40",
"Z40K1": "Z41"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "result from function equal to text with language r"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
n2hfrrecjo77mvamjx467qoof0wpk95
Z39486
0
90160
299624
2026-08-15T12:17:59Z
99of9
1622
299624
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39486"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39486K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "entity"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": {
"Z1K1": "Z7",
"Z7K1": "Z881",
"Z881K1": "Z6091"
},
"Z17K2": "Z39486K2",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "list of neighbours"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z40",
"Z17K2": "Z39486K3",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "entity repeated?"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39486K4",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "tense"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z60",
"Z17K2": "Z39486K5",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "language requested"
}
]
}
}
],
"Z8K2": "Z11",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14"
],
"Z8K5": "Z39486"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "shares border with-sentence, default"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
38jemo5yc7l3nkq0p7d4iy9zvy2l4ns
299626
299624
2026-08-15T12:23:48Z
99of9
1622
Added Z39487 to the approved list of implementations
299626
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39486"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39486K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "entity"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": {
"Z1K1": "Z7",
"Z7K1": "Z881",
"Z881K1": "Z6091"
},
"Z17K2": "Z39486K2",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "list of neighbours"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z40",
"Z17K2": "Z39486K3",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "entity repeated?"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39486K4",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "tense"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z60",
"Z17K2": "Z39486K5",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "language requested"
}
]
}
}
],
"Z8K2": "Z11",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14",
"Z39487"
],
"Z8K5": "Z39486"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "shares border with-sentence, default"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
8n9ljwcyoo89a70w3iuvsiyxpxu49qi
299638
299626
2026-08-15T13:16:54Z
99of9
1622
Added Z39488 to the approved list of test cases
299638
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39486"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39486K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "entity"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": {
"Z1K1": "Z7",
"Z7K1": "Z881",
"Z881K1": "Z6091"
},
"Z17K2": "Z39486K2",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "list of neighbours"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z40",
"Z17K2": "Z39486K3",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "entity repeated?"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39486K4",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "tense"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z60",
"Z17K2": "Z39486K5",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "language requested"
}
]
}
}
],
"Z8K2": "Z11",
"Z8K3": [
"Z20",
"Z39488"
],
"Z8K4": [
"Z14",
"Z39487"
],
"Z8K5": "Z39486"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "shares border with-sentence, default"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
8tpzb7y2dflx79q7bqok9v09iqio0xx
Z39487
0
90161
299625
2026-08-15T12:23:31Z
99of9
1622
299625
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39487"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z39486",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z26107",
"Z26107K1": "Z1360",
"Z26107K2": {
"Z1K1": "Z7",
"Z7K1": "Z22511",
"Z22511K1": {
"Z1K1": "Z7",
"Z7K1": "Z22504",
"Z22504K1": [
"Z6",
{
"Z1K1": "Z7",
"Z7K1": "Z36270",
"Z36270K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q133346"
},
"Z36270K2": {
"Z1K1": "Z18",
"Z18K1": "Z39486K5"
}
},
"(",
{
"Z1K1": "Z7",
"Z7K1": "Z36270",
"Z36270K1": {
"Z1K1": "Z18",
"Z18K1": "Z39486K1"
},
"Z36270K2": {
"Z1K1": "Z18",
"Z18K1": "Z39486K5"
}
},
") = {",
{
"Z1K1": "Z7",
"Z7K1": "Z32283",
"Z32283K1": {
"Z1K1": "Z7",
"Z7K1": "Z13464",
"Z13464K1": "Z36270",
"Z13464K2": {
"Z1K1": "Z18",
"Z18K1": "Z39486K2"
},
"Z13464K3": {
"Z1K1": "Z18",
"Z18K1": "Z39486K5"
}
},
"Z32283K2": {
"Z1K1": "Z18",
"Z18K1": "Z39486K5"
}
},
"}"
]
}
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "shares border with sentence, default"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
1lp61d20bgpl3jwlm4adupi9xkb3t9y
Z39488
0
90162
299627
2026-08-15T12:31:53Z
99of9
1622
Border ( Judea ) = { Samaria }.
299627
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39488"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39486",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z39486",
"Z39486K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q94586595"
},
"Z39486K2": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q1294629"
}
],
"Z39486K3": {
"Z1K1": "Z40",
"Z40K1": "Z42"
},
"Z39486K4": {
"Z1K1": "Z6091",
"Z6091K1": "Q1994301"
},
"Z39486K5": "Z1002"
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z14392",
"Z14392K2": {
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Border ( Judea ) = { Samaria }."
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Border ( Judea ) = { Samaria }."
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
bhnmnnqv9ouldd0k8kr7ic88qrh2c0n
299628
299627
2026-08-15T12:32:49Z
99of9
1622
299628
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39488"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39486",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z39486",
"Z39486K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q94586595"
},
"Z39486K2": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q1294629"
}
],
"Z39486K3": {
"Z1K1": "Z40",
"Z40K1": "Z42"
},
"Z39486K4": {
"Z1K1": "Z6091",
"Z6091K1": "Q1994301"
},
"Z39486K5": "Z1002"
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z14392",
"Z14392K2": {
"Z1K1": "Z11",
"Z11K1": "Z1360",
"Z11K2": "Border ( Judea ) = { Samaria }."
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "English: [mul] \"Border ( Judea ) = { Samaria }.\""
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
57t3mgr2kew736vgqp4ahzut14li771
Z39489
0
90163
299639
2026-08-15T15:17:56Z
Artsiom91
2118
start
299639
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39489"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39489K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "country or region"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z60",
"Z17K2": "Z39489K2",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "requested language"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z25501",
"Z17K2": "Z39489K3",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "gender"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z28215",
"Z17K2": "Z39489K4",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "number"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z40",
"Z17K2": "Z39489K5",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "use noun form?"
}
]
}
}
],
"Z8K2": "Z11",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14"
],
"Z8K5": "Z39489"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Russian demonym"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Returns demonym (noun or adjective) of a country, continent, or former country in Russian."
}
]
}
}
74uaczjer9o0y7y8vnndxotegnci85q
299644
299639
2026-08-15T15:23:53Z
Artsiom91
2118
add ru desc
299644
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39489"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39489K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "country or region"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z60",
"Z17K2": "Z39489K2",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "requested language"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z25501",
"Z17K2": "Z39489K3",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "gender"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z28215",
"Z17K2": "Z39489K4",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "number"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z40",
"Z17K2": "Z39489K5",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "use noun form?"
}
]
}
}
],
"Z8K2": "Z11",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14"
],
"Z8K5": "Z39489"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Russian demonym"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1005",
"Z11K2": "русский демоним"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Returns demonym (noun or adjective) of a country, continent, or former country in Russian."
},
{
"Z1K1": "Z11",
"Z11K1": "Z1005",
"Z11K2": "Возвращает демоним (существительное или прилагательное) страны, региона или бывшей страны на русском языке."
}
]
}
}
ehwy25k0wec1w1pf8yv0di27q7xs8ix
299659
299644
2026-08-15T16:21:21Z
ZI Jony
1002
Added Z39490 to the approved list of implementations
299659
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39489"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39489K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "country or region"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z60",
"Z17K2": "Z39489K2",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "requested language"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z25501",
"Z17K2": "Z39489K3",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "gender"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z28215",
"Z17K2": "Z39489K4",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "number"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z40",
"Z17K2": "Z39489K5",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "use noun form?"
}
]
}
}
],
"Z8K2": "Z11",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14",
"Z39490"
],
"Z8K5": "Z39489"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Russian demonym"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1005",
"Z11K2": "русский демоним"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Returns demonym (noun or adjective) of a country, continent, or former country in Russian."
},
{
"Z1K1": "Z11",
"Z11K1": "Z1005",
"Z11K2": "Возвращает демоним (существительное или прилагательное) страны, региона или бывшей страны на русском языке."
}
]
}
}
lk6kqq9gaitl3e5zb2cs8hada9nsldf
299660
299659
2026-08-15T16:21:26Z
ZI Jony
1002
Added Z39491, Z39492 and Z39493 to the approved list of test cases
299660
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39489"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39489K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "country or region"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z60",
"Z17K2": "Z39489K2",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "requested language"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z25501",
"Z17K2": "Z39489K3",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "gender"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z28215",
"Z17K2": "Z39489K4",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "number"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z40",
"Z17K2": "Z39489K5",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "use noun form?"
}
]
}
}
],
"Z8K2": "Z11",
"Z8K3": [
"Z20",
"Z39491",
"Z39492",
"Z39493"
],
"Z8K4": [
"Z14",
"Z39490"
],
"Z8K5": "Z39489"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Russian demonym"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1005",
"Z11K2": "русский демоним"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Returns demonym (noun or adjective) of a country, continent, or former country in Russian."
},
{
"Z1K1": "Z11",
"Z11K1": "Z1005",
"Z11K2": "Возвращает демоним (существительное или прилагательное) страны, региона или бывшей страны на русском языке."
}
]
}
}
o674ifime4cwtc8tagvnbgox5qtc5z1
Z39490
0
90164
299642
2026-08-15T15:22:07Z
Artsiom91
2118
copy from mul fallback
299642
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39490"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z39489",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z18",
"Z18K1": ""
},
"Z802K2": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z813",
"Z813K1": {
"Z1K1": "Z7",
"Z7K1": "Z39011",
"Z39011K1": {
"Z1K1": "Z7",
"Z7K1": "Z873",
"Z873K1": "Z6825",
"Z873K2": {
"Z1K1": "Z7",
"Z7K1": "Z6830",
"Z6830K1": {
"Z1K1": "Z18",
"Z18K1": ""
},
"Z6830K2": {
"Z1K1": "Z6092",
"Z6092K1": "P6271"
},
"Z6830K3": {
"Z1K1": "Z18",
"Z18K1": ""
}
}
},
"Z39011K2": {
"Z1K1": "Z18",
"Z18K1": ""
},
"Z39011K3": {
"Z1K1": "Z18",
"Z18K1": ""
}
}
},
"Z802K2": {
"Z1K1": "Z7",
"Z7K1": "Z38994",
"Z38994K1": {
"Z1K1": "Z18",
"Z18K1": ""
},
"Z38994K2": "Z1002",
"Z38994K3": {
"Z1K1": "Z18",
"Z18K1": ""
},
"Z38994K4": {
"Z1K1": "Z18",
"Z18K1": ""
},
"Z38994K5": {
"Z1K1": "Z18",
"Z18K1": ""
}
},
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z13036",
"Z13036K1": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z6894",
"Z6894K1": {
"Z1K1": "Z18",
"Z18K1": ""
},
"Z6894K2": {
"Z1K1": "Z28215",
"Z28215K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q110786"
}
}
},
"Z802K2": "Z19252",
"Z802K3": "Z19260"
},
"Z13036K2": {
"Z1K1": "Z7",
"Z7K1": "Z811",
"Z811K1": {
"Z1K1": "Z7",
"Z7K1": "Z39011",
"Z39011K1": {
"Z1K1": "Z7",
"Z7K1": "Z873",
"Z873K1": "Z6825",
"Z873K2": {
"Z1K1": "Z7",
"Z7K1": "Z6830",
"Z6830K1": {
"Z1K1": "Z18",
"Z18K1": ""
},
"Z6830K2": {
"Z1K1": "Z6092",
"Z6092K1": "P6271"
},
"Z6830K3": {
"Z1K1": "Z18",
"Z18K1": ""
}
}
},
"Z39011K2": {
"Z1K1": "Z18",
"Z18K1": ""
},
"Z39011K3": {
"Z1K1": "Z18",
"Z18K1": ""
}
}
}
}
},
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z19530",
"Z19530K1": {
"Z1K1": "Z7",
"Z7K1": "Z22807",
"Z22807K1": {
"Z1K1": "Z7",
"Z7K1": "Z873",
"Z873K1": "Z6825",
"Z873K2": {
"Z1K1": "Z7",
"Z7K1": "Z30460",
"Z30460K1": {
"Z1K1": "Z18",
"Z18K1": ""
},
"Z30460K2": {
"Z1K1": "Z18",
"Z18K1": ""
}
}
},
"Z22807K2": {
"Z1K1": "Z6091",
"Z6091K1": "Q34698"
}
},
"Z19530K2": [
"Z6091"
]
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
cs0megupml3egif9v6mhbaus7xpo0or
299643
299642
2026-08-15T15:22:59Z
Artsiom91
2118
add labels
299643
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39490"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z39489",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z18",
"Z18K1": ""
},
"Z802K2": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z813",
"Z813K1": {
"Z1K1": "Z7",
"Z7K1": "Z39011",
"Z39011K1": {
"Z1K1": "Z7",
"Z7K1": "Z873",
"Z873K1": "Z6825",
"Z873K2": {
"Z1K1": "Z7",
"Z7K1": "Z6830",
"Z6830K1": {
"Z1K1": "Z18",
"Z18K1": ""
},
"Z6830K2": {
"Z1K1": "Z6092",
"Z6092K1": "P6271"
},
"Z6830K3": {
"Z1K1": "Z18",
"Z18K1": ""
}
}
},
"Z39011K2": {
"Z1K1": "Z18",
"Z18K1": ""
},
"Z39011K3": {
"Z1K1": "Z18",
"Z18K1": ""
}
}
},
"Z802K2": {
"Z1K1": "Z7",
"Z7K1": "Z38994",
"Z38994K1": {
"Z1K1": "Z18",
"Z18K1": ""
},
"Z38994K2": "Z1002",
"Z38994K3": {
"Z1K1": "Z18",
"Z18K1": ""
},
"Z38994K4": {
"Z1K1": "Z18",
"Z18K1": ""
},
"Z38994K5": {
"Z1K1": "Z18",
"Z18K1": ""
}
},
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z13036",
"Z13036K1": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z6894",
"Z6894K1": {
"Z1K1": "Z18",
"Z18K1": ""
},
"Z6894K2": {
"Z1K1": "Z28215",
"Z28215K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q110786"
}
}
},
"Z802K2": "Z19252",
"Z802K3": "Z19260"
},
"Z13036K2": {
"Z1K1": "Z7",
"Z7K1": "Z811",
"Z811K1": {
"Z1K1": "Z7",
"Z7K1": "Z39011",
"Z39011K1": {
"Z1K1": "Z7",
"Z7K1": "Z873",
"Z873K1": "Z6825",
"Z873K2": {
"Z1K1": "Z7",
"Z7K1": "Z6830",
"Z6830K1": {
"Z1K1": "Z18",
"Z18K1": ""
},
"Z6830K2": {
"Z1K1": "Z6092",
"Z6092K1": "P6271"
},
"Z6830K3": {
"Z1K1": "Z18",
"Z18K1": ""
}
}
},
"Z39011K2": {
"Z1K1": "Z18",
"Z18K1": ""
},
"Z39011K3": {
"Z1K1": "Z18",
"Z18K1": ""
}
}
}
}
},
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z19530",
"Z19530K1": {
"Z1K1": "Z7",
"Z7K1": "Z22807",
"Z22807K1": {
"Z1K1": "Z7",
"Z7K1": "Z873",
"Z873K1": "Z6825",
"Z873K2": {
"Z1K1": "Z7",
"Z7K1": "Z30460",
"Z30460K1": {
"Z1K1": "Z18",
"Z18K1": ""
},
"Z30460K2": {
"Z1K1": "Z18",
"Z18K1": ""
}
}
},
"Z22807K2": {
"Z1K1": "Z6091",
"Z6091K1": "Q34698"
}
},
"Z19530K2": [
"Z6091"
]
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1005",
"Z11K2": "русский демоним, композиция"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Russian demonym, composition"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
18av4zf42gv51dmwx4me81dqr6vn9us
299645
299643
2026-08-15T15:31:31Z
Artsiom91
2118
fix inputs
299645
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39490"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z39489",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z18",
"Z18K1": "Z39489K5"
},
"Z802K2": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z813",
"Z813K1": {
"Z1K1": "Z7",
"Z7K1": "Z39011",
"Z39011K1": {
"Z1K1": "Z7",
"Z7K1": "Z873",
"Z873K1": "Z6825",
"Z873K2": {
"Z1K1": "Z7",
"Z7K1": "Z6830",
"Z6830K1": {
"Z1K1": "Z18",
"Z18K1": "Z39489K1"
},
"Z6830K2": {
"Z1K1": "Z6092",
"Z6092K1": "P6271"
},
"Z6830K3": {
"Z1K1": "Z18",
"Z18K1": "Z39489K2"
}
}
},
"Z39011K2": {
"Z1K1": "Z18",
"Z18K1": "Z39489K3"
},
"Z39011K3": {
"Z1K1": "Z18",
"Z18K1": "Z39489K1"
}
}
},
"Z802K2": {
"Z1K1": "Z7",
"Z7K1": "Z38994",
"Z38994K1": {
"Z1K1": "Z18",
"Z18K1": "Z39489K1"
},
"Z38994K2": "Z1002",
"Z38994K3": {
"Z1K1": "Z18",
"Z18K1": "Z39489K3"
},
"Z38994K4": {
"Z1K1": "Z18",
"Z18K1": "Z39489K4"
},
"Z38994K5": {
"Z1K1": "Z18",
"Z18K1": "Z39489K5"
}
},
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z13036",
"Z13036K1": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z6894",
"Z6894K1": {
"Z1K1": "Z18",
"Z18K1": "Z39489K4"
},
"Z6894K2": {
"Z1K1": "Z28215",
"Z28215K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q110786"
}
}
},
"Z802K2": "Z19252",
"Z802K3": "Z19260"
},
"Z13036K2": {
"Z1K1": "Z7",
"Z7K1": "Z811",
"Z811K1": {
"Z1K1": "Z7",
"Z7K1": "Z39011",
"Z39011K1": {
"Z1K1": "Z7",
"Z7K1": "Z873",
"Z873K1": "Z6825",
"Z873K2": {
"Z1K1": "Z7",
"Z7K1": "Z6830",
"Z6830K1": {
"Z1K1": "Z18",
"Z18K1": "Z39489K1"
},
"Z6830K2": {
"Z1K1": "Z6092",
"Z6092K1": "P6271"
},
"Z6830K3": {
"Z1K1": "Z18",
"Z18K1": "Z39489K2"
}
}
},
"Z39011K2": {
"Z1K1": "Z18",
"Z18K1": "Z39489K3"
},
"Z39011K3": {
"Z1K1": "Z18",
"Z18K1": "Z39489K1"
}
}
}
}
},
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z19530",
"Z19530K1": {
"Z1K1": "Z7",
"Z7K1": "Z22807",
"Z22807K1": {
"Z1K1": "Z7",
"Z7K1": "Z873",
"Z873K1": "Z6825",
"Z873K2": {
"Z1K1": "Z7",
"Z7K1": "Z30460",
"Z30460K1": {
"Z1K1": "Z18",
"Z18K1": "Z39489K1"
},
"Z30460K2": {
"Z1K1": "Z18",
"Z18K1": "Z39489K2"
}
}
},
"Z22807K2": {
"Z1K1": "Z6091",
"Z6091K1": "Q34698"
}
},
"Z19530K2": [
"Z6091"
]
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1005",
"Z11K2": "русский демоним, композиция"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Russian demonym, composition"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
rgfrfbac4cpq8sat87mqcutnlhk3v1g
299646
299645
2026-08-15T15:42:44Z
Artsiom91
2118
use Z39473
299646
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39490"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z39489",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z18",
"Z18K1": "Z39489K5"
},
"Z802K2": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z813",
"Z813K1": {
"Z1K1": "Z7",
"Z7K1": "Z39011",
"Z39011K1": {
"Z1K1": "Z7",
"Z7K1": "Z873",
"Z873K1": "Z6825",
"Z873K2": {
"Z1K1": "Z7",
"Z7K1": "Z6830",
"Z6830K1": {
"Z1K1": "Z18",
"Z18K1": "Z39489K1"
},
"Z6830K2": {
"Z1K1": "Z6092",
"Z6092K1": "P6271"
},
"Z6830K3": {
"Z1K1": "Z18",
"Z18K1": "Z39489K2"
}
}
},
"Z39011K2": {
"Z1K1": "Z18",
"Z18K1": "Z39489K3"
},
"Z39011K3": {
"Z1K1": "Z18",
"Z18K1": "Z39489K1"
}
}
},
"Z802K2": {
"Z1K1": "Z7",
"Z7K1": "Z38994",
"Z38994K1": {
"Z1K1": "Z18",
"Z18K1": "Z39489K1"
},
"Z38994K2": "Z1002",
"Z38994K3": {
"Z1K1": "Z18",
"Z18K1": "Z39489K3"
},
"Z38994K4": {
"Z1K1": "Z18",
"Z18K1": "Z39489K4"
},
"Z38994K5": {
"Z1K1": "Z18",
"Z18K1": "Z39489K5"
}
},
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z13036",
"Z13036K1": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z6894",
"Z6894K1": {
"Z1K1": "Z18",
"Z18K1": "Z39489K4"
},
"Z6894K2": {
"Z1K1": "Z28215",
"Z28215K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q110786"
}
}
},
"Z802K2": "Z19252",
"Z802K3": "Z19260"
},
"Z13036K2": {
"Z1K1": "Z7",
"Z7K1": "Z811",
"Z811K1": {
"Z1K1": "Z7",
"Z7K1": "Z39011",
"Z39011K1": {
"Z1K1": "Z7",
"Z7K1": "Z873",
"Z873K1": "Z6825",
"Z873K2": {
"Z1K1": "Z7",
"Z7K1": "Z6830",
"Z6830K1": {
"Z1K1": "Z18",
"Z18K1": "Z39489K1"
},
"Z6830K2": {
"Z1K1": "Z6092",
"Z6092K1": "P6271"
},
"Z6830K3": {
"Z1K1": "Z18",
"Z18K1": "Z39489K2"
}
}
},
"Z39011K2": {
"Z1K1": "Z18",
"Z18K1": "Z39489K3"
},
"Z39011K3": {
"Z1K1": "Z18",
"Z18K1": "Z39489K1"
}
}
}
}
},
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z39473",
"Z39473K1": {
"Z1K1": "Z7",
"Z7K1": "Z24766",
"Z24766K1": {
"Z1K1": "Z18",
"Z18K1": "Z39489K1"
},
"Z24766K2": {
"Z1K1": "Z18",
"Z18K1": "Z39489K2"
}
},
"Z39473K2": {
"Z1K1": "Z18",
"Z18K1": "Z39489K3"
},
"Z39473K3": {
"Z1K1": "Z18",
"Z18K1": "Z39489K4"
}
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1005",
"Z11K2": "русский демоним, композиция"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Russian demonym, composition"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
0x46jq8i1ohcqsy4kbm9w6wcpmqmytq
Z39491
0
90165
299647
2026-08-15T15:46:21Z
Artsiom91
2118
new testcase
299647
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39491"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39489",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z39489",
"Z39489K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q159"
},
"Z39489K2": "Z1005",
"Z39489K3": {
"Z1K1": "Z25501",
"Z25501K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q499327"
}
},
"Z39489K4": {
"Z1K1": "Z28215",
"Z28215K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q110786"
}
},
"Z39489K5": {
"Z1K1": "Z40",
"Z40K1": "Z42"
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z14392",
"Z14392K2": {
"Z1K1": "Z11",
"Z11K1": {
"Z1K1": "Z9",
"Z9K1": ""
},
"Z11K2": "российский"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1005",
"Z11K2": "(Россия, ru, ср, ед, F) → российский"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
os2myhhvxi2sxlgwl83fdyqbqce05f4
299648
299647
2026-08-15T15:47:21Z
Artsiom91
2118
fix lang
299648
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39491"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39489",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z39489",
"Z39489K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q159"
},
"Z39489K2": "Z1005",
"Z39489K3": {
"Z1K1": "Z25501",
"Z25501K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q499327"
}
},
"Z39489K4": {
"Z1K1": "Z28215",
"Z28215K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q110786"
}
},
"Z39489K5": {
"Z1K1": "Z40",
"Z40K1": "Z42"
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z14392",
"Z14392K2": {
"Z1K1": "Z11",
"Z11K1": "Z1005",
"Z11K2": "российский"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1005",
"Z11K2": "(Россия, ru, ср, ед, F) → российский"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
02cm14n6kixp96n3yizv7ds9t93ywtb
299649
299648
2026-08-15T15:48:37Z
Artsiom91
2118
en desc
299649
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39491"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39489",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z39489",
"Z39489K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q159"
},
"Z39489K2": "Z1005",
"Z39489K3": {
"Z1K1": "Z25501",
"Z25501K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q499327"
}
},
"Z39489K4": {
"Z1K1": "Z28215",
"Z28215K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q110786"
}
},
"Z39489K5": {
"Z1K1": "Z40",
"Z40K1": "Z42"
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z14392",
"Z14392K2": {
"Z1K1": "Z11",
"Z11K1": "Z1005",
"Z11K2": "российский"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1005",
"Z11K2": "(Россия, ru, м, ед, F) → российский"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "(Россия, ru, masc., sing., F) → российский"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
6iqj13iospliaz957nphcv2z2b7bq00
299653
299649
2026-08-15T15:52:56Z
Artsiom91
2118
fix en label
299653
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39491"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39489",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z39489",
"Z39489K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q159"
},
"Z39489K2": "Z1005",
"Z39489K3": {
"Z1K1": "Z25501",
"Z25501K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q499327"
}
},
"Z39489K4": {
"Z1K1": "Z28215",
"Z28215K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q110786"
}
},
"Z39489K5": {
"Z1K1": "Z40",
"Z40K1": "Z42"
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z14392",
"Z14392K2": {
"Z1K1": "Z11",
"Z11K1": "Z1005",
"Z11K2": "российский"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1005",
"Z11K2": "(Россия, ru, м, ед, F) → российский"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "(Russia, ru, masc., sing., F) → российский"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
ou0laqhr8d3jgd3kjukcws3izj8694e
Z39492
0
90166
299650
2026-08-15T15:50:02Z
Artsiom91
2118
new testcase
299650
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39492"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39489",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z39489",
"Z39489K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q38"
},
"Z39489K2": "Z1005",
"Z39489K3": {
"Z1K1": "Z25501",
"Z25501K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q1775415"
}
},
"Z39489K4": {
"Z1K1": "Z28215",
"Z28215K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q110786"
}
},
"Z39489K5": {
"Z1K1": "Z40",
"Z40K1": "Z41"
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z14392",
"Z14392K2": {
"Z1K1": "Z11",
"Z11K1": "Z1005",
"Z11K2": "итальянка"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1005",
"Z11K2": "(Италия, ru, жен, ед, T) → итальянка"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "(Италия, ru, fem., sing., T) → итальянка"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
06az6jmz365491jhb1qzt4k4g15g8vy
299652
299650
2026-08-15T15:52:42Z
Artsiom91
2118
fix en label
299652
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39492"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39489",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z39489",
"Z39489K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q38"
},
"Z39489K2": "Z1005",
"Z39489K3": {
"Z1K1": "Z25501",
"Z25501K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q1775415"
}
},
"Z39489K4": {
"Z1K1": "Z28215",
"Z28215K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q110786"
}
},
"Z39489K5": {
"Z1K1": "Z40",
"Z40K1": "Z41"
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z14392",
"Z14392K2": {
"Z1K1": "Z11",
"Z11K1": "Z1005",
"Z11K2": "итальянка"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1005",
"Z11K2": "(Италия, ru, жен, ед, T) → итальянка"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "(Italy, ru, fem., sing., T) → итальянка"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
b6aanhe9qp6iljwt43l0zmsn73ynfhu
Z39493
0
90167
299651
2026-08-15T15:52:15Z
Artsiom91
2118
new testcase
299651
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39493"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39489",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z39489",
"Z39489K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q184"
},
"Z39489K2": "Z1005",
"Z39489K3": {
"Z1K1": "Z25501",
"Z25501K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q499327"
}
},
"Z39489K4": {
"Z1K1": "Z28215",
"Z28215K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q146786"
}
},
"Z39489K5": {
"Z1K1": "Z40",
"Z40K1": "Z42"
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z14392",
"Z14392K2": {
"Z1K1": "Z11",
"Z11K1": "Z1005",
"Z11K2": "белорусские"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1005",
"Z11K2": "(Беларусь, ru, муж, мн, F) → белорусские"
},
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "(Belarus, ru, masc., pl., F) → белорусские"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
m82bnooz4iv1sbbk74b85fl6h0bm426
Z39494
0
90168
299662
2026-08-15T17:11:00Z
HenkvD
1290
intro for species with hypernym, Papiamento
299662
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39494"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39494K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "species"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39494K2",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Taxa hypernym"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z60",
"Z17K2": "Z39494K3",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "language"
}
]
}
}
],
"Z8K2": "Z89",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14"
],
"Z8K5": "Z39494"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "intro for species with hypernym, Papiamento"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
32vdiler5ztkxvdve6b063rcs2tmit1
299664
299662
2026-08-15T17:12:35Z
HenkvD
1290
Added Z39495 to the approved list of test cases
299664
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39494"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39494K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "species"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39494K2",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Taxa hypernym"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z60",
"Z17K2": "Z39494K3",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "language"
}
]
}
}
],
"Z8K2": "Z89",
"Z8K3": [
"Z20",
"Z39495"
],
"Z8K4": [
"Z14"
],
"Z8K5": "Z39494"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "intro for species with hypernym, Papiamento"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
lcsz1khmk3q8185ikdydgf9ywzcz6hv
299666
299664
2026-08-15T17:28:10Z
HenkvD
1290
Added Z39496 to the approved list of implementations
299666
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39494"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39494K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "species"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39494K2",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Taxa hypernym"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z60",
"Z17K2": "Z39494K3",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "language"
}
]
}
}
],
"Z8K2": "Z89",
"Z8K3": [
"Z20",
"Z39495"
],
"Z8K4": [
"Z14",
"Z39496"
],
"Z8K5": "Z39494"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "intro for species with hypernym, Papiamento"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
e7cfaxs7q6aek6q0arqzdro704a4hmn
Z39495
0
90169
299663
2026-08-15T17:12:24Z
HenkvD
1290
Intro sentence for Lion in Papiamento
299663
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39495"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39494",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z39494",
"Z39494K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q140"
},
"Z39494K2": {
"Z1K1": "Z6091",
"Z6091K1": "Q6667323"
},
"Z39494K3": "Z1137"
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z877",
"Z877K2": {
"Z1K1": "Z89",
"Z89K1": "TBD"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Intro sentence for Lion in Papiamento"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
f2upog4vah9x4k6gkra3i5vhsyeyzjg
299668
299663
2026-08-15T17:35:29Z
HenkvD
1290
Intro sentence for Lion in Papiamento
299668
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39495"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39494",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z39494",
"Z39494K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q140"
},
"Z39494K2": {
"Z1K1": "Z6091",
"Z6091K1": "Q6667323"
},
"Z39494K3": "Z1137"
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z877",
"Z877K2": {
"Z1K1": "Z89",
"Z89K1": "\u003Cb\u003E\u003Ci\u003EPanthera leo\u003C/i\u003E\u003C/b\u003E ta un espesie de pushi grandi den e famia \u003Ca href=\"https://abstract.wikipedia.org/wiki/Q25265\"\u003EFelidae\u003C/a\u003E. E espesie a wòrdu deskribí na 1758 pa \u003Ca href=\"https://abstract.wikipedia.org/wiki/Q1043\"\u003ECarl Linnaeus\u003C/a\u003E.\u003Csup class=\"ext-wikilambda-reference\"\u003E\u003Ca href=\"https://www.wikidata.org/wiki/Q140#P225\"\u003EWikidata: Panthera leo (Q140#P225)\u003C/a\u003E\u003C/sup\u003E \u003Cem\u003EPanthera leo\u003C/em\u003E ta wòrdu klasifiká komo un espesie vulnerabel dor di \u003Ca href=\"https://abstract.wikipedia.org/wiki/Q48268\"\u003EInternational Union for Conservation of Nature\u003C/a\u003E (IUCN).\u003Csup class=\"ext-wikilambda-reference\"\u003E\u003Ca href=\"https://www.wikidata.org/wiki/Q140#P141\"\u003EWikidata: Panthera leo (Q140#P141)\u003C/a\u003E\u003C/sup\u003E"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Intro sentence for Lion in Papiamento"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
qauth1db92d0v2ei6nlsn9pohwtwf9p
Z39496
0
90170
299665
2026-08-15T17:26:54Z
HenkvD
1290
intro for species with hypernym, Papiamento Comp
299665
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39496"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z39494",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z27926",
"Z27926K1": [
"Z89",
{
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z28676",
"Z28676K1": {
"Z1K1": "Z7",
"Z7K1": "Z37821",
"Z37821K1": {
"Z1K1": "Z18",
"Z18K1": "Z39494K1"
},
"Z37821K2": {
"Z1K1": "Z18",
"Z18K1": "Z39494K3"
}
},
"Z28676K2": "Z37463"
},
"Z802K2": {
"Z1K1": "Z7",
"Z7K1": "Z27926",
"Z27926K1": [
"Z89",
{
"Z1K1": "Z89",
"Z89K1": "\u003Cb\u003E\u003Ci\u003E"
},
{
"Z1K1": "Z7",
"Z7K1": "Z27868",
"Z27868K1": {
"Z1K1": "Z7",
"Z7K1": "Z19308",
"Z19308K1": {
"Z1K1": "Z7",
"Z7K1": "Z37836",
"Z37836K1": {
"Z1K1": "Z18",
"Z18K1": "Z39494K1"
}
}
}
},
{
"Z1K1": "Z89",
"Z89K1": "\u003C/i\u003E\u003C/b\u003E"
}
]
},
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z27926",
"Z27926K1": [
"Z89",
{
"Z1K1": "Z89",
"Z89K1": "\u003Ci\u003E"
},
{
"Z1K1": "Z7",
"Z7K1": "Z36961",
"Z36961K1": {
"Z1K1": "Z7",
"Z7K1": "Z27868",
"Z27868K1": {
"Z1K1": "Z7",
"Z7K1": "Z19308",
"Z19308K1": {
"Z1K1": "Z7",
"Z7K1": "Z37836",
"Z37836K1": {
"Z1K1": "Z18",
"Z18K1": "Z39494K1"
}
}
}
}
},
{
"Z1K1": "Z89",
"Z89K1": "\u003C/i\u003E ("
},
{
"Z1K1": "Z7",
"Z7K1": "Z28914",
"Z28914K1": {
"Z1K1": "Z7",
"Z7K1": "Z10771",
"Z10771K1": {
"Z1K1": "Z7",
"Z7K1": "Z37821",
"Z37821K1": {
"Z1K1": "Z18",
"Z18K1": "Z39494K1"
},
"Z37821K2": {
"Z1K1": "Z18",
"Z18K1": "Z39494K3"
}
}
}
},
{
"Z1K1": "Z89",
"Z89K1": ")"
}
]
}
},
{
"Z1K1": "Z89",
"Z89K1": " ta un espesie "
},
{
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z10174",
"Z10174K1": {
"Z1K1": "Z7",
"Z7K1": "Z24331",
"Z24331K1": {
"Z1K1": "Z7",
"Z7K1": "Z20041",
"Z20041K1": {
"Z1K1": "Z18",
"Z18K1": "Z39494K2"
}
}
},
"Z10174K2": {
"Z1K1": "Z7",
"Z7K1": "Z10216",
"Z10216K1": {
"Z1K1": "Z7",
"Z7K1": "Z35811",
"Z35811K1": {
"Z1K1": "Z7",
"Z7K1": "Z31676",
"Z31676K1": {
"Z1K1": "Z18",
"Z18K1": "Z39494K2"
},
"Z31676K2": {
"Z1K1": "Z18",
"Z18K1": "Z39494K3"
}
}
}
}
},
"Z802K2": {
"Z1K1": "Z7",
"Z7K1": "Z27926",
"Z27926K1": [
"Z89",
{
"Z1K1": "Z89",
"Z89K1": "de "
},
{
"Z1K1": "Z7",
"Z7K1": "Z27868",
"Z27868K1": {
"Z1K1": "Z7",
"Z7K1": "Z14396",
"Z14396K1": {
"Z1K1": "Z7",
"Z7K1": "Z31676",
"Z31676K1": {
"Z1K1": "Z18",
"Z18K1": "Z39494K2"
},
"Z31676K2": {
"Z1K1": "Z18",
"Z18K1": "Z39494K3"
}
}
}
},
{
"Z1K1": "Z89",
"Z89K1": " "
}
]
},
"Z802K3": {
"Z1K1": "Z89",
"Z89K1": ""
}
},
{
"Z1K1": "Z89",
"Z89K1": "den e famia "
},
{
"Z1K1": "Z7",
"Z7K1": "Z36489",
"Z36489K1": {
"Z1K1": "Z7",
"Z7K1": "Z37725",
"Z37725K1": {
"Z1K1": "Z18",
"Z18K1": "Z39494K1"
}
},
"Z36489K2": {
"Z1K1": "Z7",
"Z7K1": "Z23459",
"Z23459K1": {
"Z1K1": "Z7",
"Z7K1": "Z30120",
"Z30120K1": {
"Z1K1": "Z7",
"Z7K1": "Z37725",
"Z37725K1": {
"Z1K1": "Z18",
"Z18K1": "Z39494K1"
}
},
"Z30120K2": [
"Z6030",
"Z6036"
],
"Z30120K3": [
"Z60"
],
"Z30120K4": [
"Z6092",
{
"Z1K1": "Z6092",
"Z6092K1": "P225"
}
]
},
"Z23459K2": {
"Z1K1": "Z6092",
"Z6092K1": "P225"
}
}
},
{
"Z1K1": "Z89",
"Z89K1": ". "
},
{
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z37925",
"Z37925K1": {
"Z1K1": "Z7",
"Z7K1": "Z811",
"Z811K1": {
"Z1K1": "Z7",
"Z7K1": "Z37808",
"Z37808K1": {
"Z1K1": "Z18",
"Z18K1": "Z39494K1"
},
"Z37808K2": {
"Z1K1": "Z18",
"Z18K1": "Z39494K3"
}
}
}
},
"Z802K2": {
"Z1K1": "Z7",
"Z7K1": "Z27926",
"Z27926K1": [
"Z89",
{
"Z1K1": "Z89",
"Z89K1": "E espesie a wòrdu deskribí na "
},
{
"Z1K1": "Z7",
"Z7K1": "Z27868",
"Z27868K1": {
"Z1K1": "Z7",
"Z7K1": "Z811",
"Z811K1": {
"Z1K1": "Z7",
"Z7K1": "Z37808",
"Z37808K1": {
"Z1K1": "Z18",
"Z18K1": "Z39494K1"
},
"Z37808K2": {
"Z1K1": "Z18",
"Z18K1": "Z39494K3"
}
}
}
},
{
"Z1K1": "Z89",
"Z89K1": " pa "
},
{
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z23120",
"Z23120K1": {
"Z1K1": "Z7",
"Z7K1": "Z16360",
"Z16360K1": {
"Z1K1": "Z7",
"Z7K1": "Z37808",
"Z37808K1": {
"Z1K1": "Z18",
"Z18K1": "Z39494K1"
},
"Z37808K2": {
"Z1K1": "Z18",
"Z18K1": "Z39494K3"
}
}
}
},
"Z802K2": {
"Z1K1": "Z7",
"Z7K1": "Z37927",
"Z37927K1": {
"Z1K1": "Z18",
"Z18K1": "Z39494K1"
},
"Z37927K2": {
"Z1K1": "Z18",
"Z18K1": "Z39494K3"
}
},
"Z802K3": {
"Z1K1": "Z89",
"Z89K1": ""
}
},
{
"Z1K1": "Z89",
"Z89K1": "."
},
{
"Z1K1": "Z7",
"Z7K1": "Z32891",
"Z32891K1": {
"Z1K1": "Z7",
"Z7K1": "Z36240",
"Z36240K1": {
"Z1K1": "Z18",
"Z18K1": "Z39494K1"
},
"Z36240K2": {
"Z1K1": "Z6092",
"Z6092K1": "P225"
},
"Z36240K3": {
"Z1K1": "Z18",
"Z18K1": "Z39494K3"
}
}
},
{
"Z1K1": "Z89",
"Z89K1": " "
}
]
},
"Z802K3": {
"Z1K1": "Z89",
"Z89K1": "\u003C!-- no describing date and/or authority --\u003E"
}
},
{
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z10216",
"Z10216K1": {
"Z1K1": "Z7",
"Z7K1": "Z28676",
"Z28676K1": {
"Z1K1": "Z7",
"Z7K1": "Z37833",
"Z37833K1": {
"Z1K1": "Z18",
"Z18K1": "Z39494K1"
},
"Z37833K2": {
"Z1K1": "Z18",
"Z18K1": "Z39494K3"
}
},
"Z28676K2": "Z28158"
}
},
"Z802K2": {
"Z1K1": "Z7",
"Z7K1": "Z27926",
"Z27926K1": [
"Z89",
{
"Z1K1": "Z7",
"Z7K1": "Z37441",
"Z37441K1": {
"Z1K1": "Z18",
"Z18K1": "Z39494K1"
}
},
{
"Z1K1": "Z89",
"Z89K1": " eo ta wòrdu klasifiká komo un espesie "
},
{
"Z1K1": "Z7",
"Z7K1": "Z27868",
"Z27868K1": {
"Z1K1": "Z7",
"Z7K1": "Z37833",
"Z37833K1": {
"Z1K1": "Z18",
"Z18K1": "Z39494K1"
},
"Z37833K2": {
"Z1K1": "Z18",
"Z18K1": "Z39494K3"
}
}
},
{
"Z1K1": "Z89",
"Z89K1": " dor di "
},
{
"Z1K1": "Z7",
"Z7K1": "Z32428",
"Z32428K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q48268"
},
"Z32428K2": {
"Z1K1": "Z18",
"Z18K1": "Z39494K3"
}
},
{
"Z1K1": "Z89",
"Z89K1": " (IUCN)."
},
{
"Z1K1": "Z7",
"Z7K1": "Z32891",
"Z32891K1": {
"Z1K1": "Z7",
"Z7K1": "Z36240",
"Z36240K1": {
"Z1K1": "Z18",
"Z18K1": "Z39494K1"
},
"Z36240K2": {
"Z1K1": "Z6092",
"Z6092K1": "P141"
},
"Z36240K3": {
"Z1K1": "Z18",
"Z18K1": "Z39494K3"
}
}
},
{
"Z1K1": "Z89",
"Z89K1": ""
}
]
},
"Z802K3": {
"Z1K1": "Z89",
"Z89K1": "\u003C!-- Not assessed by IUCN --\u003E"
}
}
]
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "intro for species with hypernym, Papiamento Comp"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
6i2qxj78e0dq6n3h783gxub8y3e6j6t
299667
299665
2026-08-15T17:33:49Z
HenkvD
1290
minor change
299667
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39496"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z39494",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z27926",
"Z27926K1": [
"Z89",
{
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z28676",
"Z28676K1": {
"Z1K1": "Z7",
"Z7K1": "Z37821",
"Z37821K1": {
"Z1K1": "Z18",
"Z18K1": "Z39494K1"
},
"Z37821K2": {
"Z1K1": "Z18",
"Z18K1": "Z39494K3"
}
},
"Z28676K2": "Z37463"
},
"Z802K2": {
"Z1K1": "Z7",
"Z7K1": "Z27926",
"Z27926K1": [
"Z89",
{
"Z1K1": "Z89",
"Z89K1": "\u003Cb\u003E\u003Ci\u003E"
},
{
"Z1K1": "Z7",
"Z7K1": "Z27868",
"Z27868K1": {
"Z1K1": "Z7",
"Z7K1": "Z19308",
"Z19308K1": {
"Z1K1": "Z7",
"Z7K1": "Z37836",
"Z37836K1": {
"Z1K1": "Z18",
"Z18K1": "Z39494K1"
}
}
}
},
{
"Z1K1": "Z89",
"Z89K1": "\u003C/i\u003E\u003C/b\u003E"
}
]
},
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z27926",
"Z27926K1": [
"Z89",
{
"Z1K1": "Z89",
"Z89K1": "\u003Ci\u003E"
},
{
"Z1K1": "Z7",
"Z7K1": "Z36961",
"Z36961K1": {
"Z1K1": "Z7",
"Z7K1": "Z27868",
"Z27868K1": {
"Z1K1": "Z7",
"Z7K1": "Z19308",
"Z19308K1": {
"Z1K1": "Z7",
"Z7K1": "Z37836",
"Z37836K1": {
"Z1K1": "Z18",
"Z18K1": "Z39494K1"
}
}
}
}
},
{
"Z1K1": "Z89",
"Z89K1": "\u003C/i\u003E ("
},
{
"Z1K1": "Z7",
"Z7K1": "Z28914",
"Z28914K1": {
"Z1K1": "Z7",
"Z7K1": "Z10771",
"Z10771K1": {
"Z1K1": "Z7",
"Z7K1": "Z37821",
"Z37821K1": {
"Z1K1": "Z18",
"Z18K1": "Z39494K1"
},
"Z37821K2": {
"Z1K1": "Z18",
"Z18K1": "Z39494K3"
}
}
}
},
{
"Z1K1": "Z89",
"Z89K1": ")"
}
]
}
},
{
"Z1K1": "Z89",
"Z89K1": " ta un espesie "
},
{
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z10174",
"Z10174K1": {
"Z1K1": "Z7",
"Z7K1": "Z24331",
"Z24331K1": {
"Z1K1": "Z7",
"Z7K1": "Z20041",
"Z20041K1": {
"Z1K1": "Z18",
"Z18K1": "Z39494K2"
}
}
},
"Z10174K2": {
"Z1K1": "Z7",
"Z7K1": "Z10216",
"Z10216K1": {
"Z1K1": "Z7",
"Z7K1": "Z35811",
"Z35811K1": {
"Z1K1": "Z7",
"Z7K1": "Z31676",
"Z31676K1": {
"Z1K1": "Z18",
"Z18K1": "Z39494K2"
},
"Z31676K2": {
"Z1K1": "Z18",
"Z18K1": "Z39494K3"
}
}
}
}
},
"Z802K2": {
"Z1K1": "Z7",
"Z7K1": "Z27926",
"Z27926K1": [
"Z89",
{
"Z1K1": "Z89",
"Z89K1": "de "
},
{
"Z1K1": "Z7",
"Z7K1": "Z27868",
"Z27868K1": {
"Z1K1": "Z7",
"Z7K1": "Z14396",
"Z14396K1": {
"Z1K1": "Z7",
"Z7K1": "Z31676",
"Z31676K1": {
"Z1K1": "Z18",
"Z18K1": "Z39494K2"
},
"Z31676K2": {
"Z1K1": "Z18",
"Z18K1": "Z39494K3"
}
}
}
},
{
"Z1K1": "Z89",
"Z89K1": " "
}
]
},
"Z802K3": {
"Z1K1": "Z89",
"Z89K1": ""
}
},
{
"Z1K1": "Z89",
"Z89K1": "den e famia "
},
{
"Z1K1": "Z7",
"Z7K1": "Z36489",
"Z36489K1": {
"Z1K1": "Z7",
"Z7K1": "Z37725",
"Z37725K1": {
"Z1K1": "Z18",
"Z18K1": "Z39494K1"
}
},
"Z36489K2": {
"Z1K1": "Z7",
"Z7K1": "Z23459",
"Z23459K1": {
"Z1K1": "Z7",
"Z7K1": "Z30120",
"Z30120K1": {
"Z1K1": "Z7",
"Z7K1": "Z37725",
"Z37725K1": {
"Z1K1": "Z18",
"Z18K1": "Z39494K1"
}
},
"Z30120K2": [
"Z6030",
"Z6036"
],
"Z30120K3": [
"Z60"
],
"Z30120K4": [
"Z6092",
{
"Z1K1": "Z6092",
"Z6092K1": "P225"
}
]
},
"Z23459K2": {
"Z1K1": "Z6092",
"Z6092K1": "P225"
}
}
},
{
"Z1K1": "Z89",
"Z89K1": ". "
},
{
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z37925",
"Z37925K1": {
"Z1K1": "Z7",
"Z7K1": "Z811",
"Z811K1": {
"Z1K1": "Z7",
"Z7K1": "Z37808",
"Z37808K1": {
"Z1K1": "Z18",
"Z18K1": "Z39494K1"
},
"Z37808K2": {
"Z1K1": "Z18",
"Z18K1": "Z39494K3"
}
}
}
},
"Z802K2": {
"Z1K1": "Z7",
"Z7K1": "Z27926",
"Z27926K1": [
"Z89",
{
"Z1K1": "Z89",
"Z89K1": "E espesie a wòrdu deskribí na "
},
{
"Z1K1": "Z7",
"Z7K1": "Z27868",
"Z27868K1": {
"Z1K1": "Z7",
"Z7K1": "Z811",
"Z811K1": {
"Z1K1": "Z7",
"Z7K1": "Z37808",
"Z37808K1": {
"Z1K1": "Z18",
"Z18K1": "Z39494K1"
},
"Z37808K2": {
"Z1K1": "Z18",
"Z18K1": "Z39494K3"
}
}
}
},
{
"Z1K1": "Z89",
"Z89K1": " pa "
},
{
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z23120",
"Z23120K1": {
"Z1K1": "Z7",
"Z7K1": "Z16360",
"Z16360K1": {
"Z1K1": "Z7",
"Z7K1": "Z37808",
"Z37808K1": {
"Z1K1": "Z18",
"Z18K1": "Z39494K1"
},
"Z37808K2": {
"Z1K1": "Z18",
"Z18K1": "Z39494K3"
}
}
}
},
"Z802K2": {
"Z1K1": "Z7",
"Z7K1": "Z37927",
"Z37927K1": {
"Z1K1": "Z18",
"Z18K1": "Z39494K1"
},
"Z37927K2": {
"Z1K1": "Z18",
"Z18K1": "Z39494K3"
}
},
"Z802K3": {
"Z1K1": "Z89",
"Z89K1": ""
}
},
{
"Z1K1": "Z89",
"Z89K1": "."
},
{
"Z1K1": "Z7",
"Z7K1": "Z32891",
"Z32891K1": {
"Z1K1": "Z7",
"Z7K1": "Z36240",
"Z36240K1": {
"Z1K1": "Z18",
"Z18K1": "Z39494K1"
},
"Z36240K2": {
"Z1K1": "Z6092",
"Z6092K1": "P225"
},
"Z36240K3": {
"Z1K1": "Z18",
"Z18K1": "Z39494K3"
}
}
},
{
"Z1K1": "Z89",
"Z89K1": " "
}
]
},
"Z802K3": {
"Z1K1": "Z89",
"Z89K1": "\u003C!-- no describing date and/or authority --\u003E"
}
},
{
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z10216",
"Z10216K1": {
"Z1K1": "Z7",
"Z7K1": "Z28676",
"Z28676K1": {
"Z1K1": "Z7",
"Z7K1": "Z37833",
"Z37833K1": {
"Z1K1": "Z18",
"Z18K1": "Z39494K1"
},
"Z37833K2": {
"Z1K1": "Z18",
"Z18K1": "Z39494K3"
}
},
"Z28676K2": "Z28158"
}
},
"Z802K2": {
"Z1K1": "Z7",
"Z7K1": "Z27926",
"Z27926K1": [
"Z89",
{
"Z1K1": "Z7",
"Z7K1": "Z37441",
"Z37441K1": {
"Z1K1": "Z18",
"Z18K1": "Z39494K1"
}
},
{
"Z1K1": "Z89",
"Z89K1": " ta wòrdu klasifiká komo un espesie "
},
{
"Z1K1": "Z7",
"Z7K1": "Z27868",
"Z27868K1": {
"Z1K1": "Z7",
"Z7K1": "Z37833",
"Z37833K1": {
"Z1K1": "Z18",
"Z18K1": "Z39494K1"
},
"Z37833K2": {
"Z1K1": "Z18",
"Z18K1": "Z39494K3"
}
}
},
{
"Z1K1": "Z89",
"Z89K1": " dor di "
},
{
"Z1K1": "Z7",
"Z7K1": "Z32428",
"Z32428K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q48268"
},
"Z32428K2": {
"Z1K1": "Z18",
"Z18K1": "Z39494K3"
}
},
{
"Z1K1": "Z89",
"Z89K1": " (IUCN)."
},
{
"Z1K1": "Z7",
"Z7K1": "Z32891",
"Z32891K1": {
"Z1K1": "Z7",
"Z7K1": "Z36240",
"Z36240K1": {
"Z1K1": "Z18",
"Z18K1": "Z39494K1"
},
"Z36240K2": {
"Z1K1": "Z6092",
"Z6092K1": "P141"
},
"Z36240K3": {
"Z1K1": "Z18",
"Z18K1": "Z39494K3"
}
}
},
{
"Z1K1": "Z89",
"Z89K1": ""
}
]
},
"Z802K3": {
"Z1K1": "Z89",
"Z89K1": "\u003C!-- Not assessed by IUCN --\u003E"
}
}
]
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "intro for species with hypernym, Papiamento Comp"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
2gwlx8uqxzy9pyl12aly4w5ehesr3dd
Z39497
0
90171
299671
2026-08-15T19:34:56Z
Jsamwrites
938
299671
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39497"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39478",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z39478",
"Z39478K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q89"
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z844",
"Z844K2": {
"Z1K1": "Z40",
"Z40K1": "Z42"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "apple, fr requires elision, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
ee3ieub66tdb4de9fxtcuvl9a44rfyn
Z39498
0
90172
299673
2026-08-15T19:40:23Z
Jsamwrites
938
299673
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39498"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39498K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "lexeme"
}
]
}
}
],
"Z8K2": "Z6091",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14"
],
"Z8K5": "Z39498"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "lexeme has characteristic"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
jpeymp434afk6icitgtmlbkth7pa6i3
299676
299673
2026-08-15T19:42:46Z
Jsamwrites
938
Added Z39499 to the approved list of implementations
299676
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39498"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39498K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "lexeme"
}
]
}
}
],
"Z8K2": "Z6091",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14",
"Z39499"
],
"Z8K5": "Z39498"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "lexeme has characteristic"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
myzhkppjfkivqvr1687hkmhrekllno3
299677
299676
2026-08-15T19:43:07Z
Jsamwrites
938
Removed Z39499 from the approved list of implementations
299677
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39498"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39498K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "lexeme"
}
]
}
}
],
"Z8K2": "Z6091",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14"
],
"Z8K5": "Z39498"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "lexeme has characteristic"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
jpeymp434afk6icitgtmlbkth7pa6i3
299678
299677
2026-08-15T19:43:21Z
Jsamwrites
938
299678
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39498"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6095",
"Z17K2": "Z39498K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "lexeme"
}
]
}
}
],
"Z8K2": "Z6091",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14"
],
"Z8K5": "Z39498"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "lexeme has characteristic"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
fm2lr0x5m866dcatgs7bnq5gga4dcnq
299679
299678
2026-08-15T19:43:26Z
Jsamwrites
938
Added Z39499 to the approved list of implementations
299679
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39498"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6095",
"Z17K2": "Z39498K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "lexeme"
}
]
}
}
],
"Z8K2": "Z6091",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14",
"Z39499"
],
"Z8K5": "Z39498"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "lexeme has characteristic"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
fr3ks7t77s0686w9st9fy0htyo72nxg
299682
299679
2026-08-15T19:46:12Z
Jsamwrites
938
Added Z39500 to the approved list of test cases
299682
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39498"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6095",
"Z17K2": "Z39498K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "lexeme"
}
]
}
}
],
"Z8K2": "Z6091",
"Z8K3": [
"Z20",
"Z39500"
],
"Z8K4": [
"Z14",
"Z39499"
],
"Z8K5": "Z39498"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "lexeme has characteristic"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
rxubscpdpo0tskhlld79f5gskj7wycz
299683
299682
2026-08-15T19:49:27Z
Jsamwrites
938
Removed Z39499 from the approved list of implementations
299683
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39498"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6095",
"Z17K2": "Z39498K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "lexeme"
}
]
}
}
],
"Z8K2": "Z6091",
"Z8K3": [
"Z20",
"Z39500"
],
"Z8K4": [
"Z14"
],
"Z8K5": "Z39498"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "lexeme has characteristic"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
2sfchqxiw3w38w7oyjotcohutkrb5c4
299684
299683
2026-08-15T19:50:01Z
Jsamwrites
938
299684
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39498"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6095",
"Z17K2": "Z39498K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "lexeme"
}
]
}
}
],
"Z8K2": {
"Z1K1": "Z7",
"Z7K1": "Z881",
"Z881K1": "Z6091"
},
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14"
],
"Z8K5": "Z39498"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "lexeme has characteristic"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
4kq8848s6rfngikqxqzrgq87d1w7zpn
299685
299684
2026-08-15T19:50:09Z
Jsamwrites
938
Added Z39499 to the approved list of implementations
299685
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39498"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6095",
"Z17K2": "Z39498K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "lexeme"
}
]
}
}
],
"Z8K2": {
"Z1K1": "Z7",
"Z7K1": "Z881",
"Z881K1": "Z6091"
},
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14",
"Z39499"
],
"Z8K5": "Z39498"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "lexeme has characteristic"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
7qhd72k5crv4y2llkk8ci8vythliby8
299686
299685
2026-08-15T19:50:10Z
Jsamwrites
938
Added Z39500 to the approved list of test cases
299686
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39498"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6095",
"Z17K2": "Z39498K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "lexeme"
}
]
}
}
],
"Z8K2": {
"Z1K1": "Z7",
"Z7K1": "Z881",
"Z881K1": "Z6091"
},
"Z8K3": [
"Z20",
"Z39500"
],
"Z8K4": [
"Z14",
"Z39499"
],
"Z8K5": "Z39498"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "lexeme has characteristic"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
l0z5t0tutqeddulp3te5ku6km6rmkqr
299687
299686
2026-08-15T19:50:22Z
Jsamwrites
938
299687
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39498"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6095",
"Z17K2": "Z39498K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "lexeme"
}
]
}
}
],
"Z8K2": {
"Z1K1": "Z7",
"Z7K1": "Z881",
"Z881K1": "Z6091"
},
"Z8K3": [
"Z20",
"Z39500"
],
"Z8K4": [
"Z14",
"Z39499"
],
"Z8K5": "Z39498"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "lexeme has characteristics"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
r337bkuwlo88agvwq6hequr2m5oeoss
Z39499
0
90173
299674
2026-08-15T19:42:04Z
Jsamwrites
938
299674
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39499"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z39498",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z33125",
"Z33125K1": {
"Z1K1": "Z18",
"Z18K1": "Z39498K1"
},
"Z33125K2": {
"Z1K1": "Z6092",
"Z6092K1": "P1552"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
ndvv0mfppqvzbd4s6enmg1dh3suvpka
299675
299674
2026-08-15T19:42:24Z
Jsamwrites
938
299675
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39499"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z39498",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z33125",
"Z33125K1": {
"Z1K1": "Z18",
"Z18K1": "Z39498K1"
},
"Z33125K2": {
"Z1K1": "Z6092",
"Z6092K1": "P1552"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "lexeme has characteristic, comp"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
p2s5a1yf314fb76alr2lro2nfasy6uc
Z39500
0
90174
299680
2026-08-15T19:44:37Z
Jsamwrites
938
299680
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39500"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39498",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z39498",
"Z39498K1": {
"Z1K1": "Z6095",
"Z6095K1": "L15797"
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z19316",
"Z19316K2": {
"Z1K1": "Z6091",
"Z6091K1": "Q131441009"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "lexeme-hôtel, fr, characteristic"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
kyr9uis47kij22ogl9y5jy9luiqgta3
299681
299680
2026-08-15T19:45:38Z
Jsamwrites
938
299681
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39500"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39498",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z39498",
"Z39498K1": {
"Z1K1": "Z6095",
"Z6095K1": "L15797"
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z12846",
"Z12846K2": [
"Z1",
{
"Z1K1": "Z6091",
"Z6091K1": "Q131441009"
}
]
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "lexeme-hôtel, fr, characteristic"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
qorwy86x7zz3iknh4s2qf3bk3772f9e
Z39501
0
90175
299689
2026-08-15T20:00:13Z
Jsamwrites
938
299689
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39501"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39478",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z39478",
"Z39478K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q63099748"
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z844",
"Z844K2": {
"Z1K1": "Z40",
"Z40K1": "Z41"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "hotel building-fr, elision, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
5fasx3kgt7q8yxvsr9dxnqgcyqk53mi
Z39502
0
90176
299693
2026-08-15T20:12:54Z
Jsamwrites
938
299693
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39502"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39478",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z39478",
"Z39478K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q3914"
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z844",
"Z844K2": {
"Z1K1": "Z40",
"Z40K1": "Z41"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "school-fr, elision, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
cu55rxsrk6zbz4os3teze9uwvjqp2vt
Z39503
0
90177
299695
2026-08-15T20:15:58Z
Jsamwrites
938
Create test for Z39478
299695
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39503"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39478",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z39478",
"Z39478K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q3914"
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z844",
"Z844K2": {
"Z1K1": "Z40",
"Z40K1": "Z41"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "universe-fr, elision, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
7oyk45k18mg2lel239nkn03gaykhpwj
299698
299695
2026-08-15T20:16:35Z
Jsamwrites
938
299698
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39503"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39478",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z39478",
"Z39478K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q1"
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z844",
"Z844K2": {
"Z1K1": "Z40",
"Z40K1": "Z41"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "universe-fr, elision, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
097i9aazqci820nm26kulgn97uiprgn
Z39504
0
90178
299696
2026-08-15T20:16:01Z
Jsamwrites
938
Create test for Z39478
299696
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39504"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39478",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z39478",
"Z39478K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q3914"
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z844",
"Z844K2": {
"Z1K1": "Z40",
"Z40K1": "Z41"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "hero-fr, elision, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
9a5sfpk0eiktwaxz2r1s4sce1zmag8k
299699
299696
2026-08-15T20:17:03Z
Jsamwrites
938
299699
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39504"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39478",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z39478",
"Z39478K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q162244"
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z844",
"Z844K2": {
"Z1K1": "Z40",
"Z40K1": "Z41"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "hero-fr, elision, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
m6wtaya59qupefo3qrdb7qwexren81k
299700
299699
2026-08-15T20:19:17Z
Jsamwrites
938
299700
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39504"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39478",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z39478",
"Z39478K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q162244"
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z844",
"Z844K2": {
"Z1K1": "Z40",
"Z40K1": "Z42"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "hero-fr, elision, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
jvfo9udu0wsfg7u3ax60rjlcykf9b2z
299701
299700
2026-08-15T20:23:22Z
Jsamwrites
938
299701
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39504"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39478",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z39478",
"Z39478K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q5742644"
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z844",
"Z844K2": {
"Z1K1": "Z40",
"Z40K1": "Z42"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "hero-fr, elision, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
dg9jsmi7hx0fdxo5dmcndeww91nfyfr
Z39505
0
90179
299702
2026-08-15T20:43:13Z
Jsamwrites
938
299702
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39505"
},
"Z2K2": [
"Z1",
{
"Z1K1": "Z7",
"Z7K1": "Z6821",
"Z6821K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q5"
}
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q9143"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q486972"
}
],
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "categories that do not have an article in French"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
c4tqgydzu6qbkw16d4l5ngvzqg8x0wk
299707
299702
2026-08-15T20:54:08Z
Jsamwrites
938
299707
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39505"
},
"Z2K2": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q9143"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q486972"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q629206"
}
],
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "categories that do not have an article in French"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
09n8r15ceawdh2drao1ilqyvws0b8tr
299712
299707
2026-08-15T20:57:44Z
Jsamwrites
938
299712
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39505"
},
"Z2K2": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q9143"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q486972"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q629206"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q634"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q2199"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q1022867"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q2537"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q523"
}
],
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "categories that do not have an article in French"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Please note that there are exceptions like Earth, Sun"
}
]
}
}
jmdpi5gpxqc33t01r49ra7z85zzfias
299713
299712
2026-08-15T20:58:19Z
Jsamwrites
938
299713
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39505"
},
"Z2K2": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q9143"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q486972"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q629206"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q634"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q2199"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q1022867"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q2537"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q523"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q7397"
}
],
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "categories that do not have an article in French"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Please note that there are exceptions like Earth, Sun"
}
]
}
}
mzani81oy736tnp0vq5cw643kjwgr5g
299722
299713
2026-08-15T21:04:37Z
Jsamwrites
938
299722
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39505"
},
"Z2K2": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q9143"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q486972"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q629206"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q634"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q2199"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q1022867"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q2537"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q523"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q7397"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q5"
}
],
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "categories that do not have an article in French"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Please note that there are exceptions like Earth, Sun"
}
]
}
}
i56acv11kafyrcufa2zfx63af20z1rj
299724
299722
2026-08-15T21:05:44Z
Jsamwrites
938
299724
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39505"
},
"Z2K2": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q9143"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q486972"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q629206"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q634"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q2199"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q1022867"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q2537"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q523"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q7397"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q5"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q3504248"
}
],
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "categories that do not have an article in French"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Please note that there are exceptions like Earth, Sun"
}
]
}
}
lirkzbyl5n5j21d8dgazz0xbkx3xky3
299742
299724
2026-08-15T21:25:34Z
Jsamwrites
938
299742
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39505"
},
"Z2K2": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q9143"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q486972"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q629206"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q634"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q2199"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q1022867"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q2537"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q523"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q7397"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q5"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q3504248"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q341"
}
],
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "categories that do not have an article in French"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Please note that there are exceptions like Earth, Sun"
}
]
}
}
2rvdaqho8aljd6qq212jh3xqr50toab
Z39506
0
90180
299703
2026-08-15T20:47:28Z
Jsamwrites
938
299703
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39506"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6001",
"Z17K2": "Z39506K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "entity"
}
]
}
}
],
"Z8K2": "Z40",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14"
],
"Z8K5": "Z39506"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "item indicates zero article, French"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
8rsjp4i4tp5tzwdujusxar32irx6oa1
299705
299703
2026-08-15T20:48:24Z
Jsamwrites
938
Added Z39507 to the approved list of implementations
299705
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39506"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6001",
"Z17K2": "Z39506K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "entity"
}
]
}
}
],
"Z8K2": "Z40",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14",
"Z39507"
],
"Z8K5": "Z39506"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "item indicates zero article, French"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
3wttltdr1r1115oyfhevpmdkkr38z4q
299708
299705
2026-08-15T20:55:27Z
Jsamwrites
938
Removed Z39507 from the approved list of implementations
299708
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39506"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6001",
"Z17K2": "Z39506K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "entity"
}
]
}
}
],
"Z8K2": "Z40",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14"
],
"Z8K5": "Z39506"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "item indicates zero article, French"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
8rsjp4i4tp5tzwdujusxar32irx6oa1
299709
299708
2026-08-15T20:55:38Z
Jsamwrites
938
299709
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39506"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6001",
"Z17K2": "Z39506K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "entity"
}
]
}
}
],
"Z8K2": "Z22112",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14"
],
"Z8K5": "Z39506"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "item indicates zero article, French"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
p1jdzwon62f7601crzksv7ki74yxevo
299710
299709
2026-08-15T20:55:44Z
Jsamwrites
938
Added Z39507 to the approved list of implementations
299710
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39506"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6001",
"Z17K2": "Z39506K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "entity"
}
]
}
}
],
"Z8K2": "Z22112",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14",
"Z39507"
],
"Z8K5": "Z39506"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "item indicates zero article, French"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
p06q98f5e3zr1kruhvjnfugqae1lhks
299714
299710
2026-08-15T20:58:37Z
Jsamwrites
938
Added Z39508 to the approved list of test cases
299714
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39506"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6001",
"Z17K2": "Z39506K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "entity"
}
]
}
}
],
"Z8K2": "Z22112",
"Z8K3": [
"Z20",
"Z39508"
],
"Z8K4": [
"Z14",
"Z39507"
],
"Z8K5": "Z39506"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "item indicates zero article, French"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
k84ehfielyherrkqy1ul5psfwoat0tk
299718
299714
2026-08-15T21:00:05Z
Jsamwrites
938
Added Z39509, Z39510 and Z39511 to the approved list of test cases
299718
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39506"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6001",
"Z17K2": "Z39506K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "entity"
}
]
}
}
],
"Z8K2": "Z22112",
"Z8K3": [
"Z20",
"Z39508",
"Z39509",
"Z39510",
"Z39511"
],
"Z8K4": [
"Z14",
"Z39507"
],
"Z8K5": "Z39506"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "item indicates zero article, French"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
j3al6pm20gb60rwyb454in4r72gu43y
299738
299718
2026-08-15T21:19:48Z
Jsamwrites
938
Added Z39513 to the approved list of test cases
299738
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39506"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6001",
"Z17K2": "Z39506K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "entity"
}
]
}
}
],
"Z8K2": "Z22112",
"Z8K3": [
"Z20",
"Z39508",
"Z39509",
"Z39510",
"Z39511",
"Z39513"
],
"Z8K4": [
"Z14",
"Z39507"
],
"Z8K5": "Z39506"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "item indicates zero article, French"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
8bbeb4o2oekxyiamx1lwqxgwfsbs9y0
299739
299738
2026-08-15T21:19:55Z
Jsamwrites
938
Added Z39514 and Z39515 to the approved list of test cases
299739
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39506"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6001",
"Z17K2": "Z39506K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "entity"
}
]
}
}
],
"Z8K2": "Z22112",
"Z8K3": [
"Z20",
"Z39508",
"Z39509",
"Z39510",
"Z39511",
"Z39513",
"Z39514",
"Z39515"
],
"Z8K4": [
"Z14",
"Z39507"
],
"Z8K5": "Z39506"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "item indicates zero article, French"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
2suqxu5c14nkp0sodewfgrh060u5g0f
Z39507
0
90181
299704
2026-08-15T20:48:14Z
Jsamwrites
938
299704
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39507"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z39506",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z13752",
"Z13752K1": {
"Z1K1": "Z7",
"Z7K1": "Z22978",
"Z22978K1": {
"Z1K1": "Z18",
"Z18K1": "Z39506K1"
},
"Z22978K2": {
"Z1K1": "Z6092",
"Z6092K1": "P31"
}
},
"Z13752K2": "Z39505"
},
"Z802K2": "Z22113",
"Z802K3": "Z22115"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
06ld994u8qg2ndhgmqlpdnbad4eo8bf
299706
299704
2026-08-15T20:52:13Z
Jsamwrites
938
299706
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39507"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z39506",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z13752",
"Z13752K1": {
"Z1K1": "Z7",
"Z7K1": "Z22978",
"Z22978K1": {
"Z1K1": "Z18",
"Z18K1": "Z39506K1"
},
"Z22978K2": {
"Z1K1": "Z6092",
"Z6092K1": "P31"
}
},
"Z13752K2": "Z39505"
},
"Z802K2": "Z22113",
"Z802K3": "Z22115"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "item indicates zero article, French, comp"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
8yny91qpk5y8xsb5n5t4ysruf0hl7um
299729
299706
2026-08-15T21:13:06Z
Jsamwrites
938
299729
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39507"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z39506",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z23568",
"Z23568K1": {
"Z1K1": "Z18",
"Z18K1": "Z39506K1"
},
"Z23568K2": "Z39512"
},
"Z802K2": "Z22115",
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z13752",
"Z13752K1": {
"Z1K1": "Z7",
"Z7K1": "Z22978",
"Z22978K1": {
"Z1K1": "Z18",
"Z18K1": "Z39506K1"
},
"Z22978K2": {
"Z1K1": "Z6092",
"Z6092K1": "P31"
}
},
"Z13752K2": "Z39505"
},
"Z802K2": "Z22113",
"Z802K3": "Z22115"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "item indicates zero article, French, comp"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
k0mmh5dnkwpftypq09889guh18z6ga4
299734
299729
2026-08-15T21:16:03Z
Jsamwrites
938
299734
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39507"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z39506",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z23568",
"Z23568K1": {
"Z1K1": "Z18",
"Z18K1": "Z39506K1"
},
"Z23568K2": "Z39512"
},
"Z802K2": "Z22113",
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z13752",
"Z13752K1": {
"Z1K1": "Z7",
"Z7K1": "Z22978",
"Z22978K1": {
"Z1K1": "Z18",
"Z18K1": "Z39506K1"
},
"Z22978K2": {
"Z1K1": "Z6092",
"Z6092K1": "P31"
}
},
"Z13752K2": "Z39505"
},
"Z802K2": "Z22113",
"Z802K3": "Z22115"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "item indicates zero article, French, comp"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
s0yqan0ba6vjmjr5p8sh8rx4rhrdda1
299737
299734
2026-08-15T21:19:27Z
Jsamwrites
938
299737
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39507"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z39506",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z13752",
"Z13752K1": [
"Z1",
{
"Z1K1": "Z18",
"Z18K1": "Z39506K1"
}
],
"Z13752K2": "Z39512"
},
"Z802K2": "Z22115",
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z13752",
"Z13752K1": {
"Z1K1": "Z7",
"Z7K1": "Z22978",
"Z22978K1": {
"Z1K1": "Z18",
"Z18K1": "Z39506K1"
},
"Z22978K2": {
"Z1K1": "Z6092",
"Z6092K1": "P31"
}
},
"Z13752K2": "Z39505"
},
"Z802K2": "Z22113",
"Z802K3": "Z22115"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "item indicates zero article, French, comp"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
ccyajaotchw9yvqjv2a7dv11vdpyymd
299740
299737
2026-08-15T21:22:54Z
Jsamwrites
938
299740
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39507"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z39506",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z13752",
"Z13752K1": [
"Z1",
{
"Z1K1": "Z7",
"Z7K1": "Z23756",
"Z23756K1": {
"Z1K1": "Z18",
"Z18K1": "Z39506K1"
}
}
],
"Z13752K2": "Z39512"
},
"Z802K2": "Z22115",
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z13752",
"Z13752K1": {
"Z1K1": "Z7",
"Z7K1": "Z22978",
"Z22978K1": {
"Z1K1": "Z18",
"Z18K1": "Z39506K1"
},
"Z22978K2": {
"Z1K1": "Z6092",
"Z6092K1": "P31"
}
},
"Z13752K2": "Z39505"
},
"Z802K2": "Z22113",
"Z802K3": "Z22115"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "item indicates zero article, French, comp"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
q4vx1wtcq235faafwhmitly5j9oxk1p
299741
299740
2026-08-15T21:24:05Z
Jsamwrites
938
299741
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39507"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z39506",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z13752",
"Z13752K1": [
"Z1",
{
"Z1K1": "Z7",
"Z7K1": "Z23756",
"Z23756K1": {
"Z1K1": "Z18",
"Z18K1": "Z39506K1"
}
}
],
"Z13752K2": "Z39512"
},
"Z802K2": "Z22113",
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z13752",
"Z13752K1": {
"Z1K1": "Z7",
"Z7K1": "Z22978",
"Z22978K1": {
"Z1K1": "Z18",
"Z18K1": "Z39506K1"
},
"Z22978K2": {
"Z1K1": "Z6092",
"Z6092K1": "P31"
}
},
"Z13752K2": "Z39505"
},
"Z802K2": "Z22113",
"Z802K3": "Z22115"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "item indicates zero article, French, comp"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
7dbjeu0sc5p2vowoeqeu03ogbv8kweh
299743
299741
2026-08-15T21:26:16Z
Jsamwrites
938
299743
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39507"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z39506",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z13752",
"Z13752K1": [
"Z1",
{
"Z1K1": "Z7",
"Z7K1": "Z23756",
"Z23756K1": {
"Z1K1": "Z18",
"Z18K1": "Z39506K1"
}
}
],
"Z13752K2": "Z39512"
},
"Z802K2": "Z22115",
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z13752",
"Z13752K1": {
"Z1K1": "Z7",
"Z7K1": "Z22978",
"Z22978K1": {
"Z1K1": "Z18",
"Z18K1": "Z39506K1"
},
"Z22978K2": {
"Z1K1": "Z6092",
"Z6092K1": "P31"
}
},
"Z13752K2": "Z39505"
},
"Z802K2": "Z22113",
"Z802K3": "Z22115"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "item indicates zero article, French, comp"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
q4vx1wtcq235faafwhmitly5j9oxk1p
299767
299743
2026-08-15T22:12:53Z
Jsamwrites
938
299767
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39507"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z39506",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z13752",
"Z13752K1": [
"Z6091"
],
"Z13752K2": "Z39512"
},
"Z802K2": "Z22115",
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z13752",
"Z13752K1": {
"Z1K1": "Z7",
"Z7K1": "Z22978",
"Z22978K1": {
"Z1K1": "Z18",
"Z18K1": "Z39506K1"
},
"Z22978K2": {
"Z1K1": "Z6092",
"Z6092K1": "P31"
}
},
"Z13752K2": "Z39505"
},
"Z802K2": "Z22113",
"Z802K3": "Z22115"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "item indicates zero article, French, comp"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
1b60cufg348e3vf96ueivberq0eqne0
299768
299767
2026-08-15T22:13:43Z
Jsamwrites
938
299768
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39507"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z39506",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z13752",
"Z13752K1": [
"Z6091",
{
"Z1K1": "Z18",
"Z18K1": "Z39506K1"
}
],
"Z13752K2": "Z39512"
},
"Z802K2": "Z22115",
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z13752",
"Z13752K1": {
"Z1K1": "Z7",
"Z7K1": "Z22978",
"Z22978K1": {
"Z1K1": "Z18",
"Z18K1": "Z39506K1"
},
"Z22978K2": {
"Z1K1": "Z6092",
"Z6092K1": "P31"
}
},
"Z13752K2": "Z39505"
},
"Z802K2": "Z22113",
"Z802K3": "Z22115"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "item indicates zero article, French, comp"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
c3fhzpo2jmaeu8117qu506es1p72txv
299769
299768
2026-08-15T22:18:28Z
Jsamwrites
938
299769
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39507"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z39506",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z13752",
"Z13752K1": [
"Z6091",
{
"Z1K1": "Z7",
"Z7K1": "Z23756",
"Z23756K1": {
"Z1K1": "Z18",
"Z18K1": "Z39506K1"
}
}
],
"Z13752K2": "Z39512"
},
"Z802K2": "Z22115",
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z13752",
"Z13752K1": {
"Z1K1": "Z7",
"Z7K1": "Z22978",
"Z22978K1": {
"Z1K1": "Z18",
"Z18K1": "Z39506K1"
},
"Z22978K2": {
"Z1K1": "Z6092",
"Z6092K1": "P31"
}
},
"Z13752K2": "Z39505"
},
"Z802K2": "Z22113",
"Z802K3": "Z22115"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "item indicates zero article, French, comp"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
1ysh81c9balkao2cwy2arc8x55p2drj
Z39508
0
90182
299711
2026-08-15T20:56:19Z
Jsamwrites
938
299711
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39508"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39506",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z39506",
"Z39506K1": {
"Z1K1": "Z7",
"Z7K1": "Z6821",
"Z6821K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q47484"
}
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z22120",
"Z22120K2": "Z22115"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "André Gide, article, fr, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
lfm8xwah637efutvmxkuv7ate2qh1f2
299723
299711
2026-08-15T21:04:58Z
Jsamwrites
938
299723
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39508"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39506",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z39506",
"Z39506K1": {
"Z1K1": "Z7",
"Z7K1": "Z6821",
"Z6821K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q47484"
}
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z22120",
"Z22120K2": "Z22113"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "André Gide, article, fr, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
ingoet66vvo48mg1roh4bbi1olhvl18
Z39509
0
90183
299715
2026-08-15T20:59:48Z
Jsamwrites
938
Create test for Z39506
299715
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39509"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39506",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z39506",
"Z39506K1": {
"Z1K1": "Z7",
"Z7K1": "Z6821",
"Z6821K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q47484"
}
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z22120",
"Z22120K2": "Z22115"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Firefox, article, fr, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
qurf86nm138n6qbcl2yzvf2qqor0a16
299719
299715
2026-08-15T21:00:32Z
Jsamwrites
938
299719
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39509"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39506",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z39506",
"Z39506K1": {
"Z1K1": "Z7",
"Z7K1": "Z6821",
"Z6821K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q698"
}
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z22120",
"Z22120K2": "Z22115"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Firefox, article, fr, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
d6iv7qgrtdn7q7ms6tms91w63gze62z
299727
299719
2026-08-15T21:06:57Z
Jsamwrites
938
299727
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39509"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39506",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z39506",
"Z39506K1": {
"Z1K1": "Z7",
"Z7K1": "Z6821",
"Z6821K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q698"
}
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z22120",
"Z22120K2": "Z22113"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Firefox, article, fr, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
g7l57513dw442glzgrlbwnli5u4ndoe
Z39510
0
90184
299716
2026-08-15T20:59:51Z
Jsamwrites
938
Create test for Z39506
299716
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39510"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39506",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z39506",
"Z39506K1": {
"Z1K1": "Z7",
"Z7K1": "Z6821",
"Z6821K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q47484"
}
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z22120",
"Z22120K2": "Z22115"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "C++, article, fr, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
jradxnc3d8m4qx7jymmzyox1lbrd4h6
299720
299716
2026-08-15T21:00:49Z
Jsamwrites
938
299720
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39510"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39506",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z39506",
"Z39506K1": {
"Z1K1": "Z7",
"Z7K1": "Z6821",
"Z6821K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q2407"
}
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z22120",
"Z22120K2": "Z22115"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "C++, article, fr, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
i56n0sk9xcq1je1v2koxiz6o77hg1iw
299726
299720
2026-08-15T21:06:18Z
Jsamwrites
938
299726
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39510"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39506",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z39506",
"Z39506K1": {
"Z1K1": "Z7",
"Z7K1": "Z6821",
"Z6821K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q2407"
}
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z22120",
"Z22120K2": "Z22113"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "C++, article, fr, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
27zpkjyc9vsmz3yzb3wm4wvmm30viot
Z39511
0
90185
299717
2026-08-15T20:59:53Z
Jsamwrites
938
Create test for Z39506
299717
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39511"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39506",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z39506",
"Z39506K1": {
"Z1K1": "Z7",
"Z7K1": "Z6821",
"Z6821K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q47484"
}
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z22120",
"Z22120K2": "Z22115"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Mars, article, fr, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
e6uh4ty0fkhx8iys0gxqvlkitx90vir
299721
299717
2026-08-15T21:01:13Z
Jsamwrites
938
299721
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39511"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39506",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z39506",
"Z39506K1": {
"Z1K1": "Z7",
"Z7K1": "Z6821",
"Z6821K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q111"
}
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z22120",
"Z22120K2": "Z22115"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Mars, article, fr, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
1k8ospfmgk4z7kygz3c1jpavhn4s61j
299725
299721
2026-08-15T21:05:58Z
Jsamwrites
938
299725
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39511"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39506",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z39506",
"Z39506K1": {
"Z1K1": "Z7",
"Z7K1": "Z6821",
"Z6821K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q111"
}
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z22120",
"Z22120K2": "Z22113"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Mars, article, fr, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
7ono54s6bwji6sb6ina1ato0k2ta04c
Z39512
0
90186
299728
2026-08-15T21:09:51Z
Jsamwrites
938
299728
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39512"
},
"Z2K2": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q2"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q525"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q16877383"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q235"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q1019"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q233"
}
],
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "French exceptions to zero article"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
dvhq06e3sxgvhk1kylmie1tuxfzmoeo
Z39513
0
90187
299730
2026-08-15T21:13:47Z
Jsamwrites
938
Create test for Z39506
299730
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39513"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39506",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z39506",
"Z39506K1": {
"Z1K1": "Z7",
"Z7K1": "Z6821",
"Z6821K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q47484"
}
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z22120",
"Z22120K2": "Z22113"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Earth, article, fr, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
ajh1gknatrgq7k7qm0y4900o02jsa54
299733
299730
2026-08-15T21:14:21Z
Jsamwrites
938
299733
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39513"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39506",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z39506",
"Z39506K1": {
"Z1K1": "Z7",
"Z7K1": "Z6821",
"Z6821K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q2"
}
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z22120",
"Z22120K2": "Z22115"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Earth, article, fr, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
nttqxwhndt3ix33llooyzwk2g7xuloz
Z39514
0
90188
299731
2026-08-15T21:13:50Z
Jsamwrites
938
Create test for Z39506
299731
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39514"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39506",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z39506",
"Z39506K1": {
"Z1K1": "Z7",
"Z7K1": "Z6821",
"Z6821K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q47484"
}
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z22120",
"Z22120K2": "Z22113"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Sun, article, fr, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
qplqznyen2pt9fg2wzxjjd48x3jf8fc
299735
299731
2026-08-15T21:16:43Z
Jsamwrites
938
299735
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39514"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39506",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z39506",
"Z39506K1": {
"Z1K1": "Z7",
"Z7K1": "Z6821",
"Z6821K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q2"
}
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z22120",
"Z22120K2": "Z22115"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Sun, article, fr, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
7cwfb1k4uc9o7i5rdtja3tm1gefh8b4
299745
299735
2026-08-15T21:35:50Z
Jsamwrites
938
299745
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39514"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39506",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z39506",
"Z39506K1": {
"Z1K1": "Z7",
"Z7K1": "Z6821",
"Z6821K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q525"
}
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z22120",
"Z22120K2": "Z22115"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Sun, article, fr, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
tquodwc8dmbepqn9qef2qfwrm6lwhci
Z39515
0
90189
299732
2026-08-15T21:13:52Z
Jsamwrites
938
Create test for Z39506
299732
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39515"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39506",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z39506",
"Z39506K1": {
"Z1K1": "Z7",
"Z7K1": "Z6821",
"Z6821K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q47484"
}
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z22120",
"Z22120K2": "Z22113"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Malta, article, fr, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
9d6gawau9s4npm84cttnihyz4qg9v69
299736
299732
2026-08-15T21:17:05Z
Jsamwrites
938
299736
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39515"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39506",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z39506",
"Z39506K1": {
"Z1K1": "Z7",
"Z7K1": "Z6821",
"Z6821K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q233"
}
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z22120",
"Z22120K2": "Z22113"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Malta, article, fr, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
381bthrtrbp3mv7n6mdhy4taemfd0w5
299770
299736
2026-08-15T22:20:15Z
Jsamwrites
938
299770
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39515"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39506",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z39506",
"Z39506K1": {
"Z1K1": "Z7",
"Z7K1": "Z6821",
"Z6821K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q233"
}
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z22120",
"Z22120K2": "Z22115"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Malta, article, fr, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
2euc6xdcw2t5i60q0fect7wlw9jeuo3
Z39516
0
90190
299746
2026-08-15T21:44:57Z
Jsamwrites
938
299746
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39516"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z39466",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z22131",
"Z22131K1": {
"Z1K1": "Z7",
"Z7K1": "Z39506",
"Z39506K1": {
"Z1K1": "Z18",
"Z18K1": "Z39466K1"
}
}
},
"Z802K2": {
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": ""
},
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z13752",
"Z13752K1": {
"Z1K1": "Z18",
"Z18K1": "Z39466K3"
},
"Z13752K2": [
"Z1",
{
"Z1K1": "Z7",
"Z7K1": "Z6821",
"Z6821K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q146786"
}
}
]
},
"Z802K2": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z18",
"Z18K1": "Z39466K2"
},
"Z802K2": {
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": "les"
},
"Z802K3": {
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": "des"
}
},
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z18",
"Z18K1": "Z39466K2"
},
"Z802K2": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z39478",
"Z39478K1": {
"Z1K1": "Z18",
"Z18K1": "Z39466K1"
}
},
"Z802K2": {
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": "l'"
},
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z13752",
"Z13752K1": {
"Z1K1": "Z7",
"Z7K1": "Z39467",
"Z39467K1": {
"Z1K1": "Z18",
"Z18K1": "Z39466K1"
},
"Z39467K2": "Z1004"
},
"Z13752K2": [
"Z1",
{
"Z1K1": "Z6091",
"Z6091K1": "Q1775415"
}
]
},
"Z802K2": {
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": "la"
},
"Z802K3": {
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": "le"
}
}
},
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z13752",
"Z13752K1": {
"Z1K1": "Z7",
"Z7K1": "Z39467",
"Z39467K1": {
"Z1K1": "Z18",
"Z18K1": "Z39466K1"
},
"Z39467K2": "Z1004"
},
"Z13752K2": [
"Z1",
{
"Z1K1": "Z6091",
"Z6091K1": "Q1775415"
}
]
},
"Z802K2": {
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": "une"
},
"Z802K3": {
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": "un"
}
}
}
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "French determiner for Wikidata item, comp"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
29mqav2vrwr0dw5ok5011x3w9rcnj17
299748
299746
2026-08-15T21:47:32Z
Jsamwrites
938
299748
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39516"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z39466",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z22131",
"Z22131K1": {
"Z1K1": "Z7",
"Z7K1": "Z39506",
"Z39506K1": {
"Z1K1": "Z7",
"Z7K1": "Z6821",
"Z6821K1": {
"Z1K1": "Z18",
"Z18K1": "Z39466K1"
}
}
}
},
"Z802K2": {
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": ""
},
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z13752",
"Z13752K1": {
"Z1K1": "Z18",
"Z18K1": "Z39466K3"
},
"Z13752K2": [
"Z1",
{
"Z1K1": "Z7",
"Z7K1": "Z6821",
"Z6821K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q146786"
}
}
]
},
"Z802K2": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z18",
"Z18K1": "Z39466K2"
},
"Z802K2": {
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": "les"
},
"Z802K3": {
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": "des"
}
},
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z18",
"Z18K1": "Z39466K2"
},
"Z802K2": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z39478",
"Z39478K1": {
"Z1K1": "Z18",
"Z18K1": "Z39466K1"
}
},
"Z802K2": {
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": "l'"
},
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z13752",
"Z13752K1": {
"Z1K1": "Z7",
"Z7K1": "Z39467",
"Z39467K1": {
"Z1K1": "Z18",
"Z18K1": "Z39466K1"
},
"Z39467K2": "Z1004"
},
"Z13752K2": [
"Z1",
{
"Z1K1": "Z6091",
"Z6091K1": "Q1775415"
}
]
},
"Z802K2": {
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": "la"
},
"Z802K3": {
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": "le"
}
}
},
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z13752",
"Z13752K1": {
"Z1K1": "Z7",
"Z7K1": "Z39467",
"Z39467K1": {
"Z1K1": "Z18",
"Z18K1": "Z39466K1"
},
"Z39467K2": "Z1004"
},
"Z13752K2": [
"Z1",
{
"Z1K1": "Z6091",
"Z6091K1": "Q1775415"
}
]
},
"Z802K2": {
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": "une"
},
"Z802K3": {
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": "un"
}
}
}
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "French determiner for Wikidata item, comp"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
lrx3h6d8llg9mpj5ea8g5axcf3tdf1p
299749
299748
2026-08-15T21:51:25Z
Jsamwrites
938
test
299749
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39516"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z39466",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z22131",
"Z22131K1": {
"Z1K1": "Z7",
"Z7K1": "Z39506",
"Z39506K1": {
"Z1K1": "Z7",
"Z7K1": "Z6821",
"Z6821K1": {
"Z1K1": "Z18",
"Z18K1": "Z39466K1"
}
}
}
},
"Z802K2": {
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": ""
},
"Z802K3": {
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": "le"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "French determiner for Wikidata item, comp"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
i94ote2m2j0yoxtpr3lpkjs5m89uq9m
299752
299749
2026-08-15T21:54:04Z
Jsamwrites
938
299752
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39516"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z39466",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z22131",
"Z22131K1": {
"Z1K1": "Z7",
"Z7K1": "Z39506",
"Z39506K1": {
"Z1K1": "Z7",
"Z7K1": "Z6821",
"Z6821K1": {
"Z1K1": "Z18",
"Z18K1": "Z39466K1"
}
}
}
},
"Z802K2": {
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": ""
},
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z13752",
"Z13752K1": {
"Z1K1": "Z18",
"Z18K1": "Z39466K3"
},
"Z13752K2": [
"Z1",
{
"Z1K1": "Z7",
"Z7K1": "Z6821",
"Z6821K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q146786"
}
}
]
},
"Z802K2": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z18",
"Z18K1": "Z39466K2"
},
"Z802K2": {
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": "les"
},
"Z802K3": {
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": "des"
}
},
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z18",
"Z18K1": "Z39466K2"
},
"Z802K2": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z39478",
"Z39478K1": {
"Z1K1": "Z18",
"Z18K1": "Z39466K1"
}
},
"Z802K2": {
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": "l'"
},
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z13752",
"Z13752K1": {
"Z1K1": "Z7",
"Z7K1": "Z39467",
"Z39467K1": {
"Z1K1": "Z18",
"Z18K1": "Z39466K1"
},
"Z39467K2": "Z1004"
},
"Z13752K2": [
"Z1",
{
"Z1K1": "Z6091",
"Z6091K1": "Q1775415"
}
]
},
"Z802K2": {
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": "la"
},
"Z802K3": {
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": "le"
}
}
},
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z13752",
"Z13752K1": {
"Z1K1": "Z7",
"Z7K1": "Z39467",
"Z39467K1": {
"Z1K1": "Z18",
"Z18K1": "Z39466K1"
},
"Z39467K2": "Z1004"
},
"Z13752K2": [
"Z1",
{
"Z1K1": "Z6091",
"Z6091K1": "Q1775415"
}
]
},
"Z802K2": {
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": "une"
},
"Z802K3": {
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": "un"
}
}
}
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "French determiner for Wikidata item, comp"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
lrx3h6d8llg9mpj5ea8g5axcf3tdf1p
299754
299752
2026-08-15T21:58:17Z
Jsamwrites
938
299754
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39516"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z39466",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z22131",
"Z22131K1": {
"Z1K1": "Z7",
"Z7K1": "Z39506",
"Z39506K1": {
"Z1K1": "Z7",
"Z7K1": "Z6821",
"Z6821K1": {
"Z1K1": "Z18",
"Z18K1": "Z39466K1"
}
}
}
},
"Z802K2": {
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": ""
},
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z13752",
"Z13752K1": {
"Z1K1": "Z18",
"Z18K1": "Z39466K3"
},
"Z13752K2": [
"Z6091"
]
},
"Z802K2": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z18",
"Z18K1": "Z39466K2"
},
"Z802K2": {
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": "les"
},
"Z802K3": {
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": "des"
}
},
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z18",
"Z18K1": "Z39466K2"
},
"Z802K2": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z39478",
"Z39478K1": {
"Z1K1": "Z18",
"Z18K1": "Z39466K1"
}
},
"Z802K2": {
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": "l'"
},
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z13752",
"Z13752K1": {
"Z1K1": "Z7",
"Z7K1": "Z39467",
"Z39467K1": {
"Z1K1": "Z18",
"Z18K1": "Z39466K1"
},
"Z39467K2": "Z1004"
},
"Z13752K2": [
"Z1",
{
"Z1K1": "Z6091",
"Z6091K1": "Q1775415"
}
]
},
"Z802K2": {
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": "la"
},
"Z802K3": {
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": "le"
}
}
},
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z13752",
"Z13752K1": {
"Z1K1": "Z7",
"Z7K1": "Z39467",
"Z39467K1": {
"Z1K1": "Z18",
"Z18K1": "Z39466K1"
},
"Z39467K2": "Z1004"
},
"Z13752K2": [
"Z1",
{
"Z1K1": "Z6091",
"Z6091K1": "Q1775415"
}
]
},
"Z802K2": {
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": "une"
},
"Z802K3": {
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": "un"
}
}
}
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "French determiner for Wikidata item, comp"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
ljephwjt4bmx91q8no8n6pp38vkodhh
299755
299754
2026-08-15T21:59:29Z
Jsamwrites
938
299755
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39516"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z39466",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z22131",
"Z22131K1": {
"Z1K1": "Z7",
"Z7K1": "Z39506",
"Z39506K1": {
"Z1K1": "Z7",
"Z7K1": "Z6821",
"Z6821K1": {
"Z1K1": "Z18",
"Z18K1": "Z39466K1"
}
}
}
},
"Z802K2": {
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": ""
},
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z13752",
"Z13752K1": {
"Z1K1": "Z18",
"Z18K1": "Z39466K3"
},
"Z13752K2": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q146786"
}
]
},
"Z802K2": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z18",
"Z18K1": "Z39466K2"
},
"Z802K2": {
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": "les"
},
"Z802K3": {
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": "des"
}
},
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z18",
"Z18K1": "Z39466K2"
},
"Z802K2": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z39478",
"Z39478K1": {
"Z1K1": "Z18",
"Z18K1": "Z39466K1"
}
},
"Z802K2": {
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": "l'"
},
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z13752",
"Z13752K1": {
"Z1K1": "Z7",
"Z7K1": "Z39467",
"Z39467K1": {
"Z1K1": "Z18",
"Z18K1": "Z39466K1"
},
"Z39467K2": "Z1004"
},
"Z13752K2": [
"Z1",
{
"Z1K1": "Z6091",
"Z6091K1": "Q1775415"
}
]
},
"Z802K2": {
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": "la"
},
"Z802K3": {
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": "le"
}
}
},
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z13752",
"Z13752K1": {
"Z1K1": "Z7",
"Z7K1": "Z39467",
"Z39467K1": {
"Z1K1": "Z18",
"Z18K1": "Z39466K1"
},
"Z39467K2": "Z1004"
},
"Z13752K2": [
"Z1",
{
"Z1K1": "Z6091",
"Z6091K1": "Q1775415"
}
]
},
"Z802K2": {
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": "une"
},
"Z802K3": {
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": "un"
}
}
}
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "French determiner for Wikidata item, comp"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
tcr62up82lns1gf8jjz09187t4rtuoh
299756
299755
2026-08-15T22:01:41Z
Jsamwrites
938
299756
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39516"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z39466",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z22131",
"Z22131K1": {
"Z1K1": "Z7",
"Z7K1": "Z39506",
"Z39506K1": {
"Z1K1": "Z7",
"Z7K1": "Z6821",
"Z6821K1": {
"Z1K1": "Z18",
"Z18K1": "Z39466K1"
}
}
}
},
"Z802K2": {
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": ""
},
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z13752",
"Z13752K1": {
"Z1K1": "Z18",
"Z18K1": "Z39466K3"
},
"Z13752K2": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q146786"
}
]
},
"Z802K2": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z18",
"Z18K1": "Z39466K2"
},
"Z802K2": {
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": "les"
},
"Z802K3": {
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": "des"
}
},
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z18",
"Z18K1": "Z39466K2"
},
"Z802K2": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z39478",
"Z39478K1": {
"Z1K1": "Z18",
"Z18K1": "Z39466K1"
}
},
"Z802K2": {
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": "l'"
},
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z13752",
"Z13752K1": {
"Z1K1": "Z7",
"Z7K1": "Z39467",
"Z39467K1": {
"Z1K1": "Z18",
"Z18K1": "Z39466K1"
},
"Z39467K2": "Z1004"
},
"Z13752K2": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q1775415"
}
]
},
"Z802K2": {
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": "la"
},
"Z802K3": {
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": "le"
}
}
},
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z13752",
"Z13752K1": {
"Z1K1": "Z7",
"Z7K1": "Z39467",
"Z39467K1": {
"Z1K1": "Z18",
"Z18K1": "Z39466K1"
},
"Z39467K2": "Z1004"
},
"Z13752K2": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q1775415"
}
]
},
"Z802K2": {
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": "une"
},
"Z802K3": {
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": "un"
}
}
}
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "French determiner for Wikidata item, comp"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
ge02de7k4wbl19z70lqrh0j82mbcwf4
Z39517
0
90191
299750
2026-08-15T21:53:15Z
Jsamwrites
938
299750
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39517"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39466",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z14396",
"Z14396K1": {
"Z1K1": "Z7",
"Z7K1": "Z39466",
"Z39466K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q111"
},
"Z39466K2": {
"Z1K1": "Z40",
"Z40K1": "Z42"
},
"Z39466K3": [
"Z6091"
]
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z866",
"Z866K2": ""
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Mars-French determiner, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
s1wpu5hmzd6yf1duvme5r04rdd2mk6u
Z39518
0
90192
299753
2026-08-15T21:54:38Z
Berveder24
68789
En insérant des informations sur moi
299753
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39518"
},
"Z2K2": "Wikipédia, wikicommons et wikidata",
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": "MPNGH"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": "Étudiant congolaise en science"
}
]
}
}
nrjw20c2d0tmaxxuin4g4aitzygubxo
Z39519
0
90193
299757
2026-08-15T22:04:06Z
Jsamwrites
938
Create test for Z39466
299757
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39519"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39466",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z14396",
"Z14396K1": {
"Z1K1": "Z7",
"Z7K1": "Z39466",
"Z39466K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q111"
},
"Z39466K2": {
"Z1K1": "Z40",
"Z40K1": "Z42"
},
"Z39466K3": [
"Z6091"
]
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z866",
"Z866K2": ""
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Apple-plural-definite,French determiner, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
f8byzv5ogm8unnir1ep1rxny4up4vve
299761
299757
2026-08-15T22:05:08Z
Jsamwrites
938
299761
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39519"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39466",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z14396",
"Z14396K1": {
"Z1K1": "Z7",
"Z7K1": "Z39466",
"Z39466K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q89"
},
"Z39466K2": {
"Z1K1": "Z40",
"Z40K1": "Z41"
},
"Z39466K3": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q146786"
}
]
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z866",
"Z866K2": "les"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Apple-plural-definite,French determiner, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
s9ni81btxuupkxn5fmrco4j4h24wx2w
Z39520
0
90194
299758
2026-08-15T22:04:08Z
Jsamwrites
938
Create test for Z39466
299758
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39520"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39466",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z14396",
"Z14396K1": {
"Z1K1": "Z7",
"Z7K1": "Z39466",
"Z39466K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q111"
},
"Z39466K2": {
"Z1K1": "Z40",
"Z40K1": "Z42"
},
"Z39466K3": [
"Z6091"
]
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z866",
"Z866K2": ""
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Apple-plural-indefinite,French determiner, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
esw2jpb40tqaincr9p2zz8di24ee5dv
299762
299758
2026-08-15T22:05:47Z
Jsamwrites
938
299762
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39520"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39466",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z14396",
"Z14396K1": {
"Z1K1": "Z7",
"Z7K1": "Z39466",
"Z39466K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q89"
},
"Z39466K2": {
"Z1K1": "Z40",
"Z40K1": "Z41"
},
"Z39466K3": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q146786"
}
]
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z866",
"Z866K2": "des"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Apple-plural-indefinite,French determiner, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
gyze8z385tfgcnw2yobwzvobgd6ghbt
299763
299762
2026-08-15T22:06:11Z
Jsamwrites
938
299763
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39520"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39466",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z14396",
"Z14396K1": {
"Z1K1": "Z7",
"Z7K1": "Z39466",
"Z39466K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q89"
},
"Z39466K2": {
"Z1K1": "Z40",
"Z40K1": "Z42"
},
"Z39466K3": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q146786"
}
]
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z866",
"Z866K2": "des"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Apple-plural-indefinite,French determiner, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
d3wl42fe9l5m52wkay9utio6i91rd5g
Z39521
0
90195
299759
2026-08-15T22:04:11Z
Jsamwrites
938
Create test for Z39466
299759
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39521"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39466",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z14396",
"Z14396K1": {
"Z1K1": "Z7",
"Z7K1": "Z39466",
"Z39466K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q111"
},
"Z39466K2": {
"Z1K1": "Z40",
"Z40K1": "Z42"
},
"Z39466K3": [
"Z6091"
]
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z866",
"Z866K2": ""
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Apple-definite,French determiner, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
ajdmogtm0k85c0o41pfkclhscwwbst3
299764
299759
2026-08-15T22:06:34Z
Jsamwrites
938
299764
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39521"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39466",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z14396",
"Z14396K1": {
"Z1K1": "Z7",
"Z7K1": "Z39466",
"Z39466K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q89"
},
"Z39466K2": {
"Z1K1": "Z40",
"Z40K1": "Z41"
},
"Z39466K3": [
"Z6091"
]
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z866",
"Z866K2": "la"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Apple-definite,French determiner, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
83tftkwt46wukvo54dzkfrzjoyhyygs
Z39522
0
90196
299760
2026-08-15T22:04:14Z
Jsamwrites
938
Create test for Z39466
299760
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39522"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39466",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z14396",
"Z14396K1": {
"Z1K1": "Z7",
"Z7K1": "Z39466",
"Z39466K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q111"
},
"Z39466K2": {
"Z1K1": "Z40",
"Z40K1": "Z42"
},
"Z39466K3": [
"Z6091"
]
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z866",
"Z866K2": ""
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Apple-indefinite,French determiner, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
fjj6jsh3ezmsv0mfasicpbu4d5jz8u9
299766
299760
2026-08-15T22:07:21Z
Jsamwrites
938
299766
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39522"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39466",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z14396",
"Z14396K1": {
"Z1K1": "Z7",
"Z7K1": "Z39466",
"Z39466K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q89"
},
"Z39466K2": {
"Z1K1": "Z40",
"Z40K1": "Z42"
},
"Z39466K3": [
"Z6091"
]
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z866",
"Z866K2": "une"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Apple-indefinite,French determiner, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
4popq9j0m66lpe94bzl9pgbcjdmc934
Z39523
0
90197
299771
2026-08-15T22:30:29Z
Jsamwrites
938
299771
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39523"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39523K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "entity"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z40",
"Z17K2": "Z39523K2",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "definite article"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": {
"Z1K1": "Z7",
"Z7K1": "Z881",
"Z881K1": "Z6091"
},
"Z17K2": "Z39523K3",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "grammatical features"
}
]
}
}
],
"Z8K2": "Z11",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14"
],
"Z8K5": "Z39523"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Wikidata item as noun phrase, French"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
o5vfavwz4iu4b7amz1c7hqzzkaxunck
299773
299771
2026-08-15T22:39:51Z
Jsamwrites
938
Added Z39524 to the approved list of implementations
299773
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39523"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39523K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "entity"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z40",
"Z17K2": "Z39523K2",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "definite article"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": {
"Z1K1": "Z7",
"Z7K1": "Z881",
"Z881K1": "Z6091"
},
"Z17K2": "Z39523K3",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "grammatical features"
}
]
}
}
],
"Z8K2": "Z11",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14",
"Z39524"
],
"Z8K5": "Z39523"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Wikidata item as noun phrase, French"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
gk94hs3ncbuj6rkvtdt5nm06dc71kgj
299775
299773
2026-08-15T22:43:12Z
Jsamwrites
938
Added Z39525 to the approved list of test cases
299775
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39523"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39523K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "entity"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z40",
"Z17K2": "Z39523K2",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "definite article"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": {
"Z1K1": "Z7",
"Z7K1": "Z881",
"Z881K1": "Z6091"
},
"Z17K2": "Z39523K3",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "grammatical features"
}
]
}
}
],
"Z8K2": "Z11",
"Z8K3": [
"Z20",
"Z39525"
],
"Z8K4": [
"Z14",
"Z39524"
],
"Z8K5": "Z39523"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Wikidata item as noun phrase, French"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
swzh5b78m73j48yn10zfqm0v8uw60m0
299780
299775
2026-08-15T22:44:53Z
Jsamwrites
938
Added Z39526, Z39527, Z39528 and Z39529 to the approved list of test cases
299780
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39523"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39523K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "entity"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z40",
"Z17K2": "Z39523K2",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "definite article"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": {
"Z1K1": "Z7",
"Z7K1": "Z881",
"Z881K1": "Z6091"
},
"Z17K2": "Z39523K3",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "grammatical features"
}
]
}
}
],
"Z8K2": "Z11",
"Z8K3": [
"Z20",
"Z39525",
"Z39526",
"Z39527",
"Z39528",
"Z39529"
],
"Z8K4": [
"Z14",
"Z39524"
],
"Z8K5": "Z39523"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Wikidata item as noun phrase, French"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
959yv4od88t9atmgorimg233ql9pkra
Z39524
0
90198
299772
2026-08-15T22:39:42Z
Jsamwrites
938
299772
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39524"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z39523",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z866",
"Z866K1": {
"Z1K1": "Z7",
"Z7K1": "Z14396",
"Z14396K1": {
"Z1K1": "Z7",
"Z7K1": "Z39466",
"Z39466K1": {
"Z1K1": "Z18",
"Z18K1": "Z39523K1"
},
"Z39466K2": {
"Z1K1": "Z18",
"Z18K1": "Z39523K2"
},
"Z39466K3": {
"Z1K1": "Z18",
"Z18K1": "Z39523K3"
}
}
},
"Z866K2": ""
},
"Z802K2": {
"Z1K1": "Z7",
"Z7K1": "Z39422",
"Z39422K1": {
"Z1K1": "Z18",
"Z18K1": "Z39523K1"
},
"Z39422K2": {
"Z1K1": "Z18",
"Z18K1": "Z39523K3"
},
"Z39422K3": "Z1004"
},
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z866",
"Z866K1": {
"Z1K1": "Z7",
"Z7K1": "Z14396",
"Z14396K1": {
"Z1K1": "Z7",
"Z7K1": "Z39466",
"Z39466K1": {
"Z1K1": "Z18",
"Z18K1": "Z39523K1"
},
"Z39466K2": {
"Z1K1": "Z18",
"Z18K1": "Z39523K2"
},
"Z39466K3": {
"Z1K1": "Z18",
"Z18K1": "Z39523K3"
}
}
},
"Z866K2": "l'"
},
"Z802K2": {
"Z1K1": "Z7",
"Z7K1": "Z34669",
"Z34669K1": [
"Z11",
{
"Z1K1": "Z7",
"Z7K1": "Z39466",
"Z39466K1": {
"Z1K1": "Z18",
"Z18K1": "Z39523K1"
},
"Z39466K2": {
"Z1K1": "Z18",
"Z18K1": "Z39523K2"
},
"Z39466K3": {
"Z1K1": "Z18",
"Z18K1": "Z39523K3"
}
},
{
"Z1K1": "Z7",
"Z7K1": "Z39422",
"Z39422K1": {
"Z1K1": "Z18",
"Z18K1": "Z39523K1"
},
"Z39422K2": {
"Z1K1": "Z18",
"Z18K1": "Z39523K3"
},
"Z39422K3": "Z1004"
}
],
"Z34669K2": {
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": ""
}
},
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z34669",
"Z34669K1": [
"Z11",
{
"Z1K1": "Z7",
"Z7K1": "Z39466",
"Z39466K1": {
"Z1K1": "Z18",
"Z18K1": "Z39523K1"
},
"Z39466K2": {
"Z1K1": "Z18",
"Z18K1": "Z39523K2"
},
"Z39466K3": {
"Z1K1": "Z18",
"Z18K1": "Z39523K3"
}
},
{
"Z1K1": "Z7",
"Z7K1": "Z39422",
"Z39422K1": {
"Z1K1": "Z18",
"Z18K1": "Z39523K1"
},
"Z39422K2": {
"Z1K1": "Z18",
"Z18K1": "Z39523K3"
},
"Z39422K3": "Z1004"
}
],
"Z34669K2": {
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": " "
}
}
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Wikidata item as noun phrase, French, comp"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
5bsxwkkf5fm5v11oj8q6ltrp7hh5you
Z39525
0
90199
299774
2026-08-15T22:42:59Z
Jsamwrites
938
299774
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39525"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39523",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z14396",
"Z14396K1": {
"Z1K1": "Z7",
"Z7K1": "Z39523",
"Z39523K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q89"
},
"Z39523K2": {
"Z1K1": "Z40",
"Z40K1": "Z41"
},
"Z39523K3": [
"Z6091"
]
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z866",
"Z866K2": "la pomme"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "apple-fr definite noun phrase, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
brmxc93ydv9svq5e6as3isoowxt0w0x
Z39526
0
90200
299776
2026-08-15T22:44:36Z
Jsamwrites
938
Create test for Z39523
299776
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39526"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39523",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z14396",
"Z14396K1": {
"Z1K1": "Z7",
"Z7K1": "Z39523",
"Z39523K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q89"
},
"Z39523K2": {
"Z1K1": "Z40",
"Z40K1": "Z41"
},
"Z39523K3": [
"Z6091"
]
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z866",
"Z866K2": "la pomme"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Dog-plural-definite,French noun phrase, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
5q5wbhw6n4gar7d1umj3nd5w54oxmnh
299781
299776
2026-08-15T22:47:23Z
Jsamwrites
938
299781
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39526"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39523",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z14396",
"Z14396K1": {
"Z1K1": "Z7",
"Z7K1": "Z39523",
"Z39523K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q144"
},
"Z39523K2": {
"Z1K1": "Z40",
"Z40K1": "Z41"
},
"Z39523K3": [
"Z6091"
]
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z866",
"Z866K2": "le chien"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Dog-plural-definite,French noun phrase, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
2dhdfh305tv1wixgo28wwjxq1h5zgad
299782
299781
2026-08-15T22:48:33Z
Jsamwrites
938
299782
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39526"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39523",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z14396",
"Z14396K1": {
"Z1K1": "Z7",
"Z7K1": "Z39523",
"Z39523K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q144"
},
"Z39523K2": {
"Z1K1": "Z40",
"Z40K1": "Z41"
},
"Z39523K3": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q146786"
}
]
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z866",
"Z866K2": "les chiens"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Dog-plural-definite,French noun phrase, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
g0fwaw3uvmlh5xkfyocoa1frbkzegcb
Z39527
0
90201
299777
2026-08-15T22:44:38Z
Jsamwrites
938
Create test for Z39523
299777
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39527"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39523",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z14396",
"Z14396K1": {
"Z1K1": "Z7",
"Z7K1": "Z39523",
"Z39523K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q89"
},
"Z39523K2": {
"Z1K1": "Z40",
"Z40K1": "Z41"
},
"Z39523K3": [
"Z6091"
]
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z866",
"Z866K2": "la pomme"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Dog-plural-indefinite,French noun phrase, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
lfmtet5haym331dzh0on8jy7h7nqqa7
299783
299777
2026-08-15T22:49:32Z
Jsamwrites
938
299783
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39527"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39523",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z14396",
"Z14396K1": {
"Z1K1": "Z7",
"Z7K1": "Z39523",
"Z39523K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q144"
},
"Z39523K2": {
"Z1K1": "Z40",
"Z40K1": "Z42"
},
"Z39523K3": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q146786"
}
]
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z866",
"Z866K2": "des chiens"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Dog-plural-indefinite,French noun phrase, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
hnnakzbyxoyqa41axype2r87rahnkv3
Z39528
0
90202
299778
2026-08-15T22:44:41Z
Jsamwrites
938
Create test for Z39523
299778
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39528"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39523",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z14396",
"Z14396K1": {
"Z1K1": "Z7",
"Z7K1": "Z39523",
"Z39523K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q89"
},
"Z39523K2": {
"Z1K1": "Z40",
"Z40K1": "Z41"
},
"Z39523K3": [
"Z6091"
]
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z866",
"Z866K2": "la pomme"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Dog-definite, French noun phrase, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
mrcts6ak1sz27xwajsf6ms5iikcp4xk
299784
299778
2026-08-15T22:50:06Z
Jsamwrites
938
299784
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39528"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39523",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z14396",
"Z14396K1": {
"Z1K1": "Z7",
"Z7K1": "Z39523",
"Z39523K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q144"
},
"Z39523K2": {
"Z1K1": "Z40",
"Z40K1": "Z41"
},
"Z39523K3": [
"Z6091"
]
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z866",
"Z866K2": "le chien"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Dog-definite, French noun phrase, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
1xw6uvd7caux0jr7d4m17dy30o6urdr
299787
299784
2026-08-15T22:53:28Z
Jsamwrites
938
299787
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39528"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39523",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z14396",
"Z14396K1": {
"Z1K1": "Z7",
"Z7K1": "Z39523",
"Z39523K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q144"
},
"Z39523K2": {
"Z1K1": "Z40",
"Z40K1": "Z41"
},
"Z39523K3": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q110786"
}
]
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z866",
"Z866K2": "le chien"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Dog-definite, French noun phrase, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
hv6007b4nle6y78kay9np7rx7n4kybn
Z39529
0
90203
299779
2026-08-15T22:44:44Z
Jsamwrites
938
Create test for Z39523
299779
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39529"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39523",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z14396",
"Z14396K1": {
"Z1K1": "Z7",
"Z7K1": "Z39523",
"Z39523K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q89"
},
"Z39523K2": {
"Z1K1": "Z40",
"Z40K1": "Z41"
},
"Z39523K3": [
"Z6091"
]
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z866",
"Z866K2": "la pomme"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Dog-indefinite, French noun phrase, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
g6cmso3y0t0u754trp34z9ovg1juf7h
299785
299779
2026-08-15T22:50:34Z
Jsamwrites
938
299785
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39529"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39523",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z14396",
"Z14396K1": {
"Z1K1": "Z7",
"Z7K1": "Z39523",
"Z39523K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q144"
},
"Z39523K2": {
"Z1K1": "Z40",
"Z40K1": "Z42"
},
"Z39523K3": [
"Z6091"
]
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z866",
"Z866K2": "un chien"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Dog-indefinite, French noun phrase, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
mlvavnmlf4d34pelvdn9pfnicwlv0wo
299786
299785
2026-08-15T22:52:42Z
Jsamwrites
938
299786
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39529"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39523",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z14396",
"Z14396K1": {
"Z1K1": "Z7",
"Z7K1": "Z39523",
"Z39523K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q144"
},
"Z39523K2": {
"Z1K1": "Z40",
"Z40K1": "Z42"
},
"Z39523K3": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q110786"
}
]
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z866",
"Z866K2": "un chien"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Dog-indefinite, French noun phrase, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
p66d5462qqt1i7ip5faw0dolxuv1j3h
Z39530
0
90205
299789
2026-08-16T00:23:31Z
Omar M. Ghaly
99256
.
299789
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39530"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39530K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "entity"
}
]
}
}
],
"Z8K2": "Z6",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14"
],
"Z8K5": "Z39530"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Grammatical gender from Wikidata item [ar]"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31",
{
"Z1K1": "Z31",
"Z31K1": "Z1002",
"Z31K2": [
"Z6",
"Arabic gender",
"gender in Arabic"
]
}
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Checks the gender of a word from a Wikidata item for Arabic"
}
]
}
}
frievl0zq6af5d5sgsyvcpu3raa4yez
299790
299789
2026-08-16T00:48:18Z
Omar M. Ghaly
99256
.
299790
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39530"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39530K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "entity"
}
]
}
}
],
"Z8K2": {
"Z1K1": "Z7",
"Z7K1": "Z881",
"Z881K1": "Z6091"
},
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14"
],
"Z8K5": "Z39530"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Grammatical gender from Wikidata item [ar]"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31",
{
"Z1K1": "Z31",
"Z31K1": "Z1002",
"Z31K2": [
"Z6",
"Arabic gender",
"gender in Arabic"
]
}
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Checks the gender of a word from a Wikidata item for Arabic"
}
]
}
}
kg2uu294ul9b7iabqxqzzfv0k4wbtzo
Talk:Z21658
1
90206
299805
2026-08-16T05:46:43Z
Arlo Barnes
1231
/* litre */ new section
299805
wikitext
text/x-wiki
== litre ==
4.226752837(73037469004) cu [[User:Arlo Barnes|Arlo Barnes]] ([[User talk:Arlo Barnes|talk]]) 05:46, 16 August 2026 (UTC)
njpzdmbo5wzetyqhqqwrschkxhgp05e
Z39531
0
90207
299809
2026-08-16T05:57:11Z
Jsamwrites
938
299809
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39531"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39531K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "entity"
}
]
}
}
],
"Z8K2": "Z6091",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14"
],
"Z8K5": "Z39531"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "grammatical number of Wikidata item"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
p5r8imd00ncpyygaoum4bcs98rcv2ea
299811
299809
2026-08-16T06:09:26Z
Jsamwrites
938
Added Z39532 to the approved list of implementations
299811
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39531"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39531K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "entity"
}
]
}
}
],
"Z8K2": "Z6091",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14",
"Z39532"
],
"Z8K5": "Z39531"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "grammatical number of Wikidata item"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
s8d4emwhmvane9izxk8ckbdah3r1jux
299815
299811
2026-08-16T06:18:09Z
Jsamwrites
938
Added Z39533 to the approved list of test cases
299815
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39531"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39531K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "entity"
}
]
}
}
],
"Z8K2": "Z6091",
"Z8K3": [
"Z20",
"Z39533"
],
"Z8K4": [
"Z14",
"Z39532"
],
"Z8K5": "Z39531"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "grammatical number of Wikidata item"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
jt51a309x69887wntbe8ng8sfcr7jr2
299824
299815
2026-08-16T06:36:18Z
Jsamwrites
938
Removed Z39532 from the approved list of implementations
299824
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39531"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39531K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "entity"
}
]
}
}
],
"Z8K2": "Z6091",
"Z8K3": [
"Z20",
"Z39533"
],
"Z8K4": [
"Z14"
],
"Z8K5": "Z39531"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "grammatical number of Wikidata item"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
pfx6wqo9lg23iqb1hu8p1nbh8hdetcr
299825
299824
2026-08-16T06:36:21Z
Jsamwrites
938
Removed Z39533 from the approved list of test cases
299825
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39531"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39531K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "entity"
}
]
}
}
],
"Z8K2": "Z6091",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14"
],
"Z8K5": "Z39531"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "grammatical number of Wikidata item"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
p5r8imd00ncpyygaoum4bcs98rcv2ea
299826
299825
2026-08-16T06:36:46Z
Jsamwrites
938
299826
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39531"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39531K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "entity"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z60",
"Z17K2": "Z39531K2",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "language"
}
]
}
}
],
"Z8K2": "Z6091",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14"
],
"Z8K5": "Z39531"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "grammatical number of Wikidata item"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
mk5cawt5l2wykj35f9rarxqw22xpv5q
299827
299826
2026-08-16T06:36:51Z
Jsamwrites
938
Added Z39532 to the approved list of implementations
299827
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39531"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39531K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "entity"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z60",
"Z17K2": "Z39531K2",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "language"
}
]
}
}
],
"Z8K2": "Z6091",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14",
"Z39532"
],
"Z8K5": "Z39531"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "grammatical number of Wikidata item"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
j7qqfisibz82lnjand7mubl3xha5708
299829
299827
2026-08-16T06:37:29Z
Jsamwrites
938
Added Z39533 to the approved list of test cases
299829
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39531"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39531K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "entity"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z60",
"Z17K2": "Z39531K2",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "language"
}
]
}
}
],
"Z8K2": "Z6091",
"Z8K3": [
"Z20",
"Z39533"
],
"Z8K4": [
"Z14",
"Z39532"
],
"Z8K5": "Z39531"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "grammatical number of Wikidata item"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
460w3szcqu7ydcnfxliafmt7xdhnkxj
Z39532
0
90208
299810
2026-08-16T06:09:14Z
Jsamwrites
938
299810
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39532"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z39531",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z27299",
"Z27299K1": {
"Z1K1": "Z18",
"Z18K1": "Z39531K1"
},
"Z27299K2": {
"Z1K1": "Z6092",
"Z6092K1": "P11054"
}
},
"Z802K2": {
"Z1K1": "Z7",
"Z7K1": "Z811",
"Z811K1": {
"Z1K1": "Z7",
"Z7K1": "Z22978",
"Z22978K1": {
"Z1K1": "Z18",
"Z18K1": "Z39531K1"
},
"Z22978K2": {
"Z1K1": "Z6092",
"Z6092K1": "P11054"
}
}
},
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z6821",
"Z6821K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q110786"
}
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "grammatical number of Wikidata item, comp"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
7ba4n905b10lksoi86jtfhdajwbts8m
299812
299810
2026-08-16T06:10:26Z
Jsamwrites
938
299812
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39532"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z39531",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z27299",
"Z27299K1": {
"Z1K1": "Z7",
"Z7K1": "Z6821",
"Z6821K1": {
"Z1K1": "Z18",
"Z18K1": "Z39531K1"
}
},
"Z27299K2": {
"Z1K1": "Z6092",
"Z6092K1": "P11054"
}
},
"Z802K2": {
"Z1K1": "Z7",
"Z7K1": "Z811",
"Z811K1": {
"Z1K1": "Z7",
"Z7K1": "Z22978",
"Z22978K1": {
"Z1K1": "Z18",
"Z18K1": "Z39531K1"
},
"Z22978K2": {
"Z1K1": "Z6092",
"Z6092K1": "P11054"
}
}
},
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z6821",
"Z6821K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q110786"
}
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "grammatical number of Wikidata item, comp"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
dnnr2mys9g8dfc1zlersmwrurdh8bn0
299814
299812
2026-08-16T06:18:02Z
Jsamwrites
938
299814
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39532"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z39531",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z27299",
"Z27299K1": {
"Z1K1": "Z7",
"Z7K1": "Z6821",
"Z6821K1": {
"Z1K1": "Z18",
"Z18K1": "Z39531K1"
}
},
"Z27299K2": {
"Z1K1": "Z6092",
"Z6092K1": "P11054"
}
},
"Z802K2": {
"Z1K1": "Z7",
"Z7K1": "Z23756",
"Z23756K1": {
"Z1K1": "Z7",
"Z7K1": "Z6821",
"Z6821K1": {
"Z1K1": "Z7",
"Z7K1": "Z811",
"Z811K1": {
"Z1K1": "Z7",
"Z7K1": "Z22978",
"Z22978K1": {
"Z1K1": "Z18",
"Z18K1": "Z39531K1"
},
"Z22978K2": {
"Z1K1": "Z6092",
"Z6092K1": "P11054"
}
}
}
}
},
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z6821",
"Z6821K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q110786"
}
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "grammatical number of Wikidata item, comp"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
2h6q484gx0lo1xw2gi9qwnwjql91nzp
299816
299814
2026-08-16T06:20:43Z
Jsamwrites
938
299816
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39532"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z39531",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z27299",
"Z27299K1": {
"Z1K1": "Z7",
"Z7K1": "Z6821",
"Z6821K1": {
"Z1K1": "Z18",
"Z18K1": "Z39531K1"
}
},
"Z27299K2": {
"Z1K1": "Z6092",
"Z6092K1": "P11054"
}
},
"Z802K2": {
"Z1K1": "Z7",
"Z7K1": "Z23756",
"Z23756K1": {
"Z1K1": "Z7",
"Z7K1": "Z6821",
"Z6821K1": {
"Z1K1": "Z7",
"Z7K1": "Z811",
"Z811K1": {
"Z1K1": "Z7",
"Z7K1": "Z22978",
"Z22978K1": {
"Z1K1": "Z18",
"Z18K1": "Z39531K1"
},
"Z22978K2": {
"Z1K1": "Z6092",
"Z6092K1": "P11054"
}
}
}
}
},
"Z802K3": {
"Z1K1": "Z6091",
"Z6091K1": "Q110786"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "grammatical number of Wikidata item, comp"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
0h6qya9y8x4m1odfsnjnjamflg9f7n4
Z39533
0
90209
299813
2026-08-16T06:15:39Z
Jsamwrites
938
299813
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39533"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39531",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z39531",
"Z39531K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q515"
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z19316",
"Z19316K2": {
"Z1K1": "Z6091",
"Z6091K1": "Q110786"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "city, grammatical number, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
paktu5gpm4dnnoeq3s69katt2gm83xt
299828
299813
2026-08-16T06:37:21Z
Jsamwrites
938
299828
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39533"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39531",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z39531",
"Z39531K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q515"
},
"Z39531K2": "Z1002"
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z19316",
"Z19316K2": {
"Z1K1": "Z6091",
"Z6091K1": "Q110786"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "city, grammatical number, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
31d85apyre7caoaw90rmyquhjs0refk
Z39534
0
90210
299817
2026-08-16T06:31:23Z
Jsamwrites
938
299817
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39534"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39534K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "list of entities "
}
]
}
}
],
"Z8K2": "Z6091",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14"
],
"Z8K5": "Z39534"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "grammatical number of Wikidata items"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
n1gcgma7ls305sdy7j74ysn7s1lc9td
299820
299817
2026-08-16T06:34:46Z
Jsamwrites
938
Added Z39535 to the approved list of implementations
299820
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39534"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39534K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "list of entities "
}
]
}
}
],
"Z8K2": "Z6091",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14",
"Z39535"
],
"Z8K5": "Z39534"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "grammatical number of Wikidata items"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
192ohy0lcrt0ydnf6sg3rx86nch99z2
299821
299820
2026-08-16T06:35:13Z
Jsamwrites
938
Removed Z39535 from the approved list of implementations
299821
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39534"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39534K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "list of entities "
}
]
}
}
],
"Z8K2": "Z6091",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14"
],
"Z8K5": "Z39534"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "grammatical number of Wikidata items"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
n1gcgma7ls305sdy7j74ysn7s1lc9td
299822
299821
2026-08-16T06:35:34Z
Jsamwrites
938
299822
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39534"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": {
"Z1K1": "Z7",
"Z7K1": "Z881",
"Z881K1": "Z6091"
},
"Z17K2": "Z39534K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "list of entities "
}
]
}
}
],
"Z8K2": "Z6091",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14"
],
"Z8K5": "Z39534"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "grammatical number of Wikidata items"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
mdjska7uijxunp7i0gssfyygki7su0n
299823
299822
2026-08-16T06:35:56Z
Jsamwrites
938
299823
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39534"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": {
"Z1K1": "Z7",
"Z7K1": "Z881",
"Z881K1": "Z6091"
},
"Z17K2": "Z39534K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "list of entities "
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z60",
"Z17K2": "Z39534K2",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "language"
}
]
}
}
],
"Z8K2": "Z6091",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14"
],
"Z8K5": "Z39534"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "grammatical number of Wikidata items"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
au83ytkq4yruwkvmp43vwxktks9odr4
299830
299823
2026-08-16T06:38:47Z
Jsamwrites
938
Added Z39535 to the approved list of implementations
299830
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39534"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": {
"Z1K1": "Z7",
"Z7K1": "Z881",
"Z881K1": "Z6091"
},
"Z17K2": "Z39534K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "list of entities "
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z60",
"Z17K2": "Z39534K2",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "language"
}
]
}
}
],
"Z8K2": "Z6091",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14",
"Z39535"
],
"Z8K5": "Z39534"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "grammatical number of Wikidata items"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
eq5bi4zjqp5wfz3w2r32b6zjgv4smmw
299833
299830
2026-08-16T06:39:54Z
Jsamwrites
938
Added Z39536 to the approved list of test cases
299833
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39534"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": {
"Z1K1": "Z7",
"Z7K1": "Z881",
"Z881K1": "Z6091"
},
"Z17K2": "Z39534K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "list of entities "
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z60",
"Z17K2": "Z39534K2",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "language"
}
]
}
}
],
"Z8K2": "Z6091",
"Z8K3": [
"Z20",
"Z39536"
],
"Z8K4": [
"Z14",
"Z39535"
],
"Z8K5": "Z39534"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "grammatical number of Wikidata items"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
rjkzqahbfrc6vgq53x1l2lrtj47yjvb
Z39535
0
90211
299818
2026-08-16T06:34:24Z
Jsamwrites
938
299818
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39535"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z39534",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z13676",
"Z13676K1": {
"Z1K1": "Z7",
"Z7K1": "Z12681",
"Z12681K1": {
"Z1K1": "Z18",
"Z18K1": "Z39534K1"
}
},
"Z13676K2": {
"Z1K1": "Z13518",
"Z13518K1": "1"
}
},
"Z802K2": {
"Z1K1": "Z6091",
"Z6091K1": "Q146786"
},
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z39531",
"Z39531K1": {
"Z1K1": "Z7",
"Z7K1": "Z811",
"Z811K1": {
"Z1K1": "Z18",
"Z18K1": "Z39534K1"
}
}
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
a62xzlluiq5mj307s79sx5nbwvqepks
299819
299818
2026-08-16T06:34:37Z
Jsamwrites
938
299819
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39535"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z39534",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z13676",
"Z13676K1": {
"Z1K1": "Z7",
"Z7K1": "Z12681",
"Z12681K1": {
"Z1K1": "Z18",
"Z18K1": "Z39534K1"
}
},
"Z13676K2": {
"Z1K1": "Z13518",
"Z13518K1": "1"
}
},
"Z802K2": {
"Z1K1": "Z6091",
"Z6091K1": "Q146786"
},
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z39531",
"Z39531K1": {
"Z1K1": "Z7",
"Z7K1": "Z811",
"Z811K1": {
"Z1K1": "Z18",
"Z18K1": "Z39534K1"
}
}
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "grammatical number of Wikidata items, comp"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
70tls5bqo83bmootjes9wzhgfsemgpq
Z39536
0
90212
299831
2026-08-16T06:39:25Z
Jsamwrites
938
299831
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39536"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39534",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z39534",
"Z39534K1": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q515"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q1549591"
}
],
"Z39534K2": {
"Z1K1": "Z9",
"Z9K1": ""
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z19316",
"Z19316K2": {
"Z1K1": "Z6091",
"Z6091K1": "Q146786"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "entity list, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
obmsrj9ce0vwr866qq8lr9ilzmwr9wg
299832
299831
2026-08-16T06:39:44Z
Jsamwrites
938
299832
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39536"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39534",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z39534",
"Z39534K1": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q515"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q1549591"
}
],
"Z39534K2": "Z1002"
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z19316",
"Z19316K2": {
"Z1K1": "Z6091",
"Z6091K1": "Q146786"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "entity list, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
b99bmcju8n7a93586xayfnat5ctl895
299834
299832
2026-08-16T06:40:09Z
Jsamwrites
938
299834
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39536"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39534",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z39534",
"Z39534K1": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q515"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q1549591"
}
],
"Z39534K2": "Z1002"
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z19316",
"Z19316K2": {
"Z1K1": "Z6091",
"Z6091K1": "Q146786"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "entity list-grammatical number, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
h56wvgdvphxpr5andqjclb6n2iav339
Z39537
0
90213
299835
2026-08-16T06:46:49Z
Jsamwrites
938
299835
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39537"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6095",
"Z17K2": "Z39537K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "verb lexeme"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": {
"Z1K1": "Z7",
"Z7K1": "Z881",
"Z881K1": "Z6091"
},
"Z17K2": "Z39537K2",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "grammatical features list"
}
]
}
}
],
"Z8K2": "Z11",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14"
],
"Z8K5": "Z39537"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "verb form from Wikidata Lexeme"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
mtblbgslp41wth9thq6vncbcmvmkd6g
299837
299835
2026-08-16T06:47:55Z
Jsamwrites
938
Added Z39538 to the approved list of implementations
299837
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39537"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6095",
"Z17K2": "Z39537K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "verb lexeme"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": {
"Z1K1": "Z7",
"Z7K1": "Z881",
"Z881K1": "Z6091"
},
"Z17K2": "Z39537K2",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "grammatical features list"
}
]
}
}
],
"Z8K2": "Z11",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14",
"Z39538"
],
"Z8K5": "Z39537"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "verb form from Wikidata Lexeme"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
sp83hljsw4skxsxm25cdresuc79r71g
299841
299837
2026-08-16T06:55:34Z
Jsamwrites
938
Added Z39539 to the approved list of test cases
299841
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39537"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6095",
"Z17K2": "Z39537K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "verb lexeme"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": {
"Z1K1": "Z7",
"Z7K1": "Z881",
"Z881K1": "Z6091"
},
"Z17K2": "Z39537K2",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "grammatical features list"
}
]
}
}
],
"Z8K2": "Z11",
"Z8K3": [
"Z20",
"Z39539"
],
"Z8K4": [
"Z14",
"Z39538"
],
"Z8K5": "Z39537"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "verb form from Wikidata Lexeme"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
hs2ayw1rfuks0vl99fza73zoprmkilp
299847
299841
2026-08-16T07:00:33Z
Jsamwrites
938
Added Z39540 to the approved list of test cases
299847
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39537"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6095",
"Z17K2": "Z39537K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "verb lexeme"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": {
"Z1K1": "Z7",
"Z7K1": "Z881",
"Z881K1": "Z6091"
},
"Z17K2": "Z39537K2",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "grammatical features list"
}
]
}
}
],
"Z8K2": "Z11",
"Z8K3": [
"Z20",
"Z39539",
"Z39540"
],
"Z8K4": [
"Z14",
"Z39538"
],
"Z8K5": "Z39537"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "verb form from Wikidata Lexeme"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
buzwju41vpdbpg6m2tm0k2ce4ssnfzk
Z39538
0
90214
299836
2026-08-16T06:47:44Z
Jsamwrites
938
299836
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39538"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z39537",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z27410",
"Z27410K1": {
"Z1K1": "Z18",
"Z18K1": "Z39537K1"
},
"Z27410K2": {
"Z1K1": "Z18",
"Z18K1": "Z39537K2"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "verb form from Wikidata Lexeme, comp"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
pkt8c7l8oro7rp8qwbkm8lg45oqzvgw
299838
299836
2026-08-16T06:49:06Z
Jsamwrites
938
299838
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39538"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z39537",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z27410",
"Z27410K1": {
"Z1K1": "Z7",
"Z7K1": "Z6825",
"Z6825K1": {
"Z1K1": "Z18",
"Z18K1": "Z39537K1"
}
},
"Z27410K2": {
"Z1K1": "Z18",
"Z18K1": "Z39537K2"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "verb form from Wikidata Lexeme, comp"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
jkf0admusf8cm4j17y2fst89mak0r0e
299840
299838
2026-08-16T06:55:25Z
Jsamwrites
938
299840
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39538"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z39537",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z34943",
"Z34943K1": {
"Z1K1": "Z7",
"Z7K1": "Z6825",
"Z6825K1": {
"Z1K1": "Z18",
"Z18K1": "Z39537K1"
}
},
"Z34943K2": {
"Z1K1": "Z18",
"Z18K1": "Z39537K2"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "verb form from Wikidata Lexeme, comp"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
53c1eqf606agf86tcy8ecwmhpmmeq2t
299842
299840
2026-08-16T06:58:12Z
Jsamwrites
938
299842
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39538"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z39537",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z16273",
"Z16273K1": {
"Z1K1": "Z7",
"Z7K1": "Z34943",
"Z34943K1": {
"Z1K1": "Z7",
"Z7K1": "Z6825",
"Z6825K1": {
"Z1K1": "Z18",
"Z18K1": "Z39537K1"
}
},
"Z34943K2": {
"Z1K1": "Z18",
"Z18K1": "Z39537K2"
}
},
"Z16273K2": {
"Z1K1": "Z7",
"Z7K1": "Z19295",
"Z19295K1": {
"Z1K1": "Z7",
"Z7K1": "Z6825",
"Z6825K1": {
"Z1K1": "Z18",
"Z18K1": "Z39537K1"
}
}
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "verb form from Wikidata Lexeme, comp"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
mvui1wtyxxt79n7e0zrma3tctrps3n9
Z39539
0
90215
299839
2026-08-16T06:53:05Z
Jsamwrites
938
299839
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39539"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39537",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z14396",
"Z14396K1": {
"Z1K1": "Z7",
"Z7K1": "Z39537",
"Z39537K1": {
"Z1K1": "Z6095",
"Z6095K1": "L9"
},
"Z39537K2": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q1994301"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q814722"
}
]
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z866",
"Z866K2": "created"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "create-verb form, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
1tk17e4t8iyuczwl6je4nevyopnzl0o
Z39540
0
90216
299843
2026-08-16T06:59:28Z
Jsamwrites
938
Create test for Z39537
299843
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39540"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39537",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z14396",
"Z14396K1": {
"Z1K1": "Z7",
"Z7K1": "Z39537",
"Z39537K1": {
"Z1K1": "Z6095",
"Z6095K1": "L9"
},
"Z39537K2": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q1994301"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q814722"
}
]
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z866",
"Z866K2": "created"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "create-verb form, masculine, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
fmu0dgjksoh9ommz9oefdh9m4pwx3om
299845
299843
2026-08-16T06:59:56Z
Jsamwrites
938
299845
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39540"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39537",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z14396",
"Z14396K1": {
"Z1K1": "Z7",
"Z7K1": "Z39537",
"Z39537K1": {
"Z1K1": "Z6095",
"Z6095K1": "L9"
},
"Z39537K2": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q1994301"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q814722"
}
]
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z866",
"Z866K2": "created"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "create-verb form, fr, masculine, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
2pbuiwvllxd86vsg5a5xasrbou1bich
299846
299845
2026-08-16T07:00:24Z
Jsamwrites
938
299846
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39540"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39537",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z14396",
"Z14396K1": {
"Z1K1": "Z7",
"Z7K1": "Z39537",
"Z39537K1": {
"Z1K1": "Z6095",
"Z6095K1": "L9450"
},
"Z39537K2": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q1994301"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q814722"
}
]
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z866",
"Z866K2": "créé"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "create-verb form, fr, masculine, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
qdkva0x64zlm3jri7j0falcyglhh2w0
Z39541
0
90217
299844
2026-08-16T06:59:30Z
Jsamwrites
938
Create test for Z39537
299844
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39541"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39537",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z14396",
"Z14396K1": {
"Z1K1": "Z7",
"Z7K1": "Z39537",
"Z39537K1": {
"Z1K1": "Z6095",
"Z6095K1": "L9"
},
"Z39537K2": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q1994301"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q814722"
}
]
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z866",
"Z866K2": "created"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "create-verb form, feminine, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
3dcuuii6yw52ujf4hasyg4vfhll6haj
299848
299844
2026-08-16T07:01:14Z
Jsamwrites
938
299848
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39541"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39537",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z14396",
"Z14396K1": {
"Z1K1": "Z7",
"Z7K1": "Z39537",
"Z39537K1": {
"Z1K1": "Z6095",
"Z6095K1": "L9450"
},
"Z39537K2": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q1994301"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q814722"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q1775415"
}
]
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z866",
"Z866K2": "créée"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "create-verb form, fr, feminine, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
rwb50cjbqicgtu9tg7pnhc16vdqia2b
Z39542
0
90218
299849
2026-08-16T07:11:00Z
Jsamwrites
938
299849
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39542"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": {
"Z1K1": "Z7",
"Z7K1": "Z881",
"Z881K1": "Z6091"
},
"Z17K2": "Z39542K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "subjects"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39542K2",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "verb"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39542K3",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "tense"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39542K4",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "voice"
}
]
}
}
],
"Z8K2": "Z11",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14"
],
"Z8K5": "Z39542"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "English verbal complex for Wikidata subjects"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
ecacnarmeu721qser8uk1o4vayunshp
299852
299849
2026-08-16T07:19:27Z
Jsamwrites
938
Added Z39543 to the approved list of implementations
299852
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39542"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": {
"Z1K1": "Z7",
"Z7K1": "Z881",
"Z881K1": "Z6091"
},
"Z17K2": "Z39542K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "subjects"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39542K2",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "verb"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39542K3",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "tense"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39542K4",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "voice"
}
]
}
}
],
"Z8K2": "Z11",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14",
"Z39543"
],
"Z8K5": "Z39542"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "English verbal complex for Wikidata subjects"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
gm9tbm61usf45ml6xhjq2924agp36xk
299853
299852
2026-08-16T07:21:25Z
Jsamwrites
938
Removed Z39543 from the approved list of implementations
299853
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39542"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": {
"Z1K1": "Z7",
"Z7K1": "Z881",
"Z881K1": "Z6091"
},
"Z17K2": "Z39542K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "subjects"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39542K2",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "verb"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39542K3",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "tense"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39542K4",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "voice"
}
]
}
}
],
"Z8K2": "Z11",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14"
],
"Z8K5": "Z39542"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "English verbal complex for Wikidata subjects"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
ecacnarmeu721qser8uk1o4vayunshp
299854
299853
2026-08-16T07:21:42Z
Jsamwrites
938
299854
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39542"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": {
"Z1K1": "Z7",
"Z7K1": "Z881",
"Z881K1": "Z6091"
},
"Z17K2": "Z39542K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "subjects"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z6095",
"Z17K2": "Z39542K2",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "verb lexeme"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39542K3",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "tense"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39542K4",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "voice"
}
]
}
}
],
"Z8K2": "Z11",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14"
],
"Z8K5": "Z39542"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "English verbal complex for Wikidata subjects"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
e9c58ccd8wp5t82l06e1j6aha50a1q8
299855
299854
2026-08-16T07:21:47Z
Jsamwrites
938
Added Z39543 to the approved list of implementations
299855
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39542"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": {
"Z1K1": "Z7",
"Z7K1": "Z881",
"Z881K1": "Z6091"
},
"Z17K2": "Z39542K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "subjects"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z6095",
"Z17K2": "Z39542K2",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "verb lexeme"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39542K3",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "tense"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39542K4",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "voice"
}
]
}
}
],
"Z8K2": "Z11",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14",
"Z39543"
],
"Z8K5": "Z39542"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "English verbal complex for Wikidata subjects"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
4jf5f5ukpfhub972lbsgdy4bagosnen
299882
299855
2026-08-16T08:09:38Z
Jsamwrites
938
Added Z39553 to the approved list of test cases
299882
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39542"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": {
"Z1K1": "Z7",
"Z7K1": "Z881",
"Z881K1": "Z6091"
},
"Z17K2": "Z39542K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "subjects"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z6095",
"Z17K2": "Z39542K2",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "verb lexeme"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39542K3",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "tense"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39542K4",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "voice"
}
]
}
}
],
"Z8K2": "Z11",
"Z8K3": [
"Z20",
"Z39553"
],
"Z8K4": [
"Z14",
"Z39543"
],
"Z8K5": "Z39542"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "English verbal complex for Wikidata subjects"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
rasbh0c2y0dfq9k4gpl7yyh8sthemac
299891
299882
2026-08-16T08:10:58Z
Jsamwrites
938
Added Z39555, Z39556, Z39557 and Z39558 to the approved list of test cases
299891
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39542"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": {
"Z1K1": "Z7",
"Z7K1": "Z881",
"Z881K1": "Z6091"
},
"Z17K2": "Z39542K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "subjects"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z6095",
"Z17K2": "Z39542K2",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "verb lexeme"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39542K3",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "tense"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39542K4",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "voice"
}
]
}
}
],
"Z8K2": "Z11",
"Z8K3": [
"Z20",
"Z39553",
"Z39555",
"Z39556",
"Z39557",
"Z39558"
],
"Z8K4": [
"Z14",
"Z39543"
],
"Z8K5": "Z39542"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "English verbal complex for Wikidata subjects"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
6hcf9etpn8rldx3irwm3ost8meinzkw
299902
299891
2026-08-16T08:18:18Z
Jsamwrites
938
Removed Z39553, Z39555, Z39556, Z39557 and Z39558 from the approved list of test cases
299902
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39542"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": {
"Z1K1": "Z7",
"Z7K1": "Z881",
"Z881K1": "Z6091"
},
"Z17K2": "Z39542K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "subjects"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z6095",
"Z17K2": "Z39542K2",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "verb lexeme"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39542K3",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "tense"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39542K4",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "voice"
}
]
}
}
],
"Z8K2": "Z11",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14",
"Z39543"
],
"Z8K5": "Z39542"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "English verbal complex for Wikidata subjects"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
4jf5f5ukpfhub972lbsgdy4bagosnen
299906
299902
2026-08-16T08:32:13Z
Jsamwrites
938
Added Z39553, Z39555, Z39556, Z39557, Z39558, Z39559, Z39560 and Z39561 to the approved list of test cases
299906
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39542"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": {
"Z1K1": "Z7",
"Z7K1": "Z881",
"Z881K1": "Z6091"
},
"Z17K2": "Z39542K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "subjects"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z6095",
"Z17K2": "Z39542K2",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "verb lexeme"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39542K3",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "tense"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39542K4",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "voice"
}
]
}
}
],
"Z8K2": "Z11",
"Z8K3": [
"Z20",
"Z39553",
"Z39555",
"Z39556",
"Z39557",
"Z39558",
"Z39559",
"Z39560",
"Z39561"
],
"Z8K4": [
"Z14",
"Z39543"
],
"Z8K5": "Z39542"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "English verbal complex for Wikidata subjects"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
s02k9tol0jp0swoknb40f9l1jdwbn7r
Z39543
0
90219
299850
2026-08-16T07:19:05Z
Jsamwrites
938
299850
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39543"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z39542",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z19316",
"Z19316K1": {
"Z1K1": "Z18",
"Z18K1": "Z39542K4"
},
"Z19316K2": {
"Z1K1": "Z6091",
"Z6091K1": "Q1317831"
}
},
"Z802K2": {
"Z1K1": "Z7",
"Z7K1": "Z39537",
"Z39537K1": {
"Z1K1": "Z18",
"Z18K1": "Z39542K2"
},
"Z39537K2": [
"Z6091",
{
"Z1K1": "Z18",
"Z18K1": "Z39542K3"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q682111"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q51929074"
},
{
"Z1K1": "Z7",
"Z7K1": "Z39534",
"Z39534K1": {
"Z1K1": "Z18",
"Z18K1": "Z39542K1"
},
"Z39534K2": "Z1002"
}
]
},
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z34669",
"Z34669K1": [
"Z11",
{
"Z1K1": "Z7",
"Z7K1": "Z39537",
"Z39537K1": {
"Z1K1": "Z6095",
"Z6095K1": "L1883"
},
"Z39537K2": [
"Z6091",
{
"Z1K1": "Z18",
"Z18K1": "Z39542K3"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q682111"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q51929074"
},
{
"Z1K1": "Z7",
"Z7K1": "Z39534",
"Z39534K1": {
"Z1K1": "Z18",
"Z18K1": "Z39542K1"
},
"Z39534K2": "Z1002"
}
]
},
{
"Z1K1": "Z7",
"Z7K1": "Z39537",
"Z39537K1": {
"Z1K1": "Z18",
"Z18K1": "Z39542K2"
},
"Z39537K2": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q1994301"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q814722"
}
]
}
],
"Z34669K2": {
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": " "
}
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
a571fkz3p7s8f3of2lvuad4n6as0qk5
299851
299850
2026-08-16T07:19:18Z
Jsamwrites
938
299851
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39543"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z39542",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z19316",
"Z19316K1": {
"Z1K1": "Z18",
"Z18K1": "Z39542K4"
},
"Z19316K2": {
"Z1K1": "Z6091",
"Z6091K1": "Q1317831"
}
},
"Z802K2": {
"Z1K1": "Z7",
"Z7K1": "Z39537",
"Z39537K1": {
"Z1K1": "Z18",
"Z18K1": "Z39542K2"
},
"Z39537K2": [
"Z6091",
{
"Z1K1": "Z18",
"Z18K1": "Z39542K3"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q682111"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q51929074"
},
{
"Z1K1": "Z7",
"Z7K1": "Z39534",
"Z39534K1": {
"Z1K1": "Z18",
"Z18K1": "Z39542K1"
},
"Z39534K2": "Z1002"
}
]
},
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z34669",
"Z34669K1": [
"Z11",
{
"Z1K1": "Z7",
"Z7K1": "Z39537",
"Z39537K1": {
"Z1K1": "Z6095",
"Z6095K1": "L1883"
},
"Z39537K2": [
"Z6091",
{
"Z1K1": "Z18",
"Z18K1": "Z39542K3"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q682111"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q51929074"
},
{
"Z1K1": "Z7",
"Z7K1": "Z39534",
"Z39534K1": {
"Z1K1": "Z18",
"Z18K1": "Z39542K1"
},
"Z39534K2": "Z1002"
}
]
},
{
"Z1K1": "Z7",
"Z7K1": "Z39537",
"Z39537K1": {
"Z1K1": "Z18",
"Z18K1": "Z39542K2"
},
"Z39537K2": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q1994301"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q814722"
}
]
}
],
"Z34669K2": {
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": " "
}
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "English verbal complex for Wikidata subjects, comp"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
2bpfklvmi6x83nzwj2ke1ic7jcjdr60
299858
299851
2026-08-16T07:25:23Z
Jsamwrites
938
299858
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39543"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z39542",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z19316",
"Z19316K1": {
"Z1K1": "Z18",
"Z18K1": "Z39542K4"
},
"Z19316K2": {
"Z1K1": "Z6091",
"Z6091K1": "Q1317831"
}
},
"Z802K2": {
"Z1K1": "Z7",
"Z7K1": "Z39537",
"Z39537K1": {
"Z1K1": "Z18",
"Z18K1": "Z39542K2"
},
"Z39537K2": [
"Z6091",
{
"Z1K1": "Z18",
"Z18K1": "Z39542K3"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q682111"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q51929074"
},
{
"Z1K1": "Z7",
"Z7K1": "Z39534",
"Z39534K1": {
"Z1K1": "Z18",
"Z18K1": "Z39542K1"
},
"Z39534K2": "Z1002"
}
]
},
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z34669",
"Z34669K1": [
"Z11",
{
"Z1K1": "Z7",
"Z7K1": "Z39537",
"Z39537K1": {
"Z1K1": "Z6095",
"Z6095K1": "L1883"
},
"Z39537K2": [
"Z6091",
{
"Z1K1": "Z18",
"Z18K1": "Z39542K3"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q682111"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q51929074"
},
{
"Z1K1": "Z7",
"Z7K1": "Z39534",
"Z39534K1": {
"Z1K1": "Z18",
"Z18K1": "Z39542K1"
},
"Z39534K2": "Z1002"
}
]
},
{
"Z1K1": "Z7",
"Z7K1": "Z39537",
"Z39537K1": {
"Z1K1": "Z18",
"Z18K1": "Z39542K2"
},
"Z39537K2": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q1230649"
}
]
}
],
"Z34669K2": {
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": " "
}
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "English verbal complex for Wikidata subjects, comp"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
3yqjf1vruaym6oybcoqsn2zyh5kx06w
299863
299858
2026-08-16T07:43:38Z
Jsamwrites
938
299863
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39543"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z39542",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z19316",
"Z19316K1": {
"Z1K1": "Z18",
"Z18K1": "Z39542K4"
},
"Z19316K2": {
"Z1K1": "Z6091",
"Z6091K1": "Q1317831"
}
},
"Z802K2": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z19316",
"Z19316K1": {
"Z1K1": "Z7",
"Z7K1": "Z39534",
"Z39534K1": {
"Z1K1": "Z18",
"Z18K1": "Z39542K1"
},
"Z39534K2": "Z1002"
},
"Z19316K2": {
"Z1K1": "Z6091",
"Z6091K1": "Q110786"
}
},
"Z802K2": {
"Z1K1": "Z7",
"Z7K1": "Z39537",
"Z39537K1": {
"Z1K1": "Z18",
"Z18K1": "Z39542K2"
},
"Z39537K2": [
"Z6091"
]
},
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z39537",
"Z39537K1": {
"Z1K1": "Z18",
"Z18K1": "Z39542K2"
},
"Z39537K2": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q3910936"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q51929074"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q110786"
}
]
}
},
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z34669",
"Z34669K1": [
"Z11",
{
"Z1K1": "Z7",
"Z7K1": "Z39537",
"Z39537K1": {
"Z1K1": "Z6095",
"Z6095K1": "L1883"
},
"Z39537K2": [
"Z6091",
{
"Z1K1": "Z18",
"Z18K1": "Z39542K3"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q682111"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q51929074"
},
{
"Z1K1": "Z7",
"Z7K1": "Z39534",
"Z39534K1": {
"Z1K1": "Z18",
"Z18K1": "Z39542K1"
},
"Z39534K2": "Z1002"
}
]
},
{
"Z1K1": "Z7",
"Z7K1": "Z39537",
"Z39537K1": {
"Z1K1": "Z18",
"Z18K1": "Z39542K2"
},
"Z39537K2": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q1230649"
}
]
}
],
"Z34669K2": {
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": " "
}
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "English verbal complex for Wikidata subjects, comp"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
5u3t6nbono8s4fpik04o0r8k2isb9rs
299870
299863
2026-08-16T07:48:01Z
Jsamwrites
938
299870
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39543"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z39542",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z19316",
"Z19316K1": {
"Z1K1": "Z18",
"Z18K1": "Z39542K4"
},
"Z19316K2": {
"Z1K1": "Z6091",
"Z6091K1": "Q1317831"
}
},
"Z802K2": {
"Z1K1": "Z7",
"Z7K1": "Z39544",
"Z39544K1": {
"Z1K1": "Z18",
"Z18K1": "Z39542K2"
},
"Z39544K2": {
"Z1K1": "Z18",
"Z18K1": "Z39542K3"
},
"Z39544K3": {
"Z1K1": "Z7",
"Z7K1": "Z39534",
"Z39534K1": {
"Z1K1": "Z18",
"Z18K1": "Z39542K1"
},
"Z39534K2": "Z1002"
}
},
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z34669",
"Z34669K1": [
"Z11",
{
"Z1K1": "Z7",
"Z7K1": "Z39537",
"Z39537K1": {
"Z1K1": "Z6095",
"Z6095K1": "L1883"
},
"Z39537K2": [
"Z6091",
{
"Z1K1": "Z18",
"Z18K1": "Z39542K3"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q682111"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q51929074"
},
{
"Z1K1": "Z7",
"Z7K1": "Z39534",
"Z39534K1": {
"Z1K1": "Z18",
"Z18K1": "Z39542K1"
},
"Z39534K2": "Z1002"
}
]
},
{
"Z1K1": "Z7",
"Z7K1": "Z39537",
"Z39537K1": {
"Z1K1": "Z18",
"Z18K1": "Z39542K2"
},
"Z39537K2": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q1230649"
}
]
}
],
"Z34669K2": {
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": " "
}
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "English verbal complex for Wikidata subjects, comp"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
fqx6dxwg8eqbhiliayn61ft6k5uetox
299904
299870
2026-08-16T08:24:38Z
Jsamwrites
938
299904
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39543"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z39542",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z19316",
"Z19316K1": {
"Z1K1": "Z18",
"Z18K1": "Z39542K4"
},
"Z19316K2": {
"Z1K1": "Z6091",
"Z6091K1": "Q1317831"
}
},
"Z802K2": {
"Z1K1": "Z7",
"Z7K1": "Z39544",
"Z39544K1": {
"Z1K1": "Z18",
"Z18K1": "Z39542K2"
},
"Z39544K2": {
"Z1K1": "Z18",
"Z18K1": "Z39542K3"
},
"Z39544K3": {
"Z1K1": "Z7",
"Z7K1": "Z39534",
"Z39534K1": {
"Z1K1": "Z18",
"Z18K1": "Z39542K1"
},
"Z39534K2": "Z1002"
}
},
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z34669",
"Z34669K1": [
"Z11",
{
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z19316",
"Z19316K1": {
"Z1K1": "Z18",
"Z18K1": "Z39542K3"
},
"Z19316K2": {
"Z1K1": "Z6091",
"Z6091K1": "Q192613"
}
},
"Z802K2": {
"Z1K1": "Z7",
"Z7K1": "Z39537",
"Z39537K1": {
"Z1K1": "Z6095",
"Z6095K1": "L1883"
},
"Z39537K2": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q56682909"
},
{
"Z1K1": "Z7",
"Z7K1": "Z39534",
"Z39534K1": {
"Z1K1": "Z18",
"Z18K1": "Z39542K1"
},
"Z39534K2": "Z1002"
}
]
},
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z39537",
"Z39537K1": {
"Z1K1": "Z6095",
"Z6095K1": "L1883"
},
"Z39537K2": [
"Z6091",
{
"Z1K1": "Z18",
"Z18K1": "Z39542K3"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q682111"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q51929074"
},
{
"Z1K1": "Z7",
"Z7K1": "Z39534",
"Z39534K1": {
"Z1K1": "Z18",
"Z18K1": "Z39542K1"
},
"Z39534K2": "Z1002"
}
]
}
},
{
"Z1K1": "Z7",
"Z7K1": "Z39537",
"Z39537K1": {
"Z1K1": "Z18",
"Z18K1": "Z39542K2"
},
"Z39537K2": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q1230649"
}
]
}
],
"Z34669K2": {
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": " "
}
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "English verbal complex for Wikidata subjects, comp"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
0zuucjrqonz6vvkoqcjjheghyv4m4ml
299905
299904
2026-08-16T08:32:01Z
Jsamwrites
938
299905
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39543"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z39542",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z19316",
"Z19316K1": {
"Z1K1": "Z18",
"Z18K1": "Z39542K4"
},
"Z19316K2": {
"Z1K1": "Z6091",
"Z6091K1": "Q1317831"
}
},
"Z802K2": {
"Z1K1": "Z7",
"Z7K1": "Z39544",
"Z39544K1": {
"Z1K1": "Z18",
"Z18K1": "Z39542K2"
},
"Z39544K2": {
"Z1K1": "Z18",
"Z18K1": "Z39542K3"
},
"Z39544K3": {
"Z1K1": "Z7",
"Z7K1": "Z39534",
"Z39534K1": {
"Z1K1": "Z18",
"Z18K1": "Z39542K1"
},
"Z39534K2": "Z1002"
}
},
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z34669",
"Z34669K1": [
"Z11",
{
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z19316",
"Z19316K1": {
"Z1K1": "Z18",
"Z18K1": "Z39542K3"
},
"Z19316K2": {
"Z1K1": "Z6091",
"Z6091K1": "Q192613"
}
},
"Z802K2": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z19316",
"Z19316K1": {
"Z1K1": "Z7",
"Z7K1": "Z39534",
"Z39534K1": {
"Z1K1": "Z18",
"Z18K1": "Z39542K1"
},
"Z39534K2": "Z1002"
},
"Z19316K2": {
"Z1K1": "Z6091",
"Z6091K1": "Q110786"
}
},
"Z802K2": {
"Z1K1": "Z7",
"Z7K1": "Z39537",
"Z39537K1": {
"Z1K1": "Z6095",
"Z6095K1": "L1883"
},
"Z39537K2": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q56682909"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q51929074"
},
{
"Z1K1": "Z7",
"Z7K1": "Z39534",
"Z39534K1": {
"Z1K1": "Z18",
"Z18K1": "Z39542K1"
},
"Z39534K2": "Z1002"
}
]
},
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z39537",
"Z39537K1": {
"Z1K1": "Z6095",
"Z6095K1": "L1883"
},
"Z39537K2": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q56682909"
},
{
"Z1K1": "Z7",
"Z7K1": "Z39534",
"Z39534K1": {
"Z1K1": "Z18",
"Z18K1": "Z39542K1"
},
"Z39534K2": "Z1002"
}
]
}
},
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z39537",
"Z39537K1": {
"Z1K1": "Z6095",
"Z6095K1": "L1883"
},
"Z39537K2": [
"Z6091",
{
"Z1K1": "Z18",
"Z18K1": "Z39542K3"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q682111"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q51929074"
},
{
"Z1K1": "Z7",
"Z7K1": "Z39534",
"Z39534K1": {
"Z1K1": "Z18",
"Z18K1": "Z39542K1"
},
"Z39534K2": "Z1002"
}
]
}
},
{
"Z1K1": "Z7",
"Z7K1": "Z39537",
"Z39537K1": {
"Z1K1": "Z18",
"Z18K1": "Z39542K2"
},
"Z39537K2": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q1230649"
}
]
}
],
"Z34669K2": {
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": " "
}
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "English verbal complex for Wikidata subjects, comp"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
3bnh1hglpfpueo3rdiyr32phiwshh2w
Z39544
0
90220
299860
2026-08-16T07:38:43Z
Jsamwrites
938
299860
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39544"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6095",
"Z17K2": "Z39544K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "verb lexeme"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39544K2",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "tense"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39544K3",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "grammatical number"
}
]
}
}
],
"Z8K2": "Z11",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14"
],
"Z8K5": "Z39544"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "English finite verb form from Wikidata Lexeme"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
biq4kmr4bl3wt5movn6rzwbfbhgmqpl
299861
299860
2026-08-16T07:39:20Z
Jsamwrites
938
299861
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39544"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6095",
"Z17K2": "Z39544K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "verb lexeme"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39544K2",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "tense"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39544K3",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "grammatical number"
}
]
}
}
],
"Z8K2": "Z11",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14"
],
"Z8K5": "Z39544"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "English finite verb form from Wikidata Lexeme"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "This function is created as a compatability layer for Wikidata lexeme"
}
]
}
}
axkke6z5e8e29dor8v1rckkf9ne5wqu
299866
299861
2026-08-16T07:45:04Z
Jsamwrites
938
Added Z39546 to the approved list of implementations
299866
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39544"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6095",
"Z17K2": "Z39544K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "verb lexeme"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39544K2",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "tense"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39544K3",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "grammatical number"
}
]
}
}
],
"Z8K2": "Z11",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14",
"Z39546"
],
"Z8K5": "Z39544"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "English finite verb form from Wikidata Lexeme"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "This function is created as a compatability layer for Wikidata lexeme"
}
]
}
}
3e10vr0f8bf3r46ubvlje1bmfxmet5q
299872
299866
2026-08-16T08:02:51Z
Jsamwrites
938
Added Z39549 to the approved list of test cases
299872
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39544"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6095",
"Z17K2": "Z39544K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "verb lexeme"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39544K2",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "tense"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39544K3",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "grammatical number"
}
]
}
}
],
"Z8K2": "Z11",
"Z8K3": [
"Z20",
"Z39549"
],
"Z8K4": [
"Z14",
"Z39546"
],
"Z8K5": "Z39544"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "English finite verb form from Wikidata Lexeme"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "This function is created as a compatability layer for Wikidata lexeme"
}
]
}
}
r7z1a48j8drsqhvof3n8ednv4rbb6j0
299876
299872
2026-08-16T08:04:39Z
Jsamwrites
938
Added Z39550, Z39551 and Z39552 to the approved list of test cases
299876
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39544"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6095",
"Z17K2": "Z39544K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "verb lexeme"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39544K2",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "tense"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39544K3",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "grammatical number"
}
]
}
}
],
"Z8K2": "Z11",
"Z8K3": [
"Z20",
"Z39549",
"Z39550",
"Z39551",
"Z39552"
],
"Z8K4": [
"Z14",
"Z39546"
],
"Z8K5": "Z39544"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "English finite verb form from Wikidata Lexeme"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "This function is created as a compatability layer for Wikidata lexeme"
}
]
}
}
tal7fx7l33uwejumhlk1v7crho5xw8v
Z39545
0
90221
299862
2026-08-16T07:43:06Z
HenkvD
1290
[en] Lion -> vulnerable
299862
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39545"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z37833",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z37833",
"Z37833K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q140"
},
"Z37833K2": "Z1002"
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z866",
"Z866K2": "vulnerable"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "[en] Lion -\u003E vulnerable"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
o3hep3movteyglrisw5iih82ao5ow2a
Z39546
0
90222
299864
2026-08-16T07:44:52Z
Jsamwrites
938
299864
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39546"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z39544",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z19316",
"Z19316K1": {
"Z1K1": "Z18",
"Z18K1": "Z39544K2"
},
"Z19316K2": {
"Z1K1": "Z6091",
"Z6091K1": "Q1994301"
}
},
"Z802K2": {
"Z1K1": "Z7",
"Z7K1": "Z39537",
"Z39537K1": {
"Z1K1": "Z18",
"Z18K1": "Z39544K1"
},
"Z39537K2": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q1392475"
}
]
},
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z19316",
"Z19316K1": {
"Z1K1": "Z18",
"Z18K1": "Z39544K3"
},
"Z19316K2": {
"Z1K1": "Z6091",
"Z6091K1": "Q146786"
}
},
"Z802K2": {
"Z1K1": "Z7",
"Z7K1": "Z39537",
"Z39537K1": {
"Z1K1": "Z18",
"Z18K1": "Z39544K1"
},
"Z39537K2": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q3910936"
}
]
},
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z39537",
"Z39537K1": {
"Z1K1": "Z18",
"Z18K1": "Z39544K1"
},
"Z39537K2": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q110786"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q3910936"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q51929074"
}
]
}
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
eilq2mkwjqhcr8sm67qw5hli06dciyg
299867
299864
2026-08-16T07:45:25Z
Jsamwrites
938
299867
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39546"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z39544",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z19316",
"Z19316K1": {
"Z1K1": "Z18",
"Z18K1": "Z39544K2"
},
"Z19316K2": {
"Z1K1": "Z6091",
"Z6091K1": "Q1994301"
}
},
"Z802K2": {
"Z1K1": "Z7",
"Z7K1": "Z39537",
"Z39537K1": {
"Z1K1": "Z18",
"Z18K1": "Z39544K1"
},
"Z39537K2": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q1392475"
}
]
},
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z19316",
"Z19316K1": {
"Z1K1": "Z18",
"Z18K1": "Z39544K3"
},
"Z19316K2": {
"Z1K1": "Z6091",
"Z6091K1": "Q146786"
}
},
"Z802K2": {
"Z1K1": "Z7",
"Z7K1": "Z39537",
"Z39537K1": {
"Z1K1": "Z18",
"Z18K1": "Z39544K1"
},
"Z39537K2": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q3910936"
}
]
},
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z39537",
"Z39537K1": {
"Z1K1": "Z18",
"Z18K1": "Z39544K1"
},
"Z39537K2": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q110786"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q3910936"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q51929074"
}
]
}
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "English finite verb form from Wikidata Lexeme, com"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
nh50eybj5nekylacrjk849p0rcrtdz8
Z39547
0
90223
299865
2026-08-16T07:44:55Z
HenkvD
1290
[en-us] -> [en] Lion -> vulnerable
299865
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39547"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z37833",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z37833",
"Z37833K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q140"
},
"Z37833K2": "Z1689"
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z866",
"Z866K2": "vulnerable"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "[en-us] -\u003E [en] Lion -\u003E vulnerable"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
kjt1a2xh2y4206az0j8zmclc6x8r5xy
Z39548
0
90224
299868
2026-08-16T07:46:01Z
HenkvD
1290
[vls] -> [mul] Lion -> VU
299868
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39548"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z37833",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z37833",
"Z37833K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q140"
},
"Z37833K2": "Z1555"
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z866",
"Z866K2": "VU"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "[vls] -\u003E [mul] Lion -\u003E VU"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
cwzxox35edq79k9pgbkcjw10eal4qkh
Z39549
0
90225
299871
2026-08-16T08:02:41Z
Jsamwrites
938
299871
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39549"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39544",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z14396",
"Z14396K1": {
"Z1K1": "Z7",
"Z7K1": "Z39544",
"Z39544K1": {
"Z1K1": "Z6095",
"Z6095K1": "L3036"
},
"Z39544K2": {
"Z1K1": "Z6091",
"Z6091K1": "Q1994301"
},
"Z39544K3": {
"Z1K1": "Z6091",
"Z6091K1": "Q110786"
}
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z866",
"Z866K2": "made"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "make-past, singular, en, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
lkvn2ntmvie5hs54q28z91wojte0s7h
Z39550
0
90226
299873
2026-08-16T08:03:58Z
Jsamwrites
938
Create test for Z39544
299873
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39550"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39544",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z14396",
"Z14396K1": {
"Z1K1": "Z7",
"Z7K1": "Z39544",
"Z39544K1": {
"Z1K1": "Z6095",
"Z6095K1": "L3036"
},
"Z39544K2": {
"Z1K1": "Z6091",
"Z6091K1": "Q1994301"
},
"Z39544K3": {
"Z1K1": "Z6091",
"Z6091K1": "Q110786"
}
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z866",
"Z866K2": "made"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "make-past, plural, en, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
tauyn29v0t9r8a55yhrzmqt0pugiqqw
299877
299873
2026-08-16T08:05:04Z
Jsamwrites
938
299877
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39550"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39544",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z14396",
"Z14396K1": {
"Z1K1": "Z7",
"Z7K1": "Z39544",
"Z39544K1": {
"Z1K1": "Z6095",
"Z6095K1": "L3036"
},
"Z39544K2": {
"Z1K1": "Z6091",
"Z6091K1": "Q1994301"
},
"Z39544K3": {
"Z1K1": "Z6091",
"Z6091K1": "Q146786"
}
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z866",
"Z866K2": "made"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "make-past, plural, en, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
gk1cilzewfet59ohlzx8rowlnorz19p
Z39551
0
90227
299874
2026-08-16T08:04:01Z
Jsamwrites
938
Create test for Z39544
299874
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39551"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39544",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z14396",
"Z14396K1": {
"Z1K1": "Z7",
"Z7K1": "Z39544",
"Z39544K1": {
"Z1K1": "Z6095",
"Z6095K1": "L3036"
},
"Z39544K2": {
"Z1K1": "Z6091",
"Z6091K1": "Q1994301"
},
"Z39544K3": {
"Z1K1": "Z6091",
"Z6091K1": "Q110786"
}
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z866",
"Z866K2": "made"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "make-present, singular, en, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
by17ntsuuc801eldituv8o3mp8ax2sp
299878
299874
2026-08-16T08:05:36Z
Jsamwrites
938
299878
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39551"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39544",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z14396",
"Z14396K1": {
"Z1K1": "Z7",
"Z7K1": "Z39544",
"Z39544K1": {
"Z1K1": "Z6095",
"Z6095K1": "L3036"
},
"Z39544K2": {
"Z1K1": "Z6091",
"Z6091K1": "Q192613"
},
"Z39544K3": {
"Z1K1": "Z6091",
"Z6091K1": "Q110786"
}
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z866",
"Z866K2": "makes"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "make-present, singular, en, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
25kboc5nzk4b95xbhl8vum4gmck37hw
Z39552
0
90228
299875
2026-08-16T08:04:03Z
Jsamwrites
938
Create test for Z39544
299875
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39552"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39544",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z14396",
"Z14396K1": {
"Z1K1": "Z7",
"Z7K1": "Z39544",
"Z39544K1": {
"Z1K1": "Z6095",
"Z6095K1": "L3036"
},
"Z39544K2": {
"Z1K1": "Z6091",
"Z6091K1": "Q1994301"
},
"Z39544K3": {
"Z1K1": "Z6091",
"Z6091K1": "Q110786"
}
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z866",
"Z866K2": "made"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "make-present, plural, en, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
agx6kt2mt3v71lfwp2f1y6bwqo0ayvb
299879
299875
2026-08-16T08:06:16Z
Jsamwrites
938
299879
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39552"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39544",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z14396",
"Z14396K1": {
"Z1K1": "Z7",
"Z7K1": "Z39544",
"Z39544K1": {
"Z1K1": "Z6095",
"Z6095K1": "L3036"
},
"Z39544K2": {
"Z1K1": "Z6091",
"Z6091K1": "Q192613"
},
"Z39544K3": {
"Z1K1": "Z6091",
"Z6091K1": "Q146786"
}
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z866",
"Z866K2": "makes"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "make-present, plural, en, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
b3q556fdbz08hvxf4m54xs2trsb948h
299880
299879
2026-08-16T08:06:36Z
Jsamwrites
938
299880
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39552"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39544",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z14396",
"Z14396K1": {
"Z1K1": "Z7",
"Z7K1": "Z39544",
"Z39544K1": {
"Z1K1": "Z6095",
"Z6095K1": "L3036"
},
"Z39544K2": {
"Z1K1": "Z6091",
"Z6091K1": "Q192613"
},
"Z39544K3": {
"Z1K1": "Z6091",
"Z6091K1": "Q146786"
}
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z866",
"Z866K2": "make"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "make-present, plural, en, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
24xlyctv70ngzn43muet32kokc1sglz
Z39553
0
90229
299881
2026-08-16T08:09:28Z
Jsamwrites
938
299881
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39553"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39542",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z14396",
"Z14396K1": {
"Z1K1": "Z7",
"Z7K1": "Z39542",
"Z39542K1": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q1426327"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q42329"
}
],
"Z39542K2": {
"Z1K1": "Z6095",
"Z6095K1": "L9"
},
"Z39542K3": {
"Z1K1": "Z6091",
"Z6091K1": "Q192613"
},
"Z39542K4": {
"Z1K1": "Z6091",
"Z6091K1": "Q1317831"
}
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z866",
"Z866K2": "create"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "create verb-present, active, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
ns5ipc6qz0znx0jssdn7e45p5xj93aa
Z39554
0
90230
299883
2026-08-16T08:10:02Z
HenkvD
1290
fetch IUCN conservation status string Comp fallback languages
299883
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39554"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z37833",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z14396",
"Z14396K1": {
"Z1K1": "Z7",
"Z7K1": "Z31676",
"Z31676K1": {
"Z1K1": "Z7",
"Z7K1": "Z19308",
"Z19308K1": {
"Z1K1": "Z7",
"Z7K1": "Z23451",
"Z23451K1": {
"Z1K1": "Z7",
"Z7K1": "Z30120",
"Z30120K1": {
"Z1K1": "Z18",
"Z18K1": "Z37833K1"
},
"Z30120K2": [
"Z6030",
"Z6036"
],
"Z30120K3": [
"Z60"
],
"Z30120K4": [
"Z6092",
{
"Z1K1": "Z6092",
"Z6092K1": "P141"
}
]
},
"Z23451K2": {
"Z1K1": "Z6092",
"Z6092K1": "P141"
}
}
},
"Z31676K2": {
"Z1K1": "Z18",
"Z18K1": "Z37833K2"
}
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "fetch IUCN conservation status string Comp fallbac"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
8yiafolk7nohzrdg4tw5eyrk3hilu0q
Z39555
0
90231
299886
2026-08-16T08:10:42Z
Jsamwrites
938
Create test for Z39542
299886
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39555"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39542",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z14396",
"Z14396K1": {
"Z1K1": "Z7",
"Z7K1": "Z39542",
"Z39542K1": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q1426327"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q42329"
}
],
"Z39542K2": {
"Z1K1": "Z6095",
"Z6095K1": "L9"
},
"Z39542K3": {
"Z1K1": "Z6091",
"Z6091K1": "Q192613"
},
"Z39542K4": {
"Z1K1": "Z6091",
"Z6091K1": "Q1317831"
}
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z866",
"Z866K2": "create"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "create verb-singular,present, active, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
3knw9h7wf1lfkk3tz3a237ulof19yar
299892
299886
2026-08-16T08:11:37Z
Jsamwrites
938
299892
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39555"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39542",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z14396",
"Z14396K1": {
"Z1K1": "Z7",
"Z7K1": "Z39542",
"Z39542K1": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q1426327"
}
],
"Z39542K2": {
"Z1K1": "Z6095",
"Z6095K1": "L9"
},
"Z39542K3": {
"Z1K1": "Z6091",
"Z6091K1": "Q192613"
},
"Z39542K4": {
"Z1K1": "Z6091",
"Z6091K1": "Q1317831"
}
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z866",
"Z866K2": "creates"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "create verb-singular,present, active, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
ojczd1r3mgmeabm7auvl3qj9eydllf3
Z39556
0
90232
299887
2026-08-16T08:10:45Z
Jsamwrites
938
Create test for Z39542
299887
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39556"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39542",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z14396",
"Z14396K1": {
"Z1K1": "Z7",
"Z7K1": "Z39542",
"Z39542K1": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q1426327"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q42329"
}
],
"Z39542K2": {
"Z1K1": "Z6095",
"Z6095K1": "L9"
},
"Z39542K3": {
"Z1K1": "Z6091",
"Z6091K1": "Q192613"
},
"Z39542K4": {
"Z1K1": "Z6091",
"Z6091K1": "Q1317831"
}
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z866",
"Z866K2": "create"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "create verb-present, passive, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
7el3pb1j673u3curqf94f5egtwwdfxy
299893
299887
2026-08-16T08:12:17Z
Jsamwrites
938
299893
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39556"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39542",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z14396",
"Z14396K1": {
"Z1K1": "Z7",
"Z7K1": "Z39542",
"Z39542K1": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q1426327"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q42329"
}
],
"Z39542K2": {
"Z1K1": "Z6095",
"Z6095K1": "L9"
},
"Z39542K3": {
"Z1K1": "Z6091",
"Z6091K1": "Q192613"
},
"Z39542K4": {
"Z1K1": "Z6091",
"Z6091K1": "Q1194697"
}
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z866",
"Z866K2": "are created"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "create verb-present, passive, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
r82nt154y8cwih6zhbexvpm9zvstpsl
Z39557
0
90233
299888
2026-08-16T08:10:48Z
Jsamwrites
938
Create test for Z39542
299888
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39557"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39542",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z14396",
"Z14396K1": {
"Z1K1": "Z7",
"Z7K1": "Z39542",
"Z39542K1": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q1426327"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q42329"
}
],
"Z39542K2": {
"Z1K1": "Z6095",
"Z6095K1": "L9"
},
"Z39542K3": {
"Z1K1": "Z6091",
"Z6091K1": "Q192613"
},
"Z39542K4": {
"Z1K1": "Z6091",
"Z6091K1": "Q1317831"
}
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z866",
"Z866K2": "create"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "create verb-past, active, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
5y4209qz2osal35ce73f53vlk5hij1p
299894
299888
2026-08-16T08:12:43Z
Jsamwrites
938
299894
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39557"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39542",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z14396",
"Z14396K1": {
"Z1K1": "Z7",
"Z7K1": "Z39542",
"Z39542K1": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q1426327"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q42329"
}
],
"Z39542K2": {
"Z1K1": "Z6095",
"Z6095K1": "L9"
},
"Z39542K3": {
"Z1K1": "Z6091",
"Z6091K1": "Q1994301"
},
"Z39542K4": {
"Z1K1": "Z6091",
"Z6091K1": "Q1317831"
}
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z866",
"Z866K2": "created"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "create verb-past, active, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
adskz88i68aayrbi71d4791ndkmx90v
Z39558
0
90234
299889
2026-08-16T08:10:51Z
Jsamwrites
938
Create test for Z39542
299889
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39558"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39542",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z14396",
"Z14396K1": {
"Z1K1": "Z7",
"Z7K1": "Z39542",
"Z39542K1": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q1426327"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q42329"
}
],
"Z39542K2": {
"Z1K1": "Z6095",
"Z6095K1": "L9"
},
"Z39542K3": {
"Z1K1": "Z6091",
"Z6091K1": "Q192613"
},
"Z39542K4": {
"Z1K1": "Z6091",
"Z6091K1": "Q1317831"
}
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z866",
"Z866K2": "create"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "create verb-past, passive, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
a07dbc8m003c85x4evlox8owyf8rktt
299895
299889
2026-08-16T08:13:18Z
Jsamwrites
938
299895
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39558"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39542",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z14396",
"Z14396K1": {
"Z1K1": "Z7",
"Z7K1": "Z39542",
"Z39542K1": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q1426327"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q42329"
}
],
"Z39542K2": {
"Z1K1": "Z6095",
"Z6095K1": "L9"
},
"Z39542K3": {
"Z1K1": "Z6091",
"Z6091K1": "Q1994301"
},
"Z39542K4": {
"Z1K1": "Z6091",
"Z6091K1": "Q1194697"
}
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z866",
"Z866K2": "were created"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "create verb-past, passive, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
ew6bslp7hhx38nskmosvj9qv2pdpp4j
Z39559
0
90235
299896
2026-08-16T08:15:56Z
Jsamwrites
938
Create test for Z39542
299896
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39559"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39542",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z14396",
"Z14396K1": {
"Z1K1": "Z7",
"Z7K1": "Z39542",
"Z39542K1": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q1426327"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q42329"
}
],
"Z39542K2": {
"Z1K1": "Z6095",
"Z6095K1": "L9"
},
"Z39542K3": {
"Z1K1": "Z6091",
"Z6091K1": "Q192613"
},
"Z39542K4": {
"Z1K1": "Z6091",
"Z6091K1": "Q1317831"
}
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z866",
"Z866K2": "create"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "create verb-singular, present, passive, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
l2so1kc96of4fq2u9ssbmujnw1zw26u
299899
299896
2026-08-16T08:16:55Z
Jsamwrites
938
299899
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39559"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39542",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z14396",
"Z14396K1": {
"Z1K1": "Z7",
"Z7K1": "Z39542",
"Z39542K1": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q1426327"
}
],
"Z39542K2": {
"Z1K1": "Z6095",
"Z6095K1": "L9"
},
"Z39542K3": {
"Z1K1": "Z6091",
"Z6091K1": "Q192613"
},
"Z39542K4": {
"Z1K1": "Z6091",
"Z6091K1": "Q1194697"
}
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z866",
"Z866K2": "is created"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "create verb-singular, present, passive, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
hgkixlfwd7u5i8lyk4anhc4j5jkbldl
Z39560
0
90236
299897
2026-08-16T08:15:58Z
Jsamwrites
938
Create test for Z39542
299897
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39560"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39542",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z14396",
"Z14396K1": {
"Z1K1": "Z7",
"Z7K1": "Z39542",
"Z39542K1": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q1426327"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q42329"
}
],
"Z39542K2": {
"Z1K1": "Z6095",
"Z6095K1": "L9"
},
"Z39542K3": {
"Z1K1": "Z6091",
"Z6091K1": "Q192613"
},
"Z39542K4": {
"Z1K1": "Z6091",
"Z6091K1": "Q1317831"
}
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z866",
"Z866K2": "create"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "create verb-singular, past, active, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
k5jutsozli10ja0gk101yeeuigjndi6
299900
299897
2026-08-16T08:17:26Z
Jsamwrites
938
299900
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39560"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39542",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z14396",
"Z14396K1": {
"Z1K1": "Z7",
"Z7K1": "Z39542",
"Z39542K1": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q1426327"
}
],
"Z39542K2": {
"Z1K1": "Z6095",
"Z6095K1": "L9"
},
"Z39542K3": {
"Z1K1": "Z6091",
"Z6091K1": "Q1994301"
},
"Z39542K4": {
"Z1K1": "Z6091",
"Z6091K1": "Q1317831"
}
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z866",
"Z866K2": "created"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "create verb-singular, past, active, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
9yw5ymynw3aop4x7ycf9znzfzu3arc9
Z39561
0
90237
299898
2026-08-16T08:16:01Z
Jsamwrites
938
Create test for Z39542
299898
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39561"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39542",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z14396",
"Z14396K1": {
"Z1K1": "Z7",
"Z7K1": "Z39542",
"Z39542K1": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q1426327"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q42329"
}
],
"Z39542K2": {
"Z1K1": "Z6095",
"Z6095K1": "L9"
},
"Z39542K3": {
"Z1K1": "Z6091",
"Z6091K1": "Q192613"
},
"Z39542K4": {
"Z1K1": "Z6091",
"Z6091K1": "Q1317831"
}
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z866",
"Z866K2": "create"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "create verb-singular, past, passive, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
gwh3n1zpqgmjk143zogqddi022b1y82
299901
299898
2026-08-16T08:18:01Z
Jsamwrites
938
299901
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39561"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39542",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z14396",
"Z14396K1": {
"Z1K1": "Z7",
"Z7K1": "Z39542",
"Z39542K1": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q1426327"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q42329"
}
],
"Z39542K2": {
"Z1K1": "Z6095",
"Z6095K1": "L9"
},
"Z39542K3": {
"Z1K1": "Z6091",
"Z6091K1": "Q1994301"
},
"Z39542K4": {
"Z1K1": "Z6091",
"Z6091K1": "Q1194697"
}
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z866",
"Z866K2": "was created"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "create verb-singular, past, passive, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
fpewxvcduf6zxf656gvjs35c2qkicwn
299903
299901
2026-08-16T08:19:01Z
Jsamwrites
938
299903
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39561"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39542",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z14396",
"Z14396K1": {
"Z1K1": "Z7",
"Z7K1": "Z39542",
"Z39542K1": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q1426327"
}
],
"Z39542K2": {
"Z1K1": "Z6095",
"Z6095K1": "L9"
},
"Z39542K3": {
"Z1K1": "Z6091",
"Z6091K1": "Q1994301"
},
"Z39542K4": {
"Z1K1": "Z6091",
"Z6091K1": "Q1194697"
}
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z866",
"Z866K2": "was created"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "create verb-singular, past, passive, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
lzokubaca447ce3v3ni00dej8qa25ux
Z39562
0
90238
299907
2026-08-16T08:44:06Z
Jsamwrites
938
299907
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39562"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": {
"Z1K1": "Z7",
"Z7K1": "Z881",
"Z881K1": "Z6091"
},
"Z17K2": "Z39562K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "subjects"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39562K2",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "verb lexeme"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39562K3",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "tense"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39562K4",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "voice"
}
]
}
}
],
"Z8K2": "Z11",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14"
],
"Z8K5": "Z39562"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "French verbal complex for Wikidata subjects"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
fdsjqx8sdgiim29vofd5ifw3eh9slz2
299959
299907
2026-08-16T11:25:39Z
Jsamwrites
938
Added Z39584 to the approved list of implementations
299959
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39562"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": {
"Z1K1": "Z7",
"Z7K1": "Z881",
"Z881K1": "Z6091"
},
"Z17K2": "Z39562K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "subjects"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39562K2",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "verb lexeme"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39562K3",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "tense"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39562K4",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "voice"
}
]
}
}
],
"Z8K2": "Z11",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14",
"Z39584"
],
"Z8K5": "Z39562"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "French verbal complex for Wikidata subjects"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
8qp49a88k3z1lkif9189oq5auu4gnil
299960
299959
2026-08-16T11:27:31Z
Jsamwrites
938
Removed Z39584 from the approved list of implementations
299960
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39562"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": {
"Z1K1": "Z7",
"Z7K1": "Z881",
"Z881K1": "Z6091"
},
"Z17K2": "Z39562K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "subjects"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39562K2",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "verb lexeme"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39562K3",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "tense"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39562K4",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "voice"
}
]
}
}
],
"Z8K2": "Z11",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14"
],
"Z8K5": "Z39562"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "French verbal complex for Wikidata subjects"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
fdsjqx8sdgiim29vofd5ifw3eh9slz2
299961
299960
2026-08-16T11:27:52Z
Jsamwrites
938
299961
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39562"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": {
"Z1K1": "Z7",
"Z7K1": "Z881",
"Z881K1": "Z6091"
},
"Z17K2": "Z39562K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "subjects"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z6095",
"Z17K2": "Z39562K2",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "verb lexeme"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39562K3",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "tense"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39562K4",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "voice"
}
]
}
}
],
"Z8K2": "Z11",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14"
],
"Z8K5": "Z39562"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "French verbal complex for Wikidata subjects"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
6mf922ohtrc7rkl3yv2a68dttwjbs5f
299962
299961
2026-08-16T11:27:58Z
Jsamwrites
938
Added Z39584 to the approved list of implementations
299962
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39562"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": {
"Z1K1": "Z7",
"Z7K1": "Z881",
"Z881K1": "Z6091"
},
"Z17K2": "Z39562K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "subjects"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z6095",
"Z17K2": "Z39562K2",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "verb lexeme"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39562K3",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "tense"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39562K4",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "voice"
}
]
}
}
],
"Z8K2": "Z11",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14",
"Z39584"
],
"Z8K5": "Z39562"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "French verbal complex for Wikidata subjects"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
pje56raaf295fp3kx79vawf7448qsmi
Z39563
0
90239
299908
2026-08-16T08:49:06Z
99of9
1622
299908
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39563"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39531",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z39531",
"Z39531K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q1952802"
},
"Z39531K2": "Z1002"
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z19316",
"Z19316K2": {
"Z1K1": "Z6091",
"Z6091K1": "Q146786"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Lake Mungo remains, plural"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
hna586bnvohed47viypkvpq1w6b4n49
Z39564
0
90240
299909
2026-08-16T08:55:07Z
Jsamwrites
938
299909
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39564"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39564K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "subjects"
}
]
}
}
],
"Z8K2": "Z6091",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14"
],
"Z8K5": "Z39564"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "grammatical gender of Wikidata items, French"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
5fb0mhkrm04sc9ol6oj8pe3kb5kekhq
299912
299909
2026-08-16T09:27:43Z
Jsamwrites
938
299912
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39564"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": {
"Z1K1": "Z7",
"Z7K1": "Z881",
"Z881K1": "Z6091"
},
"Z17K2": "Z39564K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "subjects"
}
]
}
}
],
"Z8K2": "Z6091",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14"
],
"Z8K5": "Z39564"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "grammatical gender of Wikidata items, French"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
l9vp40zl2ag9ufwz0olrn1u41kohm0y
299927
299912
2026-08-16T10:12:16Z
Jsamwrites
938
Added Z39571 to the approved list of implementations
299927
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39564"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": {
"Z1K1": "Z7",
"Z7K1": "Z881",
"Z881K1": "Z6091"
},
"Z17K2": "Z39564K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "subjects"
}
]
}
}
],
"Z8K2": "Z6091",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14",
"Z39571"
],
"Z8K5": "Z39564"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "grammatical gender of Wikidata items, French"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
ad8fxdwrkdb75ml7s4sosuf47lslwkz
299929
299927
2026-08-16T10:13:11Z
Jsamwrites
938
Added Z39572 to the approved list of test cases
299929
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39564"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": {
"Z1K1": "Z7",
"Z7K1": "Z881",
"Z881K1": "Z6091"
},
"Z17K2": "Z39564K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "subjects"
}
]
}
}
],
"Z8K2": "Z6091",
"Z8K3": [
"Z20",
"Z39572"
],
"Z8K4": [
"Z14",
"Z39571"
],
"Z8K5": "Z39564"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "grammatical gender of Wikidata items, French"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
fgoqycibo4vx3y69vfvzcdwp37gbg6n
Z39565
0
90241
299910
2026-08-16T09:18:55Z
Jsamwrites
938
299910
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39565"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39565K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "list of entities "
}
]
}
}
],
"Z8K2": "Z40",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14"
],
"Z8K5": "Z39565"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Wikidata items has masculine grammatical gndr, fr "
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
q4zhvoi269tvberfa9zij53i8em99nr
299911
299910
2026-08-16T09:27:00Z
Jsamwrites
938
299911
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39565"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": {
"Z1K1": "Z7",
"Z7K1": "Z881",
"Z881K1": "Z6091"
},
"Z17K2": "Z39565K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "list of entities "
}
]
}
}
],
"Z8K2": "Z40",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14"
],
"Z8K5": "Z39565"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Wikidata items has masculine grammatical gndr, fr "
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
2xv88rgmajbso0vkvf75hb0ucpnhaya
299914
299911
2026-08-16T09:36:16Z
Jsamwrites
938
Added Z39566 to the approved list of implementations
299914
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39565"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": {
"Z1K1": "Z7",
"Z7K1": "Z881",
"Z881K1": "Z6091"
},
"Z17K2": "Z39565K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "list of entities "
}
]
}
}
],
"Z8K2": "Z40",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14",
"Z39566"
],
"Z8K5": "Z39565"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Wikidata items has masculine grammatical gndr, fr "
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
ja4qplg4owas23bxu0x8ljg54ls8nxs
299931
299914
2026-08-16T10:14:00Z
Jsamwrites
938
Added Z39573 to the approved list of test cases
299931
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39565"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": {
"Z1K1": "Z7",
"Z7K1": "Z881",
"Z881K1": "Z6091"
},
"Z17K2": "Z39565K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "list of entities "
}
]
}
}
],
"Z8K2": "Z40",
"Z8K3": [
"Z20",
"Z39573"
],
"Z8K4": [
"Z14",
"Z39566"
],
"Z8K5": "Z39565"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Wikidata items has masculine grammatical gndr, fr "
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
nptmztfi8g1d5o6sp1tfdpqkmn5llqm
Z39566
0
90242
299913
2026-08-16T09:36:02Z
Jsamwrites
938
299913
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39566"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z39565",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z19565",
"Z19565K1": {
"Z1K1": "Z7",
"Z7K1": "Z19316",
"Z19316K1": {
"Z1K1": "Z7",
"Z7K1": "Z811",
"Z811K1": {
"Z1K1": "Z7",
"Z7K1": "Z39467",
"Z39467K1": {
"Z1K1": "Z7",
"Z7K1": "Z811",
"Z811K1": {
"Z1K1": "Z18",
"Z18K1": "Z39565K1"
}
},
"Z39467K2": "Z1004"
}
},
"Z19316K2": {
"Z1K1": "Z6091",
"Z6091K1": "Q499327"
}
},
"Z19565K2": {
"Z1K1": "Z40",
"Z40K1": "Z41"
},
"Z19565K3": {
"Z1K1": "Z7",
"Z7K1": "Z13522",
"Z13522K1": {
"Z1K1": "Z7",
"Z7K1": "Z12681",
"Z12681K1": {
"Z1K1": "Z18",
"Z18K1": "Z39565K1"
}
},
"Z13522K2": {
"Z1K1": "Z13518",
"Z13518K1": "1"
}
},
"Z19565K4": {
"Z1K1": "Z40",
"Z40K1": "Z42"
},
"Z19565K5": {
"Z1K1": "Z7",
"Z7K1": "Z39565",
"Z39565K1": {
"Z1K1": "Z7",
"Z7K1": "Z812",
"Z812K1": {
"Z1K1": "Z18",
"Z18K1": "Z39565K1"
}
}
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Wikidata items has masc grammatical gndr, fr, comp"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
42jmt6ngns1in4v7sgn1gd3kvjjiskp
299915
299913
2026-08-16T09:48:17Z
Jsamwrites
938
299915
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39566"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z39565",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z19565",
"Z19565K1": {
"Z1K1": "Z7",
"Z7K1": "Z813",
"Z813K1": {
"Z1K1": "Z18",
"Z18K1": "Z39565K1"
}
},
"Z19565K2": {
"Z1K1": "Z40",
"Z40K1": "Z41"
},
"Z19565K3": {
"Z1K1": "Z7",
"Z7K1": "Z19316",
"Z19316K1": {
"Z1K1": "Z7",
"Z7K1": "Z811",
"Z811K1": {
"Z1K1": "Z7",
"Z7K1": "Z39467",
"Z39467K1": {
"Z1K1": "Z7",
"Z7K1": "Z811",
"Z811K1": {
"Z1K1": "Z18",
"Z18K1": "Z39565K1"
}
},
"Z39467K2": "Z1004"
}
},
"Z19316K2": {
"Z1K1": "Z6091",
"Z6091K1": "Q499327"
}
},
"Z19565K4": {
"Z1K1": "Z40",
"Z40K1": "Z41"
},
"Z19565K5": {
"Z1K1": "Z7",
"Z7K1": "Z39565",
"Z39565K1": {
"Z1K1": "Z7",
"Z7K1": "Z812",
"Z812K1": {
"Z1K1": "Z18",
"Z18K1": "Z39565K1"
}
}
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Wikidata items has masc grammatical gndr, fr, comp"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
neblwu15w6x7fif0qjqbg8j9lo2cs93
299916
299915
2026-08-16T09:48:38Z
Jsamwrites
938
299916
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39566"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z39565",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z19565",
"Z19565K1": {
"Z1K1": "Z7",
"Z7K1": "Z813",
"Z813K1": {
"Z1K1": "Z18",
"Z18K1": "Z39565K1"
}
},
"Z19565K2": {
"Z1K1": "Z40",
"Z40K1": "Z42"
},
"Z19565K3": {
"Z1K1": "Z7",
"Z7K1": "Z19316",
"Z19316K1": {
"Z1K1": "Z7",
"Z7K1": "Z811",
"Z811K1": {
"Z1K1": "Z7",
"Z7K1": "Z39467",
"Z39467K1": {
"Z1K1": "Z7",
"Z7K1": "Z811",
"Z811K1": {
"Z1K1": "Z18",
"Z18K1": "Z39565K1"
}
},
"Z39467K2": "Z1004"
}
},
"Z19316K2": {
"Z1K1": "Z6091",
"Z6091K1": "Q499327"
}
},
"Z19565K4": {
"Z1K1": "Z40",
"Z40K1": "Z41"
},
"Z19565K5": {
"Z1K1": "Z7",
"Z7K1": "Z39565",
"Z39565K1": {
"Z1K1": "Z7",
"Z7K1": "Z812",
"Z812K1": {
"Z1K1": "Z18",
"Z18K1": "Z39565K1"
}
}
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Wikidata items has masc grammatical gndr, fr, comp"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
7jooja2ra2i4ftob1afcep5hcvkyo13
299925
299916
2026-08-16T10:09:52Z
Jsamwrites
938
299925
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39566"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z39565",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z12698",
"Z12698K1": {
"Z1K1": "Z7",
"Z7K1": "Z873",
"Z873K1": "Z39567",
"Z873K2": {
"Z1K1": "Z18",
"Z18K1": "Z39565K1"
}
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Wikidata items has masc grammatical gndr, fr, comp"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
svt538woekrphb8erfssto2x1injuuy
Z39567
0
90243
299917
2026-08-16T10:04:42Z
Jsamwrites
938
299917
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39567"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39567K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "entity"
}
]
}
}
],
"Z8K2": "Z40",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14"
],
"Z8K5": "Z39567"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": " Wikidata item has masc grammatical gender, Fr"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
hueus9i8ucivkyq92wcu9zmuvwf8y63
299919
299917
2026-08-16T10:06:26Z
Jsamwrites
938
Added Z39568 to the approved list of implementations
299919
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39567"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39567K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "entity"
}
]
}
}
],
"Z8K2": "Z40",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14",
"Z39568"
],
"Z8K5": "Z39567"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": " Wikidata item has masc grammatical gender, Fr"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
8u3t20ugd2exg3039pydy041vq7ga1l
299922
299919
2026-08-16T10:09:03Z
Jsamwrites
938
Added Z39569 to the approved list of test cases
299922
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39567"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39567K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "entity"
}
]
}
}
],
"Z8K2": "Z40",
"Z8K3": [
"Z20",
"Z39569"
],
"Z8K4": [
"Z14",
"Z39568"
],
"Z8K5": "Z39567"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": " Wikidata item has masc grammatical gender, Fr"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
q8tuzpjtaxqtbaq6kyewigfzngwtafe
299924
299922
2026-08-16T10:09:41Z
Jsamwrites
938
Added Z39570 to the approved list of test cases
299924
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39567"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39567K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "entity"
}
]
}
}
],
"Z8K2": "Z40",
"Z8K3": [
"Z20",
"Z39569",
"Z39570"
],
"Z8K4": [
"Z14",
"Z39568"
],
"Z8K5": "Z39567"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": " Wikidata item has masc grammatical gender, Fr"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
4xouqspbcac7qwufzwxlrrkvy1l8gce
Z39568
0
90244
299918
2026-08-16T10:06:16Z
Jsamwrites
938
299918
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39568"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z39567",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z6894",
"Z6894K1": {
"Z1K1": "Z7",
"Z7K1": "Z811",
"Z811K1": {
"Z1K1": "Z7",
"Z7K1": "Z39467",
"Z39467K1": {
"Z1K1": "Z18",
"Z18K1": "Z39567K1"
},
"Z39467K2": "Z1004"
}
},
"Z6894K2": {
"Z1K1": "Z6091",
"Z6091K1": "Q499327"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Wikidata item has masc grammatical gender, Fr, com"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
8ryyvvjiox6cn7u9etcxggrs6a3r50x
299920
299918
2026-08-16T10:07:51Z
Jsamwrites
938
299920
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39568"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z39567",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z19316",
"Z19316K1": {
"Z1K1": "Z7",
"Z7K1": "Z811",
"Z811K1": {
"Z1K1": "Z7",
"Z7K1": "Z39467",
"Z39467K1": {
"Z1K1": "Z18",
"Z18K1": "Z39567K1"
},
"Z39467K2": "Z1004"
}
},
"Z19316K2": {
"Z1K1": "Z6091",
"Z6091K1": "Q499327"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "Wikidata item has masc grammatical gender, Fr, com"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
9qjkob7e8k2svvratdu1ar4vg2kd0xv
Z39569
0
90245
299921
2026-08-16T10:08:54Z
Jsamwrites
938
299921
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39569"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39567",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z39567",
"Z39567K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q11028"
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z844",
"Z844K2": {
"Z1K1": "Z40",
"Z40K1": "Z42"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "information, fr, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
alyb13dmzvqprm2vw1k64dinjo9booa
Z39570
0
90246
299923
2026-08-16T10:09:33Z
Jsamwrites
938
299923
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39570"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39567",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z39567",
"Z39567K1": {
"Z1K1": "Z6091",
"Z6091K1": "Q191067"
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z844",
"Z844K2": {
"Z1K1": "Z40",
"Z40K1": "Z41"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "article, fr, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
1obtnes8foutqs8j88t2t4pu3zzqt33
Z39571
0
90247
299926
2026-08-16T10:12:06Z
Jsamwrites
938
299926
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39571"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z39564",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z39565",
"Z39565K1": {
"Z1K1": "Z18",
"Z18K1": "Z39564K1"
}
},
"Z802K2": {
"Z1K1": "Z6091",
"Z6091K1": "Q499327"
},
"Z802K3": {
"Z1K1": "Z6091",
"Z6091K1": "Q1775415"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "grammatical gender of Wikidata items, Fr, comp"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
tng84g1kherr8jrwfwttgk8raf1185g
Z39572
0
90248
299928
2026-08-16T10:13:01Z
Jsamwrites
938
299928
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39572"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39564",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z39564",
"Z39564K1": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q49848"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q11028"
}
]
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z19316",
"Z19316K2": {
"Z1K1": "Z6091",
"Z6091K1": "Q499327"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "[masc, fem] -\u003E masc, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
6578mfypwiyztm48ifjhdmqa11mlm9h
Z39573
0
90249
299930
2026-08-16T10:13:50Z
Jsamwrites
938
299930
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39573"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39565",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z39565",
"Z39565K1": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q11028"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q89"
}
]
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z844",
"Z844K2": {
"Z1K1": "Z40",
"Z40K1": "Z42"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "[fem, fem] -\u003E false, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
i4gkhn8odmd137s8ihrq3gfyfhwsl6t
Z39574
0
90250
299932
2026-08-16T10:17:42Z
Jsamwrites
938
299932
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39574"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": {
"Z1K1": "Z7",
"Z7K1": "Z881",
"Z881K1": "Z6091"
},
"Z17K2": "Z39574K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "subjects"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z6095",
"Z17K2": "Z39574K2",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "verb lexeme"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39574K3",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "tense"
}
]
}
}
],
"Z8K2": "Z11",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14"
],
"Z8K5": "Z39574"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "French finite verb form for Wikidata subjects"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
d75v1xf7w0jq6nsiipcbj8hvdzxmbfh
299935
299932
2026-08-16T10:20:17Z
Jsamwrites
938
Added Z39575 to the approved list of implementations
299935
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39574"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": {
"Z1K1": "Z7",
"Z7K1": "Z881",
"Z881K1": "Z6091"
},
"Z17K2": "Z39574K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "subjects"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z6095",
"Z17K2": "Z39574K2",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "verb lexeme"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39574K3",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "tense"
}
]
}
}
],
"Z8K2": "Z11",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14",
"Z39575"
],
"Z8K5": "Z39574"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "French finite verb form for Wikidata subjects"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
drmo94qntxhm2n9r7nsb4w3264etbxl
299938
299935
2026-08-16T10:33:19Z
Jsamwrites
938
Added Z39576 to the approved list of test cases
299938
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39574"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": {
"Z1K1": "Z7",
"Z7K1": "Z881",
"Z881K1": "Z6091"
},
"Z17K2": "Z39574K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "subjects"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z6095",
"Z17K2": "Z39574K2",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "verb lexeme"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39574K3",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "tense"
}
]
}
}
],
"Z8K2": "Z11",
"Z8K3": [
"Z20",
"Z39576"
],
"Z8K4": [
"Z14",
"Z39575"
],
"Z8K5": "Z39574"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "French finite verb form for Wikidata subjects"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
mf3ae4asv4je49yargctvtyb0suxcf1
299941
299938
2026-08-16T10:34:35Z
Jsamwrites
938
Added Z39577 to the approved list of test cases
299941
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39574"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": {
"Z1K1": "Z7",
"Z7K1": "Z881",
"Z881K1": "Z6091"
},
"Z17K2": "Z39574K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "subjects"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z6095",
"Z17K2": "Z39574K2",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "verb lexeme"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z6091",
"Z17K2": "Z39574K3",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "tense"
}
]
}
}
],
"Z8K2": "Z11",
"Z8K3": [
"Z20",
"Z39576",
"Z39577"
],
"Z8K4": [
"Z14",
"Z39575"
],
"Z8K5": "Z39574"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "French finite verb form for Wikidata subjects"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
m94nf6keubluqxauysxvqzzv1d79h4g
Z39575
0
90251
299933
2026-08-16T10:19:35Z
Jsamwrites
938
299933
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39575"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z39574",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z39537",
"Z39537K1": {
"Z1K1": "Z18",
"Z18K1": "Z39574K1"
},
"Z39537K2": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q682111"
},
{
"Z1K1": "Z18",
"Z18K1": "Z39574K3"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q51929074"
},
{
"Z1K1": "Z7",
"Z7K1": "Z39534",
"Z39534K1": {
"Z1K1": "Z18",
"Z18K1": "Z39574K1"
},
"Z39534K2": "Z1004"
}
]
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
2ib0xu11gmpmevc0ln6tx0xhgcowxr2
299934
299933
2026-08-16T10:19:50Z
Jsamwrites
938
299934
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39575"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z39574",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z39537",
"Z39537K1": {
"Z1K1": "Z18",
"Z18K1": "Z39574K1"
},
"Z39537K2": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q682111"
},
{
"Z1K1": "Z18",
"Z18K1": "Z39574K3"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q51929074"
},
{
"Z1K1": "Z7",
"Z7K1": "Z39534",
"Z39534K1": {
"Z1K1": "Z18",
"Z18K1": "Z39574K1"
},
"Z39534K2": "Z1004"
}
]
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "French finite verb form for Wikidata subjects, com"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
q22bnm6qgxygrdt1j3i5x9g8fkv6st3
299936
299934
2026-08-16T10:27:59Z
Jsamwrites
938
299936
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39575"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z39574",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z39537",
"Z39537K1": {
"Z1K1": "Z18",
"Z18K1": "Z39574K2"
},
"Z39537K2": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q682111"
},
{
"Z1K1": "Z18",
"Z18K1": "Z39574K3"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q51929074"
},
{
"Z1K1": "Z7",
"Z7K1": "Z39534",
"Z39534K1": {
"Z1K1": "Z18",
"Z18K1": "Z39574K1"
},
"Z39534K2": "Z1004"
}
]
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "French finite verb form for Wikidata subjects, com"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
dhjl4kzwkhozlxksicvmw806ote8jt3
Z39576
0
90252
299937
2026-08-16T10:33:01Z
Jsamwrites
938
299937
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39576"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39574",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z14396",
"Z14396K1": {
"Z1K1": "Z7",
"Z7K1": "Z39574",
"Z39574K1": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q1650915"
}
],
"Z39574K2": {
"Z1K1": "Z6095",
"Z6095K1": "L11142"
},
"Z39574K3": {
"Z1K1": "Z6091",
"Z6091K1": "Q192613"
}
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z866",
"Z866K2": "conçoit"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "concevoir-singular, fr, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
27uyt3khd0gzggrgta5t63xmk1zdrgi
Z39577
0
90253
299939
2026-08-16T10:33:49Z
Jsamwrites
938
Create test for Z39574
299939
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39577"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39574",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z14396",
"Z14396K1": {
"Z1K1": "Z7",
"Z7K1": "Z39574",
"Z39574K1": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q1650915"
}
],
"Z39574K2": {
"Z1K1": "Z6095",
"Z6095K1": "L11142"
},
"Z39574K3": {
"Z1K1": "Z6091",
"Z6091K1": "Q192613"
}
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z866",
"Z866K2": "conçoit"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "concevoir-plural, fr, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
pv7nbqnusipfhwprygnl1bcfxnoxgcb
299940
299939
2026-08-16T10:34:23Z
Jsamwrites
938
299940
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39577"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39574",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z14396",
"Z14396K1": {
"Z1K1": "Z7",
"Z7K1": "Z39574",
"Z39574K1": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q1650915"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q5322166"
}
],
"Z39574K2": {
"Z1K1": "Z6095",
"Z6095K1": "L11142"
},
"Z39574K3": {
"Z1K1": "Z6091",
"Z6091K1": "Q192613"
}
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z866",
"Z866K2": "conçoivent"
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "concevoir-plural, fr, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
b07igfo1r2wrn287egib6d3l33dm8yu
Z39578
0
90254
299942
2026-08-16T10:36:12Z
Jsamwrites
938
299942
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39578"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": {
"Z1K1": "Z7",
"Z7K1": "Z881",
"Z881K1": "Z6091"
},
"Z17K2": "Z39578K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "subjects"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z6095",
"Z17K2": "Z39578K2",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "verb lexeme"
}
]
}
}
],
"Z8K2": "Z11",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14"
],
"Z8K5": "Z39578"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "French past participle for Wikidata subjects"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
tqjsvugg6dyfvzvo43ggwr34a73vs5w
299944
299942
2026-08-16T10:39:12Z
Jsamwrites
938
Added Z39579 to the approved list of implementations
299944
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39578"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": {
"Z1K1": "Z7",
"Z7K1": "Z881",
"Z881K1": "Z6091"
},
"Z17K2": "Z39578K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "subjects"
}
]
}
},
{
"Z1K1": "Z17",
"Z17K1": "Z6095",
"Z17K2": "Z39578K2",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "verb lexeme"
}
]
}
}
],
"Z8K2": "Z11",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14",
"Z39579"
],
"Z8K5": "Z39578"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "French past participle for Wikidata subjects"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
dl5ni1zj4m69xf9se7knftzinydw0u9
Z39579
0
90255
299943
2026-08-16T10:39:00Z
Jsamwrites
938
299943
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39579"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z39578",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z39537",
"Z39537K1": {
"Z1K1": "Z18",
"Z18K1": "Z39578K2"
},
"Z39537K2": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q1994301"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q814722"
},
{
"Z1K1": "Z7",
"Z7K1": "Z39564",
"Z39564K1": {
"Z1K1": "Z18",
"Z18K1": "Z39578K1"
}
},
{
"Z1K1": "Z7",
"Z7K1": "Z39534",
"Z39534K1": {
"Z1K1": "Z18",
"Z18K1": "Z39578K1"
},
"Z39534K2": "Z1004"
}
]
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "French past participle for Wikidata subj, comp"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
ouimhipox0qjkhhdu7eq3ugrztgy93s
Z39580
0
90256
299945
2026-08-16T10:46:48Z
Jsamwrites
938
299945
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39580"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6095",
"Z17K2": "Z39580K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "verb lexeme"
}
]
}
}
],
"Z8K2": "Z6095",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14"
],
"Z8K5": "Z39580"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "auxiliary verb of French Lexeme"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
f9ux7c19ffhn2ohfqugyd5tuwtq8cde
299947
299945
2026-08-16T10:53:06Z
Jsamwrites
938
Added Z39581 to the approved list of implementations
299947
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39580"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6095",
"Z17K2": "Z39580K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "verb lexeme"
}
]
}
}
],
"Z8K2": "Z6095",
"Z8K3": [
"Z20"
],
"Z8K4": [
"Z14",
"Z39581"
],
"Z8K5": "Z39580"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "auxiliary verb of French Lexeme"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
2ft23rn0tgsbq5k9lqrzr7yjgvm8e80
299950
299947
2026-08-16T10:56:11Z
Jsamwrites
938
Added Z39582 to the approved list of test cases
299950
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39580"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6095",
"Z17K2": "Z39580K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "verb lexeme"
}
]
}
}
],
"Z8K2": "Z6095",
"Z8K3": [
"Z20",
"Z39582"
],
"Z8K4": [
"Z14",
"Z39581"
],
"Z8K5": "Z39580"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "auxiliary verb of French Lexeme"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
rqj08vvergz6caotanlgqwhxk8wybh0
299952
299950
2026-08-16T10:57:00Z
Jsamwrites
938
Added Z39583 to the approved list of test cases
299952
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39580"
},
"Z2K2": {
"Z1K1": "Z8",
"Z8K1": [
"Z17",
{
"Z1K1": "Z17",
"Z17K1": "Z6095",
"Z17K2": "Z39580K1",
"Z17K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "verb lexeme"
}
]
}
}
],
"Z8K2": "Z6095",
"Z8K3": [
"Z20",
"Z39582",
"Z39583"
],
"Z8K4": [
"Z14",
"Z39581"
],
"Z8K5": "Z39580"
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "auxiliary verb of French Lexeme"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
b5zfilem3xvwa7nf4xfb0w7968q9x1s
Z39581
0
90257
299946
2026-08-16T10:52:54Z
Jsamwrites
938
299946
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39581"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z39580",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z19287",
"Z19287K1": {
"Z1K1": "Z7",
"Z7K1": "Z811",
"Z811K1": {
"Z1K1": "Z7",
"Z7K1": "Z33125",
"Z33125K1": {
"Z1K1": "Z18",
"Z18K1": "Z39580K1"
},
"Z33125K2": {
"Z1K1": "Z6092",
"Z6092K1": "P5401"
}
}
},
"Z19287K2": {
"Z1K1": "Z6095",
"Z6095K1": "L1882"
}
},
"Z802K2": {
"Z1K1": "Z7",
"Z7K1": "Z6825",
"Z6825K1": {
"Z1K1": "Z6095",
"Z6095K1": "L1882"
}
},
"Z802K3": {
"Z1K1": "Z6095",
"Z6095K1": "L1886"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "auxiliary verb of French Lexeme, comp"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
prrjdcikjz3zv2xudxayg7cz30mzrte
299949
299946
2026-08-16T10:56:00Z
Jsamwrites
938
299949
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39581"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z39580",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z19287",
"Z19287K1": {
"Z1K1": "Z7",
"Z7K1": "Z811",
"Z811K1": {
"Z1K1": "Z7",
"Z7K1": "Z33125",
"Z33125K1": {
"Z1K1": "Z18",
"Z18K1": "Z39580K1"
},
"Z33125K2": {
"Z1K1": "Z6092",
"Z6092K1": "P5401"
}
}
},
"Z19287K2": {
"Z1K1": "Z6095",
"Z6095K1": "L1882"
}
},
"Z802K2": {
"Z1K1": "Z6095",
"Z6095K1": "L1882"
},
"Z802K3": {
"Z1K1": "Z6095",
"Z6095K1": "L1886"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "auxiliary verb of French Lexeme, comp"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
7nltbkb3pteplw4letwl5i71hcztjnh
299955
299949
2026-08-16T11:00:38Z
Jsamwrites
938
299955
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39581"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z39580",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z813",
"Z813K1": [
"Z1"
]
},
"Z802K2": {
"Z1K1": "Z6095",
"Z6095K1": "L1886"
},
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z19287",
"Z19287K1": {
"Z1K1": "Z7",
"Z7K1": "Z811",
"Z811K1": {
"Z1K1": "Z7",
"Z7K1": "Z33125",
"Z33125K1": {
"Z1K1": "Z18",
"Z18K1": "Z39580K1"
},
"Z33125K2": {
"Z1K1": "Z6092",
"Z6092K1": "P5401"
}
}
},
"Z19287K2": {
"Z1K1": "Z6095",
"Z6095K1": "L1882"
}
},
"Z802K2": {
"Z1K1": "Z6095",
"Z6095K1": "L1882"
},
"Z802K3": {
"Z1K1": "Z6095",
"Z6095K1": "L1886"
}
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "auxiliary verb of French Lexeme, comp"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
dkhb0fgcl3f5gd90kfvycy56lubj9t9
299956
299955
2026-08-16T11:01:50Z
Jsamwrites
938
299956
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39581"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z39580",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z813",
"Z813K1": {
"Z1K1": "Z7",
"Z7K1": "Z33125",
"Z33125K1": {
"Z1K1": "Z18",
"Z18K1": "Z39580K1"
},
"Z33125K2": {
"Z1K1": "Z6092",
"Z6092K1": "P5401"
}
}
},
"Z802K2": {
"Z1K1": "Z6095",
"Z6095K1": "L1886"
},
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z19287",
"Z19287K1": {
"Z1K1": "Z7",
"Z7K1": "Z811",
"Z811K1": {
"Z1K1": "Z7",
"Z7K1": "Z33125",
"Z33125K1": {
"Z1K1": "Z18",
"Z18K1": "Z39580K1"
},
"Z33125K2": {
"Z1K1": "Z6092",
"Z6092K1": "P5401"
}
}
},
"Z19287K2": {
"Z1K1": "Z6095",
"Z6095K1": "L1882"
}
},
"Z802K2": {
"Z1K1": "Z6095",
"Z6095K1": "L1882"
},
"Z802K3": {
"Z1K1": "Z6095",
"Z6095K1": "L1886"
}
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "auxiliary verb of French Lexeme, comp"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
mrmfxyiq9624yh8x1k06l2y6g17s02z
Z39582
0
90258
299948
2026-08-16T10:53:46Z
Jsamwrites
938
299948
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39582"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39580",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z39580",
"Z39580K1": {
"Z1K1": "Z6095",
"Z6095K1": "L9136"
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z19287",
"Z19287K2": {
"Z1K1": "Z6095",
"Z6095K1": "L1882"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "auxillary verb-arriver, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
4ssf09hvoenmimprm3kw2syvsui5avo
Z39583
0
90259
299951
2026-08-16T10:56:47Z
Jsamwrites
938
Create test for Z39580
299951
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39583"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39580",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z39580",
"Z39580K1": {
"Z1K1": "Z6095",
"Z6095K1": "L9136"
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z19287",
"Z19287K2": {
"Z1K1": "Z6095",
"Z6095K1": "L1882"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "auxillary verb-concevoir, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
otq7jc2kboktlf99uknlbexulhdsnmv
299953
299951
2026-08-16T10:57:16Z
Jsamwrites
938
299953
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39583"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39580",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z39580",
"Z39580K1": {
"Z1K1": "Z6095",
"Z6095K1": "L9136"
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z19287",
"Z19287K2": {
"Z1K1": "Z6095",
"Z6095K1": "L1886"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "auxillary verb-concevoir, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
sdrk0ju770dhtvy9iojfqka72lamorb
299954
299953
2026-08-16T10:57:53Z
Jsamwrites
938
299954
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39583"
},
"Z2K2": {
"Z1K1": "Z20",
"Z20K1": "Z39580",
"Z20K2": {
"Z1K1": "Z7",
"Z7K1": "Z39580",
"Z39580K1": {
"Z1K1": "Z6095",
"Z6095K1": "L11142"
}
},
"Z20K3": {
"Z1K1": "Z7",
"Z7K1": "Z19287",
"Z19287K2": {
"Z1K1": "Z6095",
"Z6095K1": "L1886"
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "auxillary verb-concevoir, test"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
s9pq77z19a0m6tstvbm3jj9975h6dfx
Z39584
0
90260
299957
2026-08-16T11:24:59Z
Jsamwrites
938
299957
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39584"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z39562",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z19316",
"Z19316K1": {
"Z1K1": "Z18",
"Z18K1": "Z39562K4"
},
"Z19316K2": {
"Z1K1": "Z6091",
"Z6091K1": "Q1317831"
}
},
"Z802K2": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z19316",
"Z19316K1": {
"Z1K1": "Z18",
"Z18K1": "Z39562K3"
},
"Z19316K2": {
"Z1K1": "Z6091",
"Z6091K1": "Q192613"
}
},
"Z802K2": {
"Z1K1": "Z7",
"Z7K1": "Z39574",
"Z39574K1": {
"Z1K1": "Z18",
"Z18K1": "Z39562K1"
},
"Z39574K2": {
"Z1K1": "Z18",
"Z18K1": "Z39562K2"
},
"Z39574K3": {
"Z1K1": "Z18",
"Z18K1": "Z39562K3"
}
},
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z19287",
"Z19287K1": {
"Z1K1": "Z7",
"Z7K1": "Z39580",
"Z39580K1": {
"Z1K1": "Z18",
"Z18K1": "Z39562K2"
}
},
"Z19287K2": {
"Z1K1": "Z6095",
"Z6095K1": "L1882"
}
},
"Z802K2": {
"Z1K1": "Z7",
"Z7K1": "Z34669",
"Z34669K1": [
"Z11",
{
"Z1K1": "Z7",
"Z7K1": "Z39574",
"Z39574K1": {
"Z1K1": "Z18",
"Z18K1": "Z39562K1"
},
"Z39574K2": {
"Z1K1": "Z7",
"Z7K1": "Z39580",
"Z39580K1": {
"Z1K1": "Z18",
"Z18K1": "Z39562K2"
}
},
"Z39574K3": {
"Z1K1": "Z18",
"Z18K1": "Z39562K3"
}
},
{
"Z1K1": "Z7",
"Z7K1": "Z39578",
"Z39578K1": {
"Z1K1": "Z18",
"Z18K1": "Z39562K1"
},
"Z39578K2": {
"Z1K1": "Z18",
"Z18K1": "Z39562K2"
}
}
],
"Z34669K2": {
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": " "
}
},
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z34669",
"Z34669K1": [
"Z11",
{
"Z1K1": "Z7",
"Z7K1": "Z39574",
"Z39574K1": {
"Z1K1": "Z18",
"Z18K1": "Z39562K1"
},
"Z39574K2": {
"Z1K1": "Z7",
"Z7K1": "Z39580",
"Z39580K1": {
"Z1K1": "Z18",
"Z18K1": "Z39562K2"
}
},
"Z39574K3": {
"Z1K1": "Z18",
"Z18K1": "Z39562K3"
}
},
{
"Z1K1": "Z7",
"Z7K1": "Z39537",
"Z39537K1": {
"Z1K1": "Z18",
"Z18K1": "Z39562K2"
},
"Z39537K2": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q814722"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q1994301"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q499327"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q110786"
}
]
}
],
"Z34669K2": {
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": " "
}
}
}
},
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z19316",
"Z19316K1": {
"Z1K1": "Z6091",
"Z6091K1": ""
},
"Z19316K2": {
"Z1K1": "Z6091",
"Z6091K1": "Q192613"
}
},
"Z802K2": {
"Z1K1": "Z7",
"Z7K1": "Z34669",
"Z34669K1": [
"Z11",
{
"Z1K1": "Z7",
"Z7K1": "Z39574",
"Z39574K1": {
"Z1K1": "Z18",
"Z18K1": "Z39562K1"
},
"Z39574K2": {
"Z1K1": "Z6095",
"Z6095K1": "L627139"
},
"Z39574K3": {
"Z1K1": "Z18",
"Z18K1": "Z39562K3"
}
},
{
"Z1K1": "Z7",
"Z7K1": "Z39578",
"Z39578K1": {
"Z1K1": "Z18",
"Z18K1": "Z39562K1"
},
"Z39578K2": {
"Z1K1": "Z18",
"Z18K1": "Z39562K2"
}
}
],
"Z34669K2": {
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": " "
}
},
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z34669",
"Z34669K1": [
"Z11",
{
"Z1K1": "Z7",
"Z7K1": "Z39574",
"Z39574K1": {
"Z1K1": "Z18",
"Z18K1": "Z39562K1"
},
"Z39574K2": {
"Z1K1": "Z6095",
"Z6095K1": "L1886"
},
"Z39574K3": {
"Z1K1": "Z18",
"Z18K1": "Z39562K3"
}
},
{
"Z1K1": "Z7",
"Z7K1": "Z39537",
"Z39537K1": {
"Z1K1": "Z6095",
"Z6095K1": "L1882"
},
"Z39537K2": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q814722"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q1994301"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q499327"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q110786"
}
]
},
{
"Z1K1": "Z7",
"Z7K1": "Z39578",
"Z39578K1": {
"Z1K1": "Z18",
"Z18K1": "Z39562K1"
},
"Z39578K2": {
"Z1K1": "Z18",
"Z18K1": "Z39562K2"
}
}
],
"Z34669K2": {
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": " "
}
}
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "French verbal complex for Wikidata subjects, comp"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
rs50mzvm1210z9wsh55r7ura91540a1
299958
299957
2026-08-16T11:25:30Z
Jsamwrites
938
299958
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39584"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z39562",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z19316",
"Z19316K1": {
"Z1K1": "Z18",
"Z18K1": "Z39562K4"
},
"Z19316K2": {
"Z1K1": "Z6091",
"Z6091K1": "Q1317831"
}
},
"Z802K2": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z19316",
"Z19316K1": {
"Z1K1": "Z18",
"Z18K1": "Z39562K3"
},
"Z19316K2": {
"Z1K1": "Z6091",
"Z6091K1": "Q192613"
}
},
"Z802K2": {
"Z1K1": "Z7",
"Z7K1": "Z39574",
"Z39574K1": {
"Z1K1": "Z18",
"Z18K1": "Z39562K1"
},
"Z39574K2": {
"Z1K1": "Z18",
"Z18K1": "Z39562K2"
},
"Z39574K3": {
"Z1K1": "Z18",
"Z18K1": "Z39562K3"
}
},
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z19287",
"Z19287K1": {
"Z1K1": "Z7",
"Z7K1": "Z39580",
"Z39580K1": {
"Z1K1": "Z18",
"Z18K1": "Z39562K2"
}
},
"Z19287K2": {
"Z1K1": "Z6095",
"Z6095K1": "L1882"
}
},
"Z802K2": {
"Z1K1": "Z7",
"Z7K1": "Z34669",
"Z34669K1": [
"Z11",
{
"Z1K1": "Z7",
"Z7K1": "Z39574",
"Z39574K1": {
"Z1K1": "Z18",
"Z18K1": "Z39562K1"
},
"Z39574K2": {
"Z1K1": "Z7",
"Z7K1": "Z39580",
"Z39580K1": {
"Z1K1": "Z18",
"Z18K1": "Z39562K2"
}
},
"Z39574K3": {
"Z1K1": "Z18",
"Z18K1": "Z39562K3"
}
},
{
"Z1K1": "Z7",
"Z7K1": "Z39578",
"Z39578K1": {
"Z1K1": "Z18",
"Z18K1": "Z39562K1"
},
"Z39578K2": {
"Z1K1": "Z18",
"Z18K1": "Z39562K2"
}
}
],
"Z34669K2": {
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": " "
}
},
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z34669",
"Z34669K1": [
"Z11",
{
"Z1K1": "Z7",
"Z7K1": "Z39574",
"Z39574K1": {
"Z1K1": "Z18",
"Z18K1": "Z39562K1"
},
"Z39574K2": {
"Z1K1": "Z7",
"Z7K1": "Z39580",
"Z39580K1": {
"Z1K1": "Z18",
"Z18K1": "Z39562K2"
}
},
"Z39574K3": {
"Z1K1": "Z18",
"Z18K1": "Z39562K3"
}
},
{
"Z1K1": "Z7",
"Z7K1": "Z39537",
"Z39537K1": {
"Z1K1": "Z18",
"Z18K1": "Z39562K2"
},
"Z39537K2": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q814722"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q1994301"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q499327"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q110786"
}
]
}
],
"Z34669K2": {
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": " "
}
}
}
},
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z19316",
"Z19316K1": {
"Z1K1": "Z18",
"Z18K1": "Z39562K3"
},
"Z19316K2": {
"Z1K1": "Z6091",
"Z6091K1": "Q192613"
}
},
"Z802K2": {
"Z1K1": "Z7",
"Z7K1": "Z34669",
"Z34669K1": [
"Z11",
{
"Z1K1": "Z7",
"Z7K1": "Z39574",
"Z39574K1": {
"Z1K1": "Z18",
"Z18K1": "Z39562K1"
},
"Z39574K2": {
"Z1K1": "Z6095",
"Z6095K1": "L627139"
},
"Z39574K3": {
"Z1K1": "Z18",
"Z18K1": "Z39562K3"
}
},
{
"Z1K1": "Z7",
"Z7K1": "Z39578",
"Z39578K1": {
"Z1K1": "Z18",
"Z18K1": "Z39562K1"
},
"Z39578K2": {
"Z1K1": "Z18",
"Z18K1": "Z39562K2"
}
}
],
"Z34669K2": {
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": " "
}
},
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z34669",
"Z34669K1": [
"Z11",
{
"Z1K1": "Z7",
"Z7K1": "Z39574",
"Z39574K1": {
"Z1K1": "Z18",
"Z18K1": "Z39562K1"
},
"Z39574K2": {
"Z1K1": "Z6095",
"Z6095K1": "L1886"
},
"Z39574K3": {
"Z1K1": "Z18",
"Z18K1": "Z39562K3"
}
},
{
"Z1K1": "Z7",
"Z7K1": "Z39537",
"Z39537K1": {
"Z1K1": "Z6095",
"Z6095K1": "L1882"
},
"Z39537K2": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q814722"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q1994301"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q499327"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q110786"
}
]
},
{
"Z1K1": "Z7",
"Z7K1": "Z39578",
"Z39578K1": {
"Z1K1": "Z18",
"Z18K1": "Z39562K1"
},
"Z39578K2": {
"Z1K1": "Z18",
"Z18K1": "Z39562K2"
}
}
],
"Z34669K2": {
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": " "
}
}
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "French verbal complex for Wikidata subjects, comp"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
kfp58e4xqs8w5bbhhxny5txrn904zch
299963
299958
2026-08-16T11:34:59Z
Jsamwrites
938
299963
zobject
text/plain
{
"Z1K1": "Z2",
"Z2K1": {
"Z1K1": "Z6",
"Z6K1": "Z39584"
},
"Z2K2": {
"Z1K1": "Z14",
"Z14K1": "Z39562",
"Z14K2": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z19316",
"Z19316K1": {
"Z1K1": "Z18",
"Z18K1": "Z39562K4"
},
"Z19316K2": {
"Z1K1": "Z6091",
"Z6091K1": "Q1317831"
}
},
"Z802K2": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z19316",
"Z19316K1": {
"Z1K1": "Z18",
"Z18K1": "Z39562K3"
},
"Z19316K2": {
"Z1K1": "Z6091",
"Z6091K1": "Q192613"
}
},
"Z802K2": {
"Z1K1": "Z7",
"Z7K1": "Z39574",
"Z39574K1": {
"Z1K1": "Z18",
"Z18K1": "Z39562K1"
},
"Z39574K2": {
"Z1K1": "Z18",
"Z18K1": "Z39562K2"
},
"Z39574K3": {
"Z1K1": "Z18",
"Z18K1": "Z39562K3"
}
},
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z19287",
"Z19287K1": {
"Z1K1": "Z7",
"Z7K1": "Z39580",
"Z39580K1": {
"Z1K1": "Z18",
"Z18K1": "Z39562K2"
}
},
"Z19287K2": {
"Z1K1": "Z6095",
"Z6095K1": "L1882"
}
},
"Z802K2": {
"Z1K1": "Z7",
"Z7K1": "Z34669",
"Z34669K1": [
"Z11",
{
"Z1K1": "Z7",
"Z7K1": "Z39574",
"Z39574K1": {
"Z1K1": "Z18",
"Z18K1": "Z39562K1"
},
"Z39574K2": {
"Z1K1": "Z7",
"Z7K1": "Z39580",
"Z39580K1": {
"Z1K1": "Z18",
"Z18K1": "Z39562K2"
}
},
"Z39574K3": {
"Z1K1": "Z18",
"Z18K1": "Z39562K3"
}
},
{
"Z1K1": "Z7",
"Z7K1": "Z39578",
"Z39578K1": {
"Z1K1": "Z18",
"Z18K1": "Z39562K1"
},
"Z39578K2": {
"Z1K1": "Z18",
"Z18K1": "Z39562K2"
}
}
],
"Z34669K2": {
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": " "
}
},
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z34669",
"Z34669K1": [
"Z11",
{
"Z1K1": "Z7",
"Z7K1": "Z39574",
"Z39574K1": {
"Z1K1": "Z18",
"Z18K1": "Z39562K1"
},
"Z39574K2": {
"Z1K1": "Z7",
"Z7K1": "Z39580",
"Z39580K1": {
"Z1K1": "Z18",
"Z18K1": "Z39562K2"
}
},
"Z39574K3": {
"Z1K1": "Z18",
"Z18K1": "Z39562K3"
}
},
{
"Z1K1": "Z7",
"Z7K1": "Z39537",
"Z39537K1": {
"Z1K1": "Z18",
"Z18K1": "Z39562K2"
},
"Z39537K2": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q814722"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q1994301"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q499327"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q110786"
}
]
}
],
"Z34669K2": {
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": " "
}
}
}
},
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z802",
"Z802K1": {
"Z1K1": "Z7",
"Z7K1": "Z19316",
"Z19316K1": {
"Z1K1": "Z18",
"Z18K1": "Z39562K3"
},
"Z19316K2": {
"Z1K1": "Z6091",
"Z6091K1": "Q192613"
}
},
"Z802K2": {
"Z1K1": "Z7",
"Z7K1": "Z34669",
"Z34669K1": [
"Z11",
{
"Z1K1": "Z7",
"Z7K1": "Z39574",
"Z39574K1": {
"Z1K1": "Z18",
"Z18K1": "Z39562K1"
},
"Z39574K2": {
"Z1K1": "Z6095",
"Z6095K1": "L1882"
},
"Z39574K3": {
"Z1K1": "Z18",
"Z18K1": "Z39562K3"
}
},
{
"Z1K1": "Z7",
"Z7K1": "Z39578",
"Z39578K1": {
"Z1K1": "Z18",
"Z18K1": "Z39562K1"
},
"Z39578K2": {
"Z1K1": "Z18",
"Z18K1": "Z39562K2"
}
}
],
"Z34669K2": {
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": " "
}
},
"Z802K3": {
"Z1K1": "Z7",
"Z7K1": "Z34669",
"Z34669K1": [
"Z11",
{
"Z1K1": "Z7",
"Z7K1": "Z39574",
"Z39574K1": {
"Z1K1": "Z18",
"Z18K1": "Z39562K1"
},
"Z39574K2": {
"Z1K1": "Z6095",
"Z6095K1": "L1886"
},
"Z39574K3": {
"Z1K1": "Z18",
"Z18K1": "Z39562K3"
}
},
{
"Z1K1": "Z7",
"Z7K1": "Z39537",
"Z39537K1": {
"Z1K1": "Z6095",
"Z6095K1": "L1882"
},
"Z39537K2": [
"Z6091",
{
"Z1K1": "Z6091",
"Z6091K1": "Q814722"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q1994301"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q499327"
},
{
"Z1K1": "Z6091",
"Z6091K1": "Q110786"
}
]
},
{
"Z1K1": "Z7",
"Z7K1": "Z39578",
"Z39578K1": {
"Z1K1": "Z18",
"Z18K1": "Z39562K1"
},
"Z39578K2": {
"Z1K1": "Z18",
"Z18K1": "Z39562K2"
}
}
],
"Z34669K2": {
"Z1K1": "Z11",
"Z11K1": "Z1004",
"Z11K2": " "
}
}
}
}
},
"Z2K3": {
"Z1K1": "Z12",
"Z12K1": [
"Z11",
{
"Z1K1": "Z11",
"Z11K1": "Z1002",
"Z11K2": "French verbal complex for Wikidata subjects, comp"
}
]
},
"Z2K4": {
"Z1K1": "Z32",
"Z32K1": [
"Z31"
]
},
"Z2K5": {
"Z1K1": "Z12",
"Z12K1": [
"Z11"
]
}
}
2ufr9230yflc6s56k587m8jpe7vvfug