Wikifunctions wikifunctionswiki https://www.wikifunctions.org/wiki/Wikifunctions:Main_Page MediaWiki 1.48.0-wmf.1 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 Z41 0 30 334323 331299 2026-10-29T06:29:21Z YeBoy371 5561 334323 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z41" }, "Z2K2": { "Z1K1": "Z40", "Z40K1": "Z41" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "true" }, { "Z1K1": "Z11", "Z11K1": "Z1011", "Z11K2": "সত্য" }, { "Z1K1": "Z11", "Z11K1": "Z1430", "Z11K2": "wahr" }, { "Z1K1": "Z11", "Z11K1": "Z1025", "Z11K2": "prawda" }, { "Z1K1": "Z11", "Z11K1": "Z1592", "Z11K2": "sant" }, { "Z1K1": "Z11", "Z11K1": "Z1272", "Z11K2": "istina" }, { "Z1K1": "Z11", "Z11K1": "Z1576", "Z11K2": "vera" }, { "Z1K1": "Z11", "Z11K1": "Z1005", "Z11K2": "истина" }, { "Z1K1": "Z11", "Z11K1": "Z1062", "Z11K2": "pravda" }, { "Z1K1": "Z11", "Z11K1": "Z1012", "Z11K2": "സത്യം" }, { "Z1K1": "Z11", "Z11K1": "Z1830", "Z11K2": "真" }, { "Z1K1": "Z11", "Z11K1": "Z1709", "Z11K2": "patiess" }, { "Z1K1": "Z11", "Z11K1": "Z1186", "Z11K2": "אמת" }, { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "vrai" }, { "Z1K1": "Z11", "Z11K1": "Z1157", "Z11K2": "waar" }, { "Z1K1": "Z11", "Z11K1": "Z1237", "Z11K2": "doğru" }, { "Z1K1": "Z11", "Z11K1": "Z1003", "Z11K2": "verdadero" }, { "Z1K1": "Z11", "Z11K1": "Z1061", "Z11K2": "sandt" }, { "Z1K1": "Z11", "Z11K1": "Z1113", "Z11K2": "true" }, { "Z1K1": "Z11", "Z11K1": "Z1199", "Z11K2": "true" }, { "Z1K1": "Z11", "Z11K1": "Z1437", "Z11K2": "true" }, { "Z1K1": "Z11", "Z11K1": "Z1787", "Z11K2": "vero" }, { "Z1K1": "Z11", "Z11K1": "Z1332", "Z11K2": "істина" }, { "Z1K1": "Z11", "Z11K1": "Z1625", "Z11K2": "marina" }, { "Z1K1": "Z11", "Z11K1": "Z1381", "Z11K2": "verdadeiro" }, { "Z1K1": "Z11", "Z11K1": "Z1051", "Z11K2": "tosi" }, { "Z1K1": "Z11", "Z11K1": "Z1851", "Z11K2": "จริง" }, { "Z1K1": "Z11", "Z11K1": "Z1078", "Z11K2": "benar" }, { "Z1K1": "Z11", "Z11K1": "Z1645", "Z11K2": "真" }, { "Z1K1": "Z11", "Z11K1": "Z1672", "Z11K2": "真" }, { "Z1K1": "Z11", "Z11K1": "Z1827", "Z11K2": "αληθής" }, { "Z1K1": "Z11", "Z11K1": "Z1099", "Z11K2": "wouer" }, { "Z1K1": "Z11", "Z11K1": "Z1015", "Z11K2": "yɛlmaŋli" }, { "Z1K1": "Z11", "Z11K1": "Z1037", "Z11K2": "verdadeiro" }, { "Z1K1": "Z11", "Z11K1": "Z1664", "Z11K2": "adevărat" }, { "Z1K1": "Z11", "Z11K1": "Z1001", "Z11K2": "صائب" }, { "Z1K1": "Z11", "Z11K1": "Z1181", "Z11K2": "тачно" }, { "Z1K1": "Z11", "Z11K1": "Z1820", "Z11K2": "सच" }, { "Z1K1": "Z11", "Z11K1": "Z1106", "Z11K2": "satt" }, { "Z1K1": "Z11", "Z11K1": "Z1207", "Z11K2": "ҳақиқат" }, { "Z1K1": "Z11", "Z11K1": "Z1844", "Z11K2": "totoo" }, { "Z1K1": "Z11", "Z11K1": "Z1823", "Z11K2": "истина" }, { "Z1K1": "Z11", "Z11K1": "Z1762", "Z11K2": "lon" }, { "Z1K1": "Z11", "Z11K1": "Z1630", "Z11K2": "bener" }, { "Z1K1": "Z11", "Z11K1": "Z1728", "Z11K2": "درست" }, { "Z1K1": "Z11", "Z11K1": "Z1657", "Z11K2": "ਸਹੀ" }, { "Z1K1": "Z11", "Z11K1": "Z1014", "Z11K2": "ezie" }, { "Z1K1": "Z11", "Z11K1": "Z1643", "Z11K2": "참" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31", { "Z1K1": "Z31", "Z31K1": "Z1592", "Z31K2": [ "Z6", "ja", "korrekt" ] }, { "Z1K1": "Z31", "Z31K1": "Z1062", "Z31K2": [ "Z6", "ano" ] }, { "Z1K1": "Z31", "Z31K1": "Z1002", "Z31K2": [ "Z6", "T", "TRUE", "affirmative", "right", "yes" ] }, { "Z1K1": "Z31", "Z31K1": "Z1004", "Z31K2": [ "Z6", "oui" ] }, { "Z1K1": "Z31", "Z31K1": "Z1787", "Z31K2": [ "Z6", "V", "Vero", "Affermativo", "corretto", "sì" ] }, { "Z1K1": "Z31", "Z31K1": "Z1003", "Z31K2": [ "Z6", "V", "afirmativo", "correcto", "sí" ] }, { "Z1K1": "Z31", "Z31K1": "Z1381", "Z31K2": [ "Z6", "sim", "verdade", "ligado", "V", "VERDADEIRO", "afirmativo", "certo" ] }, { "Z1K1": "Z31", "Z31K1": "Z1851", "Z31K2": [ "Z6", "ใช่", "ถูก" ] }, { "Z1K1": "Z31", "Z31K1": "Z1645", "Z31K2": [ "Z6", "真值" ] }, { "Z1K1": "Z31", "Z31K1": "Z1672", "Z31K2": [ "Z6", "真值" ] }, { "Z1K1": "Z31", "Z31K1": "Z1037", "Z31K2": [ "Z6", "sim", "verdade", "correto", "ligado", "afirmativo", "positivo", "certo" ] }, { "Z1K1": "Z31", "Z31K1": "Z1664", "Z31K2": [ "Z6", "da", "T", "A", "TRUE", "afirmativ" ] }, { "Z1K1": "Z31", "Z31K1": "Z1001", "Z31K2": [ "Z6", "نعم", "صحيح", "إيجابي", "صواب" ] }, { "Z1K1": "Z31", "Z31K1": "Z1181", "Z31K2": [ "Z6", "T" ] }, { "Z1K1": "Z31", "Z31K1": "Z1106", "Z31K2": [ "Z6", "satt", "sönn", "rétt", "já" ] }, { "Z1K1": "Z31", "Z31K1": "Z1844", "Z31K2": [ "Z6", "T", "TOTOO", "sang-ayon", "tama", "oo" ] }, { "Z1K1": "Z31", "Z31K1": "Z1823", "Z31K2": [ "Z6", "да", "вярно ", "T", "TRUE", "true", "положително" ] }, { "Z1K1": "Z31", "Z31K1": "Z1830", "Z31K2": [ "Z6", "はい", "正" ] }, { "Z1K1": "Z31", "Z31K1": "Z1728", "Z31K2": [ "Z6", "بله", "مثبت" ] }, { "Z1K1": "Z31", "Z31K1": "Z1014", "Z31K2": [ "Z6", "eziokwu" ] } ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "the value of a Z40/Boolean that indicates an affirmative or positive result" }, { "Z1K1": "Z11", "Z11K1": "Z1576", "Z11K2": "la valoro de buleano kiu indikas jesan aŭ pozitivan rezulton" }, { "Z1K1": "Z11", "Z11K1": "Z1062", "Z11K2": "hodnota typu Z40/Logická hodnota, která označuje pozitivní výsledek" }, { "Z1K1": "Z11", "Z11K1": "Z1430", "Z11K2": "boolescher Wert, der ein bejahendes oder positives Ergebnis anzeigt" }, { "Z1K1": "Z11", "Z11K1": "Z1186", "Z11K2": "ערך בוליאני שמייצג ערך או תוצאה חיוביים" }, { "Z1K1": "Z11", "Z11K1": "Z1157", "Z11K2": "de waarde van een Z40/boolean die een bevestigend of positief resultaat aangeeft" }, { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "La valeur d'un Z40/Booléen qui indique un résultat affirmatif ou positif." }, { "Z1K1": "Z11", "Z11K1": "Z1003", "Z11K2": "valor booleano, que indica un resultado verdadero o positivo" }, { "Z1K1": "Z11", "Z11K1": "Z1061", "Z11K2": "værdien af Z40/boolsk værdi som indikeret et positivt resultat" }, { "Z1K1": "Z11", "Z11K1": "Z1787", "Z11K2": "il valore di Z40/Booleano che indica un risultato affermativo o positivo" }, { "Z1K1": "Z11", "Z11K1": "Z1381", "Z11K2": "o valor de um Z40/Booleano que indica um resultado afirmativo ou positivo" }, { "Z1K1": "Z11", "Z11K1": "Z1851", "Z11K2": "ค่า Z40/ตรรกะ ซึ่งชี้ถึงผลลัพธ์ที่ยืนยันหรือเชิงบวก" }, { "Z1K1": "Z11", "Z11K1": "Z1078", "Z11K2": "nilai Boolean yang menandakan hasil positif" }, { "Z1K1": "Z11", "Z11K1": "Z1645", "Z11K2": "表示肯定或正面结果的值" }, { "Z1K1": "Z11", "Z11K1": "Z1672", "Z11K2": "表示肯定或正面結果的值" }, { "Z1K1": "Z11", "Z11K1": "Z1015", "Z11K2": "pa ʒiri" }, { "Z1K1": "Z11", "Z11K1": "Z1664", "Z11K2": "valoarea unui Z40/Tip logic care indică un rezultat afirmativ sau pozitiv" }, { "Z1K1": "Z11", "Z11K1": "Z1001", "Z11K2": "قيمة Z40/منطقي التي تشير إلى نتيجة إيجابية" }, { "Z1K1": "Z11", "Z11K1": "Z1181", "Z11K2": "Z40/Булова вредност која означава тачан или позитиван резултат" }, { "Z1K1": "Z11", "Z11K1": "Z1820", "Z11K2": "एक Z40/बूलियन का परिणाम जो सकारात्मक परिणाम का संकेत देता है।" }, { "Z1K1": "Z11", "Z11K1": "Z1106", "Z11K2": "sanngildi Z40/Boole-breytu er jákvætt eða satt" }, { "Z1K1": "Z11", "Z11K1": "Z1844", "Z11K2": "ang halaga ng isang Z40/Buleano na nagpapahiwating ng isang positibong resulta" }, { "Z1K1": "Z11", "Z11K1": "Z1823", "Z11K2": "стойността на Z40/Булева стойност, която показва положителен резултат" }, { "Z1K1": "Z11", "Z11K1": "Z1830", "Z11K2": "肯定的な、あるいはポジティブな結果を示すZ40/真偽値の値" }, { "Z1K1": "Z11", "Z11K1": "Z1728", "Z11K2": "مقداری از نوع Z40/Boolean که نشان دهنده نتیجه مثبت یا تاییدی است" }, { "Z1K1": "Z11", "Z11K1": "Z1643", "Z11K2": "긍정적인 결과를 나타내는 Z40/불리언 값" } ] } } jfkrl6xzrl3gutxgbtxyc3mop27b9bl Z42 0 31 334324 331300 2026-10-29T06:29:24Z YeBoy371 5561 334324 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z42" }, "Z2K2": { "Z1K1": "Z40", "Z40K1": "Z42" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "false" }, { "Z1K1": "Z11", "Z11K1": "Z1011", "Z11K2": "মিথ্যা" }, { "Z1K1": "Z11", "Z11K1": "Z1430", "Z11K2": "falsch" }, { "Z1K1": "Z11", "Z11K1": "Z1025", "Z11K2": "fałsz" }, { "Z1K1": "Z11", "Z11K1": "Z1592", "Z11K2": "falskt" }, { "Z1K1": "Z11", "Z11K1": "Z1576", "Z11K2": "malvera" }, { "Z1K1": "Z11", "Z11K1": "Z1005", "Z11K2": "ложь" }, { "Z1K1": "Z11", "Z11K1": "Z1062", "Z11K2": "nepravda" }, { "Z1K1": "Z11", "Z11K1": "Z1012", "Z11K2": "കള്ളം" }, { "Z1K1": "Z11", "Z11K1": "Z1830", "Z11K2": "偽" }, { "Z1K1": "Z11", "Z11K1": "Z1709", "Z11K2": "nepatiess" }, { "Z1K1": "Z11", "Z11K1": "Z1186", "Z11K2": "שקר" }, { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "faux" }, { "Z1K1": "Z11", "Z11K1": "Z1157", "Z11K2": "onwaar" }, { "Z1K1": "Z11", "Z11K1": "Z1237", "Z11K2": "yanlış" }, { "Z1K1": "Z11", "Z11K1": "Z1003", "Z11K2": "falso" }, { "Z1K1": "Z11", "Z11K1": "Z1061", "Z11K2": "falskt" }, { "Z1K1": "Z11", "Z11K1": "Z1113", "Z11K2": "false" }, { "Z1K1": "Z11", "Z11K1": "Z1199", "Z11K2": "false" }, { "Z1K1": "Z11", "Z11K1": "Z1437", "Z11K2": "false" }, { "Z1K1": "Z11", "Z11K1": "Z1787", "Z11K2": "falso" }, { "Z1K1": "Z11", "Z11K1": "Z1332", "Z11K2": "хиба" }, { "Z1K1": "Z11", "Z11K1": "Z1625", "Z11K2": "diso" }, { "Z1K1": "Z11", "Z11K1": "Z1381", "Z11K2": "falso" }, { "Z1K1": "Z11", "Z11K1": "Z1051", "Z11K2": "epätosi" }, { "Z1K1": "Z11", "Z11K1": "Z1851", "Z11K2": "เท็จ" }, { "Z1K1": "Z11", "Z11K1": "Z1078", "Z11K2": "salah" }, { "Z1K1": "Z11", "Z11K1": "Z1645", "Z11K2": "假" }, { "Z1K1": "Z11", "Z11K1": "Z1672", "Z11K2": "假" }, { "Z1K1": "Z11", "Z11K1": "Z1827", "Z11K2": "ψευδής" }, { "Z1K1": "Z11", "Z11K1": "Z1099", "Z11K2": "falsch" }, { "Z1K1": "Z11", "Z11K1": "Z1037", "Z11K2": "falso" }, { "Z1K1": "Z11", "Z11K1": "Z1664", "Z11K2": "fals" }, { "Z1K1": "Z11", "Z11K1": "Z1001", "Z11K2": "خاطئ" }, { "Z1K1": "Z11", "Z11K1": "Z1181", "Z11K2": "нетачно" }, { "Z1K1": "Z11", "Z11K1": "Z1820", "Z11K2": "झूठ" }, { "Z1K1": "Z11", "Z11K1": "Z1106", "Z11K2": "ósatt" }, { "Z1K1": "Z11", "Z11K1": "Z1207", "Z11K2": "ноҳақ" }, { "Z1K1": "Z11", "Z11K1": "Z1844", "Z11K2": "mali" }, { "Z1K1": "Z11", "Z11K1": "Z1823", "Z11K2": "неистина" }, { "Z1K1": "Z11", "Z11K1": "Z1762", "Z11K2": "ala" }, { "Z1K1": "Z11", "Z11K1": "Z1630", "Z11K2": "sala" }, { "Z1K1": "Z11", "Z11K1": "Z1728", "Z11K2": "نادرست" }, { "Z1K1": "Z11", "Z11K1": "Z1014", "Z11K2": "ụgha" }, { "Z1K1": "Z11", "Z11K1": "Z1015", "Z11K2": "ʒiri" }, { "Z1K1": "Z11", "Z11K1": "Z1643", "Z11K2": "거짓" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31", { "Z1K1": "Z31", "Z31K1": "Z1592", "Z31K2": [ "Z6", "nej", "fel" ] }, { "Z1K1": "Z31", "Z31K1": "Z1062", "Z31K2": [ "Z6", "lež", "ne" ] }, { "Z1K1": "Z31", "Z31K1": "Z1002", "Z31K2": [ "Z6", "F", "FALSE", "not true", "wrong", "incorrect", "no", "untrue" ] }, { "Z1K1": "Z31", "Z31K1": "Z1004", "Z31K2": [ "Z6", "F", "FAUX", "pas vrai", "incorrect", "non", "non vrai" ] }, { "Z1K1": "Z31", "Z31K1": "Z1787", "Z31K2": [ "Z6", "F", "Falso", "Non vero", "sbagliato", "errato", "no" ] }, { "Z1K1": "Z31", "Z31K1": "Z1381", "Z31K2": [ "Z6", "negativo", "desligado", "não", "F", "FALSO", "incorreto", "errado", "não é verdade" ] }, { "Z1K1": "Z31", "Z31K1": "Z1851", "Z31K2": [ "Z6", "ผิด", "ไม่ใช่" ] }, { "Z1K1": "Z31", "Z31K1": "Z1645", "Z31K2": [ "Z6", "假值" ] }, { "Z1K1": "Z31", "Z31K1": "Z1672", "Z31K2": [ "Z6", "假值" ] }, { "Z1K1": "Z31", "Z31K1": "Z1037", "Z31K2": [ "Z6", "negativo", "desligado", "não", "incorreto", "errado" ] }, { "Z1K1": "Z31", "Z31K1": "Z1664", "Z31K2": [ "Z6", "F", "FALS", "neadevărat", "greșit", "incorect", "nu" ] }, { "Z1K1": "Z31", "Z31K1": "Z1001", "Z31K2": [ "Z6", "غير صحيح", "لا" ] }, { "Z1K1": "Z31", "Z31K1": "Z1181", "Z31K2": [ "Z6", "⊥" ] }, { "Z1K1": "Z31", "Z31K1": "Z1106", "Z31K2": [ "Z6", "F", "FALSE", "ósatt", "rangt", "nei" ] }, { "Z1K1": "Z31", "Z31K1": "Z1207", "Z31K2": [ "Z6", "дурӯғ" ] }, { "Z1K1": "Z31", "Z31K1": "Z1844", "Z31K2": [ "Z6", "M", "MALI", "hindi totoo", "hindi tama", "hindi" ] }, { "Z1K1": "Z31", "Z31K1": "Z1823", "Z31K2": [ "Z6", "F", "FALSE", "грешно", "невярно ", "не" ] }, { "Z1K1": "Z31", "Z31K1": "Z1830", "Z31K2": [ "Z6", "いいえ", "誤" ] }, { "Z1K1": "Z31", "Z31K1": "Z1728", "Z31K2": [ "Z6", "اشتباه", "درست نیست", "خیر" ] }, { "Z1K1": "Z31", "Z31K1": "Z1014", "Z31K2": [ "Z6", "Ọbụghị ezie", "ashị", "àsị" ] }, { "Z1K1": "Z31", "Z31K1": "Z1643", "Z31K2": [ "Z6", "참이 아님" ] } ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "the value of a Z40/Boolean that indicates a negative result" }, { "Z1K1": "Z11", "Z11K1": "Z1576", "Z11K2": "la valoro de buleano kiu indikas negativan rezulton" }, { "Z1K1": "Z11", "Z11K1": "Z1062", "Z11K2": "hodnota typu Z40/Logická hodnota, která označuje negativní výsledek" }, { "Z1K1": "Z11", "Z11K1": "Z1430", "Z11K2": "boolescher Wert, der ein negatives Ergebnis anzeigt" }, { "Z1K1": "Z11", "Z11K1": "Z1186", "Z11K2": "ערך בוליאני שמייצג ערך או תוצאה שליליים" }, { "Z1K1": "Z11", "Z11K1": "Z1157", "Z11K2": "de waarde van een Z40/boolean die een negatief resultaat aangeeft" }, { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "La valeur d'un Z40/Booléen qui indique un résultat négatif." }, { "Z1K1": "Z11", "Z11K1": "Z1003", "Z11K2": "valor booleano, que indica un resultado falso o negativo" }, { "Z1K1": "Z11", "Z11K1": "Z1061", "Z11K2": "værdien af Z40/boolsk værdi der indikerer et negativt resultat" }, { "Z1K1": "Z11", "Z11K1": "Z1787", "Z11K2": "il valore di Z40/Booleano che indica un risultato negativo" }, { "Z1K1": "Z11", "Z11K1": "Z1625", "Z11K2": "sanda Z40/Booleanina maneho valiny diso" }, { "Z1K1": "Z11", "Z11K1": "Z1381", "Z11K2": "o valor de um Z40/Booleano que indica um resultado negativo" }, { "Z1K1": "Z11", "Z11K1": "Z1851", "Z11K2": "ค่า Z40/ตรรกะ ซึ่งชี้ถึงผลลัพธ์เชิงลบ" }, { "Z1K1": "Z11", "Z11K1": "Z1078", "Z11K2": "nilai Boolean yang menandakan hasil negatif" }, { "Z1K1": "Z11", "Z11K1": "Z1645", "Z11K2": "表示否定或反面结果的值" }, { "Z1K1": "Z11", "Z11K1": "Z1672", "Z11K2": "表示否定或反面結果的值" }, { "Z1K1": "Z11", "Z11K1": "Z1664", "Z11K2": "valoarea unui Z40/Tip logic care indică un rezultat negativ" }, { "Z1K1": "Z11", "Z11K1": "Z1001", "Z11K2": "قيمة Z40/بوليانية تشير إلى نتيجة سلبية" }, { "Z1K1": "Z11", "Z11K1": "Z1181", "Z11K2": "Z40/Булова вредност која означава негативан резултат" }, { "Z1K1": "Z11", "Z11K1": "Z1820", "Z11K2": "एक Z40/बूलियन का परिणाम जो नकारात्मक परिणाम का संकेत देता है।" }, { "Z1K1": "Z11", "Z11K1": "Z1106", "Z11K2": "sanngildi Z40/Boole-breytu er neikvætt eða ósatt" }, { "Z1K1": "Z11", "Z11K1": "Z1844", "Z11K2": "ang halaga ng isang Z40/Buleano na nagpapahiwatig ng isang negatibong resulta" }, { "Z1K1": "Z11", "Z11K1": "Z1823", "Z11K2": "стойността на Z40/Булева стойност, която показва отрицателен резултат" }, { "Z1K1": "Z11", "Z11K1": "Z1830", "Z11K2": "否定的な、あるいはネガティブな結果を示すZ40/真偽値の値" }, { "Z1K1": "Z11", "Z11K1": "Z1728", "Z11K2": "مقداری از Z40/Boolean که نشان دهنده نتیجه منفی است" }, { "Z1K1": "Z11", "Z11K1": "Z1015", "Z11K2": "bini din pa yɛlmaŋli" }, { "Z1K1": "Z11", "Z11K1": "Z1643", "Z11K2": "부정적인 결과를 나타내는 Z40/불리언 값" } ] } } i5mcr6v7y0twmk4pwv6khy3nhq3ja60 Z1058 0 284 334325 216230 2026-10-29T06:33:41Z YeBoy371 5561 334325 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z1058" }, "Z2K2": { "Z1K1": "Z60", "Z60K1": "sus" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Susu" }, { "Z1K1": "Z11", "Z11K1": "Z1830", "Z11K2": "スス語" }, { "Z1K1": "Z11", "Z11K1": "Z1430", "Z11K2": "Susu" }, { "Z1K1": "Z11", "Z11K1": "Z1157", "Z11K2": "Soesoe" }, { "Z1K1": "Z11", "Z11K1": "Z1237", "Z11K2": "Susu dili" }, { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "soussou" }, { "Z1K1": "Z11", "Z11K1": "Z1820", "Z11K2": "सुसु" }, { "Z1K1": "Z11", "Z11K1": "Z1643", "Z11K2": "수수어" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31", { "Z1K1": "Z31", "Z31K1": "Z1004", "Z31K2": [ "Z6", "soso" ] } ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } aawmztqlgwq5aeslwr7hhx9yzehbodi Module:Message box 828 1504 334310 49342 2026-10-29T06:08:50Z Axolitl 85298 Import updates from enwiki. See [[w:en:Module:Message box]] for attribution. 334310 Scribunto text/plain require('strict') local getArgs local yesno = require('Module:Yesno') local lang = mw.language.getContentLanguage() local CONFIG_MODULE = 'Module:Message box/configuration' local DEMOSPACES = {talk = 'tmbox', image = 'imbox', file = 'imbox', category = 'cmbox', article = 'ambox', main = 'ambox'} -------------------------------------------------------------------------------- -- Helper functions -------------------------------------------------------------------------------- local function getTitleObject(...) -- Get the title object, passing the function through pcall -- in case we are over the expensive function count limit. local success, title = pcall(mw.title.new, ...) if success then return title end end local function union(t1, t2) -- Returns the union of two arrays. local vals = {} for i, v in ipairs(t1) do vals[v] = true end for i, v in ipairs(t2) do vals[v] = true end local ret = {} for k in pairs(vals) do table.insert(ret, k) end table.sort(ret) return ret end local function getArgNums(args, prefix) local nums = {} for k, v in pairs(args) do local num = mw.ustring.match(tostring(k), '^' .. prefix .. '([1-9]%d*)$') if num then table.insert(nums, tonumber(num)) end end table.sort(nums) return nums end -------------------------------------------------------------------------------- -- Box class definition -------------------------------------------------------------------------------- local MessageBox = {} MessageBox.__index = MessageBox function MessageBox.new(boxType, args, cfg) args = args or {} local obj = {} -- Set the title object and the namespace. obj.title = getTitleObject(args.page) or mw.title.getCurrentTitle() -- Set the config for our box type. obj.cfg = cfg[boxType] if not obj.cfg then local ns = obj.title.namespace -- boxType is "mbox" or invalid input if args.demospace and args.demospace ~= '' then -- implement demospace parameter of mbox local demospace = string.lower(args.demospace) if DEMOSPACES[demospace] then -- use template from DEMOSPACES obj.cfg = cfg[DEMOSPACES[demospace]] elseif string.find( demospace, 'talk' ) then -- demo as a talk page obj.cfg = cfg.tmbox else -- default to ombox obj.cfg = cfg.ombox end elseif ns == 0 then obj.cfg = cfg.ambox -- main namespace elseif ns == 6 then obj.cfg = cfg.imbox -- file namespace elseif ns == 14 then obj.cfg = cfg.cmbox -- category namespace else local nsTable = mw.site.namespaces[ns] if nsTable and nsTable.isTalk then obj.cfg = cfg.tmbox -- any talk namespace else obj.cfg = cfg.ombox -- other namespaces or invalid input end end end -- Set the arguments, and remove all blank arguments except for the ones -- listed in cfg.allowBlankParams. do local newArgs = {} for k, v in pairs(args) do if v ~= '' then newArgs[k] = v end end for i, param in ipairs(obj.cfg.allowBlankParams or {}) do newArgs[param] = args[param] end obj.args = newArgs end -- Define internal data structure. obj.categories = {} obj.classes = {} -- For lazy loading of [[Module:Category handler]]. obj.hasCategories = false return setmetatable(obj, MessageBox) end function MessageBox:addCat(ns, cat, sort) if not cat then return nil end if sort then cat = string.format('[[Category:%s|%s]]', cat, sort) else cat = string.format('[[Category:%s]]', cat) end self.hasCategories = true self.categories[ns] = self.categories[ns] or {} table.insert(self.categories[ns], cat) end function MessageBox:addClass(class) if not class then return nil end table.insert(self.classes, class) end function MessageBox:setParameters() local args = self.args local cfg = self.cfg -- Get type data. self.type = args.type local typeData = cfg.types[self.type] self.invalidTypeError = cfg.showInvalidTypeError and self.type and not typeData typeData = typeData or cfg.types[cfg.default] self.typeClass = typeData.class self.typeImage = typeData.image self.typeImageNeedsLink = typeData.imageNeedsLink -- Find if the box has been wrongly substituted. self.isSubstituted = cfg.substCheck and args.subst == 'SUBST' -- Find whether we are using a small message box. self.isSmall = cfg.allowSmall and ( cfg.smallParam and args.small == cfg.smallParam or not cfg.smallParam and yesno(args.small) ) -- Set the below row. self.below = cfg.below and args.below -- Add attributes, classes and styles. self.id = args.id self.name = args.name if self.name then self:addClass('box-' .. string.gsub(self.name,' ','_')) end if yesno(args.plainlinks) ~= false then self:addClass('plainlinks') end if self.below then self:addClass('mbox-with-below') end for _, class in ipairs(cfg.classes or {}) do self:addClass(class) end if self.isSmall then self:addClass(cfg.smallClass or 'mbox-small') end self:addClass(self.typeClass) self:addClass(args.class) self.style = args.style self.attrs = args.attrs -- Set text style. self.textstyle = args.textstyle -- Set image classes. self.imageRightClass = args.imagerightclass or args.imageclass self.imageLeftClass = args.imageleftclass or args.imageclass -- Find if we are on the template page or not. This functionality is only -- used if useCollapsibleTextFields is set, or if both cfg.templateCategory -- and cfg.templateCategoryRequireName are set. self.useCollapsibleTextFields = cfg.useCollapsibleTextFields if self.useCollapsibleTextFields or cfg.templateCategory and cfg.templateCategoryRequireName then if self.name then local templateName = mw.ustring.match( self.name, '^[tT][eE][mM][pP][lL][aA][tT][eE][%s_]*:[%s_]*(.*)$' ) or self.name templateName = 'Template:' .. templateName self.templateTitle = getTitleObject(templateName) end self.isTemplatePage = self.templateTitle and mw.title.equals(self.title, self.templateTitle) end -- Process data for collapsible text fields. At the moment these are only -- used in {{ambox}}. if self.useCollapsibleTextFields then -- Get the self.issue value. if self.isSmall and args.smalltext then self.issue = args.smalltext else local sect if args.sect == '' then sect = 'This ' .. (cfg.sectionDefault or 'page') elseif type(args.sect) == 'string' then sect = 'This ' .. args.sect end local issue = args.issue issue = type(issue) == 'string' and issue ~= '' and issue or nil local text = args.text text = type(text) == 'string' and text or nil local issues = {} table.insert(issues, sect) table.insert(issues, issue) table.insert(issues, text) self.issue = table.concat(issues, ' ') end -- Get the self.talk value. local talk = args.talk -- Show talk links on the template page or template subpages if the talk -- parameter is blank. if talk == '' and self.templateTitle and ( mw.title.equals(self.templateTitle, self.title) or self.title:isSubpageOf(self.templateTitle) ) then talk = '#' elseif talk == '' then talk = nil end if talk then -- If the talk value is a talk page, make a link to that page. Else -- assume that it's a section heading, and make a link to the talk -- page of the current page with that section heading. local talkTitle = getTitleObject(talk) local talkArgIsTalkPage = true if not talkTitle or not talkTitle.isTalkPage then talkArgIsTalkPage = false talkTitle = getTitleObject( self.title.text, mw.site.namespaces[self.title.namespace].talk.id ) end if talkTitle and talkTitle.exists then local talkText if self.isSmall then local talkLink = talkArgIsTalkPage and talk or (talkTitle.prefixedText .. (talk == '#' and '' or '#') .. talk) talkText = string.format('([[%s|talk]])', talkLink) else talkText = 'Relevant discussion may be found on' if talkArgIsTalkPage then talkText = string.format( '%s [[%s|%s]].', talkText, talk, talkTitle.prefixedText ) else talkText = string.format( '%s the [[%s' .. (talk == '#' and '' or '#') .. '%s|talk page]].', talkText, talkTitle.prefixedText, talk ) end end self.talk = talkText end end -- Get other values. self.fix = args.fix ~= '' and args.fix or nil local date if args.date and args.date ~= '' then date = args.date elseif args.date == '' and self.isTemplatePage then date = lang:formatDate('F Y') end if date then self.date = string.format(" <span class='date-container'><i>(<span class='date'>%s</span>)</i></span>", date) end self.info = args.info if yesno(args.removalnotice) then self.removalNotice = cfg.removalNotice end end -- Set the non-collapsible text field. At the moment this is used by all box -- types other than ambox, and also by ambox when small=yes. if self.isSmall then self.text = args.smalltext or args.text else self.text = args.text end -- General image settings. self.imageCellDiv = not self.isSmall and cfg.imageCellDiv self.imageEmptyCell = cfg.imageEmptyCell -- Left image settings. local imageLeft = self.isSmall and args.smallimage or args.image if cfg.imageCheckBlank and imageLeft ~= 'blank' and imageLeft ~= 'none' or not cfg.imageCheckBlank and imageLeft ~= 'none' then self.imageLeft = imageLeft if not imageLeft then local imageSize = self.isSmall and (cfg.imageSmallSize or '30x30px') or '40x40px' self.imageLeft = string.format('[[File:%s|%s%s|alt=]]', self.typeImage or 'Information icon4.svg', imageSize, self.typeImageNeedsLink and "" or "|link=" ) end end -- Right image settings. local imageRight = self.isSmall and args.smallimageright or args.imageright if not (cfg.imageRightNone and imageRight == 'none') then self.imageRight = imageRight end -- set templatestyles self.base_templatestyles = cfg.templatestyles self.templatestyles = args.templatestyles end function MessageBox:setMainspaceCategories() local args = self.args local cfg = self.cfg if not cfg.allowMainspaceCategories then return nil end local nums = {} for _, prefix in ipairs{'cat', 'category', 'all'} do args[prefix .. '1'] = args[prefix] nums = union(nums, getArgNums(args, prefix)) end -- The following is roughly equivalent to the old {{Ambox/category}}. local date = args.date date = type(date) == 'string' and date local preposition = 'from' for _, num in ipairs(nums) do local mainCat = args['cat' .. tostring(num)] or args['category' .. tostring(num)] local allCat = args['all' .. tostring(num)] mainCat = type(mainCat) == 'string' and mainCat allCat = type(allCat) == 'string' and allCat if mainCat and date and date ~= '' then local catTitle = string.format('%s %s %s', mainCat, preposition, date) self:addCat(0, catTitle) catTitle = getTitleObject('Category:' .. catTitle) if not catTitle or not catTitle.exists then self:addCat(0, 'Articles with invalid date parameter in template') end elseif mainCat and (not date or date == '') then self:addCat(0, mainCat) end if allCat then self:addCat(0, allCat) end end end function MessageBox:setTemplateCategories() local args = self.args local cfg = self.cfg -- Add template categories. if cfg.templateCategory then if cfg.templateCategoryRequireName then if self.isTemplatePage then self:addCat(10, cfg.templateCategory) end elseif not self.title.isSubpage then self:addCat(10, cfg.templateCategory) end end -- Add template error categories. if cfg.templateErrorCategory then local templateErrorCategory = cfg.templateErrorCategory local templateCat, templateSort if not self.name and not self.title.isSubpage then templateCat = templateErrorCategory elseif self.isTemplatePage then local paramsToCheck = cfg.templateErrorParamsToCheck or {} local count = 0 for i, param in ipairs(paramsToCheck) do if not args[param] then count = count + 1 end end if count > 0 then templateCat = templateErrorCategory templateSort = tostring(count) end if self.categoryNums and #self.categoryNums > 0 then templateCat = templateErrorCategory templateSort = 'C' end end self:addCat(10, templateCat, templateSort) end end function MessageBox:setAllNamespaceCategories() -- Set categories for all namespaces. if self.invalidTypeError then local allSort = (self.title.namespace == 0 and 'Main:' or '') .. self.title.prefixedText self:addCat('all', 'Wikipedia message box parameter needs fixing', allSort) end if self.isSubstituted then self:addCat('all', 'Pages with incorrectly substituted templates') end end function MessageBox:setCategories() if self.title.namespace == 0 then self:setMainspaceCategories() elseif self.title.namespace == 10 then self:setTemplateCategories() end self:setAllNamespaceCategories() end function MessageBox:renderCategories() if not self.hasCategories then -- No categories added, no need to pass them to Category handler so, -- if it was invoked, it would return the empty string. -- So we shortcut and return the empty string. return "" end -- Convert category tables to strings and pass them through -- [[Module:Category handler]]. return require('Module:Category handler')._main{ main = table.concat(self.categories[0] or {}), template = table.concat(self.categories[10] or {}), all = table.concat(self.categories.all or {}), nocat = self.args.nocat, page = self.args.page } end function MessageBox:exportDiv() local root = mw.html.create() -- Add the subst check error. if self.isSubstituted and self.name then root:tag('b') :addClass('error') :wikitext(string.format( 'Template <code>%s[[Template:%s|%s]]%s</code> has been incorrectly substituted.', mw.text.nowiki('{{'), self.name, self.name, mw.text.nowiki('}}') )) end local frame = mw.getCurrentFrame() root:wikitext(frame:extensionTag{ name = 'templatestyles', args = { src = self.base_templatestyles }, }) -- Add support for a single custom templatestyles sheet. Undocumented as -- need should be limited and many templates using mbox are substed; we -- don't want to spread templatestyles sheets around to arbitrary places if self.templatestyles then root:wikitext(frame:extensionTag{ name = 'templatestyles', args = { src = self.templatestyles }, }) end -- Create the box. local mbox = root:tag('div') mbox:attr('id', self.id or nil) for i, class in ipairs(self.classes or {}) do mbox:addClass(class or nil) end mbox :cssText(self.style or nil) if self.attrs then mbox:attr(self.attrs) end local flex_container if self.below then -- we need to wrap the flex components (`image(right)` and `text`) in their -- own container div to support the `below` parameter flex_container = mw.html.create('div') flex_container:addClass('mbox-flex') else -- the mbox itself is the parent, so we need no HTML flex_container flex_container = mw.html.create() end -- Add the left-hand image. if self.imageLeft then local imageLeftCell = flex_container:tag('div'):addClass('mbox-image') imageLeftCell :addClass(self.imageLeftClass) :wikitext(self.imageLeft or nil) end -- Add the text. local textCell = flex_container:tag('div'):addClass('mbox-text') if self.useCollapsibleTextFields then -- The message box uses advanced text parameters that allow things to be -- collapsible. At the moment, only ambox uses this. textCell:cssText(self.textstyle or nil) local textCellDiv = textCell:tag('div') textCellDiv :addClass('mbox-text-span') :wikitext(self.issue or nil) if (self.talk or self.fix) then textCellDiv:tag('span') :addClass('hide-when-compact') :wikitext(self.talk and (' ' .. self.talk) or nil) :wikitext(self.fix and (' ' .. self.fix) or nil) end textCellDiv:wikitext(self.date and (' ' .. self.date) or nil) if self.info and not self.isSmall then textCellDiv :tag('span') :addClass('hide-when-compact') :wikitext(self.info and (' ' .. self.info) or nil) end if self.removalNotice then textCellDiv:tag('span') :addClass('hide-when-compact') :tag('i') :wikitext(string.format(" (%s)", self.removalNotice)) end else -- Default text formatting - anything goes. textCell :cssText(self.textstyle or nil) :wikitext(self.text or nil) end -- Add the right-hand image. if self.imageRight then local imageRightCell = flex_container:tag('div'):addClass('mbox-imageright') imageRightCell :addClass(self.imageRightClass) :wikitext(self.imageRight or nil) end mbox:node(flex_container) -- Add the below row. if self.below then mbox:tag('div') :addClass('mbox-text mbox-below') :cssText(self.textstyle or nil) :wikitext(self.below or nil) end -- Add error message for invalid type parameters. if self.invalidTypeError then root:tag('div') :addClass('mbox-invalid-type') :wikitext(string.format( 'This message box is using an invalid "type=%s" parameter and needs fixing.', self.type or '' )) end -- Add categories. root:wikitext(self:renderCategories() or nil) return tostring(root) end function MessageBox:export() local root = mw.html.create() -- Add the subst check error. if self.isSubstituted and self.name then root:tag('b') :addClass('error') :wikitext(string.format( 'Template <code>%s[[Template:%s|%s]]%s</code> has been incorrectly substituted.', mw.text.nowiki('{{'), self.name, self.name, mw.text.nowiki('}}') )) end local frame = mw.getCurrentFrame() root:wikitext(frame:extensionTag{ name = 'templatestyles', args = { src = self.base_templatestyles }, }) -- Add support for a single custom templatestyles sheet. Undocumented as -- need should be limited and many templates using mbox are substed; we -- don't want to spread templatestyles sheets around to arbitrary places if self.templatestyles then root:wikitext(frame:extensionTag{ name = 'templatestyles', args = { src = self.templatestyles }, }) end -- Create the box table. local boxTable = root:tag('table') boxTable:attr('id', self.id or nil) for i, class in ipairs(self.classes or {}) do boxTable:addClass(class or nil) end boxTable :cssText(self.style or nil) :attr('role', 'presentation') if self.attrs then boxTable:attr(self.attrs) end -- Add the left-hand image. local row = boxTable:tag('tr') if self.imageLeft then local imageLeftCell = row:tag('td'):addClass('mbox-image') if self.imageCellDiv then -- If we are using a div, redefine imageLeftCell so that the image -- is inside it. Divs use style="width: 52px;", which limits the -- image width to 52px. If any images in a div are wider than that, -- they may overlap with the text or cause other display problems. imageLeftCell = imageLeftCell:tag('div'):addClass('mbox-image-div') end imageLeftCell :addClass(self.imageLeftClass) :wikitext(self.imageLeft or nil) elseif self.imageEmptyCell then -- Some message boxes define an empty cell if no image is specified, and -- some don't. The old template code in templates where empty cells are -- specified gives the following hint: "No image. Cell with some width -- or padding necessary for text cell to have 100% width." row:tag('td') :addClass('mbox-empty-cell') end -- Add the text. local textCell = row:tag('td'):addClass('mbox-text') if self.useCollapsibleTextFields then -- The message box uses advanced text parameters that allow things to be -- collapsible. At the moment, only ambox uses this. textCell:cssText(self.textstyle or nil) local textCellDiv = textCell:tag('div') textCellDiv :addClass('mbox-text-span') :wikitext(self.issue or nil) if (self.talk or self.fix) then textCellDiv:tag('span') :addClass('hide-when-compact') :wikitext(self.talk and (' ' .. self.talk) or nil) :wikitext(self.fix and (' ' .. self.fix) or nil) end textCellDiv:wikitext(self.date and (' ' .. self.date) or nil) if self.info and not self.isSmall then textCellDiv :tag('span') :addClass('hide-when-compact') :wikitext(self.info and (' ' .. self.info) or nil) end if self.removalNotice then textCellDiv:tag('span') :addClass('hide-when-compact') :tag('i') :wikitext(string.format(" (%s)", self.removalNotice)) end else -- Default text formatting - anything goes. textCell :cssText(self.textstyle or nil) :wikitext(self.text or nil) end -- Add the right-hand image. if self.imageRight then local imageRightCell = row:tag('td'):addClass('mbox-imageright') if self.imageCellDiv then -- If we are using a div, redefine imageRightCell so that the image -- is inside it. imageRightCell = imageRightCell:tag('div'):addClass('mbox-image-div') end imageRightCell :addClass(self.imageRightClass) :wikitext(self.imageRight or nil) end -- Add the below row. if self.below then boxTable:tag('tr') :tag('td') :attr('colspan', self.imageRight and '3' or '2') :addClass('mbox-text') :cssText(self.textstyle or nil) :wikitext(self.below or nil) end -- Add error message for invalid type parameters. if self.invalidTypeError then root:tag('div') :addClass('mbox-invalid-type') :wikitext(string.format( 'This message box is using an invalid "type=%s" parameter and needs fixing.', self.type or '' )) end -- Add categories. root:wikitext(self:renderCategories() or nil) return tostring(root) end -------------------------------------------------------------------------------- -- Exports -------------------------------------------------------------------------------- local p, mt = {}, {} function p._exportClasses() -- For testing. return { MessageBox = MessageBox } end function p.main(boxType, args, cfgTables) local box = MessageBox.new(boxType, args, cfgTables or mw.loadData(CONFIG_MODULE)) box:setParameters() box:setCategories() -- DIV MIGRATION CONDITIONAL if box.cfg.div_structure then return box:exportDiv() end -- END DIV MIGRATION CONDITIONAL return box:export() end function mt.__index(t, k) return function (frame) if not getArgs then getArgs = require('Module:Arguments').getArgs end return t.main(k, getArgs(frame, {trim = false, removeBlanks = false})) end end return setmetatable(p, mt) ocboyo877qnpqum2b9fyiquh72vukqa Module:Message box/configuration 828 1507 334311 51384 2026-10-29T06:10:04Z Axolitl 85298 Updates from enwiki: see [[w:en:Module:Message box/configuration]] for attribution 334311 Scribunto text/plain -------------------------------------------------------------------------------- -- Message box configuration -- -- -- -- This module contains configuration data for [[Module:Message box]]. -- -------------------------------------------------------------------------------- return { ambox = { types = { speedy = { class = 'ambox-speedy', image = 'Ambox warning pn.svg' }, delete = { class = 'ambox-delete', image = 'Ambox warning pn.svg' }, content = { class = 'ambox-content', image = 'Ambox important.svg' }, style = { class = 'ambox-style', image = 'Edit-clear.svg' }, move = { class = 'ambox-move', image = 'Merge-split-transwiki default.svg' }, protection = { class = 'ambox-protection', image = 'Semi-protection-shackle-keyhole.svg' }, notice = { class = 'ambox-notice', image = 'Information icon4.svg' } }, default = 'notice', allowBlankParams = {'talk', 'sect', 'date', 'issue', 'fix', 'subst', 'hidden'}, allowSmall = true, smallParam = 'left', smallClass = 'mbox-small-left', substCheck = true, classes = {'metadata', 'ambox'}, imageEmptyCell = true, imageCheckBlank = true, imageSmallSize = '20x20px', imageCellDiv = true, useCollapsibleTextFields = true, imageRightNone = true, sectionDefault = 'article', allowMainspaceCategories = true, templateCategory = 'Article message templates', templateCategoryRequireName = true, templateErrorCategory = 'Article message templates with missing parameters', templateErrorParamsToCheck = {'issue', 'fix', 'subst'}, removalNotice = '<small>[[Help:Maintenance template removal|Learn how and when to remove this message]]</small>', templatestyles = 'Module:Message box/ambox.css' }, cmbox = { types = { speedy = { class = 'cmbox-speedy', image = 'Ambox warning pn.svg' }, delete = { class = 'cmbox-delete', image = 'Ambox warning pn.svg' }, content = { class = 'cmbox-content', image = 'Ambox important.svg' }, style = { class = 'cmbox-style', image = 'Edit-clear.svg' }, move = { class = 'cmbox-move', image = 'Merge-split-transwiki default.svg' }, protection = { class = 'cmbox-protection', image = 'Semi-protection-shackle-keyhole.svg' }, notice = { class = 'cmbox-notice', image = 'Information icon4.svg' } }, default = 'notice', showInvalidTypeError = true, classes = {'cmbox'}, imageEmptyCell = true, templatestyles = 'Module:Message box/cmbox.css', div_structure = true, }, fmbox = { types = { warning = { class = 'fmbox-warning', image = 'Ambox warning pn.svg' }, editnotice = { class = 'fmbox-editnotice', image = 'Information icon4.svg' }, system = { class = 'fmbox-system', image = 'Information icon4.svg' } }, default = 'system', showInvalidTypeError = true, classes = {'fmbox'}, imageEmptyCell = false, imageRightNone = false, templatestyles = 'Module:Message box/fmbox.css', div_structure = true, }, imbox = { types = { speedy = { class = 'imbox-speedy', image = 'Ambox warning pn.svg' }, delete = { class = 'imbox-delete', image = 'Ambox warning pn.svg' }, content = { class = 'imbox-content', image = 'Ambox important.svg' }, style = { class = 'imbox-style', image = 'Edit-clear.svg' }, move = { class = 'imbox-move', image = 'Merge-split-transwiki default.svg' }, protection = { class = 'imbox-protection', image = 'Semi-protection-shackle-keyhole.svg' }, license = { class = 'imbox-license licensetpl', image = 'Imbox-license.svg' }, ["license-related"] = { class = 'imbox-license', image = 'Imbox-license.svg' }, featured = { class = 'imbox-featured', image = 'Cscr-featured.svg', imageNeedsLink = true }, notice = { class = 'imbox-notice', image = 'Information icon4.svg' } }, default = 'notice', showInvalidTypeError = true, classes = {'imbox'}, imageEmptyCell = true, below = true, templateCategory = 'File message boxes', templatestyles = 'Module:Message box/imbox.css', div_structure = true, }, ombox = { types = { speedy = { class = 'ombox-speedy', image = 'Ambox warning pn.svg' }, delete = { class = 'ombox-delete', image = 'Ambox warning pn.svg' }, content = { class = 'ombox-content', image = 'Ambox important.svg' }, style = { class = 'ombox-style', image = 'Edit-clear.svg' }, move = { class = 'ombox-move', image = 'Merge-split-transwiki default.svg' }, protection = { class = 'ombox-protection', image = 'Semi-protection-shackle-keyhole.svg' }, notice = { class = 'ombox-notice', image = 'Information icon4.svg' } }, default = 'notice', showInvalidTypeError = true, classes = {'ombox'}, allowSmall = true, imageEmptyCell = true, imageRightNone = true, templatestyles = 'Module:Message box/ombox.css' }, tmbox = { types = { speedy = { class = 'tmbox-speedy', image = 'Ambox warning pn.svg' }, delete = { class = 'tmbox-delete', image = 'Ambox warning pn.svg' }, content = { class = 'tmbox-content', image = 'Ambox important.svg' }, style = { class = 'tmbox-style', image = 'Edit-clear.svg' }, move = { class = 'tmbox-move', image = 'Merge-split-transwiki default.svg' }, protection = { class = 'tmbox-protection', image = 'Semi-protection-shackle-keyhole.svg' }, notice = { class = 'tmbox-notice', image = 'Information icon4.svg' } }, default = 'notice', showInvalidTypeError = true, classes = {'tmbox'}, allowSmall = true, imageRightNone = true, imageEmptyCell = true, templateCategory = 'Talk message boxes', templatestyles = 'Module:Message box/tmbox.css' } } p36hrbxjy99m7clj64lhlint2en3bo0 Module:Message box/ombox.css 828 1508 334304 120565 2026-10-29T05:58:38Z Axolitl 85298 Better dark mode borders 334304 sanitized-css text/css /* {{pp|small=y}} */ .ombox { margin: 4px 0; border-collapse: collapse; border: 1px solid var(--border-color-base, #a2a9b1); /* Default "notice" gray */ background-color: var(--background-color-neutral-subtle, #f8f9fa); box-sizing: border-box; color: var(--color-base, #202122); } /* For the "small=yes" option. */ .ombox.mbox-small { font-size: 88%; line-height: 1.25em; } .ombox-speedy { border: 2px solid #b32424; /* Red */ background-color: #fee7e6; /* Pink */ } .ombox-delete { border: 2px solid #b32424; /* Red */ } .ombox-content { border: 1px solid #f28500; /* Orange */ } .ombox-style { border: 1px solid #fc3; /* Yellow */ } .ombox-move { border: 1px solid #9932cc; /* Purple */ } .ombox-protection { border: 2px solid var(--border-color-base, #a2a9b1); /* Gray-gold */ } .ombox .mbox-text { border: none; /* @noflip */ padding: 0.25em 0.9em; width: 100%; } .ombox .mbox-image { border: none; /* @noflip */ padding: 2px 0 2px 0.9em; text-align: center; } .ombox .mbox-imageright { border: none; /* @noflip */ padding: 2px 0.9em 2px 0; text-align: center; } /* An empty narrow cell */ .ombox .mbox-empty-cell { border: none; padding: 0; width: 1px; } .ombox .mbox-invalid-type { text-align: center; } @media (min-width: 720px) { .ombox { margin: 4px 10%; } .ombox.mbox-small { /* @noflip */ clear: right; /* @noflip */ float: right; /* @noflip */ margin: 4px 0 4px 1em; width: 238px; } } /** T367463 */ body.skin--responsive table.ombox img { max-width: none !important; } @media screen { html.skin-theme-clientpref-night .ombox-speedy { background-color: #310402; /* Dark red, same hue/saturation as light */ } } @media screen and ( prefers-color-scheme: dark) { html.skin-theme-clientpref-os .ombox-speedy { background-color: #310402; /* Dark red, same hue/saturation as light */ } } nx4vmfrjs5gchjkj5iq4wqv42wyxpi1 Wikifunctions:How to create implementations/de 4 9282 334140 333946 2026-10-28T20:25:46Z Ameisenigel 44 Created page with "Die Funktion $1 gibt die erste Lexem-Referenz zurück, basierend auf einer Wikidata-Datenobjekt-Referenz und einer Sprache. Falls für diese Kombination aus Datenobjekt und Sprache kein Lexem existiert, löst sie einen Fehler vom Typ $2 aus, der drei Schlüssel hat:" 334140 wikitext text/x-wiki <languages/> Diese Seite bietet eine detailliertere Anleitung dafür, wie man '''Implementierungen erstellt''' und geht über den Überblick auf {{ll|Wikifunctions:Introduction}} hinaus. <span id="Types_of_Implementations"></span> == Arten von Implementierungen == In Wikifunctions kann eine '''Implementierung''' zwei Hauptformen annehmen: '''Code''' oder '''Komposition'''. Eine Code-Implementierung drückt die Logik der Funktion direkt in einer der verfügbaren Programmiersprachen aus (derzeit Python3 oder JavaScript). Sie ist besonders nützlich, wenn sich das Verhalten der Funktion nicht ohne Weiteres aus bestehenden Wikifunktionen ableiten lässt oder wenn eine präzise Kontrolle über die Datenverarbeitung erforderlich ist. Eine Kompositions-Implementierung definiert die Funktion hingegen vollständig durch die Kombination bestehender Funktionen, ohne dass Code geschrieben werden muss. Kompositionen sind leichter verständlich, wiederverwendbar und lassen sich automatisch in andere Sprachen übersetzen. Sie setzen jedoch voraus, dass geeignete Bausteine ​​bereits vorhanden sind und sind oft weniger leistungsfähig. Prüfe daher zunächst, ob dein Ziel durch Komposition erreicht werden kann. Ist dies nicht möglich oder spielen Leistung oder feingranulare Logik eine Rolle, wähle stattdessen eine Code-Implementierung. Es gibt eine dritte Implementierungsart: '''integrierte Implementierungen'''. Diese werden vom Systemcode ausgeführt und können nicht bearbeitet werden. Höchstwahrscheinlich verfügen alle vordefinierten Funktionen über eine integrierte Implementierung. In solchen Fällen wird beim Öffnen der Implementierungsseite die Meldung ''"{{int|wikilambda-implementation-selector-none}}"'' angezeigt. <span id="Practice_Test-Driven_Development"></span> == Praxis der testgetriebenen Entwicklung == '''Testgetriebene Entwicklung''' oder '''TDD''' ist eine Methode zur Softwareentwicklung, bei der Tests geschrieben werden, bevor der eigentliche Code geschrieben wird. Tests dienen dazu, die Funktionsweise einer Funktion anhand von Beispielen und deren Funktionsweise zu verstehen. In Wikifunctions bietet das Schreiben von Tests als erste Tätigkeit erhebliche Vorteile. Wenn du an einer Implementierung arbeitest, kannst du deinen Code anhand der vorhandenen Tests ausführen, um sicherzustellen, dass er sich wie erwartet verhält. Dadurch lassen sich Fehler frühzeitig erkennen, noch bevor du deine Implementierung veröffentlichst. Tests sind außerdem ein effektives Mittel, um die benötigte Funktion zu beschreiben. Durch das Schreiben von Tests '''kommunizierst du klar das erwartete Verhalten''' und die Community kann bei der Implementierung helfen oder alternative Implementierungen erstellen. Stell dir vor, du möchtest eine Funktion implementieren, die zwei Zeichenketten mit einem Leerzeichen dazwischen verknüpft. Ein einfacher Test dafür könnte so aussehen: <syntaxhighlight lang="prolog"> join_with_space( "Hello", "world" ) => "Hello world" </syntaxhighlight> Sobald du das grundlegende Verhalten definiert hast, ist es wichtig, auch '''an Randfälle zu denken''' — Situationen, in denen die Eingaben so beschaffen sind, dass ein spezielles Verhalten erforderlich sein könnte. Was passiert beispielsweise, wenn deine erste Zeichenkette mit einem Leerzeichen endet oder deine zweite mit einem Leerzeichen beginnt? Soll die Funktion alle vorhandenen Leerzeichen beibehalten und ein weiteres hinzufügen oder ein sauber formatiertes Ergebnis mit nur einem Leerzeichen zwischen den Wörtern zurückgeben? Je nach deinen Anforderungen solltest du einen Test für einen solchen Fall erstellen. Ein Test für diesen Sonderfall könnte beispielsweise einer der folgenden sein — aber nicht beide!: <syntaxhighlight lang="prolog"> join_with_space( "Hello ", " world") => "Hello world" </syntaxhighlight> oder ... <syntaxhighlight lang="prolog"> join_with_space( "Hello ", " world") => "Hello world" </syntaxhighlight> Stell sicher, dass deine Tests alle möglichen Sonderfälle abdecken, und sobald du diese hast, stell sicher, dass sie alle mit der Funktion verbunden sind, indem du sie auswählst und auf "Verbinden" klickst. <span id="Code_implementations"></span> == Code-Implementierungen == [[File:Code implementation.png|thumb|alt=Wikifunctions-Code-Editor, der mit einer Funktionsvorlage initialisiert wurde|Beim Hinzufügen einer neuen Code-Implementierung wird die Funktionsvorlage mit den Funktions- und Argumentnamen initialisiert]] Beim Erstellen einer Implementierung mit Code richtet die Wikifunctions-Benutzeroberfläche einen Code-Editor ein, in dem die ausgewählte Sprache für Syntaxhervorhebung und -validierung aktiviert ist. Sobald die zu implementierende Funktion und die Programmiersprache ausgewählt sind, wird dieser Editor mit der korrekten Funktionsvorlage konfiguriert: '''Entferne oder bearbeite sie nicht!''' Platziere deinen Code innerhalb dieser Funktionssignatur. Falls du Hilfsfunktionen benötigst, kannst du diese einfach in deiner Hauptfunktionsdeklaration deklarieren. <span id="Using_input_types_in_your_code"></span> === Verwendung von Eingabetypen in deinem Code === Die Wikifunctions-Typen {{Z|Z6}} und {{Z|Z40}} können in JavaScript und Python3 wie native Typen verwendet werden. Beispielsweise lässt sich eine Zeichenkette verketten oder ein boolescher Wert direkt in einem logischen Ausdruck verwenden. Um andere Typen in deinen Code-Implementierungen zu verwenden, musst du den jeweiligen Typ genauer untersuchen, herausfinden, ob eine Umwandlung in ein natives Äquivalent existiert, und ihn entsprechend behandeln. Nehmen wir beispielsweise an, wir möchten Python-Code schreiben, der eine Eingabe vom Typ {{Z|Z20420}} verarbeitet. Auf der Seite für diesen Typ sehen wir uns die "Typumwandler in Code" an und suchen nach einem Python-Umwandler. Der Umwandler {{Z|Z20424}} wird auf unsere Datumseingabe angewendet, bevor unser Code ausgeführt wird. Unter "nativer Typ" sehen wir, dass unsere Eingabe ein Python-Dictionary ist, und in der Implementierung können wir die zu erwartenden Schlüssel sehen: <syntaxhighlight lang="python3"> return { 'K1': year, 'K2': month, 'K3': day } </syntaxhighlight> Wenn ein Typ keinen Umwandler besitzt, musst du direkt über seine Schlüssel auf seine Bestandteile zugreifen. Nehmen wir beispielsweise an, deine Funktion <code>Z30000</code> hat einen Eingabeparameter <code>Z30000K1</code> vom Typ {{Z|Z11}}. Dieser Typ besitzt zwei Schlüssel: <code>Z11K1</code> für die Sprache (selbst ein Objekt vom Typ {{Z|Z60}}) und <code>Z11K2</code> für den Zeichenketten-Wert. Das Sprachobjekt hat wiederum einen Schlüssel <code>Z60K1</code> für den Sprachcode. Um also eine Zeichenkette mit dem Sprachcode und dem Text zu erhalten, kannst du folgendes schreiben: <syntaxhighlight lang="javascript"> function Z30000( Z30000K1 ) { // z. B. "de: beliebiger Text" return Z30000K1.Z11K1.Z60K1 + ": " + Z30000K1.Z11K2; } </syntaxhighlight> Für eine Kurzübersicht der verfügbaren Typumwandlungen besuche [[Special:MyLanguage/Wikifunctions:Execution targets#Default type conversion|die Tabelle der Standard-Typumwandlungen]]. <span id="Returning_the_right_outputs"></span> === Rückgabe der richtigen Ausgaben === Ähnlich wie bei der Behandlung von Eingaben müssen auch Ausgaben dem in der Funktionsdefinition angegebenen Typ entsprechen. Einige können wie native Typen behandelt werden; daher wird jede Zeichenketten-Ausgabe in ein Wikifunctions-Objekt {{Z|Z6}} und jeder von deiner Implementierung zurückgegebene native boolesche Wert in ein Wikifunctions-Objekt {{Z|Z40}} umgewandelt. Typen mit "Typumwandlern aus Code" wenden die entsprechende Funktion auf die Ausgabe an, um den benötigten Typ zu erzeugen. Am Beispiel von {{Z|Z20420}} transformiert {{Z|Z20443}} die Ausgabe deiner Implementierung – ein Dictionary mit den Schlüsseln K1, K2 und K3 – in die korrekte ZObjekt-Darstellung. Für Typen, die keine Umwandler aus Code haben, kannst du die Ausgabeobjekte sorgfältig erstellen und zurückgeben. Stell dir beispielsweise vor, unsere Funktion <code>Z30000</code> nimmt zwei Zeichenketten als Eingaben entgegen: Sprachcode und Text, und soll ein Objekt {{Z|Z11}} zurückgeben. In Python kannst du dies mit dem Konstruktor <code>ZObject</code> erreichen: <syntaxhighlight lang="python3"> def Z30000(Z30000K1, Z30000K2): lang_object = ZObject( {"Z1K1": "Z9", "Z9K1": "Z60"}, Z60K1 = Z30000K1 ) return ZObject( {"Z1K1": "Z9", "Z9K1": "Z11"}, Z11K1 = lang_object, Z11K2 = Z30000K2 ) </syntaxhighlight> Oder in JavaScript: <syntaxhighlight lang="javascript"> function Z30000( Z30000K1, Z30000K2 ) { const langObject = new ZObject( new Map( [ [ "Z60K1", Z30000K1 ] ] ), { "Z1K1": "Z9", "Z9K1": "Z60" } ); const monolingualKeys = new Map( [ [ "Z11K1", langObject ], [ "Z11K2", Z30000K2 ] ] ); return new ZObject( monolingualKeys, { "Z1K1": "Z9", "Z9K1": "Z11" } ); } </syntaxhighlight> Du kannst mehr über die Klasse <code>ZObject</code> und andere nützliche Konstruktoren auf {{ll|Wikifunctions:Execution_targets#Custom_and_non-built-in_type_conversion}} erfahren. {{phab|T392750}}Stand Mai 2026 kann der Versuch, eine Liste von Listen zurückzugeben, fehlschlagen; daher ist es nicht möglich, solche Funktionen in Code zu implementieren. === Code in Python === In diesem Abschnitt geben wir ein konkretes Beispiel, wie man eine Implementierung in Form von Code in Python erstellt. Angenommen, wir möchten eine Implementierung für eine Funktion erstellen, die zwei Eingabezeichenketten durch Einfügen eines Leerzeichens dazwischen kombiniert und das Ergebnis zurückgibt. Nehmen wir an, die ZID dieser Funktion ist Z30000. Die Implementierung wird über die ZID der Funktion definiert. Das gilt auch für die Argumente der Funktion. Im Fall der Funktion Z30000 mit ihren beiden Argumenten sollte die Funktionsvorlage also so aussehen: <syntaxhighlight lang="python3"> def Z30000(Z30000K1, Z30000K2): </syntaxhighlight> Wie bereits erwähnt, wissen wir, dass die Argumente (<code>Z30000K1</code> und <code>Z30000K2</code>) Zeichenketten sind, daher können wir sie genauso behandeln wie native Zeichenketten in Python. Die Funktion sollte außerdem eine Zeichenkette zurückgeben. In unserem Beispiel geben wir einfach die beiden Argumente, getrennt durch ein Leerzeichen, aneinandergereiht zurück: <syntaxhighlight lang="python3"> def Z30000(Z30000K1, Z30000K2): return Z30000K1 + " " + Z30000K2 </syntaxhighlight> Da es sich um Python handelt, vergesse nicht, diese Zeile einzurücken. Wenn du unserem Rat gefolgt bist, [[#Practice Test-Driven Development|TDD anzuwenden]], verfügst du bereits über eine Reihe von Tests, von denen du weißt, dass sie funktionieren sollten. In diesem Fall kannst du während der Entwicklung deiner Implementierung auf den kreisförmigen Pfeil im Testbereich klicken und überprüfen, ob deine Implementierung alle Tests besteht. Denke daran, dass die Laufzeit keinen Status hat. Gehe nicht von Werten für globale oder statische Variablen aus. Wenn du weitere Fragen dazu hast, was du in Python tun kannst und was nicht, frage auf [[Wikifunctions:Python implementations]]. === Code in JavaScript === In diesem Abschnitt geben wir ein konkretes Beispiel, wie man eine Implementierung in Form von Code in JavaScript erstellt. Angenommen, wir möchten eine Implementierung für eine Funktion erstellen, die zwei Eingabezeichenketten durch Einfügen eines Leerzeichens dazwischen kombiniert und das Ergebnis zurückgibt. Nehmen wir an, die ZID dieser Funktion ist <code>Z30000</code>. Die Implementierung wird über die ZID der Funktion definiert. Das gilt auch für die Argumente der Funktion. Im Fall der Funktion <code>Z30000</code> mit ihren beiden Argumenten sollte die Funktionsvorlage also so aussehen: <syntaxhighlight lang="javascript"> function Z30000( Z30000K1, Z30000K2 ) { } </syntaxhighlight> Wir wissen, dass die Argumente (<code>Z30000K1</code> und <code>Z30000K2</code>) Zeichenketten sind, daher können wir sie in JavaScript wie native Zeichenketten behandeln. Die Funktion soll außerdem eine Zeichenkette zurückgeben. Um die Funktion zu vervollständigen, kannst du eine Zeile hinzufügen, die die Eingabezeichenketten verkettet, etwa so: <syntaxhighlight lang="javascript"> function Z30000( Z30000K1, Z30000K2 ) { return Z30000K1 + " " + Z30000K2; } </syntaxhighlight> Wenn du Tests wie im Abschnitt [[#Practice Test-Driven Development|TDD]] oben empfohlen hast, klicke auf den kreisförmigen Pfeil im Testbereich und prüfe, ob deine Implementierung alle Tests besteht. Denke daran, dass die Laufzeit keinen Status hat. Gehe nicht von Werten für globale oder statische Variablen aus. Wenn du weitere Fragen dazu hast, was du in JavaScript tun kannst und was nicht, frage auf [[Wikifunctions:JavaScript implementations]]. <span id="Calling_another_Wikifunctions_function"></span> === Aufruf einer anderen Wikifunctions-Funktion === Eine Code-Implementierung kann bestimmte andere Wikifunctions-Funktionen aufrufen, die Ausgabe des Aufrufs empfangen und diese Ausgabe für die weitere Verarbeitung nutzen. Wir bezeichnen solche Aufrufe als Callbacks. Derzeit können aus Sicherheits- und Leistungsgründen nur die folgenden integrierten Wikidata-Abruf- und Suchfunktionen auf diese Weise aufgerufen werden: {{Z|Z6820}}, {{Z|Z6821}}, {{Z|Z6822}}, {{Z|Z6824}}, {{Z|Z6825}}, {{Z|Z6826}}, {{Z|Z6830}} und {{Z|Z6831}}. Diese Funktionalität befindet sich in einem frühen Stadium der Einführung; wir hoffen, in Zukunft Aufrufe für eine größere Bandbreite an Funktionen zu ermöglichen. Betrachten wir eine JavaScript-Implementierung, die einen Callback enthält. Diese Implementierung ruft ein Datenobjekt von Wikidata ab, extrahiert die Bezeichnung dieses Datenobjektes in einer bestimmten Sprache und gibt die Bezeichnung als Zeichenkette zurück. Das abzurufende Datenobjekt wird über das Argument <code>Z400K1</code> angegeben, die Sprache über <code>Z400K2</code>. <syntaxhighlight lang="javascript"> function Z400( Z400K1, Z400K2 ) { const item = Wikifunctions.Call('Z6821', Z400K1); for (const label of item.Z6001K2.Z12K1) { if (label.Z11K1.Z60K1 === Z400K2.Z60K1) { return label.Z11K2; }} return 'NOT FOUND'; } </syntaxhighlight> Ein Callback wird durch den Aufruf von <code>Wikifunctions.Call</code> ausgelöst, wie im Beispiel gezeigt. Das erste Argument für <code>Wikifunctions.Call</code> ist stets die ZID der aufzurufenden Funktion – in diesem Fall {{Z|Z6821}}, welche ein einzelnes Argument entgegennimmt. Darauf folgen, durch Kommas getrennt, die an diese Funktion zu übergebenden Argumente. Hierbei handelt es sich bei dem Argument <code>Z400K1</code> um denselben Wert, der auch an <code>Z400</code> übergeben wurde. Dies ist ein gängiges Muster für die Argumentübergabe an Callbacks, jedoch können die Argumente auch mit dem Konstruktor <code>ZObject</code> (wie oben beschrieben) erstellt oder auf andere Weise bezogen werden. Der Wert von <code>Z400K1</code> wäre eine Instanz von {{Z|Z6091}}, die die QID des abzurufenden Datenobjekts enthält. Zeile 2 des Beispiels ruft <code>Z6821</code> auf, um dieses Datenobjekt von Wikidata abzurufen, und weist das resultierende ZObjekt der Konstante <code>item</code> zu. Der restliche Code durchläuft die Bezeichnungen des Datenobjekts, bis er diejenige findet, die der durch <code>Z400K2</code> angegebenen Sprache entspricht. Für das obige Beispiel haben wir der Einfachheit halber <code>Z6821</code> verwendet. Sofern die Implementierung jedoch nicht das gesamte Objekt benötigt, wird dringend empfohlen, zum Abrufen von Wikidata-Datenobjekten, die sehr groß sein können, <code>Z6820</code> zu verwenden. Obwohl der Aufruf von <code>Z6820</code> etwas komplexer ist, ermöglichen seine Parameter das Abrufen spezifischer Teile eines Wikidata-Datenobjekts. Dies kann die Leistung erheblich steigern und bestimmte Fehler vermeiden, da weniger Netzwerkbandbreite und Verarbeitungszeit erforderlich sind. (<code>Z6820</code> kann auch statt <code>Z6822</code>, <code>Z6824</code>, <code>Z6825</code> und <code>Z6826</code> verwendet werden, um ähnliche Vorteile bei der Bandweitenreduzierung zu erreichen.) Im Folgenden zeigen wir, wie <code>Z6820</code> in <code>Wikifunctions.Call</code> verwendet werden kann, um dasselbe Verhalten wie oben zu erzielen. Beachte, dass wir das zweite an <code>Z6820</code> übergebene Argument, <code>[labelsPart]</code>, nutzen, um festzulegen: “Gib nur die Bezeichnungen des Datenobjekts zurück”, und das dritte Argument, <code>[Z400K2]</code>, verwenden, um festzulegen: “Gib die Bezeichnungen nur in der angegebenen Sprache zurück”. (Dieses Argument würde auch für Aliasse und Beschreibungen gelten, sofern diese im Ergebnis enthalten wären.) <syntaxhighlight lang="javascript"> function Z400( Z400K1, Z400K2 ) { const labelsPart = new ZObject( new Map( [ ['Z6030K1', new ZReference('Z6033')] ] ), {Z1K1: 'Z9', Z9K1: 'Z6030'} ); const entities = Wikifunctions.Call( 'Z6820', [Z400K1], [labelsPart], [Z400K2], []); const item = entities.get(Z400K1.Z6091K1); const labels = item.Z6001K2.Z12K1; for (const label of labels) { if (label.Z11K1.Z60K1 === Z400K2.Z60K1) { return label.Z11K2; }} return 'NOT FOUND'; } </syntaxhighlight> Weitere zu beachtende Hinweise: * Obwohl Code-Implementierungen mittlerweile in der Lage sind, Wikidata-Entitäten abzurufen, wird empfohlen, dass sie keine ''vollständigen'' Entitäten zurückgeben. Dies liegt an den derzeitigen Beschränkungen hinsichtlich der Größe des von einer Code-Implementierung zurückgegebenen Wertes. Um eine vollständige, große Entität abzurufen und zurückzugeben, ist es besser, die Abruffunktion aus einer Komposition heraus aufzurufen. * Es kann nur ein Callback gleichzeitig ausgeführt werden. Aus Sicherheitsgründen ist es nicht möglich, die Nebenläufigkeitsfunktionen von JavaScript oder Python zu nutzen, um mehrere Callbacks parallel auszuführen. ** Beachte jedoch, dass du mithilfe von Z6820 mehrere Entitäten auf einmal abrufen kannst. * Derzeit gibt es eine Obergrenze von 3 MiB für die Größe von Wikidata-Inhalten, die über einen einzelnen Callback an eine Code-Implementierung zurückgegeben werden können. Dieselbe Obergrenze gilt für die Größe des Ergebnisses, das von einer Code-Implementierung zurückgegeben wird. <span id="Compositions"></span> == Kompositionen == Im diesem Abschnitt geben wir ein konkretes Beispiel, wie man eine Implementierung in Form einer Komposition erstellt. Angenommen, wir möchten eine Implementierung für eine Funktion erstellen, die zwei Eingabezeichenketten durch Einfügen eines Leerzeichens dazwischen kombiniert und das Ergebnis zurückgibt. Nehmen wir an, die ZID dieser Funktion ist <code>Z30000</code>. Normalerweise ist es sinnvoll, zunächst darüber nachzudenken, wie man vorhandene Funktionen kombinieren kann, um die gewünschte Ausgabe zu erzielen. Manchmal mag dies trivial sein und du kannst einfach mit dem Zusammenstellen und Funktionen fortfahren, aber in vielen Fällen lohnt es sich, die gewünschte Komposition zu notieren. Beispielsweise könnten wir für die angegebene Funktion die vorhandene Funktion {{Z|Z10000}} verwenden. Diese Funktion nimmt zwei Zeichenketten und erstellt daraus eine Zeichenkette. Aber wir müssen dazwischen ein Leerzeichen einfügen. Wir verbinden also zunächst ein Leerzeichen mit dem Ende der ersten Zeichenkette und verbinden dann die zweite Zeichenfolge mit dem Ergebnis dieser ersten Verbindung. Unsere Komposition könnte also so notiert werden: <syntaxhighlight lang="prolog"> join_strings( join_strings( Z30000K1, " " ), Z30000K2 ) </syntaxhighlight> Es gibt mehrere Möglichkeiten, eine Komposition zu schreiben: Beachte, dass dasselbe auch auf folgende Weise erreicht werden kann: <syntaxhighlight lang="prolog"> join_strings( Z30000K1, join_strings( " ", Z30000K2 ) ) </syntaxhighlight> Eine alternative Implementierung könnte auch die vorhandene Funktion {{Z|Z15175}} verwenden, sodass deine Komposition wie folgt aussehen könnte: <syntaxhighlight lang="prolog"> join_with_separator( Z30000K1, Z30000K2, " " ) </syntaxhighlight> Wie du siehst, gibt es mehrere Möglichkeiten, dies zu erreichen. Nimm dir also Zeit und erkunde die vorhandenen Funktionen, die im {{ll|Wikifunctions:Catalogue}} verfügbar sind. Versuchen wir, das zweite Beispiel zu erstellen, <code>join_strings(Z30000K1, join_strings(" ", Z30000K2))</code>. Um dies zu erstellen: # Um eine Implementierung hinzuzufügen, klicke auf der Funktionsseite in der Tabelle "Implementierungen" auf die Schaltfläche "+". # Stelle sicher, dass die Option "Komposition" unter "Implementierung" ausgewählt ist. # Klicke auf das Symbol "›" oder auf den Link "Funktion auswählen", um die Funktionsdetails anzuzeigen. # Suche unter "Funktion" nach dem Namen der äußersten Funktion, die du verwenden möchtest, in diesem Beispiel "verbinde Zeichenketten". Wähle anschließend die gewünschte Funktion aus der Dropdown-Liste aus. # Du siehst zwei neue Felder, eines für jedes der Argumente, die für die ausgewählte Funktion benötigt werden. # Als erstes Argument möchten wir den ersten Eingabewert für unsere Funktion auswählen: ## Klicke neben "erste Zeichenkette" auf die Schaltfläche "…" und wähle "Argumentreferenz" aus. ## Unter "Schlüssel-ID" kannst du nun die erste Zeichenkette deiner Funktion aus dem Dropdown-Menü auswählen, das alle verfügbaren Eingaben enthält. # Für das zweite Argument möchten wir das Ergebnis eines weiteren Aufrufs von "verbinde Zeichenketten" verwenden: ## Klicke neben "zweite Zeichenkette" auf die Schaltfläche "…" und wähle "Funktionsaufruf" aus. ## Suche unter "Funktion" nach der Funktion, die du aufrufen möchtest und wähle sie aus, nämlich "verbinde Zeichenketten". ## Konfiguriere die "erste Zeichenkette" für diesen inneren Funktionsaufruf, indem du einfach ein Leerzeichen in das Textfeld eingibst, und konfiguriere die "zweite Zeichenkette" wie in Schritt 6: Ändere sie mit der Schaltfläche "…" in "Argumentreferenz" und wähle dann das zweite Argument in der Dropdown-Liste aus. Deine Komposition ist nun fertig! Du kannst die Details mithilfe der Pfeiltasten ein- und ausblenden, um dir einen Überblick zu verschaffen. Falls du bereits Tests wie im Abschnitt [[#Practice Test-Driven Development|TDD]] oben empfohlen implementiert hast, klicke im Testbereich auf den kreisförmigen Pfeil und prüfe, ob deine Implementierung die Tests besteht. Sobald deine Komposition die Tests bestanden hat, kannst du sie veröffentlichen. [[File:Composition implementation expanded.png|frame|center|alt=Eine Wikifunctions-Kompositionsimplementierung in ihrer erweiterten Ansicht|Eine Wikifunctions-Kompositionsimplementierung in ihrer erweiterten Ansicht]] [[File:Composition implementation collapsed.png|frame|center|alt=Eine Wikifunctions-Kompositionsimplementierung in ihrer reduzierten Ansicht|Eine Wikifunctions-Kompositionsimplementierung in ihrer reduzierten Ansicht]] <span id="Wikifunctions_error_handling"></span> == Fehlerbehandlung auf Wikifunctions == Als Ersteller einer Wikifunctions-Funktion möchtest du möglicherweise den Benutzer warnen, der deine Funktion aufruft, wenn im Code ein Fehler auftritt oder seine Eingaben bestimmte Kriterien nicht erfüllen. Wenn deine Funktion beispielsweise eine Zeichenkette mit einem Namen erwartet, solltest du prüfen, ob der Name nicht leer ist, und gegebenenfalls eine verständliche Fehlermeldung anzeigen. Hierfür kannst du <code>Wikifunctions.Error()</code> in deinen Code-Implementierungen oder die Funktion {{Z|Z851}} in deinen Kompositionen verwenden. In diesem Abschnitt erfährst du: * Wie man Fehler sowohl aus Code- als auch aus Kompositions-Implementierungen auslöst, * wie man Tests für Fehlerfälle schreibt, und * wie man Fehler abfängt und behandelt, die von Funktionen ausgelöst werden, die man in seinen Kompositionen verwendet. <span id="Throwing_errors_from_code_implementations"></span> === Fehler aus Code-Implementierungen auslösen === Sowohl beim Schreiben von JavaScript- als auch von Python-Code kannst du <code>Wikifunctions.Error()</code> nutzen, um die Ausführung mit einem gewünschten Fehler zu beenden. <code>Wikifunctions.Error()</code> hat zwei Parameter: # Fehlertyp: Eine Zeichenkette, die die ZID des Fehlertyps enthält, den du zurückgeben möchtest. # Fehlerargumente: Eine Liste von Zeichenkettenargumenten zur Erstellung des Fehlers. Gehen wir sie der Reihe nach durch: <span id="Error_type"></span> ==== Fehlertyp ==== Ein Fehlertyp ist ein Objekt, das eine Art von Fehler beschreibt, der im System auftreten kann. Es gibt eine Reihe vordefinierter Fehlertypen, du kannst aber auch eigene Fehlertypen erstellen, die besser zu deinem Anwendungsfall passen. Bei der Verwendung von Fehlern empfiehlt es sich, die verfügbaren Fehlertypen zu durchsuchen, die sich in [[Special:ListObjectsByType/Z50|dieser Liste]] finden. Falls keine passenden Fehler für deinen Fall vorhanden sind, erstelle einen neuen Fehler, indem du zur Erstellungsseite gehst und im Typauswahlfeld "Fehlertyp" auswählst. Lege anschließend die erforderlichen Felder fest: [[File:Error type.png|thumb|alt=Erstellung von Fehlertypen in Wikifunctions|Um einen neuen Fehlertyp (Z50) zu erstellen, bearbeite die Bezeichnung und füge die erforderlichen Schlüssel hinzu.]] * '''Bezeichnung''' – Dies ist der Haupttitel des Fehlers, der eine kurze, aber aussagekräftige Meldung enthalten sollte. Lege die Fehlerbezeichnung im rechten Feld mit dem Titel "Info" fest. * '''Schlüssel''' – Schlüssel enthalten zusätzliche Informationen zur Fehlerursache. Wenn beispielsweise eine Eingabe das falsche Format aufwies, möchtest du den Benutzer möglicherweise über den eingegebenen Inhalt informieren, wenn der Fehler auftritt. Um sie in deinen Implementierungen zu verwenden, müssen Schlüssel vom Zeichenketten sein. Um einen Schlüssel zu erstellen, klicke auf das Symbol "[+]" unterhalb von "Schlüssel", wähle unter "Werttyp" die Option "Zeichenkette" aus und füge eine aussagekräftige Bezeichnung hinzu, beispielsweise "tatsächlich Eingabe". Sobald du alle erforderlichen Schlüssel erstellt hast, kannst du deinen Fehlertyp veröffentlichen und die ID des neu erstellten Objekts speichern. * '''Fehlermeldung''' – Fehlertypen können ein mehrsprachiges Array von Fehlermeldungen enthalten, die mit HTML-Parametern versehen sind. Die Parameter werden als $1, $2 etc. angegeben, wobei die Ziffer dem Schlüssel des Fehlertyps entspricht. Beim Erstellen eines Fehlertyps mit dem Zeichenketten-Schlüssel "aktuelle Eingabe", kann die Fehlermeldung beispielsweise den Platzhalter "$1" verwenden, der zum Zeitpunkt der Fehlerausgabe durch den Wert des Schlüssels "aktuelle Eingabe" ersetzt wird. Um HTML-Meldungen hinzuzufügen, klicke unter "HTML-Fragmente" auf das Symbol "[+]", wähle eine Sprache aus und gib die HTML-Zeichenkette ein. <span id="Error_arguments"></span> ==== Fehlerargumente ==== Fehlerargumente entsprechen den Schlüsseln des Fehlertyps und sollten zusätzliche Informationen zum Verständnis des Fehlers liefern. Fehlerargumente sollten immer Zeichenketten sein. <span id="Using_Wikifunctions.Error()"></span> ==== Verwendung von Wikifunctions.Error() ==== Angenommen, du möchtest einen Fehler auslösen, wenn entweder deine erste oder deine zweite Eingabe leer ist. Du hast den Fehlertyp bereits erstellt und ihm wurde die ZID <code>Z30005</code> zugewiesen. Dein Fehlertyp hat zwei Zeichenketten-Schlüssel: * Eingabeschlüssel: Enthält den Schlüssel der fehlerhaften Eingabe * Eingabewert: Enthält den aktuellen Wert der fehlerhaften Eingabe Um einen Fehler in deiner JavaScript-Implementierung auszulösen, solltest du etwa Folgendes tun: <syntaxhighlight lang="javascript"> function Z30000( Z30000K1, Z30000K2 ) { if ( trim( Z30000K1 ) === '' ) { // Wenn die erste Eingabe leer ist, löse Fehler Z30005 aus // mit zwei Zeichenketten-Argumenten: [ erster Eingabe-Schlüssel, erster Eingabe-Wert ] Wikifunctions.Error( 'Z30005', [ "Z30000K1", Z30000K1 ] ) } if ( trim( Z30000K2 ) === '' ) { // Wenn die zweite Eingabe leer ist, löse Fehler Z30005 aus // mit zwei Zeichenketten-Argumenten: [ zweiter Eingabe-Schlüssel, zweiter Eingabe-Wert ] Wikifunctions.Error( 'Z30005', [ "Z30000K2", Z30000K2 ] ) } return Z30000K1 + " " + Z30000K2; } </syntaxhighlight> Um einen Fehler in deiner Python-Implementierung auszulösen, solltest du etwa Folgendes tun: <syntaxhighlight lang="python3"> def Z30000(Z30000K1, Z30000K2): if Z30000K1.strip() == "": # Wenn die erste Eingabe leer ist, löse Fehler Z30005 aus # mit zwei Zeichenketten-Argumenten: [ erster Eingabe-Schlüssel, erster Eingabe-Wert ] Wikifunctions.Error("Z30005", ["Z30000K1", Z30000K1]) if Z30000K2.strip() == "": # Wenn die zweite Eingabe leer ist, löse Fehler Z30005 aus # mit zwei Zeichenketten-Argumenten: [ erster Eingabe-Schlüssel, erster Eingabe-Wert ] Wikifunctions.Error("Z30005", ["Z30000K2", Z30000K2]) return Z30000K1 + " " + Z30000K2 </syntaxhighlight> Denke daran, dass der Aufruf von <code>Wikifunctions.Error()</code> die Ausführung beendet! <span id="Throwing_errors_from_compositions"></span> === Fehler aus Kompositionen auslösen === Wenn du eine Kompositionsimplementierung erstellst, kannst du einen Fehler auslösen, indem du die Spezialfunktion {{Z|Z851}} aufrufst. <span id="Throw_Error_function_(Z851)"></span> ==== Funktion Fehler auslösen (Z851) ==== Die Funktion {{Z|Z851}} ähnelt der Methode <code>Wikifunctions.Error()</code> und benötigt zwei Argumente: * '''Fehlertyp''' – Ein Verweis auf den Fehlertyp, den du auslösen möchtest * '''Fehlerparameter''' – Eine Liste mit den Argumenten zur Erstellung deines Fehlers, die ebenfalls Zeichenketten sein sollten. <span id="Using_Throw_Error"></span> ==== Verwendung von Fehler auslösen ==== Angenommen, du möchtest deine Komposition so ändern, dass sie zuerst prüft, ob die Argumente nicht leer sind, und einen Fehler ausgibt, wenn sie ein leeres Argument findet. Wenn dann keines der Argumente leer ist, wird die ursprüngliche Komposition ausgeführt, die wie folgt aussieht: <syntaxhighlight lang="prolog"> join_with_separator( Z30000K1, Z30000K2, " " ) </syntaxhighlight> Dazu musst du bedingte Pfade erstellen, für die du die Funktion {{Z|Z802}} verwenden kannst. Stell es dir folgendermaßen vor: * Wenn das erste Argument leer ist, soll ein Fehler für das erste Argument ausgelöst werden * Andernfalls wird mit der Überprüfung des zweiten Arguments fortgefahren * Wenn das zweite Argument leer ist, soll ein Fehler für das zweite Argument ausgelöst werden * Andernfalls wird der Erfolgspfad verfolgt und die verbundenen Zeichenketten mit dem Leerzeichen als Trennzeichen zurückgegeben Oder in funktionalem Pseudocode: <syntaxhighlight lang="prolog"> if ( is_empty_string( Z30000K1 ), throw_error( Z30005, [ "Z30000K1", Z30000K1 ] ), if( is_empty_string( Z30000K2 ), throw_error( Z30005, [ "Z30000K2", Z30000K2 ] ), join_with_separator( Z30000K1, Z30000K2, " " ) ) ) </syntaxhighlight> Lass uns das Schritt für Schritt erstellen: # Um eine Implementierung hinzuzufügen, klicke auf der Funktionsseite in der Tabelle "Implementierungen" auf die Schaltfläche "+". # Stelle sicher, dass die Option "Komposition" unter "Implementierung" ausgewählt ist. # Klicke auf das Symbol "›" oder auf den Link "Funktion auswählen", um die Funktionsdetails anzuzeigen. # Suche unter "Funktion" nach der äußersten Funktion, die du verwenden möchtest, in diesem Fall "wenn", und wähle sie aus. # Überprüfe die Gültigkeit des ersten Arguments: ## Klicke neben "Bedingung" auf die Schaltfläche "…" und wähle "Funktionsaufruf" aus ## Suche unter "Funktion" nach der Funktion "ist leere Zeichenkette" und wähle sie aus ## Klicke neben "Eingabe" auf die Schaltfläche "…" und wähle "Argumentreferenz" aus ## Wähle unter "Schlüssel-ID" die erste Eingabe aus (z. B. "erste Zeichenkette") ## Du kannst den Funktionsaufruf der "Bedingung" nun bei Bedarf ausblenden, indem du auf den Pfeil nach unten neben "Bedingung" klickst. Es sollte dann etwa Folgendes angezeigt werden: "f(x) ist leere Zeichenkette ( → erste Zeichenkette )" # Fehler auslösen, wenn die Bedingung wahr ist: ## Klicke neben "dann" auf die Schaltfläche "…" und wähle "Funktionsaufruf" aus ## Suche unter "Funktion" nach der Funktion "Fehler auslösen" und wähle sie aus ## Suche unter "Fehlertyp" nach deinem Fehlertyp (du kannst die Fehler-ID direkt eingeben, wenn du sie kennst, z. B. Z30005) und wähle ihn aus ## Füge unter "Fehlerparameter" zwei Elemente hinzu, indem du auf die Schaltfläche "+" klickst ## Lege für "Objekt 1" (fehlerhafter Argumentschlüssel) den Typ auf "Zeichenkette" fest und trage die Argumentkennung ein (z. B. "erste Eingabe" oder "Z30000K1") ## Klicke für "Objekt 2" (fehlerhafter Argumentwert) auf die "…" neben "Objekt 2" und wähle "Argumentreferenz" aus ## Wähle unter "Schlüssel-ID" die erste Eingabe aus (z. B. "erste Zeichenkette") ## Du kannst den Funktionsaufruf "dann" nun bei Bedarf ausblenden, indem du auf den Pfeil nach unten neben "dann" klickst. Es sollte dann etwa Folgendes angezeigt werden: "f(x) Fehler auslösen ( ungültiges Format, typisierte Liste ( Objekt, "erste Eingabe", → erste Zeichenkette ) )" # Prüfe das zweite Argument, wenn das erste korrekt war: ## Klicke neben "sonst" auf die Schaltfläche "…" und wähle "Funktionsaufruf" aus ## Suche unter "Funktion" nach der Funktion "wenn" und wähle sie aus ## Richte eine "Bedingung" ein, um die Gültigkeit des zweiten Arguments zu überprüfen, indem du das gleiche Verfahren wie in Schritt 5 beschrieben anwendest. ## Richte "dann" so ein, dass beim zweiten Argument ein Fehler ausgelöst wird, indem du das gleiche Verfahren wie in Schritt 6 beschrieben anwendest. # Richte schließlich den Erfolgspfad ein: ## Klicke neben dem verschachtelten "sonst" auf die Schaltfläche "…" und wähle "Funktionsaufruf" aus ## Suche unter "Funktion" nach der gewünschten Funktion, in diesem Fall "vereinige zwei Zeichenketten mit Trennzeichen", und wähle sie aus ## Klicke neben "erste Zeichenkette" auf die Schaltfläche "…" und setze sie auf "Argumentreferenz", wähle anschließend "erste Zeichenkette" aus ## Klicke neben "zweite Zeichenkette" auf die Schaltfläche "…" und setze sie auf "Argumentreferenz", wähle anschließend "zweite Zeichenkette" aus ## Füge unter "Trennzeichen" ein Leerzeichen in das Textfeld ein Der resultierende Funktionsaufruf sollte folgendermaßen aussehen: [[File:Throw error expanded.png|frame|center|alt=Wikifunctions-Komposition mit der Funktion Fehler auslösen|Wikifunctions-Komposition mit der Funktion Fehler auslösen]] [[File:Throw error collapsed.png|frame|center|alt=Wikifunctions-Komposition mit der Funktion Fehler auslösen in ihrer reduzierten Ansicht|Wikifunctions-Komposition mit der Funktion Fehler auslösen in ihrer reduzierten Ansicht]] <span id="Handling_errors_in_compositions"></span> === Fehlerbehandlung in Kompositionen === Es ist zwar nützlich, Funktionen das Auslösen erwarteter Fehler zu ermöglichen, aber es ist entscheidend, Fehler in den eigenen Kompositionen behandeln zu können, um diese Funktionen sicher verwenden zu können. Angenommen, du möchtest eine neue Funktion "vollständiger Name einer Person" erstellen – wir bezeichnen sie mit der ZID <code>Z30010</code>. Diese Funktion soll den vollständigen Namen einer Person anhand ihres Vor- und Nachnamens zurückgeben. Ist jedoch eines der beiden Felder leer, soll sie stattdessen den Text "Unbekannt" zurückgeben. Du könntest eine Komposition erstellen, indem du unsere Beispielfunktion "verbinde zwei Zeichenketten mit Leerzeichen" oder <code>Z30000</code> verwendest, um den Namen zu generieren. Wenn eine der Eingaben leer ist, weißt du, dass <code>Z30000</code> einen Fehler vom Typ <code>Z30005</code> auslöst. Mithilfe der Funktion {{Z|Z850}} als Wrapper kannst du die Verbindungsoperation ausführen und einen möglichen Fehler abfangen, indem du einfach "Unbekannt" zurückgibst, wenn er auftritt. <span id="Try-Catch_function_(Z850)"></span> ==== Try-Catch-Funktion (Z850) ==== Die Funktion {{Z|Z850}} ist eine integrierte Funktion mit der ZID <code>Z850</code> und benötigt drei Argumente: * '''Funktionsaufruf''' – Der erste Funktionsaufruf, der ausgeführt werden soll. Wenn kein Fehler auftritt, ist die Antwort das Ergebnis dieses Funktionsaufrufs. * '''Fehlertyp''' – Ein Fehlertyp, der abgefangen werden soll, falls er während der Ausführung des ersten Funktionsaufrufs auftritt. * '''Fehlerhandler''' – Ein Funktionsaufruf, der ausgeführt wird, falls der oben genannte Fehler während der Ausführung des ursprünglichen Funktionsaufrufs auftritt. In diesem Fall wird das Ergebnis der Fehlerbehandlung zurückgegeben. <span id="Using_Try-Catch"></span> ==== Verwendung der Try-Catch-Funktion ==== Sobald wir alle Funktionen für unsere Komposition haben, können wir sie folgendermaßen gestalten: <syntaxhighlight lang="prolog"> try_catch( join_with_space( Z30010K1, Z30010K2 ), Z30005, echo( "Unknown" ) ) </syntaxhighlight> Das bedeutet: * Die Funktion "verbinde zwei Zeichenketten mit Leerzeichen" wird mit den beiden Eingaben ausprobiert und wenn alles erfolgreich verläuft, wird das Ergebnis dieser Funktion zurückgegeben * Wenn eine der Eingaben leer ist, löst "verbinde zwei Zeichenketten mit Leerzeichen" einen Fehler vom Typ <code>Z30005</code> aus * Unsere {{Z|Z850}} erkennt dann diesen Fehler und führt die Funktion {{Z|Z801}} aus, die "Unbekannt" zurückgibt Lass uns das Schritt für Schritt erstellen: # Um eine Implementierung hinzuzufügen, klicke auf der Funktionsseite in der Tabelle "Implementierungen" auf die Schaltfläche "+". # Stelle sicher, dass die Option "Komposition" unter "Implementierung" ausgewählt ist. # Klicke auf das Symbol "›" oder auf den Link "Funktion auswählen", um die Funktionsdetails anzuzeigen. # Suche unter "Funktion" nach der äußersten Funktion, die du verwenden möchtest, in diesem Fall "Try-Catch-Funktion", und wähle sie aus. # Richte den Hauptfunktionsaufruf ein: ## Klicke unterhalb des Feldes, in dem die "Try-Catch-Funktion" ausgewählt ist, neben dem Schlüssel "Funktionsaufruf" auf die Schaltfläche "…" und wähle "Funktionsaufruf" aus ## Suche unter "Funktion" nach der Funktion "verbinde zwei Zeichenketten mit Leerzeichen" und wähle sie aus ## Klicke neben "erste Zeichenkette" auf die Schaltfläche "…" und wähle "Argumentreferenz" aus, wähle anschließend das Argument "erster Name" aus der Dropdown-Liste aus. ## Klicke neben "zweite Zeichenkette" auf die Schaltfläche "…" und wähle "Argumentreferenz" aus, wähle anschließend das Argument "zweiter Name" aus der Dropdown-Liste aus. # Wähle den abzufangenden Fehler aus: ## Suche unter "Fehlertyp" nach "ungültige Zeichenkette" und wähle es aus – du kannst direkt nach der ZID <code>Z30005</code> suchen # Richte den Funktionsaufruf für den Fehlerhandler ein: ## Klicke neben "Fehlerhandler" auf die Schaltfläche "…" und wähle "Funktionsaufruf" aus ## Suche unter "Funktion" nach der Funktion "Echo" und wähle sie aus ## Suche unter "Eingabe" und "Typ" den Typ "Zeichenkette" und wähle ihn aus ## Gib nun unter "Eingabe" im Textfeld "Unbekannt" ein Die resultierende Funktion sollte folgendermaßen aussehen: [[File:Try catch expanded.png|frame|center|alt=Wikifunctions-Komposition mit der Try-Catch-Funktion in ihrer erweiterten Ansicht|Wikifunctions-Komposition mit der Try-Catch-Funktion in ihrer erweiterten Ansicht]] [[File:Try catch collapsed.png|frame|center|alt=Wikifunctions-Komposition mit der Try-Catch-Funktion in ihrer reduzierten Ansicht|Wikifunctions-Komposition mit der Try-Catch-Funktion in ihrer reduzierten Ansicht]] <span id="Testing_your_failure_use_cases"></span> === Testen deiner Fehlerfälle === Wie bereits im Abschnitt über die [[#Practice Test-Driven Development|Anwendung von TDD]] erläutert, ist es wichtig, nicht nur die häufigsten Ausführungspfade, sondern auch mögliche Randfälle zu testen. Ebenso wichtig ist es, das Fehlerverhalten zu prüfen. In diesem Abschnitt stellen wir dir die notwendigen Werkzeuge vor, um zu testen, ob deine Funktion bei bestimmten Eingaben fehlschlägt und ob die Fehlermeldung den Erwartungen entspricht. Dazu benötigst du zwei weitere Systemfunktionen: <span id="Is_error_type_(Z852)"></span> ==== ist Fehlertyp (Z852) ==== Die Funktion {{Z|Z852}} ist eine integrierte Funktion mit der ZID <code>Z852</code> und benötigt zwei Argumente: * '''Fehler''' – Ein {{Z|Z5}}-Objekt, das bei einem fehlgeschlagenen Aufruf ausgelöst werden kann. Eine Fehlerinstanz hat einen Typ und einen Wert. * '''Fehlertyp''' – Ein Verweis auf einen {{Z|Z50}}, der mit dem als erstes Argument übergebenen Fehlertyp verglichen wird. Ist dies der Fall, gibt die Funktion wahr zurück. <span id="Get_error_thrown_by_function_call_(Z853)"></span> ==== Fehler erhalten, ausgelöst durch Funktionsaufruf (Z853) ==== Die Funktion {{Z|Z853}} ist eine integrierte Funktion mit der ZID <code>Z853</code> und benötigt ein Argument: * '''Funktionsaufruf''' – Ein Funktionsaufruf, der entweder einen erfolgreichen Wert beliebigen Typs zurückgibt oder einen Fehler auslöst. Diese Funktion gibt ein {{Z|Z882}} zurück, wobei an erster Stelle ein {{Z|Z40}} und an zweiter Stelle ein {{Z|Z1}} steht: * Wenn der Funktionsaufruf erfolgreich ist und somit keinen Fehler auslöst, enthält das zurückgegebene Paar an erster Stelle falsch und an zweiter Stelle leer. * Wenn der Funktionsaufruf einen Fehler auslöst, enthält das zurückgegebene Paar an erster Stelle wahr und an zweiter Stelle den abgefangenen Fehler. Um diese Funktion in deinen Kompositionen zu verwenden, musst du möglicherweise die zusätzlichen Funktionen verwenden: * {{Z|Z821}} und * {{Z|Z822}} <span id="Testing_errors"></span> ==== Fehler testen ==== Angenommen, unsere Zielfunktion "verbinde zwei Zeichenketten mit Leerzeichen" oder <code>Z30000</code> löst einen Fehler vom Typ <code>Z30005</code> aus, und wir möchten dieses Verhalten testen. Dazu müssen wir Folgendes tun: * Einen fehlgeschlagenen Funktionsaufruf auslösen * Den Fehler mit der Funktion {{Z|Z853}} erhalten * Mit {{Z|Z852}} prüfen, ob der Fehler den richtigen Typ hat Tests haben zwei Felder: * '''Aufruf''' – Ein Funktionsaufruf, der mit den zu testenden Eingaben eine Ausgabe erzeugt. Dieser Aufruf gibt einen Wert zurück. * '''Ergebnisprüfung''' – Ein Funktionsaufruf, der überprüft, ob der vom vorherigen Aufruf zurückgegebene Wert dem erwarteten Wert entspricht. Das erste Argument dieses Funktionsaufrufs wird automatisch mit dem Rückgabewert des ersten Aufrufs belegt. Für eine Schritt-für-Schritt-Anleitung zum Erstellen von Tests siehe {{ll|Wikifunctions:Introduction#Create_tests}}. In unserem Beispiel können wir es so strukturieren — aber das ist nicht die einzige Möglichkeit! Der Aufruf, der ein {{Z|Z5}}-Objekt zurückgibt: <syntaxhighlight lang="prolog"> error = get_second_element_of_typed_list( get_error_thrown_by( join_strings_by_whitespace( "", "not empty" ) ) ) </syntaxhighlight> Und die Ergebnisprüfung, die das {{Z|Z5}}-Objekt als erstes Argument verwendet: <syntaxhighlight lang="prolog"> is_error_type( error, Z30005 ) </syntaxhighlight> Lass uns das Schritt für Schritt tun: # Um einen Test hinzuzufügen, klicke auf der Funktionsseite in der Tabelle "Tests" auf die Schaltfläche "+". Die Felder "Aufruf" und "Ergebnisprüfung" enthalten bereits vordefinierte Funktionen. Um die Fehler zu testen, müssen wir diese jedoch ändern. # Als Erstes richten wir den Aufruf ein: ## Klicke unter "Aufruf" auf die Schaltfläche "›", um den Funktionsaufruf zu erweitern. ## Bearbeite das Feld unter "Funktion" und suche die Funktion "erhalte zweites Element eines typisierten Paars" und wähle sie aus ## Klicke anschließend neben "typisiertes Paar" auf die Schaltfläche "…" und wähle "Funktionsaufruf" aus ## Suche unter "Funktion" nach der Funktion "Fehler erhalten, ausgelöst durch Funktionsaufruf" und wähle sie aus ## Klicke neben "Funktionsaufruf" auf die Schaltfläche "…" und wähle "Funktionsaufruf" aus ## Suche unter "Funktion" nach der Funktion "verbinde zwei Zeichenketten mit Leerzeichen" (oder nach ZID <code>Z30000</code>) und wähle sie aus ## Lege nun die Eingaben so fest, dass ein Fehler auftritt: Mindestens eine von ihnen muss leer sein. ## Du kannst jetzt deinen "Aufruf" durch erneutes Klicken auf den Pfeil nach unten wieder ausblenden, wenn du möchtest! # Als Nächstes richten wir die Ergebnisprüfung ein: ## Klicke unter "Ergebnisprüfung" auf die Schaltfläche "›", um den Funktionsaufruf zu erweitern. ## Bearbeite das Feld unter "Funktion" und suche die Funktion "ist Fehlertyp" und wähle sie aus ## Du wirst nun nur noch aufgefordert, das zweite Argument zu konfigurieren. Suche unter "Fehlertyp" nach deinem Fehlertyp <code>Z30005</code> und wähle ihn aus. # Und du bist fertig! Du kannst jetzt auf den kreisförmigen Pfeil im Feld "Implementierungen" klicken und solltest grüne Häkchen sehen. Wenn alles geklappt hat, kannst du deinen Test jetzt speichern. Er sollte folgendermaßen aussehen: [[File:Get error expanded.png|frame|center|alt=Testen eines Fehlers mit den Funktionen Fehler erhalten und ist Fehlertyp in ihrer erweiterten Ansicht|Testen eines Fehlers mit den Funktionen Fehler erhalten und ist Fehlertyp in ihrer erweiterten Ansicht]] [[File:Get error collapsed.png|frame|center|alt=Testen eines Fehlers mit den Funktionen Fehler erhalten und ist Fehlertyp in ihrer reduzierten Ansicht|Testen eines Fehlers mit den Funktionen Fehler erhalten und ist Fehlertyp in ihrer reduzierten Ansicht]] <span id="Creating_actionable_error_messages"></span> === Erstellung handlungsorientierter Fehlermeldungen === Wie oben beschrieben, verfügen Fehlertypen über einen optionalen Schlüssel <code>Z50K3</code>, der eine mehrsprachige Liste von HTML-Zeichenketten enthält. Bei der Darstellung von Informationen zu einem Fehler können die im Fehlertyp hinterlegten Meldungen dazu beitragen, eine klare, präzise, ​​informative, übersetzbare und handlungsorientierte Fehlermeldung zu erstellen. Zu diesem Zweck können Fehlermeldungen Parameter wie <code>$1</code>, <code>$2</code> etc. enthalten, wobei die Ziffer dem Argument des Fehlertyps und dessen Wert in der Fehlerinstanz entspricht. Diese Fehlermeldungen werden in Wikifunctions nach der Ausführung eines Funktionsaufrufs im Dialogfenster "Details" angezeigt. Darüber hinaus werden diese Fehlermeldungen auch in anderen Client-Schnittstellen, wie der Abstrakten Wikipedia, ausgegeben, um den Autoren von Abstrakten Inhalten eine bessere Orientierung zu bieten. [[File:Wikifunctions actionable error message example in the Details dialog.png|thumb|Die Fehlermeldung wird unter Verwendung der HTML-Meldung des Fehlertyps und der Werte der Fehlerargumente generiert.]] [[File:Wikifunctions actionable error message example in Abstract Wikipedia.png|thumb|Sofern verfügbar, wird die HTML-Fehlermeldung im Vorschau-Bereich der Abstrakten Wikipedia angezeigt.]] Lass uns anhand eines konkreten Beispiels die Vorteile von HTML-Fehlermeldungen nachvollziehen: Die Funktion {{Z|Z37847}} gibt die erste Lexem-Referenz zurück, basierend auf einer Wikidata-Datenobjekt-Referenz und einer Sprache. Falls für diese Kombination aus Datenobjekt und Sprache kein Lexem existiert, löst sie einen Fehler vom Typ {{Z|Z28248}} aus, der drei Schlüssel hat: * <span lang="en" dir="ltr" class="mw-content-ltr">'''Z28248K1''' is the input Wikidata item QID</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Z28248K2''' is the connecting property, in this case <code>P5137/item for this sense</code></span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Z28248K3''' is the language code</span> <div lang="en" dir="ltr" class="mw-content-ltr"> When calling this function for a Wikidata lexeme that doesn't exist, the call will throw an error instance like this: </div> <syntaxhighlight lang="json" highlight="10,12"> { "Z1K1": "Z5", "Z5K1": "Z28248", "Z5K2": { "Z1K1": { "Z1K1": "Z7", "Z7K1": "Z885", "Z885K1": "Z28248" }, "Z28248K1": "Q319", "Z28248K2": "P5137", "Z28248K3": "ast" } } </syntaxhighlight> <div lang="en" dir="ltr" class="mw-content-ltr"> While the error type label indicates: <code>No matching lexeme for item in language</code>, a better error message should indicate: </div> * <span lang="en" dir="ltr" class="mw-content-ltr">which is the failing item,</span> * <span lang="en" dir="ltr" class="mw-content-ltr">which is the language missing, and</span> * <span lang="en" dir="ltr" class="mw-content-ltr">what are the possible ways to fix it.</span> <div lang="en" dir="ltr" class="mw-content-ltr"> The error message <code>Z50K3</code> field can provide this functionality. Whenever an Error Type has an error message for the user language (or any of its fallbacks), the error message shown will be rendered by: </div> # <span lang="en" dir="ltr" class="mw-content-ltr">First, replacing the message parameters with the values of the keys. In our example, any <code>$1</code> will be replaced with the value of <code>Z28248K1</code> ("Q319"), <code>$2</code> with "P5137", and <code>$3</code> with "ast",</span> # <span lang="en" dir="ltr" class="mw-content-ltr">Last, sanitizing and rendering the HTML message.</span> <div lang="en" dir="ltr" class="mw-content-ltr"> So a HTML message like: </div> <syntaxhighlight lang="html"> There is no matching lexeme for the item $1 in "$3".<br> <a href="http://wikidata.org/wiki/$1">Edit in Wikidata</a> </syntaxhighlight> <div lang="en" dir="ltr" class="mw-content-ltr"> Will become: </div> : There is no matching lexeme for the item Q319 in "ast" : [[d:Q319|Edit in Wikidata]] <span id="Debugging_your_implementations"></span> == Debuggen deiner Implementierungen == Manchmal läuft etwas schief. Eine Funktion verhält sich möglicherweise anders als erwartet oder ein Wert erscheint merkwürdig. Implementierungen können mitunter sehr komplex sein, und da sie in einer Spielwiesen-Umgebung ausgeführt werden, kann die Fehlersuche extrem schwierig erscheinen. Um das Verständnis der Vorgänge innerhalb eines Funktionsaufrufs zu erleichtern, bietet Wikifunctions einige Debugging-Werkzeuge. Diese Werkzeuge verändern nicht das Ergebnis einer Funktion, sondern fügen den zurückgegebenen Metadaten zusätzliche Informationen hinzu, die du nach dem Ausführen der Funktion einsehen kannst. Du kannst <code>Wikifunctions.Debug()</code> in deinen Code-Implementierungen oder die Funktion {{Z|Z854}} in deinen Kompositionen verwenden. In diesem Abschnitt erfährst du: * Wie man Debug-Meldungen sowohl aus Code- als auch aus Kompositions-Implementierungen hinzufügt, * Wie man die Metadaten manuell oder über die Benutzeroberfläche untersucht, um diese Protokolle einzusehen. <span id="Debugging_your_code_implementations"></span> === Debuggen deiner Code-Implementierungen === Beim Schreiben von Code, sowohl in JavaScript als auch in Python3, kannst du <code>Wikifunctions.Debug()</code> verwenden, um eine Meldung zu deinem Debug-Protokoll hinzuzufügen und die Ausführung fortzusetzen. {{phab|T441028}} <code>Wikifunctions.Debug()</code> hat einen Parameter, der üblicherweise als Zeichenkette erwartet wird. Jedes andere als Parameter übergebene Objekt wird jedoch direkt in eine Zeichenkette umgewandelt. Um zu unseren Code-Implementierungen für unsere Beispielfunktion "verbinde zwei Zeichenketten mit Leerzeichen" Debug-Protokolle hinzuzufügen, können wir dies in JavaScript tun: <syntaxhighlight lang="JavaScript"> function Z30000( Z30000K1, Z30000K2 ) { if ( trim( Z30000K1 ) === '' ) { Wikifunctions.Debug( `first input is empty "${ Z30000K1 }"` ); Wikifunctions.Error( 'Z30005', [ "Z30000K1", Z30000K1 ] ) } if ( trim( Z30000K2 ) === '' ) { Wikifunctions.Debug( `second input is empty "${ Z30000K2 }"` ); Wikifunctions.Error( 'Z30005', [ "Z30000K2", Z30000K2 ] ) } Wikifunctions.Debug( "both inputs are fine" ); return Z30000K1 + " " + Z30000K2; } </syntaxhighlight> Und das Gleiche in deiner Python3-Implementierung: <syntaxhighlight lang="python3"> def Z30000(Z30000K1, Z30000K2): if Z30000K1.strip() == "": Wikifunctions.Debug( 'first input is empty "'+Z30000K1+'"' ) Wikifunctions.Error("Z30005", ["Z30000K1", Z30000K1]) if Z30000K2.strip() == "": Wikifunctions.Debug( 'second input is empty "'+Z30000K2+'"' ) Wikifunctions.Error("Z30005", ["Z30000K2", Z30000K2]) Wikifunctions.Debug( 'both inputs are fine' ) return Z30000K1 + " " + Z30000K2 </syntaxhighlight> Auf diese Weise fügen wir deinen Debug-Protokollen in jedem Fall eine Meldung hinzu: * Schlägt der Funktionsaufruf bei der Überprüfung der ersten oder zweiten Eingabe fehl, ist das Ergebnis der Ausführung ein Fehler, enthält aber einen informativen Protokolleintrag darüber, welcher Zweig den Fehler verursacht hat. * Wenn der Funktionsaufruf erfolgreich ist — weil beide Eingaben gültig sind — gibt der Funktionsaufruf die verbundene Zeichenkette zurück, aber die zurückgegebenen Metadaten enthalten auch ein Debug-Protokoll. <span id="Debugging_your_compositions"></span> === Debuggen deiner Kompositionen === Zur Unterstützung des Debuggens von Kompositionen stellt Wikifunctions die integrierte Funktion {{Z|Z854}} bereit. Mit dieser Funktion kannst du Debug-Meldungen an die Ausführung jedes Funktionsaufrufs anhängen, der die endgültige Ausgabe erzeugt. Die während der Auswertung gesammelten Debug-Protokolle werden als Teil der Ausführungsmetadaten unter dem Schlüssel <code>executorDebugLogs</code> zurückgegeben. <span id="Add_debug_log_to_function_call_(Z854)"></span> ==== Debug-Protokoll zu Funktionsaufruf hinzufügen (Z854) ==== Die Funktion {{Z|Z854}} ist eine integrierte Funktion mit der ZID <code>Z854</code> und benötigt zwei Argumente: * '''Funktionsaufruf''' – Jede Komposition, die du ausführen möchtest. * '''Debug-Protokoll''' – Eine Zeichenketten-Meldung, die protokolliert wird, wenn der angegebene Funktionsaufruf ausgewertet wird. Wenn der umschlossene Funktionsaufruf ausgeführt wird, wird die bereitgestellte Meldung zu den Ausführungsprotokollen hinzugefügt. Wird dieser Funktionsaufruf nicht ausgeführt oder ist seine Ausführung nicht Teil der endgültigen Ausgabe, erscheint sein Debug-Protokoll nicht in den Metadaten des Endergebnisses. Diese integrierte Funktion ist besonders nützlich, wenn du beobachten möchtest: * Welcher Zweig einer Bedingung ausgeführt wurde, oder * Die Reihenfolge der Auswertung in einer Komposition. <span id="Using_Add_debug_log_to_function_call"></span> ==== Verwendung von Debug-Protokoll zu Funktionsaufruf hinzufügen ==== Angenommen, du möchtest zu unserer Beispielfunktion "verbinde zwei Zeichenketten mit Leerzeichen" oder <code>Z30000</code> Debug-Protokolle hinzufügen, sodass für die verschiedenen möglichen Ergebnisse unterschiedliche Meldungen angezeigt werden. Du könntest unsere integrierte Debugging-Funktion wie folgt verwenden: <syntaxhighlight lang="prolog"> if ( is_empty_string( Z30000K1 ), add_debug_log( throw_error( Z30005, ... ), 'failed on first input' ) if( is_empty_string( Z30000K2 ), add_debug_log( throw_error( Z30005, ... ), 'failed on second input' ), add_debug_log( join_with_separator( Z30000K1, Z30000K2, " " ), 'both inputs are ok!' ) ) ) </syntaxhighlight> Dies bewirkt Folgendes: * Wird die Funktion mit einer leeren ersten Eingabe aufgerufen, gibt sie eine Fehlermeldung zurück und die Metadaten enthalten einen Eintrag <code>executorDebugLogs</code> mit dem Protokoll-Eintrag "Fehler bei erster Eingabe". * Wird der Aufruf mit einer leeren zweiten Eingabe aufgerufen, schlägt der Aufruf ebenfalls fehl, die protokollierte Meldung lautet jedoch "Fehler bei zweiter Eingabe". * Bei Aufruf mit gültigen Eingaben gibt die Funktion eine erfolgreiche Antwort zurück und zusätzlich enthalten die Metadaten im Schlüssel <code>executorDebugLogs</code> "Beide Eingaben sind in Ordnung". So würde diese Komposition aussehen: [[File:Add debug log expanded.png|frame|center|alt=Implementierung der Komposition mit Debug-Protokoll hinzufügen, um alle möglichen Ausführungspfade zu protokollieren|Implementierung der Komposition mit Debug-Protokoll hinzufügen, um alle möglichen Ausführungspfade zu protokollieren]] <span id="Accessing_execution_debug_logs"></span> === Zugriff auf Ausführungs-Debug-Protokolle === Unabhängig davon, ob deine Ausführungsprotokolle über <code>Wikifunctions.Debug()</code> oder die integrierte Funktion {{Z|Z854}} hinzugefügt werden, werden sie als Teil der Antwort-Metadaten zurückgegeben. Um die Protokolle zu sehen, klicke nach dem Ausführen deiner Funktion auf die Schaltfläche "Details", die unten im Abschnitt "Ergebnis" erscheint. Die Fehler- und Debug-Informationen werden oben im Dialogfeld "Details" angezeigt. Dies ist das Ergebnis, das du sehen würdest, wenn du die Komposition aus unserem vorherigen Beispiel mit gültigen und ungültigen Eingaben ausführst: {| class="wikitable" | [[File:Execution logs success.png|frameless|center|alt=Funktions-Metadatendialog für eine erfolgreiche Ausführung mit Debug-Protokollen]] | [[File:Execution logs failure.png|frameless|center|alt=Funktions-Metadatendialog für eine fehlgeschlagene Ausführung mit Debug-Protokollen]] |- | Funktions-Metadatendialog für eine erfolgreiche Ausführung: zeigt keine Fehler an, sondern das Protokoll der erfolgreichen Ausführung: ''"Beide Eingaben sind in Ordnung!"'' | Funktions-Metadatendialog für eine fehlgeschlagene Ausführung: zeigt die Fehlerinformationen und das zusätzliche Ausführungsprotokoll für den ersten Fehlerzweig an: ''"Fehler bei erster Eingabe"'' |} [[Category:How to create implementations| {{#translation:}}]] dzplnednn7l2u4zyuwszy7mggej7ymg 334142 334140 2026-10-28T20:26:28Z Ameisenigel 44 Created page with "'''$1''' ist die QID des angegebenen Wikidata-Datenobjekts" 334142 wikitext text/x-wiki <languages/> Diese Seite bietet eine detailliertere Anleitung dafür, wie man '''Implementierungen erstellt''' und geht über den Überblick auf {{ll|Wikifunctions:Introduction}} hinaus. <span id="Types_of_Implementations"></span> == Arten von Implementierungen == In Wikifunctions kann eine '''Implementierung''' zwei Hauptformen annehmen: '''Code''' oder '''Komposition'''. Eine Code-Implementierung drückt die Logik der Funktion direkt in einer der verfügbaren Programmiersprachen aus (derzeit Python3 oder JavaScript). Sie ist besonders nützlich, wenn sich das Verhalten der Funktion nicht ohne Weiteres aus bestehenden Wikifunktionen ableiten lässt oder wenn eine präzise Kontrolle über die Datenverarbeitung erforderlich ist. Eine Kompositions-Implementierung definiert die Funktion hingegen vollständig durch die Kombination bestehender Funktionen, ohne dass Code geschrieben werden muss. Kompositionen sind leichter verständlich, wiederverwendbar und lassen sich automatisch in andere Sprachen übersetzen. Sie setzen jedoch voraus, dass geeignete Bausteine ​​bereits vorhanden sind und sind oft weniger leistungsfähig. Prüfe daher zunächst, ob dein Ziel durch Komposition erreicht werden kann. Ist dies nicht möglich oder spielen Leistung oder feingranulare Logik eine Rolle, wähle stattdessen eine Code-Implementierung. Es gibt eine dritte Implementierungsart: '''integrierte Implementierungen'''. Diese werden vom Systemcode ausgeführt und können nicht bearbeitet werden. Höchstwahrscheinlich verfügen alle vordefinierten Funktionen über eine integrierte Implementierung. In solchen Fällen wird beim Öffnen der Implementierungsseite die Meldung ''"{{int|wikilambda-implementation-selector-none}}"'' angezeigt. <span id="Practice_Test-Driven_Development"></span> == Praxis der testgetriebenen Entwicklung == '''Testgetriebene Entwicklung''' oder '''TDD''' ist eine Methode zur Softwareentwicklung, bei der Tests geschrieben werden, bevor der eigentliche Code geschrieben wird. Tests dienen dazu, die Funktionsweise einer Funktion anhand von Beispielen und deren Funktionsweise zu verstehen. In Wikifunctions bietet das Schreiben von Tests als erste Tätigkeit erhebliche Vorteile. Wenn du an einer Implementierung arbeitest, kannst du deinen Code anhand der vorhandenen Tests ausführen, um sicherzustellen, dass er sich wie erwartet verhält. Dadurch lassen sich Fehler frühzeitig erkennen, noch bevor du deine Implementierung veröffentlichst. Tests sind außerdem ein effektives Mittel, um die benötigte Funktion zu beschreiben. Durch das Schreiben von Tests '''kommunizierst du klar das erwartete Verhalten''' und die Community kann bei der Implementierung helfen oder alternative Implementierungen erstellen. Stell dir vor, du möchtest eine Funktion implementieren, die zwei Zeichenketten mit einem Leerzeichen dazwischen verknüpft. Ein einfacher Test dafür könnte so aussehen: <syntaxhighlight lang="prolog"> join_with_space( "Hello", "world" ) => "Hello world" </syntaxhighlight> Sobald du das grundlegende Verhalten definiert hast, ist es wichtig, auch '''an Randfälle zu denken''' — Situationen, in denen die Eingaben so beschaffen sind, dass ein spezielles Verhalten erforderlich sein könnte. Was passiert beispielsweise, wenn deine erste Zeichenkette mit einem Leerzeichen endet oder deine zweite mit einem Leerzeichen beginnt? Soll die Funktion alle vorhandenen Leerzeichen beibehalten und ein weiteres hinzufügen oder ein sauber formatiertes Ergebnis mit nur einem Leerzeichen zwischen den Wörtern zurückgeben? Je nach deinen Anforderungen solltest du einen Test für einen solchen Fall erstellen. Ein Test für diesen Sonderfall könnte beispielsweise einer der folgenden sein — aber nicht beide!: <syntaxhighlight lang="prolog"> join_with_space( "Hello ", " world") => "Hello world" </syntaxhighlight> oder ... <syntaxhighlight lang="prolog"> join_with_space( "Hello ", " world") => "Hello world" </syntaxhighlight> Stell sicher, dass deine Tests alle möglichen Sonderfälle abdecken, und sobald du diese hast, stell sicher, dass sie alle mit der Funktion verbunden sind, indem du sie auswählst und auf "Verbinden" klickst. <span id="Code_implementations"></span> == Code-Implementierungen == [[File:Code implementation.png|thumb|alt=Wikifunctions-Code-Editor, der mit einer Funktionsvorlage initialisiert wurde|Beim Hinzufügen einer neuen Code-Implementierung wird die Funktionsvorlage mit den Funktions- und Argumentnamen initialisiert]] Beim Erstellen einer Implementierung mit Code richtet die Wikifunctions-Benutzeroberfläche einen Code-Editor ein, in dem die ausgewählte Sprache für Syntaxhervorhebung und -validierung aktiviert ist. Sobald die zu implementierende Funktion und die Programmiersprache ausgewählt sind, wird dieser Editor mit der korrekten Funktionsvorlage konfiguriert: '''Entferne oder bearbeite sie nicht!''' Platziere deinen Code innerhalb dieser Funktionssignatur. Falls du Hilfsfunktionen benötigst, kannst du diese einfach in deiner Hauptfunktionsdeklaration deklarieren. <span id="Using_input_types_in_your_code"></span> === Verwendung von Eingabetypen in deinem Code === Die Wikifunctions-Typen {{Z|Z6}} und {{Z|Z40}} können in JavaScript und Python3 wie native Typen verwendet werden. Beispielsweise lässt sich eine Zeichenkette verketten oder ein boolescher Wert direkt in einem logischen Ausdruck verwenden. Um andere Typen in deinen Code-Implementierungen zu verwenden, musst du den jeweiligen Typ genauer untersuchen, herausfinden, ob eine Umwandlung in ein natives Äquivalent existiert, und ihn entsprechend behandeln. Nehmen wir beispielsweise an, wir möchten Python-Code schreiben, der eine Eingabe vom Typ {{Z|Z20420}} verarbeitet. Auf der Seite für diesen Typ sehen wir uns die "Typumwandler in Code" an und suchen nach einem Python-Umwandler. Der Umwandler {{Z|Z20424}} wird auf unsere Datumseingabe angewendet, bevor unser Code ausgeführt wird. Unter "nativer Typ" sehen wir, dass unsere Eingabe ein Python-Dictionary ist, und in der Implementierung können wir die zu erwartenden Schlüssel sehen: <syntaxhighlight lang="python3"> return { 'K1': year, 'K2': month, 'K3': day } </syntaxhighlight> Wenn ein Typ keinen Umwandler besitzt, musst du direkt über seine Schlüssel auf seine Bestandteile zugreifen. Nehmen wir beispielsweise an, deine Funktion <code>Z30000</code> hat einen Eingabeparameter <code>Z30000K1</code> vom Typ {{Z|Z11}}. Dieser Typ besitzt zwei Schlüssel: <code>Z11K1</code> für die Sprache (selbst ein Objekt vom Typ {{Z|Z60}}) und <code>Z11K2</code> für den Zeichenketten-Wert. Das Sprachobjekt hat wiederum einen Schlüssel <code>Z60K1</code> für den Sprachcode. Um also eine Zeichenkette mit dem Sprachcode und dem Text zu erhalten, kannst du folgendes schreiben: <syntaxhighlight lang="javascript"> function Z30000( Z30000K1 ) { // z. B. "de: beliebiger Text" return Z30000K1.Z11K1.Z60K1 + ": " + Z30000K1.Z11K2; } </syntaxhighlight> Für eine Kurzübersicht der verfügbaren Typumwandlungen besuche [[Special:MyLanguage/Wikifunctions:Execution targets#Default type conversion|die Tabelle der Standard-Typumwandlungen]]. <span id="Returning_the_right_outputs"></span> === Rückgabe der richtigen Ausgaben === Ähnlich wie bei der Behandlung von Eingaben müssen auch Ausgaben dem in der Funktionsdefinition angegebenen Typ entsprechen. Einige können wie native Typen behandelt werden; daher wird jede Zeichenketten-Ausgabe in ein Wikifunctions-Objekt {{Z|Z6}} und jeder von deiner Implementierung zurückgegebene native boolesche Wert in ein Wikifunctions-Objekt {{Z|Z40}} umgewandelt. Typen mit "Typumwandlern aus Code" wenden die entsprechende Funktion auf die Ausgabe an, um den benötigten Typ zu erzeugen. Am Beispiel von {{Z|Z20420}} transformiert {{Z|Z20443}} die Ausgabe deiner Implementierung – ein Dictionary mit den Schlüsseln K1, K2 und K3 – in die korrekte ZObjekt-Darstellung. Für Typen, die keine Umwandler aus Code haben, kannst du die Ausgabeobjekte sorgfältig erstellen und zurückgeben. Stell dir beispielsweise vor, unsere Funktion <code>Z30000</code> nimmt zwei Zeichenketten als Eingaben entgegen: Sprachcode und Text, und soll ein Objekt {{Z|Z11}} zurückgeben. In Python kannst du dies mit dem Konstruktor <code>ZObject</code> erreichen: <syntaxhighlight lang="python3"> def Z30000(Z30000K1, Z30000K2): lang_object = ZObject( {"Z1K1": "Z9", "Z9K1": "Z60"}, Z60K1 = Z30000K1 ) return ZObject( {"Z1K1": "Z9", "Z9K1": "Z11"}, Z11K1 = lang_object, Z11K2 = Z30000K2 ) </syntaxhighlight> Oder in JavaScript: <syntaxhighlight lang="javascript"> function Z30000( Z30000K1, Z30000K2 ) { const langObject = new ZObject( new Map( [ [ "Z60K1", Z30000K1 ] ] ), { "Z1K1": "Z9", "Z9K1": "Z60" } ); const monolingualKeys = new Map( [ [ "Z11K1", langObject ], [ "Z11K2", Z30000K2 ] ] ); return new ZObject( monolingualKeys, { "Z1K1": "Z9", "Z9K1": "Z11" } ); } </syntaxhighlight> Du kannst mehr über die Klasse <code>ZObject</code> und andere nützliche Konstruktoren auf {{ll|Wikifunctions:Execution_targets#Custom_and_non-built-in_type_conversion}} erfahren. {{phab|T392750}}Stand Mai 2026 kann der Versuch, eine Liste von Listen zurückzugeben, fehlschlagen; daher ist es nicht möglich, solche Funktionen in Code zu implementieren. === Code in Python === In diesem Abschnitt geben wir ein konkretes Beispiel, wie man eine Implementierung in Form von Code in Python erstellt. Angenommen, wir möchten eine Implementierung für eine Funktion erstellen, die zwei Eingabezeichenketten durch Einfügen eines Leerzeichens dazwischen kombiniert und das Ergebnis zurückgibt. Nehmen wir an, die ZID dieser Funktion ist Z30000. Die Implementierung wird über die ZID der Funktion definiert. Das gilt auch für die Argumente der Funktion. Im Fall der Funktion Z30000 mit ihren beiden Argumenten sollte die Funktionsvorlage also so aussehen: <syntaxhighlight lang="python3"> def Z30000(Z30000K1, Z30000K2): </syntaxhighlight> Wie bereits erwähnt, wissen wir, dass die Argumente (<code>Z30000K1</code> und <code>Z30000K2</code>) Zeichenketten sind, daher können wir sie genauso behandeln wie native Zeichenketten in Python. Die Funktion sollte außerdem eine Zeichenkette zurückgeben. In unserem Beispiel geben wir einfach die beiden Argumente, getrennt durch ein Leerzeichen, aneinandergereiht zurück: <syntaxhighlight lang="python3"> def Z30000(Z30000K1, Z30000K2): return Z30000K1 + " " + Z30000K2 </syntaxhighlight> Da es sich um Python handelt, vergesse nicht, diese Zeile einzurücken. Wenn du unserem Rat gefolgt bist, [[#Practice Test-Driven Development|TDD anzuwenden]], verfügst du bereits über eine Reihe von Tests, von denen du weißt, dass sie funktionieren sollten. In diesem Fall kannst du während der Entwicklung deiner Implementierung auf den kreisförmigen Pfeil im Testbereich klicken und überprüfen, ob deine Implementierung alle Tests besteht. Denke daran, dass die Laufzeit keinen Status hat. Gehe nicht von Werten für globale oder statische Variablen aus. Wenn du weitere Fragen dazu hast, was du in Python tun kannst und was nicht, frage auf [[Wikifunctions:Python implementations]]. === Code in JavaScript === In diesem Abschnitt geben wir ein konkretes Beispiel, wie man eine Implementierung in Form von Code in JavaScript erstellt. Angenommen, wir möchten eine Implementierung für eine Funktion erstellen, die zwei Eingabezeichenketten durch Einfügen eines Leerzeichens dazwischen kombiniert und das Ergebnis zurückgibt. Nehmen wir an, die ZID dieser Funktion ist <code>Z30000</code>. Die Implementierung wird über die ZID der Funktion definiert. Das gilt auch für die Argumente der Funktion. Im Fall der Funktion <code>Z30000</code> mit ihren beiden Argumenten sollte die Funktionsvorlage also so aussehen: <syntaxhighlight lang="javascript"> function Z30000( Z30000K1, Z30000K2 ) { } </syntaxhighlight> Wir wissen, dass die Argumente (<code>Z30000K1</code> und <code>Z30000K2</code>) Zeichenketten sind, daher können wir sie in JavaScript wie native Zeichenketten behandeln. Die Funktion soll außerdem eine Zeichenkette zurückgeben. Um die Funktion zu vervollständigen, kannst du eine Zeile hinzufügen, die die Eingabezeichenketten verkettet, etwa so: <syntaxhighlight lang="javascript"> function Z30000( Z30000K1, Z30000K2 ) { return Z30000K1 + " " + Z30000K2; } </syntaxhighlight> Wenn du Tests wie im Abschnitt [[#Practice Test-Driven Development|TDD]] oben empfohlen hast, klicke auf den kreisförmigen Pfeil im Testbereich und prüfe, ob deine Implementierung alle Tests besteht. Denke daran, dass die Laufzeit keinen Status hat. Gehe nicht von Werten für globale oder statische Variablen aus. Wenn du weitere Fragen dazu hast, was du in JavaScript tun kannst und was nicht, frage auf [[Wikifunctions:JavaScript implementations]]. <span id="Calling_another_Wikifunctions_function"></span> === Aufruf einer anderen Wikifunctions-Funktion === Eine Code-Implementierung kann bestimmte andere Wikifunctions-Funktionen aufrufen, die Ausgabe des Aufrufs empfangen und diese Ausgabe für die weitere Verarbeitung nutzen. Wir bezeichnen solche Aufrufe als Callbacks. Derzeit können aus Sicherheits- und Leistungsgründen nur die folgenden integrierten Wikidata-Abruf- und Suchfunktionen auf diese Weise aufgerufen werden: {{Z|Z6820}}, {{Z|Z6821}}, {{Z|Z6822}}, {{Z|Z6824}}, {{Z|Z6825}}, {{Z|Z6826}}, {{Z|Z6830}} und {{Z|Z6831}}. Diese Funktionalität befindet sich in einem frühen Stadium der Einführung; wir hoffen, in Zukunft Aufrufe für eine größere Bandbreite an Funktionen zu ermöglichen. Betrachten wir eine JavaScript-Implementierung, die einen Callback enthält. Diese Implementierung ruft ein Datenobjekt von Wikidata ab, extrahiert die Bezeichnung dieses Datenobjektes in einer bestimmten Sprache und gibt die Bezeichnung als Zeichenkette zurück. Das abzurufende Datenobjekt wird über das Argument <code>Z400K1</code> angegeben, die Sprache über <code>Z400K2</code>. <syntaxhighlight lang="javascript"> function Z400( Z400K1, Z400K2 ) { const item = Wikifunctions.Call('Z6821', Z400K1); for (const label of item.Z6001K2.Z12K1) { if (label.Z11K1.Z60K1 === Z400K2.Z60K1) { return label.Z11K2; }} return 'NOT FOUND'; } </syntaxhighlight> Ein Callback wird durch den Aufruf von <code>Wikifunctions.Call</code> ausgelöst, wie im Beispiel gezeigt. Das erste Argument für <code>Wikifunctions.Call</code> ist stets die ZID der aufzurufenden Funktion – in diesem Fall {{Z|Z6821}}, welche ein einzelnes Argument entgegennimmt. Darauf folgen, durch Kommas getrennt, die an diese Funktion zu übergebenden Argumente. Hierbei handelt es sich bei dem Argument <code>Z400K1</code> um denselben Wert, der auch an <code>Z400</code> übergeben wurde. Dies ist ein gängiges Muster für die Argumentübergabe an Callbacks, jedoch können die Argumente auch mit dem Konstruktor <code>ZObject</code> (wie oben beschrieben) erstellt oder auf andere Weise bezogen werden. Der Wert von <code>Z400K1</code> wäre eine Instanz von {{Z|Z6091}}, die die QID des abzurufenden Datenobjekts enthält. Zeile 2 des Beispiels ruft <code>Z6821</code> auf, um dieses Datenobjekt von Wikidata abzurufen, und weist das resultierende ZObjekt der Konstante <code>item</code> zu. Der restliche Code durchläuft die Bezeichnungen des Datenobjekts, bis er diejenige findet, die der durch <code>Z400K2</code> angegebenen Sprache entspricht. Für das obige Beispiel haben wir der Einfachheit halber <code>Z6821</code> verwendet. Sofern die Implementierung jedoch nicht das gesamte Objekt benötigt, wird dringend empfohlen, zum Abrufen von Wikidata-Datenobjekten, die sehr groß sein können, <code>Z6820</code> zu verwenden. Obwohl der Aufruf von <code>Z6820</code> etwas komplexer ist, ermöglichen seine Parameter das Abrufen spezifischer Teile eines Wikidata-Datenobjekts. Dies kann die Leistung erheblich steigern und bestimmte Fehler vermeiden, da weniger Netzwerkbandbreite und Verarbeitungszeit erforderlich sind. (<code>Z6820</code> kann auch statt <code>Z6822</code>, <code>Z6824</code>, <code>Z6825</code> und <code>Z6826</code> verwendet werden, um ähnliche Vorteile bei der Bandweitenreduzierung zu erreichen.) Im Folgenden zeigen wir, wie <code>Z6820</code> in <code>Wikifunctions.Call</code> verwendet werden kann, um dasselbe Verhalten wie oben zu erzielen. Beachte, dass wir das zweite an <code>Z6820</code> übergebene Argument, <code>[labelsPart]</code>, nutzen, um festzulegen: “Gib nur die Bezeichnungen des Datenobjekts zurück”, und das dritte Argument, <code>[Z400K2]</code>, verwenden, um festzulegen: “Gib die Bezeichnungen nur in der angegebenen Sprache zurück”. (Dieses Argument würde auch für Aliasse und Beschreibungen gelten, sofern diese im Ergebnis enthalten wären.) <syntaxhighlight lang="javascript"> function Z400( Z400K1, Z400K2 ) { const labelsPart = new ZObject( new Map( [ ['Z6030K1', new ZReference('Z6033')] ] ), {Z1K1: 'Z9', Z9K1: 'Z6030'} ); const entities = Wikifunctions.Call( 'Z6820', [Z400K1], [labelsPart], [Z400K2], []); const item = entities.get(Z400K1.Z6091K1); const labels = item.Z6001K2.Z12K1; for (const label of labels) { if (label.Z11K1.Z60K1 === Z400K2.Z60K1) { return label.Z11K2; }} return 'NOT FOUND'; } </syntaxhighlight> Weitere zu beachtende Hinweise: * Obwohl Code-Implementierungen mittlerweile in der Lage sind, Wikidata-Entitäten abzurufen, wird empfohlen, dass sie keine ''vollständigen'' Entitäten zurückgeben. Dies liegt an den derzeitigen Beschränkungen hinsichtlich der Größe des von einer Code-Implementierung zurückgegebenen Wertes. Um eine vollständige, große Entität abzurufen und zurückzugeben, ist es besser, die Abruffunktion aus einer Komposition heraus aufzurufen. * Es kann nur ein Callback gleichzeitig ausgeführt werden. Aus Sicherheitsgründen ist es nicht möglich, die Nebenläufigkeitsfunktionen von JavaScript oder Python zu nutzen, um mehrere Callbacks parallel auszuführen. ** Beachte jedoch, dass du mithilfe von Z6820 mehrere Entitäten auf einmal abrufen kannst. * Derzeit gibt es eine Obergrenze von 3 MiB für die Größe von Wikidata-Inhalten, die über einen einzelnen Callback an eine Code-Implementierung zurückgegeben werden können. Dieselbe Obergrenze gilt für die Größe des Ergebnisses, das von einer Code-Implementierung zurückgegeben wird. <span id="Compositions"></span> == Kompositionen == Im diesem Abschnitt geben wir ein konkretes Beispiel, wie man eine Implementierung in Form einer Komposition erstellt. Angenommen, wir möchten eine Implementierung für eine Funktion erstellen, die zwei Eingabezeichenketten durch Einfügen eines Leerzeichens dazwischen kombiniert und das Ergebnis zurückgibt. Nehmen wir an, die ZID dieser Funktion ist <code>Z30000</code>. Normalerweise ist es sinnvoll, zunächst darüber nachzudenken, wie man vorhandene Funktionen kombinieren kann, um die gewünschte Ausgabe zu erzielen. Manchmal mag dies trivial sein und du kannst einfach mit dem Zusammenstellen und Funktionen fortfahren, aber in vielen Fällen lohnt es sich, die gewünschte Komposition zu notieren. Beispielsweise könnten wir für die angegebene Funktion die vorhandene Funktion {{Z|Z10000}} verwenden. Diese Funktion nimmt zwei Zeichenketten und erstellt daraus eine Zeichenkette. Aber wir müssen dazwischen ein Leerzeichen einfügen. Wir verbinden also zunächst ein Leerzeichen mit dem Ende der ersten Zeichenkette und verbinden dann die zweite Zeichenfolge mit dem Ergebnis dieser ersten Verbindung. Unsere Komposition könnte also so notiert werden: <syntaxhighlight lang="prolog"> join_strings( join_strings( Z30000K1, " " ), Z30000K2 ) </syntaxhighlight> Es gibt mehrere Möglichkeiten, eine Komposition zu schreiben: Beachte, dass dasselbe auch auf folgende Weise erreicht werden kann: <syntaxhighlight lang="prolog"> join_strings( Z30000K1, join_strings( " ", Z30000K2 ) ) </syntaxhighlight> Eine alternative Implementierung könnte auch die vorhandene Funktion {{Z|Z15175}} verwenden, sodass deine Komposition wie folgt aussehen könnte: <syntaxhighlight lang="prolog"> join_with_separator( Z30000K1, Z30000K2, " " ) </syntaxhighlight> Wie du siehst, gibt es mehrere Möglichkeiten, dies zu erreichen. Nimm dir also Zeit und erkunde die vorhandenen Funktionen, die im {{ll|Wikifunctions:Catalogue}} verfügbar sind. Versuchen wir, das zweite Beispiel zu erstellen, <code>join_strings(Z30000K1, join_strings(" ", Z30000K2))</code>. Um dies zu erstellen: # Um eine Implementierung hinzuzufügen, klicke auf der Funktionsseite in der Tabelle "Implementierungen" auf die Schaltfläche "+". # Stelle sicher, dass die Option "Komposition" unter "Implementierung" ausgewählt ist. # Klicke auf das Symbol "›" oder auf den Link "Funktion auswählen", um die Funktionsdetails anzuzeigen. # Suche unter "Funktion" nach dem Namen der äußersten Funktion, die du verwenden möchtest, in diesem Beispiel "verbinde Zeichenketten". Wähle anschließend die gewünschte Funktion aus der Dropdown-Liste aus. # Du siehst zwei neue Felder, eines für jedes der Argumente, die für die ausgewählte Funktion benötigt werden. # Als erstes Argument möchten wir den ersten Eingabewert für unsere Funktion auswählen: ## Klicke neben "erste Zeichenkette" auf die Schaltfläche "…" und wähle "Argumentreferenz" aus. ## Unter "Schlüssel-ID" kannst du nun die erste Zeichenkette deiner Funktion aus dem Dropdown-Menü auswählen, das alle verfügbaren Eingaben enthält. # Für das zweite Argument möchten wir das Ergebnis eines weiteren Aufrufs von "verbinde Zeichenketten" verwenden: ## Klicke neben "zweite Zeichenkette" auf die Schaltfläche "…" und wähle "Funktionsaufruf" aus. ## Suche unter "Funktion" nach der Funktion, die du aufrufen möchtest und wähle sie aus, nämlich "verbinde Zeichenketten". ## Konfiguriere die "erste Zeichenkette" für diesen inneren Funktionsaufruf, indem du einfach ein Leerzeichen in das Textfeld eingibst, und konfiguriere die "zweite Zeichenkette" wie in Schritt 6: Ändere sie mit der Schaltfläche "…" in "Argumentreferenz" und wähle dann das zweite Argument in der Dropdown-Liste aus. Deine Komposition ist nun fertig! Du kannst die Details mithilfe der Pfeiltasten ein- und ausblenden, um dir einen Überblick zu verschaffen. Falls du bereits Tests wie im Abschnitt [[#Practice Test-Driven Development|TDD]] oben empfohlen implementiert hast, klicke im Testbereich auf den kreisförmigen Pfeil und prüfe, ob deine Implementierung die Tests besteht. Sobald deine Komposition die Tests bestanden hat, kannst du sie veröffentlichen. [[File:Composition implementation expanded.png|frame|center|alt=Eine Wikifunctions-Kompositionsimplementierung in ihrer erweiterten Ansicht|Eine Wikifunctions-Kompositionsimplementierung in ihrer erweiterten Ansicht]] [[File:Composition implementation collapsed.png|frame|center|alt=Eine Wikifunctions-Kompositionsimplementierung in ihrer reduzierten Ansicht|Eine Wikifunctions-Kompositionsimplementierung in ihrer reduzierten Ansicht]] <span id="Wikifunctions_error_handling"></span> == Fehlerbehandlung auf Wikifunctions == Als Ersteller einer Wikifunctions-Funktion möchtest du möglicherweise den Benutzer warnen, der deine Funktion aufruft, wenn im Code ein Fehler auftritt oder seine Eingaben bestimmte Kriterien nicht erfüllen. Wenn deine Funktion beispielsweise eine Zeichenkette mit einem Namen erwartet, solltest du prüfen, ob der Name nicht leer ist, und gegebenenfalls eine verständliche Fehlermeldung anzeigen. Hierfür kannst du <code>Wikifunctions.Error()</code> in deinen Code-Implementierungen oder die Funktion {{Z|Z851}} in deinen Kompositionen verwenden. In diesem Abschnitt erfährst du: * Wie man Fehler sowohl aus Code- als auch aus Kompositions-Implementierungen auslöst, * wie man Tests für Fehlerfälle schreibt, und * wie man Fehler abfängt und behandelt, die von Funktionen ausgelöst werden, die man in seinen Kompositionen verwendet. <span id="Throwing_errors_from_code_implementations"></span> === Fehler aus Code-Implementierungen auslösen === Sowohl beim Schreiben von JavaScript- als auch von Python-Code kannst du <code>Wikifunctions.Error()</code> nutzen, um die Ausführung mit einem gewünschten Fehler zu beenden. <code>Wikifunctions.Error()</code> hat zwei Parameter: # Fehlertyp: Eine Zeichenkette, die die ZID des Fehlertyps enthält, den du zurückgeben möchtest. # Fehlerargumente: Eine Liste von Zeichenkettenargumenten zur Erstellung des Fehlers. Gehen wir sie der Reihe nach durch: <span id="Error_type"></span> ==== Fehlertyp ==== Ein Fehlertyp ist ein Objekt, das eine Art von Fehler beschreibt, der im System auftreten kann. Es gibt eine Reihe vordefinierter Fehlertypen, du kannst aber auch eigene Fehlertypen erstellen, die besser zu deinem Anwendungsfall passen. Bei der Verwendung von Fehlern empfiehlt es sich, die verfügbaren Fehlertypen zu durchsuchen, die sich in [[Special:ListObjectsByType/Z50|dieser Liste]] finden. Falls keine passenden Fehler für deinen Fall vorhanden sind, erstelle einen neuen Fehler, indem du zur Erstellungsseite gehst und im Typauswahlfeld "Fehlertyp" auswählst. Lege anschließend die erforderlichen Felder fest: [[File:Error type.png|thumb|alt=Erstellung von Fehlertypen in Wikifunctions|Um einen neuen Fehlertyp (Z50) zu erstellen, bearbeite die Bezeichnung und füge die erforderlichen Schlüssel hinzu.]] * '''Bezeichnung''' – Dies ist der Haupttitel des Fehlers, der eine kurze, aber aussagekräftige Meldung enthalten sollte. Lege die Fehlerbezeichnung im rechten Feld mit dem Titel "Info" fest. * '''Schlüssel''' – Schlüssel enthalten zusätzliche Informationen zur Fehlerursache. Wenn beispielsweise eine Eingabe das falsche Format aufwies, möchtest du den Benutzer möglicherweise über den eingegebenen Inhalt informieren, wenn der Fehler auftritt. Um sie in deinen Implementierungen zu verwenden, müssen Schlüssel vom Zeichenketten sein. Um einen Schlüssel zu erstellen, klicke auf das Symbol "[+]" unterhalb von "Schlüssel", wähle unter "Werttyp" die Option "Zeichenkette" aus und füge eine aussagekräftige Bezeichnung hinzu, beispielsweise "tatsächlich Eingabe". Sobald du alle erforderlichen Schlüssel erstellt hast, kannst du deinen Fehlertyp veröffentlichen und die ID des neu erstellten Objekts speichern. * '''Fehlermeldung''' – Fehlertypen können ein mehrsprachiges Array von Fehlermeldungen enthalten, die mit HTML-Parametern versehen sind. Die Parameter werden als $1, $2 etc. angegeben, wobei die Ziffer dem Schlüssel des Fehlertyps entspricht. Beim Erstellen eines Fehlertyps mit dem Zeichenketten-Schlüssel "aktuelle Eingabe", kann die Fehlermeldung beispielsweise den Platzhalter "$1" verwenden, der zum Zeitpunkt der Fehlerausgabe durch den Wert des Schlüssels "aktuelle Eingabe" ersetzt wird. Um HTML-Meldungen hinzuzufügen, klicke unter "HTML-Fragmente" auf das Symbol "[+]", wähle eine Sprache aus und gib die HTML-Zeichenkette ein. <span id="Error_arguments"></span> ==== Fehlerargumente ==== Fehlerargumente entsprechen den Schlüsseln des Fehlertyps und sollten zusätzliche Informationen zum Verständnis des Fehlers liefern. Fehlerargumente sollten immer Zeichenketten sein. <span id="Using_Wikifunctions.Error()"></span> ==== Verwendung von Wikifunctions.Error() ==== Angenommen, du möchtest einen Fehler auslösen, wenn entweder deine erste oder deine zweite Eingabe leer ist. Du hast den Fehlertyp bereits erstellt und ihm wurde die ZID <code>Z30005</code> zugewiesen. Dein Fehlertyp hat zwei Zeichenketten-Schlüssel: * Eingabeschlüssel: Enthält den Schlüssel der fehlerhaften Eingabe * Eingabewert: Enthält den aktuellen Wert der fehlerhaften Eingabe Um einen Fehler in deiner JavaScript-Implementierung auszulösen, solltest du etwa Folgendes tun: <syntaxhighlight lang="javascript"> function Z30000( Z30000K1, Z30000K2 ) { if ( trim( Z30000K1 ) === '' ) { // Wenn die erste Eingabe leer ist, löse Fehler Z30005 aus // mit zwei Zeichenketten-Argumenten: [ erster Eingabe-Schlüssel, erster Eingabe-Wert ] Wikifunctions.Error( 'Z30005', [ "Z30000K1", Z30000K1 ] ) } if ( trim( Z30000K2 ) === '' ) { // Wenn die zweite Eingabe leer ist, löse Fehler Z30005 aus // mit zwei Zeichenketten-Argumenten: [ zweiter Eingabe-Schlüssel, zweiter Eingabe-Wert ] Wikifunctions.Error( 'Z30005', [ "Z30000K2", Z30000K2 ] ) } return Z30000K1 + " " + Z30000K2; } </syntaxhighlight> Um einen Fehler in deiner Python-Implementierung auszulösen, solltest du etwa Folgendes tun: <syntaxhighlight lang="python3"> def Z30000(Z30000K1, Z30000K2): if Z30000K1.strip() == "": # Wenn die erste Eingabe leer ist, löse Fehler Z30005 aus # mit zwei Zeichenketten-Argumenten: [ erster Eingabe-Schlüssel, erster Eingabe-Wert ] Wikifunctions.Error("Z30005", ["Z30000K1", Z30000K1]) if Z30000K2.strip() == "": # Wenn die zweite Eingabe leer ist, löse Fehler Z30005 aus # mit zwei Zeichenketten-Argumenten: [ erster Eingabe-Schlüssel, erster Eingabe-Wert ] Wikifunctions.Error("Z30005", ["Z30000K2", Z30000K2]) return Z30000K1 + " " + Z30000K2 </syntaxhighlight> Denke daran, dass der Aufruf von <code>Wikifunctions.Error()</code> die Ausführung beendet! <span id="Throwing_errors_from_compositions"></span> === Fehler aus Kompositionen auslösen === Wenn du eine Kompositionsimplementierung erstellst, kannst du einen Fehler auslösen, indem du die Spezialfunktion {{Z|Z851}} aufrufst. <span id="Throw_Error_function_(Z851)"></span> ==== Funktion Fehler auslösen (Z851) ==== Die Funktion {{Z|Z851}} ähnelt der Methode <code>Wikifunctions.Error()</code> und benötigt zwei Argumente: * '''Fehlertyp''' – Ein Verweis auf den Fehlertyp, den du auslösen möchtest * '''Fehlerparameter''' – Eine Liste mit den Argumenten zur Erstellung deines Fehlers, die ebenfalls Zeichenketten sein sollten. <span id="Using_Throw_Error"></span> ==== Verwendung von Fehler auslösen ==== Angenommen, du möchtest deine Komposition so ändern, dass sie zuerst prüft, ob die Argumente nicht leer sind, und einen Fehler ausgibt, wenn sie ein leeres Argument findet. Wenn dann keines der Argumente leer ist, wird die ursprüngliche Komposition ausgeführt, die wie folgt aussieht: <syntaxhighlight lang="prolog"> join_with_separator( Z30000K1, Z30000K2, " " ) </syntaxhighlight> Dazu musst du bedingte Pfade erstellen, für die du die Funktion {{Z|Z802}} verwenden kannst. Stell es dir folgendermaßen vor: * Wenn das erste Argument leer ist, soll ein Fehler für das erste Argument ausgelöst werden * Andernfalls wird mit der Überprüfung des zweiten Arguments fortgefahren * Wenn das zweite Argument leer ist, soll ein Fehler für das zweite Argument ausgelöst werden * Andernfalls wird der Erfolgspfad verfolgt und die verbundenen Zeichenketten mit dem Leerzeichen als Trennzeichen zurückgegeben Oder in funktionalem Pseudocode: <syntaxhighlight lang="prolog"> if ( is_empty_string( Z30000K1 ), throw_error( Z30005, [ "Z30000K1", Z30000K1 ] ), if( is_empty_string( Z30000K2 ), throw_error( Z30005, [ "Z30000K2", Z30000K2 ] ), join_with_separator( Z30000K1, Z30000K2, " " ) ) ) </syntaxhighlight> Lass uns das Schritt für Schritt erstellen: # Um eine Implementierung hinzuzufügen, klicke auf der Funktionsseite in der Tabelle "Implementierungen" auf die Schaltfläche "+". # Stelle sicher, dass die Option "Komposition" unter "Implementierung" ausgewählt ist. # Klicke auf das Symbol "›" oder auf den Link "Funktion auswählen", um die Funktionsdetails anzuzeigen. # Suche unter "Funktion" nach der äußersten Funktion, die du verwenden möchtest, in diesem Fall "wenn", und wähle sie aus. # Überprüfe die Gültigkeit des ersten Arguments: ## Klicke neben "Bedingung" auf die Schaltfläche "…" und wähle "Funktionsaufruf" aus ## Suche unter "Funktion" nach der Funktion "ist leere Zeichenkette" und wähle sie aus ## Klicke neben "Eingabe" auf die Schaltfläche "…" und wähle "Argumentreferenz" aus ## Wähle unter "Schlüssel-ID" die erste Eingabe aus (z. B. "erste Zeichenkette") ## Du kannst den Funktionsaufruf der "Bedingung" nun bei Bedarf ausblenden, indem du auf den Pfeil nach unten neben "Bedingung" klickst. Es sollte dann etwa Folgendes angezeigt werden: "f(x) ist leere Zeichenkette ( → erste Zeichenkette )" # Fehler auslösen, wenn die Bedingung wahr ist: ## Klicke neben "dann" auf die Schaltfläche "…" und wähle "Funktionsaufruf" aus ## Suche unter "Funktion" nach der Funktion "Fehler auslösen" und wähle sie aus ## Suche unter "Fehlertyp" nach deinem Fehlertyp (du kannst die Fehler-ID direkt eingeben, wenn du sie kennst, z. B. Z30005) und wähle ihn aus ## Füge unter "Fehlerparameter" zwei Elemente hinzu, indem du auf die Schaltfläche "+" klickst ## Lege für "Objekt 1" (fehlerhafter Argumentschlüssel) den Typ auf "Zeichenkette" fest und trage die Argumentkennung ein (z. B. "erste Eingabe" oder "Z30000K1") ## Klicke für "Objekt 2" (fehlerhafter Argumentwert) auf die "…" neben "Objekt 2" und wähle "Argumentreferenz" aus ## Wähle unter "Schlüssel-ID" die erste Eingabe aus (z. B. "erste Zeichenkette") ## Du kannst den Funktionsaufruf "dann" nun bei Bedarf ausblenden, indem du auf den Pfeil nach unten neben "dann" klickst. Es sollte dann etwa Folgendes angezeigt werden: "f(x) Fehler auslösen ( ungültiges Format, typisierte Liste ( Objekt, "erste Eingabe", → erste Zeichenkette ) )" # Prüfe das zweite Argument, wenn das erste korrekt war: ## Klicke neben "sonst" auf die Schaltfläche "…" und wähle "Funktionsaufruf" aus ## Suche unter "Funktion" nach der Funktion "wenn" und wähle sie aus ## Richte eine "Bedingung" ein, um die Gültigkeit des zweiten Arguments zu überprüfen, indem du das gleiche Verfahren wie in Schritt 5 beschrieben anwendest. ## Richte "dann" so ein, dass beim zweiten Argument ein Fehler ausgelöst wird, indem du das gleiche Verfahren wie in Schritt 6 beschrieben anwendest. # Richte schließlich den Erfolgspfad ein: ## Klicke neben dem verschachtelten "sonst" auf die Schaltfläche "…" und wähle "Funktionsaufruf" aus ## Suche unter "Funktion" nach der gewünschten Funktion, in diesem Fall "vereinige zwei Zeichenketten mit Trennzeichen", und wähle sie aus ## Klicke neben "erste Zeichenkette" auf die Schaltfläche "…" und setze sie auf "Argumentreferenz", wähle anschließend "erste Zeichenkette" aus ## Klicke neben "zweite Zeichenkette" auf die Schaltfläche "…" und setze sie auf "Argumentreferenz", wähle anschließend "zweite Zeichenkette" aus ## Füge unter "Trennzeichen" ein Leerzeichen in das Textfeld ein Der resultierende Funktionsaufruf sollte folgendermaßen aussehen: [[File:Throw error expanded.png|frame|center|alt=Wikifunctions-Komposition mit der Funktion Fehler auslösen|Wikifunctions-Komposition mit der Funktion Fehler auslösen]] [[File:Throw error collapsed.png|frame|center|alt=Wikifunctions-Komposition mit der Funktion Fehler auslösen in ihrer reduzierten Ansicht|Wikifunctions-Komposition mit der Funktion Fehler auslösen in ihrer reduzierten Ansicht]] <span id="Handling_errors_in_compositions"></span> === Fehlerbehandlung in Kompositionen === Es ist zwar nützlich, Funktionen das Auslösen erwarteter Fehler zu ermöglichen, aber es ist entscheidend, Fehler in den eigenen Kompositionen behandeln zu können, um diese Funktionen sicher verwenden zu können. Angenommen, du möchtest eine neue Funktion "vollständiger Name einer Person" erstellen – wir bezeichnen sie mit der ZID <code>Z30010</code>. Diese Funktion soll den vollständigen Namen einer Person anhand ihres Vor- und Nachnamens zurückgeben. Ist jedoch eines der beiden Felder leer, soll sie stattdessen den Text "Unbekannt" zurückgeben. Du könntest eine Komposition erstellen, indem du unsere Beispielfunktion "verbinde zwei Zeichenketten mit Leerzeichen" oder <code>Z30000</code> verwendest, um den Namen zu generieren. Wenn eine der Eingaben leer ist, weißt du, dass <code>Z30000</code> einen Fehler vom Typ <code>Z30005</code> auslöst. Mithilfe der Funktion {{Z|Z850}} als Wrapper kannst du die Verbindungsoperation ausführen und einen möglichen Fehler abfangen, indem du einfach "Unbekannt" zurückgibst, wenn er auftritt. <span id="Try-Catch_function_(Z850)"></span> ==== Try-Catch-Funktion (Z850) ==== Die Funktion {{Z|Z850}} ist eine integrierte Funktion mit der ZID <code>Z850</code> und benötigt drei Argumente: * '''Funktionsaufruf''' – Der erste Funktionsaufruf, der ausgeführt werden soll. Wenn kein Fehler auftritt, ist die Antwort das Ergebnis dieses Funktionsaufrufs. * '''Fehlertyp''' – Ein Fehlertyp, der abgefangen werden soll, falls er während der Ausführung des ersten Funktionsaufrufs auftritt. * '''Fehlerhandler''' – Ein Funktionsaufruf, der ausgeführt wird, falls der oben genannte Fehler während der Ausführung des ursprünglichen Funktionsaufrufs auftritt. In diesem Fall wird das Ergebnis der Fehlerbehandlung zurückgegeben. <span id="Using_Try-Catch"></span> ==== Verwendung der Try-Catch-Funktion ==== Sobald wir alle Funktionen für unsere Komposition haben, können wir sie folgendermaßen gestalten: <syntaxhighlight lang="prolog"> try_catch( join_with_space( Z30010K1, Z30010K2 ), Z30005, echo( "Unknown" ) ) </syntaxhighlight> Das bedeutet: * Die Funktion "verbinde zwei Zeichenketten mit Leerzeichen" wird mit den beiden Eingaben ausprobiert und wenn alles erfolgreich verläuft, wird das Ergebnis dieser Funktion zurückgegeben * Wenn eine der Eingaben leer ist, löst "verbinde zwei Zeichenketten mit Leerzeichen" einen Fehler vom Typ <code>Z30005</code> aus * Unsere {{Z|Z850}} erkennt dann diesen Fehler und führt die Funktion {{Z|Z801}} aus, die "Unbekannt" zurückgibt Lass uns das Schritt für Schritt erstellen: # Um eine Implementierung hinzuzufügen, klicke auf der Funktionsseite in der Tabelle "Implementierungen" auf die Schaltfläche "+". # Stelle sicher, dass die Option "Komposition" unter "Implementierung" ausgewählt ist. # Klicke auf das Symbol "›" oder auf den Link "Funktion auswählen", um die Funktionsdetails anzuzeigen. # Suche unter "Funktion" nach der äußersten Funktion, die du verwenden möchtest, in diesem Fall "Try-Catch-Funktion", und wähle sie aus. # Richte den Hauptfunktionsaufruf ein: ## Klicke unterhalb des Feldes, in dem die "Try-Catch-Funktion" ausgewählt ist, neben dem Schlüssel "Funktionsaufruf" auf die Schaltfläche "…" und wähle "Funktionsaufruf" aus ## Suche unter "Funktion" nach der Funktion "verbinde zwei Zeichenketten mit Leerzeichen" und wähle sie aus ## Klicke neben "erste Zeichenkette" auf die Schaltfläche "…" und wähle "Argumentreferenz" aus, wähle anschließend das Argument "erster Name" aus der Dropdown-Liste aus. ## Klicke neben "zweite Zeichenkette" auf die Schaltfläche "…" und wähle "Argumentreferenz" aus, wähle anschließend das Argument "zweiter Name" aus der Dropdown-Liste aus. # Wähle den abzufangenden Fehler aus: ## Suche unter "Fehlertyp" nach "ungültige Zeichenkette" und wähle es aus – du kannst direkt nach der ZID <code>Z30005</code> suchen # Richte den Funktionsaufruf für den Fehlerhandler ein: ## Klicke neben "Fehlerhandler" auf die Schaltfläche "…" und wähle "Funktionsaufruf" aus ## Suche unter "Funktion" nach der Funktion "Echo" und wähle sie aus ## Suche unter "Eingabe" und "Typ" den Typ "Zeichenkette" und wähle ihn aus ## Gib nun unter "Eingabe" im Textfeld "Unbekannt" ein Die resultierende Funktion sollte folgendermaßen aussehen: [[File:Try catch expanded.png|frame|center|alt=Wikifunctions-Komposition mit der Try-Catch-Funktion in ihrer erweiterten Ansicht|Wikifunctions-Komposition mit der Try-Catch-Funktion in ihrer erweiterten Ansicht]] [[File:Try catch collapsed.png|frame|center|alt=Wikifunctions-Komposition mit der Try-Catch-Funktion in ihrer reduzierten Ansicht|Wikifunctions-Komposition mit der Try-Catch-Funktion in ihrer reduzierten Ansicht]] <span id="Testing_your_failure_use_cases"></span> === Testen deiner Fehlerfälle === Wie bereits im Abschnitt über die [[#Practice Test-Driven Development|Anwendung von TDD]] erläutert, ist es wichtig, nicht nur die häufigsten Ausführungspfade, sondern auch mögliche Randfälle zu testen. Ebenso wichtig ist es, das Fehlerverhalten zu prüfen. In diesem Abschnitt stellen wir dir die notwendigen Werkzeuge vor, um zu testen, ob deine Funktion bei bestimmten Eingaben fehlschlägt und ob die Fehlermeldung den Erwartungen entspricht. Dazu benötigst du zwei weitere Systemfunktionen: <span id="Is_error_type_(Z852)"></span> ==== ist Fehlertyp (Z852) ==== Die Funktion {{Z|Z852}} ist eine integrierte Funktion mit der ZID <code>Z852</code> und benötigt zwei Argumente: * '''Fehler''' – Ein {{Z|Z5}}-Objekt, das bei einem fehlgeschlagenen Aufruf ausgelöst werden kann. Eine Fehlerinstanz hat einen Typ und einen Wert. * '''Fehlertyp''' – Ein Verweis auf einen {{Z|Z50}}, der mit dem als erstes Argument übergebenen Fehlertyp verglichen wird. Ist dies der Fall, gibt die Funktion wahr zurück. <span id="Get_error_thrown_by_function_call_(Z853)"></span> ==== Fehler erhalten, ausgelöst durch Funktionsaufruf (Z853) ==== Die Funktion {{Z|Z853}} ist eine integrierte Funktion mit der ZID <code>Z853</code> und benötigt ein Argument: * '''Funktionsaufruf''' – Ein Funktionsaufruf, der entweder einen erfolgreichen Wert beliebigen Typs zurückgibt oder einen Fehler auslöst. Diese Funktion gibt ein {{Z|Z882}} zurück, wobei an erster Stelle ein {{Z|Z40}} und an zweiter Stelle ein {{Z|Z1}} steht: * Wenn der Funktionsaufruf erfolgreich ist und somit keinen Fehler auslöst, enthält das zurückgegebene Paar an erster Stelle falsch und an zweiter Stelle leer. * Wenn der Funktionsaufruf einen Fehler auslöst, enthält das zurückgegebene Paar an erster Stelle wahr und an zweiter Stelle den abgefangenen Fehler. Um diese Funktion in deinen Kompositionen zu verwenden, musst du möglicherweise die zusätzlichen Funktionen verwenden: * {{Z|Z821}} und * {{Z|Z822}} <span id="Testing_errors"></span> ==== Fehler testen ==== Angenommen, unsere Zielfunktion "verbinde zwei Zeichenketten mit Leerzeichen" oder <code>Z30000</code> löst einen Fehler vom Typ <code>Z30005</code> aus, und wir möchten dieses Verhalten testen. Dazu müssen wir Folgendes tun: * Einen fehlgeschlagenen Funktionsaufruf auslösen * Den Fehler mit der Funktion {{Z|Z853}} erhalten * Mit {{Z|Z852}} prüfen, ob der Fehler den richtigen Typ hat Tests haben zwei Felder: * '''Aufruf''' – Ein Funktionsaufruf, der mit den zu testenden Eingaben eine Ausgabe erzeugt. Dieser Aufruf gibt einen Wert zurück. * '''Ergebnisprüfung''' – Ein Funktionsaufruf, der überprüft, ob der vom vorherigen Aufruf zurückgegebene Wert dem erwarteten Wert entspricht. Das erste Argument dieses Funktionsaufrufs wird automatisch mit dem Rückgabewert des ersten Aufrufs belegt. Für eine Schritt-für-Schritt-Anleitung zum Erstellen von Tests siehe {{ll|Wikifunctions:Introduction#Create_tests}}. In unserem Beispiel können wir es so strukturieren — aber das ist nicht die einzige Möglichkeit! Der Aufruf, der ein {{Z|Z5}}-Objekt zurückgibt: <syntaxhighlight lang="prolog"> error = get_second_element_of_typed_list( get_error_thrown_by( join_strings_by_whitespace( "", "not empty" ) ) ) </syntaxhighlight> Und die Ergebnisprüfung, die das {{Z|Z5}}-Objekt als erstes Argument verwendet: <syntaxhighlight lang="prolog"> is_error_type( error, Z30005 ) </syntaxhighlight> Lass uns das Schritt für Schritt tun: # Um einen Test hinzuzufügen, klicke auf der Funktionsseite in der Tabelle "Tests" auf die Schaltfläche "+". Die Felder "Aufruf" und "Ergebnisprüfung" enthalten bereits vordefinierte Funktionen. Um die Fehler zu testen, müssen wir diese jedoch ändern. # Als Erstes richten wir den Aufruf ein: ## Klicke unter "Aufruf" auf die Schaltfläche "›", um den Funktionsaufruf zu erweitern. ## Bearbeite das Feld unter "Funktion" und suche die Funktion "erhalte zweites Element eines typisierten Paars" und wähle sie aus ## Klicke anschließend neben "typisiertes Paar" auf die Schaltfläche "…" und wähle "Funktionsaufruf" aus ## Suche unter "Funktion" nach der Funktion "Fehler erhalten, ausgelöst durch Funktionsaufruf" und wähle sie aus ## Klicke neben "Funktionsaufruf" auf die Schaltfläche "…" und wähle "Funktionsaufruf" aus ## Suche unter "Funktion" nach der Funktion "verbinde zwei Zeichenketten mit Leerzeichen" (oder nach ZID <code>Z30000</code>) und wähle sie aus ## Lege nun die Eingaben so fest, dass ein Fehler auftritt: Mindestens eine von ihnen muss leer sein. ## Du kannst jetzt deinen "Aufruf" durch erneutes Klicken auf den Pfeil nach unten wieder ausblenden, wenn du möchtest! # Als Nächstes richten wir die Ergebnisprüfung ein: ## Klicke unter "Ergebnisprüfung" auf die Schaltfläche "›", um den Funktionsaufruf zu erweitern. ## Bearbeite das Feld unter "Funktion" und suche die Funktion "ist Fehlertyp" und wähle sie aus ## Du wirst nun nur noch aufgefordert, das zweite Argument zu konfigurieren. Suche unter "Fehlertyp" nach deinem Fehlertyp <code>Z30005</code> und wähle ihn aus. # Und du bist fertig! Du kannst jetzt auf den kreisförmigen Pfeil im Feld "Implementierungen" klicken und solltest grüne Häkchen sehen. Wenn alles geklappt hat, kannst du deinen Test jetzt speichern. Er sollte folgendermaßen aussehen: [[File:Get error expanded.png|frame|center|alt=Testen eines Fehlers mit den Funktionen Fehler erhalten und ist Fehlertyp in ihrer erweiterten Ansicht|Testen eines Fehlers mit den Funktionen Fehler erhalten und ist Fehlertyp in ihrer erweiterten Ansicht]] [[File:Get error collapsed.png|frame|center|alt=Testen eines Fehlers mit den Funktionen Fehler erhalten und ist Fehlertyp in ihrer reduzierten Ansicht|Testen eines Fehlers mit den Funktionen Fehler erhalten und ist Fehlertyp in ihrer reduzierten Ansicht]] <span id="Creating_actionable_error_messages"></span> === Erstellung handlungsorientierter Fehlermeldungen === Wie oben beschrieben, verfügen Fehlertypen über einen optionalen Schlüssel <code>Z50K3</code>, der eine mehrsprachige Liste von HTML-Zeichenketten enthält. Bei der Darstellung von Informationen zu einem Fehler können die im Fehlertyp hinterlegten Meldungen dazu beitragen, eine klare, präzise, ​​informative, übersetzbare und handlungsorientierte Fehlermeldung zu erstellen. Zu diesem Zweck können Fehlermeldungen Parameter wie <code>$1</code>, <code>$2</code> etc. enthalten, wobei die Ziffer dem Argument des Fehlertyps und dessen Wert in der Fehlerinstanz entspricht. Diese Fehlermeldungen werden in Wikifunctions nach der Ausführung eines Funktionsaufrufs im Dialogfenster "Details" angezeigt. Darüber hinaus werden diese Fehlermeldungen auch in anderen Client-Schnittstellen, wie der Abstrakten Wikipedia, ausgegeben, um den Autoren von Abstrakten Inhalten eine bessere Orientierung zu bieten. [[File:Wikifunctions actionable error message example in the Details dialog.png|thumb|Die Fehlermeldung wird unter Verwendung der HTML-Meldung des Fehlertyps und der Werte der Fehlerargumente generiert.]] [[File:Wikifunctions actionable error message example in Abstract Wikipedia.png|thumb|Sofern verfügbar, wird die HTML-Fehlermeldung im Vorschau-Bereich der Abstrakten Wikipedia angezeigt.]] Lass uns anhand eines konkreten Beispiels die Vorteile von HTML-Fehlermeldungen nachvollziehen: Die Funktion {{Z|Z37847}} gibt die erste Lexem-Referenz zurück, basierend auf einer Wikidata-Datenobjekt-Referenz und einer Sprache. Falls für diese Kombination aus Datenobjekt und Sprache kein Lexem existiert, löst sie einen Fehler vom Typ {{Z|Z28248}} aus, der drei Schlüssel hat: * '''Z28248K1''' ist die QID des angegebenen Wikidata-Datenobjekts * <span lang="en" dir="ltr" class="mw-content-ltr">'''Z28248K2''' is the connecting property, in this case <code>P5137/item for this sense</code></span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Z28248K3''' is the language code</span> <div lang="en" dir="ltr" class="mw-content-ltr"> When calling this function for a Wikidata lexeme that doesn't exist, the call will throw an error instance like this: </div> <syntaxhighlight lang="json" highlight="10,12"> { "Z1K1": "Z5", "Z5K1": "Z28248", "Z5K2": { "Z1K1": { "Z1K1": "Z7", "Z7K1": "Z885", "Z885K1": "Z28248" }, "Z28248K1": "Q319", "Z28248K2": "P5137", "Z28248K3": "ast" } } </syntaxhighlight> <div lang="en" dir="ltr" class="mw-content-ltr"> While the error type label indicates: <code>No matching lexeme for item in language</code>, a better error message should indicate: </div> * <span lang="en" dir="ltr" class="mw-content-ltr">which is the failing item,</span> * <span lang="en" dir="ltr" class="mw-content-ltr">which is the language missing, and</span> * <span lang="en" dir="ltr" class="mw-content-ltr">what are the possible ways to fix it.</span> <div lang="en" dir="ltr" class="mw-content-ltr"> The error message <code>Z50K3</code> field can provide this functionality. Whenever an Error Type has an error message for the user language (or any of its fallbacks), the error message shown will be rendered by: </div> # <span lang="en" dir="ltr" class="mw-content-ltr">First, replacing the message parameters with the values of the keys. In our example, any <code>$1</code> will be replaced with the value of <code>Z28248K1</code> ("Q319"), <code>$2</code> with "P5137", and <code>$3</code> with "ast",</span> # <span lang="en" dir="ltr" class="mw-content-ltr">Last, sanitizing and rendering the HTML message.</span> <div lang="en" dir="ltr" class="mw-content-ltr"> So a HTML message like: </div> <syntaxhighlight lang="html"> There is no matching lexeme for the item $1 in "$3".<br> <a href="http://wikidata.org/wiki/$1">Edit in Wikidata</a> </syntaxhighlight> <div lang="en" dir="ltr" class="mw-content-ltr"> Will become: </div> : There is no matching lexeme for the item Q319 in "ast" : [[d:Q319|Edit in Wikidata]] <span id="Debugging_your_implementations"></span> == Debuggen deiner Implementierungen == Manchmal läuft etwas schief. Eine Funktion verhält sich möglicherweise anders als erwartet oder ein Wert erscheint merkwürdig. Implementierungen können mitunter sehr komplex sein, und da sie in einer Spielwiesen-Umgebung ausgeführt werden, kann die Fehlersuche extrem schwierig erscheinen. Um das Verständnis der Vorgänge innerhalb eines Funktionsaufrufs zu erleichtern, bietet Wikifunctions einige Debugging-Werkzeuge. Diese Werkzeuge verändern nicht das Ergebnis einer Funktion, sondern fügen den zurückgegebenen Metadaten zusätzliche Informationen hinzu, die du nach dem Ausführen der Funktion einsehen kannst. Du kannst <code>Wikifunctions.Debug()</code> in deinen Code-Implementierungen oder die Funktion {{Z|Z854}} in deinen Kompositionen verwenden. In diesem Abschnitt erfährst du: * Wie man Debug-Meldungen sowohl aus Code- als auch aus Kompositions-Implementierungen hinzufügt, * Wie man die Metadaten manuell oder über die Benutzeroberfläche untersucht, um diese Protokolle einzusehen. <span id="Debugging_your_code_implementations"></span> === Debuggen deiner Code-Implementierungen === Beim Schreiben von Code, sowohl in JavaScript als auch in Python3, kannst du <code>Wikifunctions.Debug()</code> verwenden, um eine Meldung zu deinem Debug-Protokoll hinzuzufügen und die Ausführung fortzusetzen. {{phab|T441028}} <code>Wikifunctions.Debug()</code> hat einen Parameter, der üblicherweise als Zeichenkette erwartet wird. Jedes andere als Parameter übergebene Objekt wird jedoch direkt in eine Zeichenkette umgewandelt. Um zu unseren Code-Implementierungen für unsere Beispielfunktion "verbinde zwei Zeichenketten mit Leerzeichen" Debug-Protokolle hinzuzufügen, können wir dies in JavaScript tun: <syntaxhighlight lang="JavaScript"> function Z30000( Z30000K1, Z30000K2 ) { if ( trim( Z30000K1 ) === '' ) { Wikifunctions.Debug( `first input is empty "${ Z30000K1 }"` ); Wikifunctions.Error( 'Z30005', [ "Z30000K1", Z30000K1 ] ) } if ( trim( Z30000K2 ) === '' ) { Wikifunctions.Debug( `second input is empty "${ Z30000K2 }"` ); Wikifunctions.Error( 'Z30005', [ "Z30000K2", Z30000K2 ] ) } Wikifunctions.Debug( "both inputs are fine" ); return Z30000K1 + " " + Z30000K2; } </syntaxhighlight> Und das Gleiche in deiner Python3-Implementierung: <syntaxhighlight lang="python3"> def Z30000(Z30000K1, Z30000K2): if Z30000K1.strip() == "": Wikifunctions.Debug( 'first input is empty "'+Z30000K1+'"' ) Wikifunctions.Error("Z30005", ["Z30000K1", Z30000K1]) if Z30000K2.strip() == "": Wikifunctions.Debug( 'second input is empty "'+Z30000K2+'"' ) Wikifunctions.Error("Z30005", ["Z30000K2", Z30000K2]) Wikifunctions.Debug( 'both inputs are fine' ) return Z30000K1 + " " + Z30000K2 </syntaxhighlight> Auf diese Weise fügen wir deinen Debug-Protokollen in jedem Fall eine Meldung hinzu: * Schlägt der Funktionsaufruf bei der Überprüfung der ersten oder zweiten Eingabe fehl, ist das Ergebnis der Ausführung ein Fehler, enthält aber einen informativen Protokolleintrag darüber, welcher Zweig den Fehler verursacht hat. * Wenn der Funktionsaufruf erfolgreich ist — weil beide Eingaben gültig sind — gibt der Funktionsaufruf die verbundene Zeichenkette zurück, aber die zurückgegebenen Metadaten enthalten auch ein Debug-Protokoll. <span id="Debugging_your_compositions"></span> === Debuggen deiner Kompositionen === Zur Unterstützung des Debuggens von Kompositionen stellt Wikifunctions die integrierte Funktion {{Z|Z854}} bereit. Mit dieser Funktion kannst du Debug-Meldungen an die Ausführung jedes Funktionsaufrufs anhängen, der die endgültige Ausgabe erzeugt. Die während der Auswertung gesammelten Debug-Protokolle werden als Teil der Ausführungsmetadaten unter dem Schlüssel <code>executorDebugLogs</code> zurückgegeben. <span id="Add_debug_log_to_function_call_(Z854)"></span> ==== Debug-Protokoll zu Funktionsaufruf hinzufügen (Z854) ==== Die Funktion {{Z|Z854}} ist eine integrierte Funktion mit der ZID <code>Z854</code> und benötigt zwei Argumente: * '''Funktionsaufruf''' – Jede Komposition, die du ausführen möchtest. * '''Debug-Protokoll''' – Eine Zeichenketten-Meldung, die protokolliert wird, wenn der angegebene Funktionsaufruf ausgewertet wird. Wenn der umschlossene Funktionsaufruf ausgeführt wird, wird die bereitgestellte Meldung zu den Ausführungsprotokollen hinzugefügt. Wird dieser Funktionsaufruf nicht ausgeführt oder ist seine Ausführung nicht Teil der endgültigen Ausgabe, erscheint sein Debug-Protokoll nicht in den Metadaten des Endergebnisses. Diese integrierte Funktion ist besonders nützlich, wenn du beobachten möchtest: * Welcher Zweig einer Bedingung ausgeführt wurde, oder * Die Reihenfolge der Auswertung in einer Komposition. <span id="Using_Add_debug_log_to_function_call"></span> ==== Verwendung von Debug-Protokoll zu Funktionsaufruf hinzufügen ==== Angenommen, du möchtest zu unserer Beispielfunktion "verbinde zwei Zeichenketten mit Leerzeichen" oder <code>Z30000</code> Debug-Protokolle hinzufügen, sodass für die verschiedenen möglichen Ergebnisse unterschiedliche Meldungen angezeigt werden. Du könntest unsere integrierte Debugging-Funktion wie folgt verwenden: <syntaxhighlight lang="prolog"> if ( is_empty_string( Z30000K1 ), add_debug_log( throw_error( Z30005, ... ), 'failed on first input' ) if( is_empty_string( Z30000K2 ), add_debug_log( throw_error( Z30005, ... ), 'failed on second input' ), add_debug_log( join_with_separator( Z30000K1, Z30000K2, " " ), 'both inputs are ok!' ) ) ) </syntaxhighlight> Dies bewirkt Folgendes: * Wird die Funktion mit einer leeren ersten Eingabe aufgerufen, gibt sie eine Fehlermeldung zurück und die Metadaten enthalten einen Eintrag <code>executorDebugLogs</code> mit dem Protokoll-Eintrag "Fehler bei erster Eingabe". * Wird der Aufruf mit einer leeren zweiten Eingabe aufgerufen, schlägt der Aufruf ebenfalls fehl, die protokollierte Meldung lautet jedoch "Fehler bei zweiter Eingabe". * Bei Aufruf mit gültigen Eingaben gibt die Funktion eine erfolgreiche Antwort zurück und zusätzlich enthalten die Metadaten im Schlüssel <code>executorDebugLogs</code> "Beide Eingaben sind in Ordnung". So würde diese Komposition aussehen: [[File:Add debug log expanded.png|frame|center|alt=Implementierung der Komposition mit Debug-Protokoll hinzufügen, um alle möglichen Ausführungspfade zu protokollieren|Implementierung der Komposition mit Debug-Protokoll hinzufügen, um alle möglichen Ausführungspfade zu protokollieren]] <span id="Accessing_execution_debug_logs"></span> === Zugriff auf Ausführungs-Debug-Protokolle === Unabhängig davon, ob deine Ausführungsprotokolle über <code>Wikifunctions.Debug()</code> oder die integrierte Funktion {{Z|Z854}} hinzugefügt werden, werden sie als Teil der Antwort-Metadaten zurückgegeben. Um die Protokolle zu sehen, klicke nach dem Ausführen deiner Funktion auf die Schaltfläche "Details", die unten im Abschnitt "Ergebnis" erscheint. Die Fehler- und Debug-Informationen werden oben im Dialogfeld "Details" angezeigt. Dies ist das Ergebnis, das du sehen würdest, wenn du die Komposition aus unserem vorherigen Beispiel mit gültigen und ungültigen Eingaben ausführst: {| class="wikitable" | [[File:Execution logs success.png|frameless|center|alt=Funktions-Metadatendialog für eine erfolgreiche Ausführung mit Debug-Protokollen]] | [[File:Execution logs failure.png|frameless|center|alt=Funktions-Metadatendialog für eine fehlgeschlagene Ausführung mit Debug-Protokollen]] |- | Funktions-Metadatendialog für eine erfolgreiche Ausführung: zeigt keine Fehler an, sondern das Protokoll der erfolgreichen Ausführung: ''"Beide Eingaben sind in Ordnung!"'' | Funktions-Metadatendialog für eine fehlgeschlagene Ausführung: zeigt die Fehlerinformationen und das zusätzliche Ausführungsprotokoll für den ersten Fehlerzweig an: ''"Fehler bei erster Eingabe"'' |} [[Category:How to create implementations| {{#translation:}}]] iq1ut3ezreq5t4xzeac88g61tx8gqdp 334144 334142 2026-10-28T20:27:27Z Ameisenigel 44 Created page with "'''$1''' ist die verbindende Eigenschaft, in diesem Fall <code>P5137/Objekt für diesen Sinn</code>" 334144 wikitext text/x-wiki <languages/> Diese Seite bietet eine detailliertere Anleitung dafür, wie man '''Implementierungen erstellt''' und geht über den Überblick auf {{ll|Wikifunctions:Introduction}} hinaus. <span id="Types_of_Implementations"></span> == Arten von Implementierungen == In Wikifunctions kann eine '''Implementierung''' zwei Hauptformen annehmen: '''Code''' oder '''Komposition'''. Eine Code-Implementierung drückt die Logik der Funktion direkt in einer der verfügbaren Programmiersprachen aus (derzeit Python3 oder JavaScript). Sie ist besonders nützlich, wenn sich das Verhalten der Funktion nicht ohne Weiteres aus bestehenden Wikifunktionen ableiten lässt oder wenn eine präzise Kontrolle über die Datenverarbeitung erforderlich ist. Eine Kompositions-Implementierung definiert die Funktion hingegen vollständig durch die Kombination bestehender Funktionen, ohne dass Code geschrieben werden muss. Kompositionen sind leichter verständlich, wiederverwendbar und lassen sich automatisch in andere Sprachen übersetzen. Sie setzen jedoch voraus, dass geeignete Bausteine ​​bereits vorhanden sind und sind oft weniger leistungsfähig. Prüfe daher zunächst, ob dein Ziel durch Komposition erreicht werden kann. Ist dies nicht möglich oder spielen Leistung oder feingranulare Logik eine Rolle, wähle stattdessen eine Code-Implementierung. Es gibt eine dritte Implementierungsart: '''integrierte Implementierungen'''. Diese werden vom Systemcode ausgeführt und können nicht bearbeitet werden. Höchstwahrscheinlich verfügen alle vordefinierten Funktionen über eine integrierte Implementierung. In solchen Fällen wird beim Öffnen der Implementierungsseite die Meldung ''"{{int|wikilambda-implementation-selector-none}}"'' angezeigt. <span id="Practice_Test-Driven_Development"></span> == Praxis der testgetriebenen Entwicklung == '''Testgetriebene Entwicklung''' oder '''TDD''' ist eine Methode zur Softwareentwicklung, bei der Tests geschrieben werden, bevor der eigentliche Code geschrieben wird. Tests dienen dazu, die Funktionsweise einer Funktion anhand von Beispielen und deren Funktionsweise zu verstehen. In Wikifunctions bietet das Schreiben von Tests als erste Tätigkeit erhebliche Vorteile. Wenn du an einer Implementierung arbeitest, kannst du deinen Code anhand der vorhandenen Tests ausführen, um sicherzustellen, dass er sich wie erwartet verhält. Dadurch lassen sich Fehler frühzeitig erkennen, noch bevor du deine Implementierung veröffentlichst. Tests sind außerdem ein effektives Mittel, um die benötigte Funktion zu beschreiben. Durch das Schreiben von Tests '''kommunizierst du klar das erwartete Verhalten''' und die Community kann bei der Implementierung helfen oder alternative Implementierungen erstellen. Stell dir vor, du möchtest eine Funktion implementieren, die zwei Zeichenketten mit einem Leerzeichen dazwischen verknüpft. Ein einfacher Test dafür könnte so aussehen: <syntaxhighlight lang="prolog"> join_with_space( "Hello", "world" ) => "Hello world" </syntaxhighlight> Sobald du das grundlegende Verhalten definiert hast, ist es wichtig, auch '''an Randfälle zu denken''' — Situationen, in denen die Eingaben so beschaffen sind, dass ein spezielles Verhalten erforderlich sein könnte. Was passiert beispielsweise, wenn deine erste Zeichenkette mit einem Leerzeichen endet oder deine zweite mit einem Leerzeichen beginnt? Soll die Funktion alle vorhandenen Leerzeichen beibehalten und ein weiteres hinzufügen oder ein sauber formatiertes Ergebnis mit nur einem Leerzeichen zwischen den Wörtern zurückgeben? Je nach deinen Anforderungen solltest du einen Test für einen solchen Fall erstellen. Ein Test für diesen Sonderfall könnte beispielsweise einer der folgenden sein — aber nicht beide!: <syntaxhighlight lang="prolog"> join_with_space( "Hello ", " world") => "Hello world" </syntaxhighlight> oder ... <syntaxhighlight lang="prolog"> join_with_space( "Hello ", " world") => "Hello world" </syntaxhighlight> Stell sicher, dass deine Tests alle möglichen Sonderfälle abdecken, und sobald du diese hast, stell sicher, dass sie alle mit der Funktion verbunden sind, indem du sie auswählst und auf "Verbinden" klickst. <span id="Code_implementations"></span> == Code-Implementierungen == [[File:Code implementation.png|thumb|alt=Wikifunctions-Code-Editor, der mit einer Funktionsvorlage initialisiert wurde|Beim Hinzufügen einer neuen Code-Implementierung wird die Funktionsvorlage mit den Funktions- und Argumentnamen initialisiert]] Beim Erstellen einer Implementierung mit Code richtet die Wikifunctions-Benutzeroberfläche einen Code-Editor ein, in dem die ausgewählte Sprache für Syntaxhervorhebung und -validierung aktiviert ist. Sobald die zu implementierende Funktion und die Programmiersprache ausgewählt sind, wird dieser Editor mit der korrekten Funktionsvorlage konfiguriert: '''Entferne oder bearbeite sie nicht!''' Platziere deinen Code innerhalb dieser Funktionssignatur. Falls du Hilfsfunktionen benötigst, kannst du diese einfach in deiner Hauptfunktionsdeklaration deklarieren. <span id="Using_input_types_in_your_code"></span> === Verwendung von Eingabetypen in deinem Code === Die Wikifunctions-Typen {{Z|Z6}} und {{Z|Z40}} können in JavaScript und Python3 wie native Typen verwendet werden. Beispielsweise lässt sich eine Zeichenkette verketten oder ein boolescher Wert direkt in einem logischen Ausdruck verwenden. Um andere Typen in deinen Code-Implementierungen zu verwenden, musst du den jeweiligen Typ genauer untersuchen, herausfinden, ob eine Umwandlung in ein natives Äquivalent existiert, und ihn entsprechend behandeln. Nehmen wir beispielsweise an, wir möchten Python-Code schreiben, der eine Eingabe vom Typ {{Z|Z20420}} verarbeitet. Auf der Seite für diesen Typ sehen wir uns die "Typumwandler in Code" an und suchen nach einem Python-Umwandler. Der Umwandler {{Z|Z20424}} wird auf unsere Datumseingabe angewendet, bevor unser Code ausgeführt wird. Unter "nativer Typ" sehen wir, dass unsere Eingabe ein Python-Dictionary ist, und in der Implementierung können wir die zu erwartenden Schlüssel sehen: <syntaxhighlight lang="python3"> return { 'K1': year, 'K2': month, 'K3': day } </syntaxhighlight> Wenn ein Typ keinen Umwandler besitzt, musst du direkt über seine Schlüssel auf seine Bestandteile zugreifen. Nehmen wir beispielsweise an, deine Funktion <code>Z30000</code> hat einen Eingabeparameter <code>Z30000K1</code> vom Typ {{Z|Z11}}. Dieser Typ besitzt zwei Schlüssel: <code>Z11K1</code> für die Sprache (selbst ein Objekt vom Typ {{Z|Z60}}) und <code>Z11K2</code> für den Zeichenketten-Wert. Das Sprachobjekt hat wiederum einen Schlüssel <code>Z60K1</code> für den Sprachcode. Um also eine Zeichenkette mit dem Sprachcode und dem Text zu erhalten, kannst du folgendes schreiben: <syntaxhighlight lang="javascript"> function Z30000( Z30000K1 ) { // z. B. "de: beliebiger Text" return Z30000K1.Z11K1.Z60K1 + ": " + Z30000K1.Z11K2; } </syntaxhighlight> Für eine Kurzübersicht der verfügbaren Typumwandlungen besuche [[Special:MyLanguage/Wikifunctions:Execution targets#Default type conversion|die Tabelle der Standard-Typumwandlungen]]. <span id="Returning_the_right_outputs"></span> === Rückgabe der richtigen Ausgaben === Ähnlich wie bei der Behandlung von Eingaben müssen auch Ausgaben dem in der Funktionsdefinition angegebenen Typ entsprechen. Einige können wie native Typen behandelt werden; daher wird jede Zeichenketten-Ausgabe in ein Wikifunctions-Objekt {{Z|Z6}} und jeder von deiner Implementierung zurückgegebene native boolesche Wert in ein Wikifunctions-Objekt {{Z|Z40}} umgewandelt. Typen mit "Typumwandlern aus Code" wenden die entsprechende Funktion auf die Ausgabe an, um den benötigten Typ zu erzeugen. Am Beispiel von {{Z|Z20420}} transformiert {{Z|Z20443}} die Ausgabe deiner Implementierung – ein Dictionary mit den Schlüsseln K1, K2 und K3 – in die korrekte ZObjekt-Darstellung. Für Typen, die keine Umwandler aus Code haben, kannst du die Ausgabeobjekte sorgfältig erstellen und zurückgeben. Stell dir beispielsweise vor, unsere Funktion <code>Z30000</code> nimmt zwei Zeichenketten als Eingaben entgegen: Sprachcode und Text, und soll ein Objekt {{Z|Z11}} zurückgeben. In Python kannst du dies mit dem Konstruktor <code>ZObject</code> erreichen: <syntaxhighlight lang="python3"> def Z30000(Z30000K1, Z30000K2): lang_object = ZObject( {"Z1K1": "Z9", "Z9K1": "Z60"}, Z60K1 = Z30000K1 ) return ZObject( {"Z1K1": "Z9", "Z9K1": "Z11"}, Z11K1 = lang_object, Z11K2 = Z30000K2 ) </syntaxhighlight> Oder in JavaScript: <syntaxhighlight lang="javascript"> function Z30000( Z30000K1, Z30000K2 ) { const langObject = new ZObject( new Map( [ [ "Z60K1", Z30000K1 ] ] ), { "Z1K1": "Z9", "Z9K1": "Z60" } ); const monolingualKeys = new Map( [ [ "Z11K1", langObject ], [ "Z11K2", Z30000K2 ] ] ); return new ZObject( monolingualKeys, { "Z1K1": "Z9", "Z9K1": "Z11" } ); } </syntaxhighlight> Du kannst mehr über die Klasse <code>ZObject</code> und andere nützliche Konstruktoren auf {{ll|Wikifunctions:Execution_targets#Custom_and_non-built-in_type_conversion}} erfahren. {{phab|T392750}}Stand Mai 2026 kann der Versuch, eine Liste von Listen zurückzugeben, fehlschlagen; daher ist es nicht möglich, solche Funktionen in Code zu implementieren. === Code in Python === In diesem Abschnitt geben wir ein konkretes Beispiel, wie man eine Implementierung in Form von Code in Python erstellt. Angenommen, wir möchten eine Implementierung für eine Funktion erstellen, die zwei Eingabezeichenketten durch Einfügen eines Leerzeichens dazwischen kombiniert und das Ergebnis zurückgibt. Nehmen wir an, die ZID dieser Funktion ist Z30000. Die Implementierung wird über die ZID der Funktion definiert. Das gilt auch für die Argumente der Funktion. Im Fall der Funktion Z30000 mit ihren beiden Argumenten sollte die Funktionsvorlage also so aussehen: <syntaxhighlight lang="python3"> def Z30000(Z30000K1, Z30000K2): </syntaxhighlight> Wie bereits erwähnt, wissen wir, dass die Argumente (<code>Z30000K1</code> und <code>Z30000K2</code>) Zeichenketten sind, daher können wir sie genauso behandeln wie native Zeichenketten in Python. Die Funktion sollte außerdem eine Zeichenkette zurückgeben. In unserem Beispiel geben wir einfach die beiden Argumente, getrennt durch ein Leerzeichen, aneinandergereiht zurück: <syntaxhighlight lang="python3"> def Z30000(Z30000K1, Z30000K2): return Z30000K1 + " " + Z30000K2 </syntaxhighlight> Da es sich um Python handelt, vergesse nicht, diese Zeile einzurücken. Wenn du unserem Rat gefolgt bist, [[#Practice Test-Driven Development|TDD anzuwenden]], verfügst du bereits über eine Reihe von Tests, von denen du weißt, dass sie funktionieren sollten. In diesem Fall kannst du während der Entwicklung deiner Implementierung auf den kreisförmigen Pfeil im Testbereich klicken und überprüfen, ob deine Implementierung alle Tests besteht. Denke daran, dass die Laufzeit keinen Status hat. Gehe nicht von Werten für globale oder statische Variablen aus. Wenn du weitere Fragen dazu hast, was du in Python tun kannst und was nicht, frage auf [[Wikifunctions:Python implementations]]. === Code in JavaScript === In diesem Abschnitt geben wir ein konkretes Beispiel, wie man eine Implementierung in Form von Code in JavaScript erstellt. Angenommen, wir möchten eine Implementierung für eine Funktion erstellen, die zwei Eingabezeichenketten durch Einfügen eines Leerzeichens dazwischen kombiniert und das Ergebnis zurückgibt. Nehmen wir an, die ZID dieser Funktion ist <code>Z30000</code>. Die Implementierung wird über die ZID der Funktion definiert. Das gilt auch für die Argumente der Funktion. Im Fall der Funktion <code>Z30000</code> mit ihren beiden Argumenten sollte die Funktionsvorlage also so aussehen: <syntaxhighlight lang="javascript"> function Z30000( Z30000K1, Z30000K2 ) { } </syntaxhighlight> Wir wissen, dass die Argumente (<code>Z30000K1</code> und <code>Z30000K2</code>) Zeichenketten sind, daher können wir sie in JavaScript wie native Zeichenketten behandeln. Die Funktion soll außerdem eine Zeichenkette zurückgeben. Um die Funktion zu vervollständigen, kannst du eine Zeile hinzufügen, die die Eingabezeichenketten verkettet, etwa so: <syntaxhighlight lang="javascript"> function Z30000( Z30000K1, Z30000K2 ) { return Z30000K1 + " " + Z30000K2; } </syntaxhighlight> Wenn du Tests wie im Abschnitt [[#Practice Test-Driven Development|TDD]] oben empfohlen hast, klicke auf den kreisförmigen Pfeil im Testbereich und prüfe, ob deine Implementierung alle Tests besteht. Denke daran, dass die Laufzeit keinen Status hat. Gehe nicht von Werten für globale oder statische Variablen aus. Wenn du weitere Fragen dazu hast, was du in JavaScript tun kannst und was nicht, frage auf [[Wikifunctions:JavaScript implementations]]. <span id="Calling_another_Wikifunctions_function"></span> === Aufruf einer anderen Wikifunctions-Funktion === Eine Code-Implementierung kann bestimmte andere Wikifunctions-Funktionen aufrufen, die Ausgabe des Aufrufs empfangen und diese Ausgabe für die weitere Verarbeitung nutzen. Wir bezeichnen solche Aufrufe als Callbacks. Derzeit können aus Sicherheits- und Leistungsgründen nur die folgenden integrierten Wikidata-Abruf- und Suchfunktionen auf diese Weise aufgerufen werden: {{Z|Z6820}}, {{Z|Z6821}}, {{Z|Z6822}}, {{Z|Z6824}}, {{Z|Z6825}}, {{Z|Z6826}}, {{Z|Z6830}} und {{Z|Z6831}}. Diese Funktionalität befindet sich in einem frühen Stadium der Einführung; wir hoffen, in Zukunft Aufrufe für eine größere Bandbreite an Funktionen zu ermöglichen. Betrachten wir eine JavaScript-Implementierung, die einen Callback enthält. Diese Implementierung ruft ein Datenobjekt von Wikidata ab, extrahiert die Bezeichnung dieses Datenobjektes in einer bestimmten Sprache und gibt die Bezeichnung als Zeichenkette zurück. Das abzurufende Datenobjekt wird über das Argument <code>Z400K1</code> angegeben, die Sprache über <code>Z400K2</code>. <syntaxhighlight lang="javascript"> function Z400( Z400K1, Z400K2 ) { const item = Wikifunctions.Call('Z6821', Z400K1); for (const label of item.Z6001K2.Z12K1) { if (label.Z11K1.Z60K1 === Z400K2.Z60K1) { return label.Z11K2; }} return 'NOT FOUND'; } </syntaxhighlight> Ein Callback wird durch den Aufruf von <code>Wikifunctions.Call</code> ausgelöst, wie im Beispiel gezeigt. Das erste Argument für <code>Wikifunctions.Call</code> ist stets die ZID der aufzurufenden Funktion – in diesem Fall {{Z|Z6821}}, welche ein einzelnes Argument entgegennimmt. Darauf folgen, durch Kommas getrennt, die an diese Funktion zu übergebenden Argumente. Hierbei handelt es sich bei dem Argument <code>Z400K1</code> um denselben Wert, der auch an <code>Z400</code> übergeben wurde. Dies ist ein gängiges Muster für die Argumentübergabe an Callbacks, jedoch können die Argumente auch mit dem Konstruktor <code>ZObject</code> (wie oben beschrieben) erstellt oder auf andere Weise bezogen werden. Der Wert von <code>Z400K1</code> wäre eine Instanz von {{Z|Z6091}}, die die QID des abzurufenden Datenobjekts enthält. Zeile 2 des Beispiels ruft <code>Z6821</code> auf, um dieses Datenobjekt von Wikidata abzurufen, und weist das resultierende ZObjekt der Konstante <code>item</code> zu. Der restliche Code durchläuft die Bezeichnungen des Datenobjekts, bis er diejenige findet, die der durch <code>Z400K2</code> angegebenen Sprache entspricht. Für das obige Beispiel haben wir der Einfachheit halber <code>Z6821</code> verwendet. Sofern die Implementierung jedoch nicht das gesamte Objekt benötigt, wird dringend empfohlen, zum Abrufen von Wikidata-Datenobjekten, die sehr groß sein können, <code>Z6820</code> zu verwenden. Obwohl der Aufruf von <code>Z6820</code> etwas komplexer ist, ermöglichen seine Parameter das Abrufen spezifischer Teile eines Wikidata-Datenobjekts. Dies kann die Leistung erheblich steigern und bestimmte Fehler vermeiden, da weniger Netzwerkbandbreite und Verarbeitungszeit erforderlich sind. (<code>Z6820</code> kann auch statt <code>Z6822</code>, <code>Z6824</code>, <code>Z6825</code> und <code>Z6826</code> verwendet werden, um ähnliche Vorteile bei der Bandweitenreduzierung zu erreichen.) Im Folgenden zeigen wir, wie <code>Z6820</code> in <code>Wikifunctions.Call</code> verwendet werden kann, um dasselbe Verhalten wie oben zu erzielen. Beachte, dass wir das zweite an <code>Z6820</code> übergebene Argument, <code>[labelsPart]</code>, nutzen, um festzulegen: “Gib nur die Bezeichnungen des Datenobjekts zurück”, und das dritte Argument, <code>[Z400K2]</code>, verwenden, um festzulegen: “Gib die Bezeichnungen nur in der angegebenen Sprache zurück”. (Dieses Argument würde auch für Aliasse und Beschreibungen gelten, sofern diese im Ergebnis enthalten wären.) <syntaxhighlight lang="javascript"> function Z400( Z400K1, Z400K2 ) { const labelsPart = new ZObject( new Map( [ ['Z6030K1', new ZReference('Z6033')] ] ), {Z1K1: 'Z9', Z9K1: 'Z6030'} ); const entities = Wikifunctions.Call( 'Z6820', [Z400K1], [labelsPart], [Z400K2], []); const item = entities.get(Z400K1.Z6091K1); const labels = item.Z6001K2.Z12K1; for (const label of labels) { if (label.Z11K1.Z60K1 === Z400K2.Z60K1) { return label.Z11K2; }} return 'NOT FOUND'; } </syntaxhighlight> Weitere zu beachtende Hinweise: * Obwohl Code-Implementierungen mittlerweile in der Lage sind, Wikidata-Entitäten abzurufen, wird empfohlen, dass sie keine ''vollständigen'' Entitäten zurückgeben. Dies liegt an den derzeitigen Beschränkungen hinsichtlich der Größe des von einer Code-Implementierung zurückgegebenen Wertes. Um eine vollständige, große Entität abzurufen und zurückzugeben, ist es besser, die Abruffunktion aus einer Komposition heraus aufzurufen. * Es kann nur ein Callback gleichzeitig ausgeführt werden. Aus Sicherheitsgründen ist es nicht möglich, die Nebenläufigkeitsfunktionen von JavaScript oder Python zu nutzen, um mehrere Callbacks parallel auszuführen. ** Beachte jedoch, dass du mithilfe von Z6820 mehrere Entitäten auf einmal abrufen kannst. * Derzeit gibt es eine Obergrenze von 3 MiB für die Größe von Wikidata-Inhalten, die über einen einzelnen Callback an eine Code-Implementierung zurückgegeben werden können. Dieselbe Obergrenze gilt für die Größe des Ergebnisses, das von einer Code-Implementierung zurückgegeben wird. <span id="Compositions"></span> == Kompositionen == Im diesem Abschnitt geben wir ein konkretes Beispiel, wie man eine Implementierung in Form einer Komposition erstellt. Angenommen, wir möchten eine Implementierung für eine Funktion erstellen, die zwei Eingabezeichenketten durch Einfügen eines Leerzeichens dazwischen kombiniert und das Ergebnis zurückgibt. Nehmen wir an, die ZID dieser Funktion ist <code>Z30000</code>. Normalerweise ist es sinnvoll, zunächst darüber nachzudenken, wie man vorhandene Funktionen kombinieren kann, um die gewünschte Ausgabe zu erzielen. Manchmal mag dies trivial sein und du kannst einfach mit dem Zusammenstellen und Funktionen fortfahren, aber in vielen Fällen lohnt es sich, die gewünschte Komposition zu notieren. Beispielsweise könnten wir für die angegebene Funktion die vorhandene Funktion {{Z|Z10000}} verwenden. Diese Funktion nimmt zwei Zeichenketten und erstellt daraus eine Zeichenkette. Aber wir müssen dazwischen ein Leerzeichen einfügen. Wir verbinden also zunächst ein Leerzeichen mit dem Ende der ersten Zeichenkette und verbinden dann die zweite Zeichenfolge mit dem Ergebnis dieser ersten Verbindung. Unsere Komposition könnte also so notiert werden: <syntaxhighlight lang="prolog"> join_strings( join_strings( Z30000K1, " " ), Z30000K2 ) </syntaxhighlight> Es gibt mehrere Möglichkeiten, eine Komposition zu schreiben: Beachte, dass dasselbe auch auf folgende Weise erreicht werden kann: <syntaxhighlight lang="prolog"> join_strings( Z30000K1, join_strings( " ", Z30000K2 ) ) </syntaxhighlight> Eine alternative Implementierung könnte auch die vorhandene Funktion {{Z|Z15175}} verwenden, sodass deine Komposition wie folgt aussehen könnte: <syntaxhighlight lang="prolog"> join_with_separator( Z30000K1, Z30000K2, " " ) </syntaxhighlight> Wie du siehst, gibt es mehrere Möglichkeiten, dies zu erreichen. Nimm dir also Zeit und erkunde die vorhandenen Funktionen, die im {{ll|Wikifunctions:Catalogue}} verfügbar sind. Versuchen wir, das zweite Beispiel zu erstellen, <code>join_strings(Z30000K1, join_strings(" ", Z30000K2))</code>. Um dies zu erstellen: # Um eine Implementierung hinzuzufügen, klicke auf der Funktionsseite in der Tabelle "Implementierungen" auf die Schaltfläche "+". # Stelle sicher, dass die Option "Komposition" unter "Implementierung" ausgewählt ist. # Klicke auf das Symbol "›" oder auf den Link "Funktion auswählen", um die Funktionsdetails anzuzeigen. # Suche unter "Funktion" nach dem Namen der äußersten Funktion, die du verwenden möchtest, in diesem Beispiel "verbinde Zeichenketten". Wähle anschließend die gewünschte Funktion aus der Dropdown-Liste aus. # Du siehst zwei neue Felder, eines für jedes der Argumente, die für die ausgewählte Funktion benötigt werden. # Als erstes Argument möchten wir den ersten Eingabewert für unsere Funktion auswählen: ## Klicke neben "erste Zeichenkette" auf die Schaltfläche "…" und wähle "Argumentreferenz" aus. ## Unter "Schlüssel-ID" kannst du nun die erste Zeichenkette deiner Funktion aus dem Dropdown-Menü auswählen, das alle verfügbaren Eingaben enthält. # Für das zweite Argument möchten wir das Ergebnis eines weiteren Aufrufs von "verbinde Zeichenketten" verwenden: ## Klicke neben "zweite Zeichenkette" auf die Schaltfläche "…" und wähle "Funktionsaufruf" aus. ## Suche unter "Funktion" nach der Funktion, die du aufrufen möchtest und wähle sie aus, nämlich "verbinde Zeichenketten". ## Konfiguriere die "erste Zeichenkette" für diesen inneren Funktionsaufruf, indem du einfach ein Leerzeichen in das Textfeld eingibst, und konfiguriere die "zweite Zeichenkette" wie in Schritt 6: Ändere sie mit der Schaltfläche "…" in "Argumentreferenz" und wähle dann das zweite Argument in der Dropdown-Liste aus. Deine Komposition ist nun fertig! Du kannst die Details mithilfe der Pfeiltasten ein- und ausblenden, um dir einen Überblick zu verschaffen. Falls du bereits Tests wie im Abschnitt [[#Practice Test-Driven Development|TDD]] oben empfohlen implementiert hast, klicke im Testbereich auf den kreisförmigen Pfeil und prüfe, ob deine Implementierung die Tests besteht. Sobald deine Komposition die Tests bestanden hat, kannst du sie veröffentlichen. [[File:Composition implementation expanded.png|frame|center|alt=Eine Wikifunctions-Kompositionsimplementierung in ihrer erweiterten Ansicht|Eine Wikifunctions-Kompositionsimplementierung in ihrer erweiterten Ansicht]] [[File:Composition implementation collapsed.png|frame|center|alt=Eine Wikifunctions-Kompositionsimplementierung in ihrer reduzierten Ansicht|Eine Wikifunctions-Kompositionsimplementierung in ihrer reduzierten Ansicht]] <span id="Wikifunctions_error_handling"></span> == Fehlerbehandlung auf Wikifunctions == Als Ersteller einer Wikifunctions-Funktion möchtest du möglicherweise den Benutzer warnen, der deine Funktion aufruft, wenn im Code ein Fehler auftritt oder seine Eingaben bestimmte Kriterien nicht erfüllen. Wenn deine Funktion beispielsweise eine Zeichenkette mit einem Namen erwartet, solltest du prüfen, ob der Name nicht leer ist, und gegebenenfalls eine verständliche Fehlermeldung anzeigen. Hierfür kannst du <code>Wikifunctions.Error()</code> in deinen Code-Implementierungen oder die Funktion {{Z|Z851}} in deinen Kompositionen verwenden. In diesem Abschnitt erfährst du: * Wie man Fehler sowohl aus Code- als auch aus Kompositions-Implementierungen auslöst, * wie man Tests für Fehlerfälle schreibt, und * wie man Fehler abfängt und behandelt, die von Funktionen ausgelöst werden, die man in seinen Kompositionen verwendet. <span id="Throwing_errors_from_code_implementations"></span> === Fehler aus Code-Implementierungen auslösen === Sowohl beim Schreiben von JavaScript- als auch von Python-Code kannst du <code>Wikifunctions.Error()</code> nutzen, um die Ausführung mit einem gewünschten Fehler zu beenden. <code>Wikifunctions.Error()</code> hat zwei Parameter: # Fehlertyp: Eine Zeichenkette, die die ZID des Fehlertyps enthält, den du zurückgeben möchtest. # Fehlerargumente: Eine Liste von Zeichenkettenargumenten zur Erstellung des Fehlers. Gehen wir sie der Reihe nach durch: <span id="Error_type"></span> ==== Fehlertyp ==== Ein Fehlertyp ist ein Objekt, das eine Art von Fehler beschreibt, der im System auftreten kann. Es gibt eine Reihe vordefinierter Fehlertypen, du kannst aber auch eigene Fehlertypen erstellen, die besser zu deinem Anwendungsfall passen. Bei der Verwendung von Fehlern empfiehlt es sich, die verfügbaren Fehlertypen zu durchsuchen, die sich in [[Special:ListObjectsByType/Z50|dieser Liste]] finden. Falls keine passenden Fehler für deinen Fall vorhanden sind, erstelle einen neuen Fehler, indem du zur Erstellungsseite gehst und im Typauswahlfeld "Fehlertyp" auswählst. Lege anschließend die erforderlichen Felder fest: [[File:Error type.png|thumb|alt=Erstellung von Fehlertypen in Wikifunctions|Um einen neuen Fehlertyp (Z50) zu erstellen, bearbeite die Bezeichnung und füge die erforderlichen Schlüssel hinzu.]] * '''Bezeichnung''' – Dies ist der Haupttitel des Fehlers, der eine kurze, aber aussagekräftige Meldung enthalten sollte. Lege die Fehlerbezeichnung im rechten Feld mit dem Titel "Info" fest. * '''Schlüssel''' – Schlüssel enthalten zusätzliche Informationen zur Fehlerursache. Wenn beispielsweise eine Eingabe das falsche Format aufwies, möchtest du den Benutzer möglicherweise über den eingegebenen Inhalt informieren, wenn der Fehler auftritt. Um sie in deinen Implementierungen zu verwenden, müssen Schlüssel vom Zeichenketten sein. Um einen Schlüssel zu erstellen, klicke auf das Symbol "[+]" unterhalb von "Schlüssel", wähle unter "Werttyp" die Option "Zeichenkette" aus und füge eine aussagekräftige Bezeichnung hinzu, beispielsweise "tatsächlich Eingabe". Sobald du alle erforderlichen Schlüssel erstellt hast, kannst du deinen Fehlertyp veröffentlichen und die ID des neu erstellten Objekts speichern. * '''Fehlermeldung''' – Fehlertypen können ein mehrsprachiges Array von Fehlermeldungen enthalten, die mit HTML-Parametern versehen sind. Die Parameter werden als $1, $2 etc. angegeben, wobei die Ziffer dem Schlüssel des Fehlertyps entspricht. Beim Erstellen eines Fehlertyps mit dem Zeichenketten-Schlüssel "aktuelle Eingabe", kann die Fehlermeldung beispielsweise den Platzhalter "$1" verwenden, der zum Zeitpunkt der Fehlerausgabe durch den Wert des Schlüssels "aktuelle Eingabe" ersetzt wird. Um HTML-Meldungen hinzuzufügen, klicke unter "HTML-Fragmente" auf das Symbol "[+]", wähle eine Sprache aus und gib die HTML-Zeichenkette ein. <span id="Error_arguments"></span> ==== Fehlerargumente ==== Fehlerargumente entsprechen den Schlüsseln des Fehlertyps und sollten zusätzliche Informationen zum Verständnis des Fehlers liefern. Fehlerargumente sollten immer Zeichenketten sein. <span id="Using_Wikifunctions.Error()"></span> ==== Verwendung von Wikifunctions.Error() ==== Angenommen, du möchtest einen Fehler auslösen, wenn entweder deine erste oder deine zweite Eingabe leer ist. Du hast den Fehlertyp bereits erstellt und ihm wurde die ZID <code>Z30005</code> zugewiesen. Dein Fehlertyp hat zwei Zeichenketten-Schlüssel: * Eingabeschlüssel: Enthält den Schlüssel der fehlerhaften Eingabe * Eingabewert: Enthält den aktuellen Wert der fehlerhaften Eingabe Um einen Fehler in deiner JavaScript-Implementierung auszulösen, solltest du etwa Folgendes tun: <syntaxhighlight lang="javascript"> function Z30000( Z30000K1, Z30000K2 ) { if ( trim( Z30000K1 ) === '' ) { // Wenn die erste Eingabe leer ist, löse Fehler Z30005 aus // mit zwei Zeichenketten-Argumenten: [ erster Eingabe-Schlüssel, erster Eingabe-Wert ] Wikifunctions.Error( 'Z30005', [ "Z30000K1", Z30000K1 ] ) } if ( trim( Z30000K2 ) === '' ) { // Wenn die zweite Eingabe leer ist, löse Fehler Z30005 aus // mit zwei Zeichenketten-Argumenten: [ zweiter Eingabe-Schlüssel, zweiter Eingabe-Wert ] Wikifunctions.Error( 'Z30005', [ "Z30000K2", Z30000K2 ] ) } return Z30000K1 + " " + Z30000K2; } </syntaxhighlight> Um einen Fehler in deiner Python-Implementierung auszulösen, solltest du etwa Folgendes tun: <syntaxhighlight lang="python3"> def Z30000(Z30000K1, Z30000K2): if Z30000K1.strip() == "": # Wenn die erste Eingabe leer ist, löse Fehler Z30005 aus # mit zwei Zeichenketten-Argumenten: [ erster Eingabe-Schlüssel, erster Eingabe-Wert ] Wikifunctions.Error("Z30005", ["Z30000K1", Z30000K1]) if Z30000K2.strip() == "": # Wenn die zweite Eingabe leer ist, löse Fehler Z30005 aus # mit zwei Zeichenketten-Argumenten: [ erster Eingabe-Schlüssel, erster Eingabe-Wert ] Wikifunctions.Error("Z30005", ["Z30000K2", Z30000K2]) return Z30000K1 + " " + Z30000K2 </syntaxhighlight> Denke daran, dass der Aufruf von <code>Wikifunctions.Error()</code> die Ausführung beendet! <span id="Throwing_errors_from_compositions"></span> === Fehler aus Kompositionen auslösen === Wenn du eine Kompositionsimplementierung erstellst, kannst du einen Fehler auslösen, indem du die Spezialfunktion {{Z|Z851}} aufrufst. <span id="Throw_Error_function_(Z851)"></span> ==== Funktion Fehler auslösen (Z851) ==== Die Funktion {{Z|Z851}} ähnelt der Methode <code>Wikifunctions.Error()</code> und benötigt zwei Argumente: * '''Fehlertyp''' – Ein Verweis auf den Fehlertyp, den du auslösen möchtest * '''Fehlerparameter''' – Eine Liste mit den Argumenten zur Erstellung deines Fehlers, die ebenfalls Zeichenketten sein sollten. <span id="Using_Throw_Error"></span> ==== Verwendung von Fehler auslösen ==== Angenommen, du möchtest deine Komposition so ändern, dass sie zuerst prüft, ob die Argumente nicht leer sind, und einen Fehler ausgibt, wenn sie ein leeres Argument findet. Wenn dann keines der Argumente leer ist, wird die ursprüngliche Komposition ausgeführt, die wie folgt aussieht: <syntaxhighlight lang="prolog"> join_with_separator( Z30000K1, Z30000K2, " " ) </syntaxhighlight> Dazu musst du bedingte Pfade erstellen, für die du die Funktion {{Z|Z802}} verwenden kannst. Stell es dir folgendermaßen vor: * Wenn das erste Argument leer ist, soll ein Fehler für das erste Argument ausgelöst werden * Andernfalls wird mit der Überprüfung des zweiten Arguments fortgefahren * Wenn das zweite Argument leer ist, soll ein Fehler für das zweite Argument ausgelöst werden * Andernfalls wird der Erfolgspfad verfolgt und die verbundenen Zeichenketten mit dem Leerzeichen als Trennzeichen zurückgegeben Oder in funktionalem Pseudocode: <syntaxhighlight lang="prolog"> if ( is_empty_string( Z30000K1 ), throw_error( Z30005, [ "Z30000K1", Z30000K1 ] ), if( is_empty_string( Z30000K2 ), throw_error( Z30005, [ "Z30000K2", Z30000K2 ] ), join_with_separator( Z30000K1, Z30000K2, " " ) ) ) </syntaxhighlight> Lass uns das Schritt für Schritt erstellen: # Um eine Implementierung hinzuzufügen, klicke auf der Funktionsseite in der Tabelle "Implementierungen" auf die Schaltfläche "+". # Stelle sicher, dass die Option "Komposition" unter "Implementierung" ausgewählt ist. # Klicke auf das Symbol "›" oder auf den Link "Funktion auswählen", um die Funktionsdetails anzuzeigen. # Suche unter "Funktion" nach der äußersten Funktion, die du verwenden möchtest, in diesem Fall "wenn", und wähle sie aus. # Überprüfe die Gültigkeit des ersten Arguments: ## Klicke neben "Bedingung" auf die Schaltfläche "…" und wähle "Funktionsaufruf" aus ## Suche unter "Funktion" nach der Funktion "ist leere Zeichenkette" und wähle sie aus ## Klicke neben "Eingabe" auf die Schaltfläche "…" und wähle "Argumentreferenz" aus ## Wähle unter "Schlüssel-ID" die erste Eingabe aus (z. B. "erste Zeichenkette") ## Du kannst den Funktionsaufruf der "Bedingung" nun bei Bedarf ausblenden, indem du auf den Pfeil nach unten neben "Bedingung" klickst. Es sollte dann etwa Folgendes angezeigt werden: "f(x) ist leere Zeichenkette ( → erste Zeichenkette )" # Fehler auslösen, wenn die Bedingung wahr ist: ## Klicke neben "dann" auf die Schaltfläche "…" und wähle "Funktionsaufruf" aus ## Suche unter "Funktion" nach der Funktion "Fehler auslösen" und wähle sie aus ## Suche unter "Fehlertyp" nach deinem Fehlertyp (du kannst die Fehler-ID direkt eingeben, wenn du sie kennst, z. B. Z30005) und wähle ihn aus ## Füge unter "Fehlerparameter" zwei Elemente hinzu, indem du auf die Schaltfläche "+" klickst ## Lege für "Objekt 1" (fehlerhafter Argumentschlüssel) den Typ auf "Zeichenkette" fest und trage die Argumentkennung ein (z. B. "erste Eingabe" oder "Z30000K1") ## Klicke für "Objekt 2" (fehlerhafter Argumentwert) auf die "…" neben "Objekt 2" und wähle "Argumentreferenz" aus ## Wähle unter "Schlüssel-ID" die erste Eingabe aus (z. B. "erste Zeichenkette") ## Du kannst den Funktionsaufruf "dann" nun bei Bedarf ausblenden, indem du auf den Pfeil nach unten neben "dann" klickst. Es sollte dann etwa Folgendes angezeigt werden: "f(x) Fehler auslösen ( ungültiges Format, typisierte Liste ( Objekt, "erste Eingabe", → erste Zeichenkette ) )" # Prüfe das zweite Argument, wenn das erste korrekt war: ## Klicke neben "sonst" auf die Schaltfläche "…" und wähle "Funktionsaufruf" aus ## Suche unter "Funktion" nach der Funktion "wenn" und wähle sie aus ## Richte eine "Bedingung" ein, um die Gültigkeit des zweiten Arguments zu überprüfen, indem du das gleiche Verfahren wie in Schritt 5 beschrieben anwendest. ## Richte "dann" so ein, dass beim zweiten Argument ein Fehler ausgelöst wird, indem du das gleiche Verfahren wie in Schritt 6 beschrieben anwendest. # Richte schließlich den Erfolgspfad ein: ## Klicke neben dem verschachtelten "sonst" auf die Schaltfläche "…" und wähle "Funktionsaufruf" aus ## Suche unter "Funktion" nach der gewünschten Funktion, in diesem Fall "vereinige zwei Zeichenketten mit Trennzeichen", und wähle sie aus ## Klicke neben "erste Zeichenkette" auf die Schaltfläche "…" und setze sie auf "Argumentreferenz", wähle anschließend "erste Zeichenkette" aus ## Klicke neben "zweite Zeichenkette" auf die Schaltfläche "…" und setze sie auf "Argumentreferenz", wähle anschließend "zweite Zeichenkette" aus ## Füge unter "Trennzeichen" ein Leerzeichen in das Textfeld ein Der resultierende Funktionsaufruf sollte folgendermaßen aussehen: [[File:Throw error expanded.png|frame|center|alt=Wikifunctions-Komposition mit der Funktion Fehler auslösen|Wikifunctions-Komposition mit der Funktion Fehler auslösen]] [[File:Throw error collapsed.png|frame|center|alt=Wikifunctions-Komposition mit der Funktion Fehler auslösen in ihrer reduzierten Ansicht|Wikifunctions-Komposition mit der Funktion Fehler auslösen in ihrer reduzierten Ansicht]] <span id="Handling_errors_in_compositions"></span> === Fehlerbehandlung in Kompositionen === Es ist zwar nützlich, Funktionen das Auslösen erwarteter Fehler zu ermöglichen, aber es ist entscheidend, Fehler in den eigenen Kompositionen behandeln zu können, um diese Funktionen sicher verwenden zu können. Angenommen, du möchtest eine neue Funktion "vollständiger Name einer Person" erstellen – wir bezeichnen sie mit der ZID <code>Z30010</code>. Diese Funktion soll den vollständigen Namen einer Person anhand ihres Vor- und Nachnamens zurückgeben. Ist jedoch eines der beiden Felder leer, soll sie stattdessen den Text "Unbekannt" zurückgeben. Du könntest eine Komposition erstellen, indem du unsere Beispielfunktion "verbinde zwei Zeichenketten mit Leerzeichen" oder <code>Z30000</code> verwendest, um den Namen zu generieren. Wenn eine der Eingaben leer ist, weißt du, dass <code>Z30000</code> einen Fehler vom Typ <code>Z30005</code> auslöst. Mithilfe der Funktion {{Z|Z850}} als Wrapper kannst du die Verbindungsoperation ausführen und einen möglichen Fehler abfangen, indem du einfach "Unbekannt" zurückgibst, wenn er auftritt. <span id="Try-Catch_function_(Z850)"></span> ==== Try-Catch-Funktion (Z850) ==== Die Funktion {{Z|Z850}} ist eine integrierte Funktion mit der ZID <code>Z850</code> und benötigt drei Argumente: * '''Funktionsaufruf''' – Der erste Funktionsaufruf, der ausgeführt werden soll. Wenn kein Fehler auftritt, ist die Antwort das Ergebnis dieses Funktionsaufrufs. * '''Fehlertyp''' – Ein Fehlertyp, der abgefangen werden soll, falls er während der Ausführung des ersten Funktionsaufrufs auftritt. * '''Fehlerhandler''' – Ein Funktionsaufruf, der ausgeführt wird, falls der oben genannte Fehler während der Ausführung des ursprünglichen Funktionsaufrufs auftritt. In diesem Fall wird das Ergebnis der Fehlerbehandlung zurückgegeben. <span id="Using_Try-Catch"></span> ==== Verwendung der Try-Catch-Funktion ==== Sobald wir alle Funktionen für unsere Komposition haben, können wir sie folgendermaßen gestalten: <syntaxhighlight lang="prolog"> try_catch( join_with_space( Z30010K1, Z30010K2 ), Z30005, echo( "Unknown" ) ) </syntaxhighlight> Das bedeutet: * Die Funktion "verbinde zwei Zeichenketten mit Leerzeichen" wird mit den beiden Eingaben ausprobiert und wenn alles erfolgreich verläuft, wird das Ergebnis dieser Funktion zurückgegeben * Wenn eine der Eingaben leer ist, löst "verbinde zwei Zeichenketten mit Leerzeichen" einen Fehler vom Typ <code>Z30005</code> aus * Unsere {{Z|Z850}} erkennt dann diesen Fehler und führt die Funktion {{Z|Z801}} aus, die "Unbekannt" zurückgibt Lass uns das Schritt für Schritt erstellen: # Um eine Implementierung hinzuzufügen, klicke auf der Funktionsseite in der Tabelle "Implementierungen" auf die Schaltfläche "+". # Stelle sicher, dass die Option "Komposition" unter "Implementierung" ausgewählt ist. # Klicke auf das Symbol "›" oder auf den Link "Funktion auswählen", um die Funktionsdetails anzuzeigen. # Suche unter "Funktion" nach der äußersten Funktion, die du verwenden möchtest, in diesem Fall "Try-Catch-Funktion", und wähle sie aus. # Richte den Hauptfunktionsaufruf ein: ## Klicke unterhalb des Feldes, in dem die "Try-Catch-Funktion" ausgewählt ist, neben dem Schlüssel "Funktionsaufruf" auf die Schaltfläche "…" und wähle "Funktionsaufruf" aus ## Suche unter "Funktion" nach der Funktion "verbinde zwei Zeichenketten mit Leerzeichen" und wähle sie aus ## Klicke neben "erste Zeichenkette" auf die Schaltfläche "…" und wähle "Argumentreferenz" aus, wähle anschließend das Argument "erster Name" aus der Dropdown-Liste aus. ## Klicke neben "zweite Zeichenkette" auf die Schaltfläche "…" und wähle "Argumentreferenz" aus, wähle anschließend das Argument "zweiter Name" aus der Dropdown-Liste aus. # Wähle den abzufangenden Fehler aus: ## Suche unter "Fehlertyp" nach "ungültige Zeichenkette" und wähle es aus – du kannst direkt nach der ZID <code>Z30005</code> suchen # Richte den Funktionsaufruf für den Fehlerhandler ein: ## Klicke neben "Fehlerhandler" auf die Schaltfläche "…" und wähle "Funktionsaufruf" aus ## Suche unter "Funktion" nach der Funktion "Echo" und wähle sie aus ## Suche unter "Eingabe" und "Typ" den Typ "Zeichenkette" und wähle ihn aus ## Gib nun unter "Eingabe" im Textfeld "Unbekannt" ein Die resultierende Funktion sollte folgendermaßen aussehen: [[File:Try catch expanded.png|frame|center|alt=Wikifunctions-Komposition mit der Try-Catch-Funktion in ihrer erweiterten Ansicht|Wikifunctions-Komposition mit der Try-Catch-Funktion in ihrer erweiterten Ansicht]] [[File:Try catch collapsed.png|frame|center|alt=Wikifunctions-Komposition mit der Try-Catch-Funktion in ihrer reduzierten Ansicht|Wikifunctions-Komposition mit der Try-Catch-Funktion in ihrer reduzierten Ansicht]] <span id="Testing_your_failure_use_cases"></span> === Testen deiner Fehlerfälle === Wie bereits im Abschnitt über die [[#Practice Test-Driven Development|Anwendung von TDD]] erläutert, ist es wichtig, nicht nur die häufigsten Ausführungspfade, sondern auch mögliche Randfälle zu testen. Ebenso wichtig ist es, das Fehlerverhalten zu prüfen. In diesem Abschnitt stellen wir dir die notwendigen Werkzeuge vor, um zu testen, ob deine Funktion bei bestimmten Eingaben fehlschlägt und ob die Fehlermeldung den Erwartungen entspricht. Dazu benötigst du zwei weitere Systemfunktionen: <span id="Is_error_type_(Z852)"></span> ==== ist Fehlertyp (Z852) ==== Die Funktion {{Z|Z852}} ist eine integrierte Funktion mit der ZID <code>Z852</code> und benötigt zwei Argumente: * '''Fehler''' – Ein {{Z|Z5}}-Objekt, das bei einem fehlgeschlagenen Aufruf ausgelöst werden kann. Eine Fehlerinstanz hat einen Typ und einen Wert. * '''Fehlertyp''' – Ein Verweis auf einen {{Z|Z50}}, der mit dem als erstes Argument übergebenen Fehlertyp verglichen wird. Ist dies der Fall, gibt die Funktion wahr zurück. <span id="Get_error_thrown_by_function_call_(Z853)"></span> ==== Fehler erhalten, ausgelöst durch Funktionsaufruf (Z853) ==== Die Funktion {{Z|Z853}} ist eine integrierte Funktion mit der ZID <code>Z853</code> und benötigt ein Argument: * '''Funktionsaufruf''' – Ein Funktionsaufruf, der entweder einen erfolgreichen Wert beliebigen Typs zurückgibt oder einen Fehler auslöst. Diese Funktion gibt ein {{Z|Z882}} zurück, wobei an erster Stelle ein {{Z|Z40}} und an zweiter Stelle ein {{Z|Z1}} steht: * Wenn der Funktionsaufruf erfolgreich ist und somit keinen Fehler auslöst, enthält das zurückgegebene Paar an erster Stelle falsch und an zweiter Stelle leer. * Wenn der Funktionsaufruf einen Fehler auslöst, enthält das zurückgegebene Paar an erster Stelle wahr und an zweiter Stelle den abgefangenen Fehler. Um diese Funktion in deinen Kompositionen zu verwenden, musst du möglicherweise die zusätzlichen Funktionen verwenden: * {{Z|Z821}} und * {{Z|Z822}} <span id="Testing_errors"></span> ==== Fehler testen ==== Angenommen, unsere Zielfunktion "verbinde zwei Zeichenketten mit Leerzeichen" oder <code>Z30000</code> löst einen Fehler vom Typ <code>Z30005</code> aus, und wir möchten dieses Verhalten testen. Dazu müssen wir Folgendes tun: * Einen fehlgeschlagenen Funktionsaufruf auslösen * Den Fehler mit der Funktion {{Z|Z853}} erhalten * Mit {{Z|Z852}} prüfen, ob der Fehler den richtigen Typ hat Tests haben zwei Felder: * '''Aufruf''' – Ein Funktionsaufruf, der mit den zu testenden Eingaben eine Ausgabe erzeugt. Dieser Aufruf gibt einen Wert zurück. * '''Ergebnisprüfung''' – Ein Funktionsaufruf, der überprüft, ob der vom vorherigen Aufruf zurückgegebene Wert dem erwarteten Wert entspricht. Das erste Argument dieses Funktionsaufrufs wird automatisch mit dem Rückgabewert des ersten Aufrufs belegt. Für eine Schritt-für-Schritt-Anleitung zum Erstellen von Tests siehe {{ll|Wikifunctions:Introduction#Create_tests}}. In unserem Beispiel können wir es so strukturieren — aber das ist nicht die einzige Möglichkeit! Der Aufruf, der ein {{Z|Z5}}-Objekt zurückgibt: <syntaxhighlight lang="prolog"> error = get_second_element_of_typed_list( get_error_thrown_by( join_strings_by_whitespace( "", "not empty" ) ) ) </syntaxhighlight> Und die Ergebnisprüfung, die das {{Z|Z5}}-Objekt als erstes Argument verwendet: <syntaxhighlight lang="prolog"> is_error_type( error, Z30005 ) </syntaxhighlight> Lass uns das Schritt für Schritt tun: # Um einen Test hinzuzufügen, klicke auf der Funktionsseite in der Tabelle "Tests" auf die Schaltfläche "+". Die Felder "Aufruf" und "Ergebnisprüfung" enthalten bereits vordefinierte Funktionen. Um die Fehler zu testen, müssen wir diese jedoch ändern. # Als Erstes richten wir den Aufruf ein: ## Klicke unter "Aufruf" auf die Schaltfläche "›", um den Funktionsaufruf zu erweitern. ## Bearbeite das Feld unter "Funktion" und suche die Funktion "erhalte zweites Element eines typisierten Paars" und wähle sie aus ## Klicke anschließend neben "typisiertes Paar" auf die Schaltfläche "…" und wähle "Funktionsaufruf" aus ## Suche unter "Funktion" nach der Funktion "Fehler erhalten, ausgelöst durch Funktionsaufruf" und wähle sie aus ## Klicke neben "Funktionsaufruf" auf die Schaltfläche "…" und wähle "Funktionsaufruf" aus ## Suche unter "Funktion" nach der Funktion "verbinde zwei Zeichenketten mit Leerzeichen" (oder nach ZID <code>Z30000</code>) und wähle sie aus ## Lege nun die Eingaben so fest, dass ein Fehler auftritt: Mindestens eine von ihnen muss leer sein. ## Du kannst jetzt deinen "Aufruf" durch erneutes Klicken auf den Pfeil nach unten wieder ausblenden, wenn du möchtest! # Als Nächstes richten wir die Ergebnisprüfung ein: ## Klicke unter "Ergebnisprüfung" auf die Schaltfläche "›", um den Funktionsaufruf zu erweitern. ## Bearbeite das Feld unter "Funktion" und suche die Funktion "ist Fehlertyp" und wähle sie aus ## Du wirst nun nur noch aufgefordert, das zweite Argument zu konfigurieren. Suche unter "Fehlertyp" nach deinem Fehlertyp <code>Z30005</code> und wähle ihn aus. # Und du bist fertig! Du kannst jetzt auf den kreisförmigen Pfeil im Feld "Implementierungen" klicken und solltest grüne Häkchen sehen. Wenn alles geklappt hat, kannst du deinen Test jetzt speichern. Er sollte folgendermaßen aussehen: [[File:Get error expanded.png|frame|center|alt=Testen eines Fehlers mit den Funktionen Fehler erhalten und ist Fehlertyp in ihrer erweiterten Ansicht|Testen eines Fehlers mit den Funktionen Fehler erhalten und ist Fehlertyp in ihrer erweiterten Ansicht]] [[File:Get error collapsed.png|frame|center|alt=Testen eines Fehlers mit den Funktionen Fehler erhalten und ist Fehlertyp in ihrer reduzierten Ansicht|Testen eines Fehlers mit den Funktionen Fehler erhalten und ist Fehlertyp in ihrer reduzierten Ansicht]] <span id="Creating_actionable_error_messages"></span> === Erstellung handlungsorientierter Fehlermeldungen === Wie oben beschrieben, verfügen Fehlertypen über einen optionalen Schlüssel <code>Z50K3</code>, der eine mehrsprachige Liste von HTML-Zeichenketten enthält. Bei der Darstellung von Informationen zu einem Fehler können die im Fehlertyp hinterlegten Meldungen dazu beitragen, eine klare, präzise, ​​informative, übersetzbare und handlungsorientierte Fehlermeldung zu erstellen. Zu diesem Zweck können Fehlermeldungen Parameter wie <code>$1</code>, <code>$2</code> etc. enthalten, wobei die Ziffer dem Argument des Fehlertyps und dessen Wert in der Fehlerinstanz entspricht. Diese Fehlermeldungen werden in Wikifunctions nach der Ausführung eines Funktionsaufrufs im Dialogfenster "Details" angezeigt. Darüber hinaus werden diese Fehlermeldungen auch in anderen Client-Schnittstellen, wie der Abstrakten Wikipedia, ausgegeben, um den Autoren von Abstrakten Inhalten eine bessere Orientierung zu bieten. [[File:Wikifunctions actionable error message example in the Details dialog.png|thumb|Die Fehlermeldung wird unter Verwendung der HTML-Meldung des Fehlertyps und der Werte der Fehlerargumente generiert.]] [[File:Wikifunctions actionable error message example in Abstract Wikipedia.png|thumb|Sofern verfügbar, wird die HTML-Fehlermeldung im Vorschau-Bereich der Abstrakten Wikipedia angezeigt.]] Lass uns anhand eines konkreten Beispiels die Vorteile von HTML-Fehlermeldungen nachvollziehen: Die Funktion {{Z|Z37847}} gibt die erste Lexem-Referenz zurück, basierend auf einer Wikidata-Datenobjekt-Referenz und einer Sprache. Falls für diese Kombination aus Datenobjekt und Sprache kein Lexem existiert, löst sie einen Fehler vom Typ {{Z|Z28248}} aus, der drei Schlüssel hat: * '''Z28248K1''' ist die QID des angegebenen Wikidata-Datenobjekts * '''Z28248K2''' ist die verbindende Eigenschaft, in diesem Fall <code>P5137/Objekt für diesen Sinn</code> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Z28248K3''' is the language code</span> <div lang="en" dir="ltr" class="mw-content-ltr"> When calling this function for a Wikidata lexeme that doesn't exist, the call will throw an error instance like this: </div> <syntaxhighlight lang="json" highlight="10,12"> { "Z1K1": "Z5", "Z5K1": "Z28248", "Z5K2": { "Z1K1": { "Z1K1": "Z7", "Z7K1": "Z885", "Z885K1": "Z28248" }, "Z28248K1": "Q319", "Z28248K2": "P5137", "Z28248K3": "ast" } } </syntaxhighlight> <div lang="en" dir="ltr" class="mw-content-ltr"> While the error type label indicates: <code>No matching lexeme for item in language</code>, a better error message should indicate: </div> * <span lang="en" dir="ltr" class="mw-content-ltr">which is the failing item,</span> * <span lang="en" dir="ltr" class="mw-content-ltr">which is the language missing, and</span> * <span lang="en" dir="ltr" class="mw-content-ltr">what are the possible ways to fix it.</span> <div lang="en" dir="ltr" class="mw-content-ltr"> The error message <code>Z50K3</code> field can provide this functionality. Whenever an Error Type has an error message for the user language (or any of its fallbacks), the error message shown will be rendered by: </div> # <span lang="en" dir="ltr" class="mw-content-ltr">First, replacing the message parameters with the values of the keys. In our example, any <code>$1</code> will be replaced with the value of <code>Z28248K1</code> ("Q319"), <code>$2</code> with "P5137", and <code>$3</code> with "ast",</span> # <span lang="en" dir="ltr" class="mw-content-ltr">Last, sanitizing and rendering the HTML message.</span> <div lang="en" dir="ltr" class="mw-content-ltr"> So a HTML message like: </div> <syntaxhighlight lang="html"> There is no matching lexeme for the item $1 in "$3".<br> <a href="http://wikidata.org/wiki/$1">Edit in Wikidata</a> </syntaxhighlight> <div lang="en" dir="ltr" class="mw-content-ltr"> Will become: </div> : There is no matching lexeme for the item Q319 in "ast" : [[d:Q319|Edit in Wikidata]] <span id="Debugging_your_implementations"></span> == Debuggen deiner Implementierungen == Manchmal läuft etwas schief. Eine Funktion verhält sich möglicherweise anders als erwartet oder ein Wert erscheint merkwürdig. Implementierungen können mitunter sehr komplex sein, und da sie in einer Spielwiesen-Umgebung ausgeführt werden, kann die Fehlersuche extrem schwierig erscheinen. Um das Verständnis der Vorgänge innerhalb eines Funktionsaufrufs zu erleichtern, bietet Wikifunctions einige Debugging-Werkzeuge. Diese Werkzeuge verändern nicht das Ergebnis einer Funktion, sondern fügen den zurückgegebenen Metadaten zusätzliche Informationen hinzu, die du nach dem Ausführen der Funktion einsehen kannst. Du kannst <code>Wikifunctions.Debug()</code> in deinen Code-Implementierungen oder die Funktion {{Z|Z854}} in deinen Kompositionen verwenden. In diesem Abschnitt erfährst du: * Wie man Debug-Meldungen sowohl aus Code- als auch aus Kompositions-Implementierungen hinzufügt, * Wie man die Metadaten manuell oder über die Benutzeroberfläche untersucht, um diese Protokolle einzusehen. <span id="Debugging_your_code_implementations"></span> === Debuggen deiner Code-Implementierungen === Beim Schreiben von Code, sowohl in JavaScript als auch in Python3, kannst du <code>Wikifunctions.Debug()</code> verwenden, um eine Meldung zu deinem Debug-Protokoll hinzuzufügen und die Ausführung fortzusetzen. {{phab|T441028}} <code>Wikifunctions.Debug()</code> hat einen Parameter, der üblicherweise als Zeichenkette erwartet wird. Jedes andere als Parameter übergebene Objekt wird jedoch direkt in eine Zeichenkette umgewandelt. Um zu unseren Code-Implementierungen für unsere Beispielfunktion "verbinde zwei Zeichenketten mit Leerzeichen" Debug-Protokolle hinzuzufügen, können wir dies in JavaScript tun: <syntaxhighlight lang="JavaScript"> function Z30000( Z30000K1, Z30000K2 ) { if ( trim( Z30000K1 ) === '' ) { Wikifunctions.Debug( `first input is empty "${ Z30000K1 }"` ); Wikifunctions.Error( 'Z30005', [ "Z30000K1", Z30000K1 ] ) } if ( trim( Z30000K2 ) === '' ) { Wikifunctions.Debug( `second input is empty "${ Z30000K2 }"` ); Wikifunctions.Error( 'Z30005', [ "Z30000K2", Z30000K2 ] ) } Wikifunctions.Debug( "both inputs are fine" ); return Z30000K1 + " " + Z30000K2; } </syntaxhighlight> Und das Gleiche in deiner Python3-Implementierung: <syntaxhighlight lang="python3"> def Z30000(Z30000K1, Z30000K2): if Z30000K1.strip() == "": Wikifunctions.Debug( 'first input is empty "'+Z30000K1+'"' ) Wikifunctions.Error("Z30005", ["Z30000K1", Z30000K1]) if Z30000K2.strip() == "": Wikifunctions.Debug( 'second input is empty "'+Z30000K2+'"' ) Wikifunctions.Error("Z30005", ["Z30000K2", Z30000K2]) Wikifunctions.Debug( 'both inputs are fine' ) return Z30000K1 + " " + Z30000K2 </syntaxhighlight> Auf diese Weise fügen wir deinen Debug-Protokollen in jedem Fall eine Meldung hinzu: * Schlägt der Funktionsaufruf bei der Überprüfung der ersten oder zweiten Eingabe fehl, ist das Ergebnis der Ausführung ein Fehler, enthält aber einen informativen Protokolleintrag darüber, welcher Zweig den Fehler verursacht hat. * Wenn der Funktionsaufruf erfolgreich ist — weil beide Eingaben gültig sind — gibt der Funktionsaufruf die verbundene Zeichenkette zurück, aber die zurückgegebenen Metadaten enthalten auch ein Debug-Protokoll. <span id="Debugging_your_compositions"></span> === Debuggen deiner Kompositionen === Zur Unterstützung des Debuggens von Kompositionen stellt Wikifunctions die integrierte Funktion {{Z|Z854}} bereit. Mit dieser Funktion kannst du Debug-Meldungen an die Ausführung jedes Funktionsaufrufs anhängen, der die endgültige Ausgabe erzeugt. Die während der Auswertung gesammelten Debug-Protokolle werden als Teil der Ausführungsmetadaten unter dem Schlüssel <code>executorDebugLogs</code> zurückgegeben. <span id="Add_debug_log_to_function_call_(Z854)"></span> ==== Debug-Protokoll zu Funktionsaufruf hinzufügen (Z854) ==== Die Funktion {{Z|Z854}} ist eine integrierte Funktion mit der ZID <code>Z854</code> und benötigt zwei Argumente: * '''Funktionsaufruf''' – Jede Komposition, die du ausführen möchtest. * '''Debug-Protokoll''' – Eine Zeichenketten-Meldung, die protokolliert wird, wenn der angegebene Funktionsaufruf ausgewertet wird. Wenn der umschlossene Funktionsaufruf ausgeführt wird, wird die bereitgestellte Meldung zu den Ausführungsprotokollen hinzugefügt. Wird dieser Funktionsaufruf nicht ausgeführt oder ist seine Ausführung nicht Teil der endgültigen Ausgabe, erscheint sein Debug-Protokoll nicht in den Metadaten des Endergebnisses. Diese integrierte Funktion ist besonders nützlich, wenn du beobachten möchtest: * Welcher Zweig einer Bedingung ausgeführt wurde, oder * Die Reihenfolge der Auswertung in einer Komposition. <span id="Using_Add_debug_log_to_function_call"></span> ==== Verwendung von Debug-Protokoll zu Funktionsaufruf hinzufügen ==== Angenommen, du möchtest zu unserer Beispielfunktion "verbinde zwei Zeichenketten mit Leerzeichen" oder <code>Z30000</code> Debug-Protokolle hinzufügen, sodass für die verschiedenen möglichen Ergebnisse unterschiedliche Meldungen angezeigt werden. Du könntest unsere integrierte Debugging-Funktion wie folgt verwenden: <syntaxhighlight lang="prolog"> if ( is_empty_string( Z30000K1 ), add_debug_log( throw_error( Z30005, ... ), 'failed on first input' ) if( is_empty_string( Z30000K2 ), add_debug_log( throw_error( Z30005, ... ), 'failed on second input' ), add_debug_log( join_with_separator( Z30000K1, Z30000K2, " " ), 'both inputs are ok!' ) ) ) </syntaxhighlight> Dies bewirkt Folgendes: * Wird die Funktion mit einer leeren ersten Eingabe aufgerufen, gibt sie eine Fehlermeldung zurück und die Metadaten enthalten einen Eintrag <code>executorDebugLogs</code> mit dem Protokoll-Eintrag "Fehler bei erster Eingabe". * Wird der Aufruf mit einer leeren zweiten Eingabe aufgerufen, schlägt der Aufruf ebenfalls fehl, die protokollierte Meldung lautet jedoch "Fehler bei zweiter Eingabe". * Bei Aufruf mit gültigen Eingaben gibt die Funktion eine erfolgreiche Antwort zurück und zusätzlich enthalten die Metadaten im Schlüssel <code>executorDebugLogs</code> "Beide Eingaben sind in Ordnung". So würde diese Komposition aussehen: [[File:Add debug log expanded.png|frame|center|alt=Implementierung der Komposition mit Debug-Protokoll hinzufügen, um alle möglichen Ausführungspfade zu protokollieren|Implementierung der Komposition mit Debug-Protokoll hinzufügen, um alle möglichen Ausführungspfade zu protokollieren]] <span id="Accessing_execution_debug_logs"></span> === Zugriff auf Ausführungs-Debug-Protokolle === Unabhängig davon, ob deine Ausführungsprotokolle über <code>Wikifunctions.Debug()</code> oder die integrierte Funktion {{Z|Z854}} hinzugefügt werden, werden sie als Teil der Antwort-Metadaten zurückgegeben. Um die Protokolle zu sehen, klicke nach dem Ausführen deiner Funktion auf die Schaltfläche "Details", die unten im Abschnitt "Ergebnis" erscheint. Die Fehler- und Debug-Informationen werden oben im Dialogfeld "Details" angezeigt. Dies ist das Ergebnis, das du sehen würdest, wenn du die Komposition aus unserem vorherigen Beispiel mit gültigen und ungültigen Eingaben ausführst: {| class="wikitable" | [[File:Execution logs success.png|frameless|center|alt=Funktions-Metadatendialog für eine erfolgreiche Ausführung mit Debug-Protokollen]] | [[File:Execution logs failure.png|frameless|center|alt=Funktions-Metadatendialog für eine fehlgeschlagene Ausführung mit Debug-Protokollen]] |- | Funktions-Metadatendialog für eine erfolgreiche Ausführung: zeigt keine Fehler an, sondern das Protokoll der erfolgreichen Ausführung: ''"Beide Eingaben sind in Ordnung!"'' | Funktions-Metadatendialog für eine fehlgeschlagene Ausführung: zeigt die Fehlerinformationen und das zusätzliche Ausführungsprotokoll für den ersten Fehlerzweig an: ''"Fehler bei erster Eingabe"'' |} [[Category:How to create implementations| {{#translation:}}]] 67uu2ftz8ga3gq0ayjm1qb4d75h4rwd 334146 334144 2026-10-28T20:27:40Z Ameisenigel 44 Created page with "'''$1''' ist der Sprachcode" 334146 wikitext text/x-wiki <languages/> Diese Seite bietet eine detailliertere Anleitung dafür, wie man '''Implementierungen erstellt''' und geht über den Überblick auf {{ll|Wikifunctions:Introduction}} hinaus. <span id="Types_of_Implementations"></span> == Arten von Implementierungen == In Wikifunctions kann eine '''Implementierung''' zwei Hauptformen annehmen: '''Code''' oder '''Komposition'''. Eine Code-Implementierung drückt die Logik der Funktion direkt in einer der verfügbaren Programmiersprachen aus (derzeit Python3 oder JavaScript). Sie ist besonders nützlich, wenn sich das Verhalten der Funktion nicht ohne Weiteres aus bestehenden Wikifunktionen ableiten lässt oder wenn eine präzise Kontrolle über die Datenverarbeitung erforderlich ist. Eine Kompositions-Implementierung definiert die Funktion hingegen vollständig durch die Kombination bestehender Funktionen, ohne dass Code geschrieben werden muss. Kompositionen sind leichter verständlich, wiederverwendbar und lassen sich automatisch in andere Sprachen übersetzen. Sie setzen jedoch voraus, dass geeignete Bausteine ​​bereits vorhanden sind und sind oft weniger leistungsfähig. Prüfe daher zunächst, ob dein Ziel durch Komposition erreicht werden kann. Ist dies nicht möglich oder spielen Leistung oder feingranulare Logik eine Rolle, wähle stattdessen eine Code-Implementierung. Es gibt eine dritte Implementierungsart: '''integrierte Implementierungen'''. Diese werden vom Systemcode ausgeführt und können nicht bearbeitet werden. Höchstwahrscheinlich verfügen alle vordefinierten Funktionen über eine integrierte Implementierung. In solchen Fällen wird beim Öffnen der Implementierungsseite die Meldung ''"{{int|wikilambda-implementation-selector-none}}"'' angezeigt. <span id="Practice_Test-Driven_Development"></span> == Praxis der testgetriebenen Entwicklung == '''Testgetriebene Entwicklung''' oder '''TDD''' ist eine Methode zur Softwareentwicklung, bei der Tests geschrieben werden, bevor der eigentliche Code geschrieben wird. Tests dienen dazu, die Funktionsweise einer Funktion anhand von Beispielen und deren Funktionsweise zu verstehen. In Wikifunctions bietet das Schreiben von Tests als erste Tätigkeit erhebliche Vorteile. Wenn du an einer Implementierung arbeitest, kannst du deinen Code anhand der vorhandenen Tests ausführen, um sicherzustellen, dass er sich wie erwartet verhält. Dadurch lassen sich Fehler frühzeitig erkennen, noch bevor du deine Implementierung veröffentlichst. Tests sind außerdem ein effektives Mittel, um die benötigte Funktion zu beschreiben. Durch das Schreiben von Tests '''kommunizierst du klar das erwartete Verhalten''' und die Community kann bei der Implementierung helfen oder alternative Implementierungen erstellen. Stell dir vor, du möchtest eine Funktion implementieren, die zwei Zeichenketten mit einem Leerzeichen dazwischen verknüpft. Ein einfacher Test dafür könnte so aussehen: <syntaxhighlight lang="prolog"> join_with_space( "Hello", "world" ) => "Hello world" </syntaxhighlight> Sobald du das grundlegende Verhalten definiert hast, ist es wichtig, auch '''an Randfälle zu denken''' — Situationen, in denen die Eingaben so beschaffen sind, dass ein spezielles Verhalten erforderlich sein könnte. Was passiert beispielsweise, wenn deine erste Zeichenkette mit einem Leerzeichen endet oder deine zweite mit einem Leerzeichen beginnt? Soll die Funktion alle vorhandenen Leerzeichen beibehalten und ein weiteres hinzufügen oder ein sauber formatiertes Ergebnis mit nur einem Leerzeichen zwischen den Wörtern zurückgeben? Je nach deinen Anforderungen solltest du einen Test für einen solchen Fall erstellen. Ein Test für diesen Sonderfall könnte beispielsweise einer der folgenden sein — aber nicht beide!: <syntaxhighlight lang="prolog"> join_with_space( "Hello ", " world") => "Hello world" </syntaxhighlight> oder ... <syntaxhighlight lang="prolog"> join_with_space( "Hello ", " world") => "Hello world" </syntaxhighlight> Stell sicher, dass deine Tests alle möglichen Sonderfälle abdecken, und sobald du diese hast, stell sicher, dass sie alle mit der Funktion verbunden sind, indem du sie auswählst und auf "Verbinden" klickst. <span id="Code_implementations"></span> == Code-Implementierungen == [[File:Code implementation.png|thumb|alt=Wikifunctions-Code-Editor, der mit einer Funktionsvorlage initialisiert wurde|Beim Hinzufügen einer neuen Code-Implementierung wird die Funktionsvorlage mit den Funktions- und Argumentnamen initialisiert]] Beim Erstellen einer Implementierung mit Code richtet die Wikifunctions-Benutzeroberfläche einen Code-Editor ein, in dem die ausgewählte Sprache für Syntaxhervorhebung und -validierung aktiviert ist. Sobald die zu implementierende Funktion und die Programmiersprache ausgewählt sind, wird dieser Editor mit der korrekten Funktionsvorlage konfiguriert: '''Entferne oder bearbeite sie nicht!''' Platziere deinen Code innerhalb dieser Funktionssignatur. Falls du Hilfsfunktionen benötigst, kannst du diese einfach in deiner Hauptfunktionsdeklaration deklarieren. <span id="Using_input_types_in_your_code"></span> === Verwendung von Eingabetypen in deinem Code === Die Wikifunctions-Typen {{Z|Z6}} und {{Z|Z40}} können in JavaScript und Python3 wie native Typen verwendet werden. Beispielsweise lässt sich eine Zeichenkette verketten oder ein boolescher Wert direkt in einem logischen Ausdruck verwenden. Um andere Typen in deinen Code-Implementierungen zu verwenden, musst du den jeweiligen Typ genauer untersuchen, herausfinden, ob eine Umwandlung in ein natives Äquivalent existiert, und ihn entsprechend behandeln. Nehmen wir beispielsweise an, wir möchten Python-Code schreiben, der eine Eingabe vom Typ {{Z|Z20420}} verarbeitet. Auf der Seite für diesen Typ sehen wir uns die "Typumwandler in Code" an und suchen nach einem Python-Umwandler. Der Umwandler {{Z|Z20424}} wird auf unsere Datumseingabe angewendet, bevor unser Code ausgeführt wird. Unter "nativer Typ" sehen wir, dass unsere Eingabe ein Python-Dictionary ist, und in der Implementierung können wir die zu erwartenden Schlüssel sehen: <syntaxhighlight lang="python3"> return { 'K1': year, 'K2': month, 'K3': day } </syntaxhighlight> Wenn ein Typ keinen Umwandler besitzt, musst du direkt über seine Schlüssel auf seine Bestandteile zugreifen. Nehmen wir beispielsweise an, deine Funktion <code>Z30000</code> hat einen Eingabeparameter <code>Z30000K1</code> vom Typ {{Z|Z11}}. Dieser Typ besitzt zwei Schlüssel: <code>Z11K1</code> für die Sprache (selbst ein Objekt vom Typ {{Z|Z60}}) und <code>Z11K2</code> für den Zeichenketten-Wert. Das Sprachobjekt hat wiederum einen Schlüssel <code>Z60K1</code> für den Sprachcode. Um also eine Zeichenkette mit dem Sprachcode und dem Text zu erhalten, kannst du folgendes schreiben: <syntaxhighlight lang="javascript"> function Z30000( Z30000K1 ) { // z. B. "de: beliebiger Text" return Z30000K1.Z11K1.Z60K1 + ": " + Z30000K1.Z11K2; } </syntaxhighlight> Für eine Kurzübersicht der verfügbaren Typumwandlungen besuche [[Special:MyLanguage/Wikifunctions:Execution targets#Default type conversion|die Tabelle der Standard-Typumwandlungen]]. <span id="Returning_the_right_outputs"></span> === Rückgabe der richtigen Ausgaben === Ähnlich wie bei der Behandlung von Eingaben müssen auch Ausgaben dem in der Funktionsdefinition angegebenen Typ entsprechen. Einige können wie native Typen behandelt werden; daher wird jede Zeichenketten-Ausgabe in ein Wikifunctions-Objekt {{Z|Z6}} und jeder von deiner Implementierung zurückgegebene native boolesche Wert in ein Wikifunctions-Objekt {{Z|Z40}} umgewandelt. Typen mit "Typumwandlern aus Code" wenden die entsprechende Funktion auf die Ausgabe an, um den benötigten Typ zu erzeugen. Am Beispiel von {{Z|Z20420}} transformiert {{Z|Z20443}} die Ausgabe deiner Implementierung – ein Dictionary mit den Schlüsseln K1, K2 und K3 – in die korrekte ZObjekt-Darstellung. Für Typen, die keine Umwandler aus Code haben, kannst du die Ausgabeobjekte sorgfältig erstellen und zurückgeben. Stell dir beispielsweise vor, unsere Funktion <code>Z30000</code> nimmt zwei Zeichenketten als Eingaben entgegen: Sprachcode und Text, und soll ein Objekt {{Z|Z11}} zurückgeben. In Python kannst du dies mit dem Konstruktor <code>ZObject</code> erreichen: <syntaxhighlight lang="python3"> def Z30000(Z30000K1, Z30000K2): lang_object = ZObject( {"Z1K1": "Z9", "Z9K1": "Z60"}, Z60K1 = Z30000K1 ) return ZObject( {"Z1K1": "Z9", "Z9K1": "Z11"}, Z11K1 = lang_object, Z11K2 = Z30000K2 ) </syntaxhighlight> Oder in JavaScript: <syntaxhighlight lang="javascript"> function Z30000( Z30000K1, Z30000K2 ) { const langObject = new ZObject( new Map( [ [ "Z60K1", Z30000K1 ] ] ), { "Z1K1": "Z9", "Z9K1": "Z60" } ); const monolingualKeys = new Map( [ [ "Z11K1", langObject ], [ "Z11K2", Z30000K2 ] ] ); return new ZObject( monolingualKeys, { "Z1K1": "Z9", "Z9K1": "Z11" } ); } </syntaxhighlight> Du kannst mehr über die Klasse <code>ZObject</code> und andere nützliche Konstruktoren auf {{ll|Wikifunctions:Execution_targets#Custom_and_non-built-in_type_conversion}} erfahren. {{phab|T392750}}Stand Mai 2026 kann der Versuch, eine Liste von Listen zurückzugeben, fehlschlagen; daher ist es nicht möglich, solche Funktionen in Code zu implementieren. === Code in Python === In diesem Abschnitt geben wir ein konkretes Beispiel, wie man eine Implementierung in Form von Code in Python erstellt. Angenommen, wir möchten eine Implementierung für eine Funktion erstellen, die zwei Eingabezeichenketten durch Einfügen eines Leerzeichens dazwischen kombiniert und das Ergebnis zurückgibt. Nehmen wir an, die ZID dieser Funktion ist Z30000. Die Implementierung wird über die ZID der Funktion definiert. Das gilt auch für die Argumente der Funktion. Im Fall der Funktion Z30000 mit ihren beiden Argumenten sollte die Funktionsvorlage also so aussehen: <syntaxhighlight lang="python3"> def Z30000(Z30000K1, Z30000K2): </syntaxhighlight> Wie bereits erwähnt, wissen wir, dass die Argumente (<code>Z30000K1</code> und <code>Z30000K2</code>) Zeichenketten sind, daher können wir sie genauso behandeln wie native Zeichenketten in Python. Die Funktion sollte außerdem eine Zeichenkette zurückgeben. In unserem Beispiel geben wir einfach die beiden Argumente, getrennt durch ein Leerzeichen, aneinandergereiht zurück: <syntaxhighlight lang="python3"> def Z30000(Z30000K1, Z30000K2): return Z30000K1 + " " + Z30000K2 </syntaxhighlight> Da es sich um Python handelt, vergesse nicht, diese Zeile einzurücken. Wenn du unserem Rat gefolgt bist, [[#Practice Test-Driven Development|TDD anzuwenden]], verfügst du bereits über eine Reihe von Tests, von denen du weißt, dass sie funktionieren sollten. In diesem Fall kannst du während der Entwicklung deiner Implementierung auf den kreisförmigen Pfeil im Testbereich klicken und überprüfen, ob deine Implementierung alle Tests besteht. Denke daran, dass die Laufzeit keinen Status hat. Gehe nicht von Werten für globale oder statische Variablen aus. Wenn du weitere Fragen dazu hast, was du in Python tun kannst und was nicht, frage auf [[Wikifunctions:Python implementations]]. === Code in JavaScript === In diesem Abschnitt geben wir ein konkretes Beispiel, wie man eine Implementierung in Form von Code in JavaScript erstellt. Angenommen, wir möchten eine Implementierung für eine Funktion erstellen, die zwei Eingabezeichenketten durch Einfügen eines Leerzeichens dazwischen kombiniert und das Ergebnis zurückgibt. Nehmen wir an, die ZID dieser Funktion ist <code>Z30000</code>. Die Implementierung wird über die ZID der Funktion definiert. Das gilt auch für die Argumente der Funktion. Im Fall der Funktion <code>Z30000</code> mit ihren beiden Argumenten sollte die Funktionsvorlage also so aussehen: <syntaxhighlight lang="javascript"> function Z30000( Z30000K1, Z30000K2 ) { } </syntaxhighlight> Wir wissen, dass die Argumente (<code>Z30000K1</code> und <code>Z30000K2</code>) Zeichenketten sind, daher können wir sie in JavaScript wie native Zeichenketten behandeln. Die Funktion soll außerdem eine Zeichenkette zurückgeben. Um die Funktion zu vervollständigen, kannst du eine Zeile hinzufügen, die die Eingabezeichenketten verkettet, etwa so: <syntaxhighlight lang="javascript"> function Z30000( Z30000K1, Z30000K2 ) { return Z30000K1 + " " + Z30000K2; } </syntaxhighlight> Wenn du Tests wie im Abschnitt [[#Practice Test-Driven Development|TDD]] oben empfohlen hast, klicke auf den kreisförmigen Pfeil im Testbereich und prüfe, ob deine Implementierung alle Tests besteht. Denke daran, dass die Laufzeit keinen Status hat. Gehe nicht von Werten für globale oder statische Variablen aus. Wenn du weitere Fragen dazu hast, was du in JavaScript tun kannst und was nicht, frage auf [[Wikifunctions:JavaScript implementations]]. <span id="Calling_another_Wikifunctions_function"></span> === Aufruf einer anderen Wikifunctions-Funktion === Eine Code-Implementierung kann bestimmte andere Wikifunctions-Funktionen aufrufen, die Ausgabe des Aufrufs empfangen und diese Ausgabe für die weitere Verarbeitung nutzen. Wir bezeichnen solche Aufrufe als Callbacks. Derzeit können aus Sicherheits- und Leistungsgründen nur die folgenden integrierten Wikidata-Abruf- und Suchfunktionen auf diese Weise aufgerufen werden: {{Z|Z6820}}, {{Z|Z6821}}, {{Z|Z6822}}, {{Z|Z6824}}, {{Z|Z6825}}, {{Z|Z6826}}, {{Z|Z6830}} und {{Z|Z6831}}. Diese Funktionalität befindet sich in einem frühen Stadium der Einführung; wir hoffen, in Zukunft Aufrufe für eine größere Bandbreite an Funktionen zu ermöglichen. Betrachten wir eine JavaScript-Implementierung, die einen Callback enthält. Diese Implementierung ruft ein Datenobjekt von Wikidata ab, extrahiert die Bezeichnung dieses Datenobjektes in einer bestimmten Sprache und gibt die Bezeichnung als Zeichenkette zurück. Das abzurufende Datenobjekt wird über das Argument <code>Z400K1</code> angegeben, die Sprache über <code>Z400K2</code>. <syntaxhighlight lang="javascript"> function Z400( Z400K1, Z400K2 ) { const item = Wikifunctions.Call('Z6821', Z400K1); for (const label of item.Z6001K2.Z12K1) { if (label.Z11K1.Z60K1 === Z400K2.Z60K1) { return label.Z11K2; }} return 'NOT FOUND'; } </syntaxhighlight> Ein Callback wird durch den Aufruf von <code>Wikifunctions.Call</code> ausgelöst, wie im Beispiel gezeigt. Das erste Argument für <code>Wikifunctions.Call</code> ist stets die ZID der aufzurufenden Funktion – in diesem Fall {{Z|Z6821}}, welche ein einzelnes Argument entgegennimmt. Darauf folgen, durch Kommas getrennt, die an diese Funktion zu übergebenden Argumente. Hierbei handelt es sich bei dem Argument <code>Z400K1</code> um denselben Wert, der auch an <code>Z400</code> übergeben wurde. Dies ist ein gängiges Muster für die Argumentübergabe an Callbacks, jedoch können die Argumente auch mit dem Konstruktor <code>ZObject</code> (wie oben beschrieben) erstellt oder auf andere Weise bezogen werden. Der Wert von <code>Z400K1</code> wäre eine Instanz von {{Z|Z6091}}, die die QID des abzurufenden Datenobjekts enthält. Zeile 2 des Beispiels ruft <code>Z6821</code> auf, um dieses Datenobjekt von Wikidata abzurufen, und weist das resultierende ZObjekt der Konstante <code>item</code> zu. Der restliche Code durchläuft die Bezeichnungen des Datenobjekts, bis er diejenige findet, die der durch <code>Z400K2</code> angegebenen Sprache entspricht. Für das obige Beispiel haben wir der Einfachheit halber <code>Z6821</code> verwendet. Sofern die Implementierung jedoch nicht das gesamte Objekt benötigt, wird dringend empfohlen, zum Abrufen von Wikidata-Datenobjekten, die sehr groß sein können, <code>Z6820</code> zu verwenden. Obwohl der Aufruf von <code>Z6820</code> etwas komplexer ist, ermöglichen seine Parameter das Abrufen spezifischer Teile eines Wikidata-Datenobjekts. Dies kann die Leistung erheblich steigern und bestimmte Fehler vermeiden, da weniger Netzwerkbandbreite und Verarbeitungszeit erforderlich sind. (<code>Z6820</code> kann auch statt <code>Z6822</code>, <code>Z6824</code>, <code>Z6825</code> und <code>Z6826</code> verwendet werden, um ähnliche Vorteile bei der Bandweitenreduzierung zu erreichen.) Im Folgenden zeigen wir, wie <code>Z6820</code> in <code>Wikifunctions.Call</code> verwendet werden kann, um dasselbe Verhalten wie oben zu erzielen. Beachte, dass wir das zweite an <code>Z6820</code> übergebene Argument, <code>[labelsPart]</code>, nutzen, um festzulegen: “Gib nur die Bezeichnungen des Datenobjekts zurück”, und das dritte Argument, <code>[Z400K2]</code>, verwenden, um festzulegen: “Gib die Bezeichnungen nur in der angegebenen Sprache zurück”. (Dieses Argument würde auch für Aliasse und Beschreibungen gelten, sofern diese im Ergebnis enthalten wären.) <syntaxhighlight lang="javascript"> function Z400( Z400K1, Z400K2 ) { const labelsPart = new ZObject( new Map( [ ['Z6030K1', new ZReference('Z6033')] ] ), {Z1K1: 'Z9', Z9K1: 'Z6030'} ); const entities = Wikifunctions.Call( 'Z6820', [Z400K1], [labelsPart], [Z400K2], []); const item = entities.get(Z400K1.Z6091K1); const labels = item.Z6001K2.Z12K1; for (const label of labels) { if (label.Z11K1.Z60K1 === Z400K2.Z60K1) { return label.Z11K2; }} return 'NOT FOUND'; } </syntaxhighlight> Weitere zu beachtende Hinweise: * Obwohl Code-Implementierungen mittlerweile in der Lage sind, Wikidata-Entitäten abzurufen, wird empfohlen, dass sie keine ''vollständigen'' Entitäten zurückgeben. Dies liegt an den derzeitigen Beschränkungen hinsichtlich der Größe des von einer Code-Implementierung zurückgegebenen Wertes. Um eine vollständige, große Entität abzurufen und zurückzugeben, ist es besser, die Abruffunktion aus einer Komposition heraus aufzurufen. * Es kann nur ein Callback gleichzeitig ausgeführt werden. Aus Sicherheitsgründen ist es nicht möglich, die Nebenläufigkeitsfunktionen von JavaScript oder Python zu nutzen, um mehrere Callbacks parallel auszuführen. ** Beachte jedoch, dass du mithilfe von Z6820 mehrere Entitäten auf einmal abrufen kannst. * Derzeit gibt es eine Obergrenze von 3 MiB für die Größe von Wikidata-Inhalten, die über einen einzelnen Callback an eine Code-Implementierung zurückgegeben werden können. Dieselbe Obergrenze gilt für die Größe des Ergebnisses, das von einer Code-Implementierung zurückgegeben wird. <span id="Compositions"></span> == Kompositionen == Im diesem Abschnitt geben wir ein konkretes Beispiel, wie man eine Implementierung in Form einer Komposition erstellt. Angenommen, wir möchten eine Implementierung für eine Funktion erstellen, die zwei Eingabezeichenketten durch Einfügen eines Leerzeichens dazwischen kombiniert und das Ergebnis zurückgibt. Nehmen wir an, die ZID dieser Funktion ist <code>Z30000</code>. Normalerweise ist es sinnvoll, zunächst darüber nachzudenken, wie man vorhandene Funktionen kombinieren kann, um die gewünschte Ausgabe zu erzielen. Manchmal mag dies trivial sein und du kannst einfach mit dem Zusammenstellen und Funktionen fortfahren, aber in vielen Fällen lohnt es sich, die gewünschte Komposition zu notieren. Beispielsweise könnten wir für die angegebene Funktion die vorhandene Funktion {{Z|Z10000}} verwenden. Diese Funktion nimmt zwei Zeichenketten und erstellt daraus eine Zeichenkette. Aber wir müssen dazwischen ein Leerzeichen einfügen. Wir verbinden also zunächst ein Leerzeichen mit dem Ende der ersten Zeichenkette und verbinden dann die zweite Zeichenfolge mit dem Ergebnis dieser ersten Verbindung. Unsere Komposition könnte also so notiert werden: <syntaxhighlight lang="prolog"> join_strings( join_strings( Z30000K1, " " ), Z30000K2 ) </syntaxhighlight> Es gibt mehrere Möglichkeiten, eine Komposition zu schreiben: Beachte, dass dasselbe auch auf folgende Weise erreicht werden kann: <syntaxhighlight lang="prolog"> join_strings( Z30000K1, join_strings( " ", Z30000K2 ) ) </syntaxhighlight> Eine alternative Implementierung könnte auch die vorhandene Funktion {{Z|Z15175}} verwenden, sodass deine Komposition wie folgt aussehen könnte: <syntaxhighlight lang="prolog"> join_with_separator( Z30000K1, Z30000K2, " " ) </syntaxhighlight> Wie du siehst, gibt es mehrere Möglichkeiten, dies zu erreichen. Nimm dir also Zeit und erkunde die vorhandenen Funktionen, die im {{ll|Wikifunctions:Catalogue}} verfügbar sind. Versuchen wir, das zweite Beispiel zu erstellen, <code>join_strings(Z30000K1, join_strings(" ", Z30000K2))</code>. Um dies zu erstellen: # Um eine Implementierung hinzuzufügen, klicke auf der Funktionsseite in der Tabelle "Implementierungen" auf die Schaltfläche "+". # Stelle sicher, dass die Option "Komposition" unter "Implementierung" ausgewählt ist. # Klicke auf das Symbol "›" oder auf den Link "Funktion auswählen", um die Funktionsdetails anzuzeigen. # Suche unter "Funktion" nach dem Namen der äußersten Funktion, die du verwenden möchtest, in diesem Beispiel "verbinde Zeichenketten". Wähle anschließend die gewünschte Funktion aus der Dropdown-Liste aus. # Du siehst zwei neue Felder, eines für jedes der Argumente, die für die ausgewählte Funktion benötigt werden. # Als erstes Argument möchten wir den ersten Eingabewert für unsere Funktion auswählen: ## Klicke neben "erste Zeichenkette" auf die Schaltfläche "…" und wähle "Argumentreferenz" aus. ## Unter "Schlüssel-ID" kannst du nun die erste Zeichenkette deiner Funktion aus dem Dropdown-Menü auswählen, das alle verfügbaren Eingaben enthält. # Für das zweite Argument möchten wir das Ergebnis eines weiteren Aufrufs von "verbinde Zeichenketten" verwenden: ## Klicke neben "zweite Zeichenkette" auf die Schaltfläche "…" und wähle "Funktionsaufruf" aus. ## Suche unter "Funktion" nach der Funktion, die du aufrufen möchtest und wähle sie aus, nämlich "verbinde Zeichenketten". ## Konfiguriere die "erste Zeichenkette" für diesen inneren Funktionsaufruf, indem du einfach ein Leerzeichen in das Textfeld eingibst, und konfiguriere die "zweite Zeichenkette" wie in Schritt 6: Ändere sie mit der Schaltfläche "…" in "Argumentreferenz" und wähle dann das zweite Argument in der Dropdown-Liste aus. Deine Komposition ist nun fertig! Du kannst die Details mithilfe der Pfeiltasten ein- und ausblenden, um dir einen Überblick zu verschaffen. Falls du bereits Tests wie im Abschnitt [[#Practice Test-Driven Development|TDD]] oben empfohlen implementiert hast, klicke im Testbereich auf den kreisförmigen Pfeil und prüfe, ob deine Implementierung die Tests besteht. Sobald deine Komposition die Tests bestanden hat, kannst du sie veröffentlichen. [[File:Composition implementation expanded.png|frame|center|alt=Eine Wikifunctions-Kompositionsimplementierung in ihrer erweiterten Ansicht|Eine Wikifunctions-Kompositionsimplementierung in ihrer erweiterten Ansicht]] [[File:Composition implementation collapsed.png|frame|center|alt=Eine Wikifunctions-Kompositionsimplementierung in ihrer reduzierten Ansicht|Eine Wikifunctions-Kompositionsimplementierung in ihrer reduzierten Ansicht]] <span id="Wikifunctions_error_handling"></span> == Fehlerbehandlung auf Wikifunctions == Als Ersteller einer Wikifunctions-Funktion möchtest du möglicherweise den Benutzer warnen, der deine Funktion aufruft, wenn im Code ein Fehler auftritt oder seine Eingaben bestimmte Kriterien nicht erfüllen. Wenn deine Funktion beispielsweise eine Zeichenkette mit einem Namen erwartet, solltest du prüfen, ob der Name nicht leer ist, und gegebenenfalls eine verständliche Fehlermeldung anzeigen. Hierfür kannst du <code>Wikifunctions.Error()</code> in deinen Code-Implementierungen oder die Funktion {{Z|Z851}} in deinen Kompositionen verwenden. In diesem Abschnitt erfährst du: * Wie man Fehler sowohl aus Code- als auch aus Kompositions-Implementierungen auslöst, * wie man Tests für Fehlerfälle schreibt, und * wie man Fehler abfängt und behandelt, die von Funktionen ausgelöst werden, die man in seinen Kompositionen verwendet. <span id="Throwing_errors_from_code_implementations"></span> === Fehler aus Code-Implementierungen auslösen === Sowohl beim Schreiben von JavaScript- als auch von Python-Code kannst du <code>Wikifunctions.Error()</code> nutzen, um die Ausführung mit einem gewünschten Fehler zu beenden. <code>Wikifunctions.Error()</code> hat zwei Parameter: # Fehlertyp: Eine Zeichenkette, die die ZID des Fehlertyps enthält, den du zurückgeben möchtest. # Fehlerargumente: Eine Liste von Zeichenkettenargumenten zur Erstellung des Fehlers. Gehen wir sie der Reihe nach durch: <span id="Error_type"></span> ==== Fehlertyp ==== Ein Fehlertyp ist ein Objekt, das eine Art von Fehler beschreibt, der im System auftreten kann. Es gibt eine Reihe vordefinierter Fehlertypen, du kannst aber auch eigene Fehlertypen erstellen, die besser zu deinem Anwendungsfall passen. Bei der Verwendung von Fehlern empfiehlt es sich, die verfügbaren Fehlertypen zu durchsuchen, die sich in [[Special:ListObjectsByType/Z50|dieser Liste]] finden. Falls keine passenden Fehler für deinen Fall vorhanden sind, erstelle einen neuen Fehler, indem du zur Erstellungsseite gehst und im Typauswahlfeld "Fehlertyp" auswählst. Lege anschließend die erforderlichen Felder fest: [[File:Error type.png|thumb|alt=Erstellung von Fehlertypen in Wikifunctions|Um einen neuen Fehlertyp (Z50) zu erstellen, bearbeite die Bezeichnung und füge die erforderlichen Schlüssel hinzu.]] * '''Bezeichnung''' – Dies ist der Haupttitel des Fehlers, der eine kurze, aber aussagekräftige Meldung enthalten sollte. Lege die Fehlerbezeichnung im rechten Feld mit dem Titel "Info" fest. * '''Schlüssel''' – Schlüssel enthalten zusätzliche Informationen zur Fehlerursache. Wenn beispielsweise eine Eingabe das falsche Format aufwies, möchtest du den Benutzer möglicherweise über den eingegebenen Inhalt informieren, wenn der Fehler auftritt. Um sie in deinen Implementierungen zu verwenden, müssen Schlüssel vom Zeichenketten sein. Um einen Schlüssel zu erstellen, klicke auf das Symbol "[+]" unterhalb von "Schlüssel", wähle unter "Werttyp" die Option "Zeichenkette" aus und füge eine aussagekräftige Bezeichnung hinzu, beispielsweise "tatsächlich Eingabe". Sobald du alle erforderlichen Schlüssel erstellt hast, kannst du deinen Fehlertyp veröffentlichen und die ID des neu erstellten Objekts speichern. * '''Fehlermeldung''' – Fehlertypen können ein mehrsprachiges Array von Fehlermeldungen enthalten, die mit HTML-Parametern versehen sind. Die Parameter werden als $1, $2 etc. angegeben, wobei die Ziffer dem Schlüssel des Fehlertyps entspricht. Beim Erstellen eines Fehlertyps mit dem Zeichenketten-Schlüssel "aktuelle Eingabe", kann die Fehlermeldung beispielsweise den Platzhalter "$1" verwenden, der zum Zeitpunkt der Fehlerausgabe durch den Wert des Schlüssels "aktuelle Eingabe" ersetzt wird. Um HTML-Meldungen hinzuzufügen, klicke unter "HTML-Fragmente" auf das Symbol "[+]", wähle eine Sprache aus und gib die HTML-Zeichenkette ein. <span id="Error_arguments"></span> ==== Fehlerargumente ==== Fehlerargumente entsprechen den Schlüsseln des Fehlertyps und sollten zusätzliche Informationen zum Verständnis des Fehlers liefern. Fehlerargumente sollten immer Zeichenketten sein. <span id="Using_Wikifunctions.Error()"></span> ==== Verwendung von Wikifunctions.Error() ==== Angenommen, du möchtest einen Fehler auslösen, wenn entweder deine erste oder deine zweite Eingabe leer ist. Du hast den Fehlertyp bereits erstellt und ihm wurde die ZID <code>Z30005</code> zugewiesen. Dein Fehlertyp hat zwei Zeichenketten-Schlüssel: * Eingabeschlüssel: Enthält den Schlüssel der fehlerhaften Eingabe * Eingabewert: Enthält den aktuellen Wert der fehlerhaften Eingabe Um einen Fehler in deiner JavaScript-Implementierung auszulösen, solltest du etwa Folgendes tun: <syntaxhighlight lang="javascript"> function Z30000( Z30000K1, Z30000K2 ) { if ( trim( Z30000K1 ) === '' ) { // Wenn die erste Eingabe leer ist, löse Fehler Z30005 aus // mit zwei Zeichenketten-Argumenten: [ erster Eingabe-Schlüssel, erster Eingabe-Wert ] Wikifunctions.Error( 'Z30005', [ "Z30000K1", Z30000K1 ] ) } if ( trim( Z30000K2 ) === '' ) { // Wenn die zweite Eingabe leer ist, löse Fehler Z30005 aus // mit zwei Zeichenketten-Argumenten: [ zweiter Eingabe-Schlüssel, zweiter Eingabe-Wert ] Wikifunctions.Error( 'Z30005', [ "Z30000K2", Z30000K2 ] ) } return Z30000K1 + " " + Z30000K2; } </syntaxhighlight> Um einen Fehler in deiner Python-Implementierung auszulösen, solltest du etwa Folgendes tun: <syntaxhighlight lang="python3"> def Z30000(Z30000K1, Z30000K2): if Z30000K1.strip() == "": # Wenn die erste Eingabe leer ist, löse Fehler Z30005 aus # mit zwei Zeichenketten-Argumenten: [ erster Eingabe-Schlüssel, erster Eingabe-Wert ] Wikifunctions.Error("Z30005", ["Z30000K1", Z30000K1]) if Z30000K2.strip() == "": # Wenn die zweite Eingabe leer ist, löse Fehler Z30005 aus # mit zwei Zeichenketten-Argumenten: [ erster Eingabe-Schlüssel, erster Eingabe-Wert ] Wikifunctions.Error("Z30005", ["Z30000K2", Z30000K2]) return Z30000K1 + " " + Z30000K2 </syntaxhighlight> Denke daran, dass der Aufruf von <code>Wikifunctions.Error()</code> die Ausführung beendet! <span id="Throwing_errors_from_compositions"></span> === Fehler aus Kompositionen auslösen === Wenn du eine Kompositionsimplementierung erstellst, kannst du einen Fehler auslösen, indem du die Spezialfunktion {{Z|Z851}} aufrufst. <span id="Throw_Error_function_(Z851)"></span> ==== Funktion Fehler auslösen (Z851) ==== Die Funktion {{Z|Z851}} ähnelt der Methode <code>Wikifunctions.Error()</code> und benötigt zwei Argumente: * '''Fehlertyp''' – Ein Verweis auf den Fehlertyp, den du auslösen möchtest * '''Fehlerparameter''' – Eine Liste mit den Argumenten zur Erstellung deines Fehlers, die ebenfalls Zeichenketten sein sollten. <span id="Using_Throw_Error"></span> ==== Verwendung von Fehler auslösen ==== Angenommen, du möchtest deine Komposition so ändern, dass sie zuerst prüft, ob die Argumente nicht leer sind, und einen Fehler ausgibt, wenn sie ein leeres Argument findet. Wenn dann keines der Argumente leer ist, wird die ursprüngliche Komposition ausgeführt, die wie folgt aussieht: <syntaxhighlight lang="prolog"> join_with_separator( Z30000K1, Z30000K2, " " ) </syntaxhighlight> Dazu musst du bedingte Pfade erstellen, für die du die Funktion {{Z|Z802}} verwenden kannst. Stell es dir folgendermaßen vor: * Wenn das erste Argument leer ist, soll ein Fehler für das erste Argument ausgelöst werden * Andernfalls wird mit der Überprüfung des zweiten Arguments fortgefahren * Wenn das zweite Argument leer ist, soll ein Fehler für das zweite Argument ausgelöst werden * Andernfalls wird der Erfolgspfad verfolgt und die verbundenen Zeichenketten mit dem Leerzeichen als Trennzeichen zurückgegeben Oder in funktionalem Pseudocode: <syntaxhighlight lang="prolog"> if ( is_empty_string( Z30000K1 ), throw_error( Z30005, [ "Z30000K1", Z30000K1 ] ), if( is_empty_string( Z30000K2 ), throw_error( Z30005, [ "Z30000K2", Z30000K2 ] ), join_with_separator( Z30000K1, Z30000K2, " " ) ) ) </syntaxhighlight> Lass uns das Schritt für Schritt erstellen: # Um eine Implementierung hinzuzufügen, klicke auf der Funktionsseite in der Tabelle "Implementierungen" auf die Schaltfläche "+". # Stelle sicher, dass die Option "Komposition" unter "Implementierung" ausgewählt ist. # Klicke auf das Symbol "›" oder auf den Link "Funktion auswählen", um die Funktionsdetails anzuzeigen. # Suche unter "Funktion" nach der äußersten Funktion, die du verwenden möchtest, in diesem Fall "wenn", und wähle sie aus. # Überprüfe die Gültigkeit des ersten Arguments: ## Klicke neben "Bedingung" auf die Schaltfläche "…" und wähle "Funktionsaufruf" aus ## Suche unter "Funktion" nach der Funktion "ist leere Zeichenkette" und wähle sie aus ## Klicke neben "Eingabe" auf die Schaltfläche "…" und wähle "Argumentreferenz" aus ## Wähle unter "Schlüssel-ID" die erste Eingabe aus (z. B. "erste Zeichenkette") ## Du kannst den Funktionsaufruf der "Bedingung" nun bei Bedarf ausblenden, indem du auf den Pfeil nach unten neben "Bedingung" klickst. Es sollte dann etwa Folgendes angezeigt werden: "f(x) ist leere Zeichenkette ( → erste Zeichenkette )" # Fehler auslösen, wenn die Bedingung wahr ist: ## Klicke neben "dann" auf die Schaltfläche "…" und wähle "Funktionsaufruf" aus ## Suche unter "Funktion" nach der Funktion "Fehler auslösen" und wähle sie aus ## Suche unter "Fehlertyp" nach deinem Fehlertyp (du kannst die Fehler-ID direkt eingeben, wenn du sie kennst, z. B. Z30005) und wähle ihn aus ## Füge unter "Fehlerparameter" zwei Elemente hinzu, indem du auf die Schaltfläche "+" klickst ## Lege für "Objekt 1" (fehlerhafter Argumentschlüssel) den Typ auf "Zeichenkette" fest und trage die Argumentkennung ein (z. B. "erste Eingabe" oder "Z30000K1") ## Klicke für "Objekt 2" (fehlerhafter Argumentwert) auf die "…" neben "Objekt 2" und wähle "Argumentreferenz" aus ## Wähle unter "Schlüssel-ID" die erste Eingabe aus (z. B. "erste Zeichenkette") ## Du kannst den Funktionsaufruf "dann" nun bei Bedarf ausblenden, indem du auf den Pfeil nach unten neben "dann" klickst. Es sollte dann etwa Folgendes angezeigt werden: "f(x) Fehler auslösen ( ungültiges Format, typisierte Liste ( Objekt, "erste Eingabe", → erste Zeichenkette ) )" # Prüfe das zweite Argument, wenn das erste korrekt war: ## Klicke neben "sonst" auf die Schaltfläche "…" und wähle "Funktionsaufruf" aus ## Suche unter "Funktion" nach der Funktion "wenn" und wähle sie aus ## Richte eine "Bedingung" ein, um die Gültigkeit des zweiten Arguments zu überprüfen, indem du das gleiche Verfahren wie in Schritt 5 beschrieben anwendest. ## Richte "dann" so ein, dass beim zweiten Argument ein Fehler ausgelöst wird, indem du das gleiche Verfahren wie in Schritt 6 beschrieben anwendest. # Richte schließlich den Erfolgspfad ein: ## Klicke neben dem verschachtelten "sonst" auf die Schaltfläche "…" und wähle "Funktionsaufruf" aus ## Suche unter "Funktion" nach der gewünschten Funktion, in diesem Fall "vereinige zwei Zeichenketten mit Trennzeichen", und wähle sie aus ## Klicke neben "erste Zeichenkette" auf die Schaltfläche "…" und setze sie auf "Argumentreferenz", wähle anschließend "erste Zeichenkette" aus ## Klicke neben "zweite Zeichenkette" auf die Schaltfläche "…" und setze sie auf "Argumentreferenz", wähle anschließend "zweite Zeichenkette" aus ## Füge unter "Trennzeichen" ein Leerzeichen in das Textfeld ein Der resultierende Funktionsaufruf sollte folgendermaßen aussehen: [[File:Throw error expanded.png|frame|center|alt=Wikifunctions-Komposition mit der Funktion Fehler auslösen|Wikifunctions-Komposition mit der Funktion Fehler auslösen]] [[File:Throw error collapsed.png|frame|center|alt=Wikifunctions-Komposition mit der Funktion Fehler auslösen in ihrer reduzierten Ansicht|Wikifunctions-Komposition mit der Funktion Fehler auslösen in ihrer reduzierten Ansicht]] <span id="Handling_errors_in_compositions"></span> === Fehlerbehandlung in Kompositionen === Es ist zwar nützlich, Funktionen das Auslösen erwarteter Fehler zu ermöglichen, aber es ist entscheidend, Fehler in den eigenen Kompositionen behandeln zu können, um diese Funktionen sicher verwenden zu können. Angenommen, du möchtest eine neue Funktion "vollständiger Name einer Person" erstellen – wir bezeichnen sie mit der ZID <code>Z30010</code>. Diese Funktion soll den vollständigen Namen einer Person anhand ihres Vor- und Nachnamens zurückgeben. Ist jedoch eines der beiden Felder leer, soll sie stattdessen den Text "Unbekannt" zurückgeben. Du könntest eine Komposition erstellen, indem du unsere Beispielfunktion "verbinde zwei Zeichenketten mit Leerzeichen" oder <code>Z30000</code> verwendest, um den Namen zu generieren. Wenn eine der Eingaben leer ist, weißt du, dass <code>Z30000</code> einen Fehler vom Typ <code>Z30005</code> auslöst. Mithilfe der Funktion {{Z|Z850}} als Wrapper kannst du die Verbindungsoperation ausführen und einen möglichen Fehler abfangen, indem du einfach "Unbekannt" zurückgibst, wenn er auftritt. <span id="Try-Catch_function_(Z850)"></span> ==== Try-Catch-Funktion (Z850) ==== Die Funktion {{Z|Z850}} ist eine integrierte Funktion mit der ZID <code>Z850</code> und benötigt drei Argumente: * '''Funktionsaufruf''' – Der erste Funktionsaufruf, der ausgeführt werden soll. Wenn kein Fehler auftritt, ist die Antwort das Ergebnis dieses Funktionsaufrufs. * '''Fehlertyp''' – Ein Fehlertyp, der abgefangen werden soll, falls er während der Ausführung des ersten Funktionsaufrufs auftritt. * '''Fehlerhandler''' – Ein Funktionsaufruf, der ausgeführt wird, falls der oben genannte Fehler während der Ausführung des ursprünglichen Funktionsaufrufs auftritt. In diesem Fall wird das Ergebnis der Fehlerbehandlung zurückgegeben. <span id="Using_Try-Catch"></span> ==== Verwendung der Try-Catch-Funktion ==== Sobald wir alle Funktionen für unsere Komposition haben, können wir sie folgendermaßen gestalten: <syntaxhighlight lang="prolog"> try_catch( join_with_space( Z30010K1, Z30010K2 ), Z30005, echo( "Unknown" ) ) </syntaxhighlight> Das bedeutet: * Die Funktion "verbinde zwei Zeichenketten mit Leerzeichen" wird mit den beiden Eingaben ausprobiert und wenn alles erfolgreich verläuft, wird das Ergebnis dieser Funktion zurückgegeben * Wenn eine der Eingaben leer ist, löst "verbinde zwei Zeichenketten mit Leerzeichen" einen Fehler vom Typ <code>Z30005</code> aus * Unsere {{Z|Z850}} erkennt dann diesen Fehler und führt die Funktion {{Z|Z801}} aus, die "Unbekannt" zurückgibt Lass uns das Schritt für Schritt erstellen: # Um eine Implementierung hinzuzufügen, klicke auf der Funktionsseite in der Tabelle "Implementierungen" auf die Schaltfläche "+". # Stelle sicher, dass die Option "Komposition" unter "Implementierung" ausgewählt ist. # Klicke auf das Symbol "›" oder auf den Link "Funktion auswählen", um die Funktionsdetails anzuzeigen. # Suche unter "Funktion" nach der äußersten Funktion, die du verwenden möchtest, in diesem Fall "Try-Catch-Funktion", und wähle sie aus. # Richte den Hauptfunktionsaufruf ein: ## Klicke unterhalb des Feldes, in dem die "Try-Catch-Funktion" ausgewählt ist, neben dem Schlüssel "Funktionsaufruf" auf die Schaltfläche "…" und wähle "Funktionsaufruf" aus ## Suche unter "Funktion" nach der Funktion "verbinde zwei Zeichenketten mit Leerzeichen" und wähle sie aus ## Klicke neben "erste Zeichenkette" auf die Schaltfläche "…" und wähle "Argumentreferenz" aus, wähle anschließend das Argument "erster Name" aus der Dropdown-Liste aus. ## Klicke neben "zweite Zeichenkette" auf die Schaltfläche "…" und wähle "Argumentreferenz" aus, wähle anschließend das Argument "zweiter Name" aus der Dropdown-Liste aus. # Wähle den abzufangenden Fehler aus: ## Suche unter "Fehlertyp" nach "ungültige Zeichenkette" und wähle es aus – du kannst direkt nach der ZID <code>Z30005</code> suchen # Richte den Funktionsaufruf für den Fehlerhandler ein: ## Klicke neben "Fehlerhandler" auf die Schaltfläche "…" und wähle "Funktionsaufruf" aus ## Suche unter "Funktion" nach der Funktion "Echo" und wähle sie aus ## Suche unter "Eingabe" und "Typ" den Typ "Zeichenkette" und wähle ihn aus ## Gib nun unter "Eingabe" im Textfeld "Unbekannt" ein Die resultierende Funktion sollte folgendermaßen aussehen: [[File:Try catch expanded.png|frame|center|alt=Wikifunctions-Komposition mit der Try-Catch-Funktion in ihrer erweiterten Ansicht|Wikifunctions-Komposition mit der Try-Catch-Funktion in ihrer erweiterten Ansicht]] [[File:Try catch collapsed.png|frame|center|alt=Wikifunctions-Komposition mit der Try-Catch-Funktion in ihrer reduzierten Ansicht|Wikifunctions-Komposition mit der Try-Catch-Funktion in ihrer reduzierten Ansicht]] <span id="Testing_your_failure_use_cases"></span> === Testen deiner Fehlerfälle === Wie bereits im Abschnitt über die [[#Practice Test-Driven Development|Anwendung von TDD]] erläutert, ist es wichtig, nicht nur die häufigsten Ausführungspfade, sondern auch mögliche Randfälle zu testen. Ebenso wichtig ist es, das Fehlerverhalten zu prüfen. In diesem Abschnitt stellen wir dir die notwendigen Werkzeuge vor, um zu testen, ob deine Funktion bei bestimmten Eingaben fehlschlägt und ob die Fehlermeldung den Erwartungen entspricht. Dazu benötigst du zwei weitere Systemfunktionen: <span id="Is_error_type_(Z852)"></span> ==== ist Fehlertyp (Z852) ==== Die Funktion {{Z|Z852}} ist eine integrierte Funktion mit der ZID <code>Z852</code> und benötigt zwei Argumente: * '''Fehler''' – Ein {{Z|Z5}}-Objekt, das bei einem fehlgeschlagenen Aufruf ausgelöst werden kann. Eine Fehlerinstanz hat einen Typ und einen Wert. * '''Fehlertyp''' – Ein Verweis auf einen {{Z|Z50}}, der mit dem als erstes Argument übergebenen Fehlertyp verglichen wird. Ist dies der Fall, gibt die Funktion wahr zurück. <span id="Get_error_thrown_by_function_call_(Z853)"></span> ==== Fehler erhalten, ausgelöst durch Funktionsaufruf (Z853) ==== Die Funktion {{Z|Z853}} ist eine integrierte Funktion mit der ZID <code>Z853</code> und benötigt ein Argument: * '''Funktionsaufruf''' – Ein Funktionsaufruf, der entweder einen erfolgreichen Wert beliebigen Typs zurückgibt oder einen Fehler auslöst. Diese Funktion gibt ein {{Z|Z882}} zurück, wobei an erster Stelle ein {{Z|Z40}} und an zweiter Stelle ein {{Z|Z1}} steht: * Wenn der Funktionsaufruf erfolgreich ist und somit keinen Fehler auslöst, enthält das zurückgegebene Paar an erster Stelle falsch und an zweiter Stelle leer. * Wenn der Funktionsaufruf einen Fehler auslöst, enthält das zurückgegebene Paar an erster Stelle wahr und an zweiter Stelle den abgefangenen Fehler. Um diese Funktion in deinen Kompositionen zu verwenden, musst du möglicherweise die zusätzlichen Funktionen verwenden: * {{Z|Z821}} und * {{Z|Z822}} <span id="Testing_errors"></span> ==== Fehler testen ==== Angenommen, unsere Zielfunktion "verbinde zwei Zeichenketten mit Leerzeichen" oder <code>Z30000</code> löst einen Fehler vom Typ <code>Z30005</code> aus, und wir möchten dieses Verhalten testen. Dazu müssen wir Folgendes tun: * Einen fehlgeschlagenen Funktionsaufruf auslösen * Den Fehler mit der Funktion {{Z|Z853}} erhalten * Mit {{Z|Z852}} prüfen, ob der Fehler den richtigen Typ hat Tests haben zwei Felder: * '''Aufruf''' – Ein Funktionsaufruf, der mit den zu testenden Eingaben eine Ausgabe erzeugt. Dieser Aufruf gibt einen Wert zurück. * '''Ergebnisprüfung''' – Ein Funktionsaufruf, der überprüft, ob der vom vorherigen Aufruf zurückgegebene Wert dem erwarteten Wert entspricht. Das erste Argument dieses Funktionsaufrufs wird automatisch mit dem Rückgabewert des ersten Aufrufs belegt. Für eine Schritt-für-Schritt-Anleitung zum Erstellen von Tests siehe {{ll|Wikifunctions:Introduction#Create_tests}}. In unserem Beispiel können wir es so strukturieren — aber das ist nicht die einzige Möglichkeit! Der Aufruf, der ein {{Z|Z5}}-Objekt zurückgibt: <syntaxhighlight lang="prolog"> error = get_second_element_of_typed_list( get_error_thrown_by( join_strings_by_whitespace( "", "not empty" ) ) ) </syntaxhighlight> Und die Ergebnisprüfung, die das {{Z|Z5}}-Objekt als erstes Argument verwendet: <syntaxhighlight lang="prolog"> is_error_type( error, Z30005 ) </syntaxhighlight> Lass uns das Schritt für Schritt tun: # Um einen Test hinzuzufügen, klicke auf der Funktionsseite in der Tabelle "Tests" auf die Schaltfläche "+". Die Felder "Aufruf" und "Ergebnisprüfung" enthalten bereits vordefinierte Funktionen. Um die Fehler zu testen, müssen wir diese jedoch ändern. # Als Erstes richten wir den Aufruf ein: ## Klicke unter "Aufruf" auf die Schaltfläche "›", um den Funktionsaufruf zu erweitern. ## Bearbeite das Feld unter "Funktion" und suche die Funktion "erhalte zweites Element eines typisierten Paars" und wähle sie aus ## Klicke anschließend neben "typisiertes Paar" auf die Schaltfläche "…" und wähle "Funktionsaufruf" aus ## Suche unter "Funktion" nach der Funktion "Fehler erhalten, ausgelöst durch Funktionsaufruf" und wähle sie aus ## Klicke neben "Funktionsaufruf" auf die Schaltfläche "…" und wähle "Funktionsaufruf" aus ## Suche unter "Funktion" nach der Funktion "verbinde zwei Zeichenketten mit Leerzeichen" (oder nach ZID <code>Z30000</code>) und wähle sie aus ## Lege nun die Eingaben so fest, dass ein Fehler auftritt: Mindestens eine von ihnen muss leer sein. ## Du kannst jetzt deinen "Aufruf" durch erneutes Klicken auf den Pfeil nach unten wieder ausblenden, wenn du möchtest! # Als Nächstes richten wir die Ergebnisprüfung ein: ## Klicke unter "Ergebnisprüfung" auf die Schaltfläche "›", um den Funktionsaufruf zu erweitern. ## Bearbeite das Feld unter "Funktion" und suche die Funktion "ist Fehlertyp" und wähle sie aus ## Du wirst nun nur noch aufgefordert, das zweite Argument zu konfigurieren. Suche unter "Fehlertyp" nach deinem Fehlertyp <code>Z30005</code> und wähle ihn aus. # Und du bist fertig! Du kannst jetzt auf den kreisförmigen Pfeil im Feld "Implementierungen" klicken und solltest grüne Häkchen sehen. Wenn alles geklappt hat, kannst du deinen Test jetzt speichern. Er sollte folgendermaßen aussehen: [[File:Get error expanded.png|frame|center|alt=Testen eines Fehlers mit den Funktionen Fehler erhalten und ist Fehlertyp in ihrer erweiterten Ansicht|Testen eines Fehlers mit den Funktionen Fehler erhalten und ist Fehlertyp in ihrer erweiterten Ansicht]] [[File:Get error collapsed.png|frame|center|alt=Testen eines Fehlers mit den Funktionen Fehler erhalten und ist Fehlertyp in ihrer reduzierten Ansicht|Testen eines Fehlers mit den Funktionen Fehler erhalten und ist Fehlertyp in ihrer reduzierten Ansicht]] <span id="Creating_actionable_error_messages"></span> === Erstellung handlungsorientierter Fehlermeldungen === Wie oben beschrieben, verfügen Fehlertypen über einen optionalen Schlüssel <code>Z50K3</code>, der eine mehrsprachige Liste von HTML-Zeichenketten enthält. Bei der Darstellung von Informationen zu einem Fehler können die im Fehlertyp hinterlegten Meldungen dazu beitragen, eine klare, präzise, ​​informative, übersetzbare und handlungsorientierte Fehlermeldung zu erstellen. Zu diesem Zweck können Fehlermeldungen Parameter wie <code>$1</code>, <code>$2</code> etc. enthalten, wobei die Ziffer dem Argument des Fehlertyps und dessen Wert in der Fehlerinstanz entspricht. Diese Fehlermeldungen werden in Wikifunctions nach der Ausführung eines Funktionsaufrufs im Dialogfenster "Details" angezeigt. Darüber hinaus werden diese Fehlermeldungen auch in anderen Client-Schnittstellen, wie der Abstrakten Wikipedia, ausgegeben, um den Autoren von Abstrakten Inhalten eine bessere Orientierung zu bieten. [[File:Wikifunctions actionable error message example in the Details dialog.png|thumb|Die Fehlermeldung wird unter Verwendung der HTML-Meldung des Fehlertyps und der Werte der Fehlerargumente generiert.]] [[File:Wikifunctions actionable error message example in Abstract Wikipedia.png|thumb|Sofern verfügbar, wird die HTML-Fehlermeldung im Vorschau-Bereich der Abstrakten Wikipedia angezeigt.]] Lass uns anhand eines konkreten Beispiels die Vorteile von HTML-Fehlermeldungen nachvollziehen: Die Funktion {{Z|Z37847}} gibt die erste Lexem-Referenz zurück, basierend auf einer Wikidata-Datenobjekt-Referenz und einer Sprache. Falls für diese Kombination aus Datenobjekt und Sprache kein Lexem existiert, löst sie einen Fehler vom Typ {{Z|Z28248}} aus, der drei Schlüssel hat: * '''Z28248K1''' ist die QID des angegebenen Wikidata-Datenobjekts * '''Z28248K2''' ist die verbindende Eigenschaft, in diesem Fall <code>P5137/Objekt für diesen Sinn</code> * '''Z28248K3''' ist der Sprachcode <div lang="en" dir="ltr" class="mw-content-ltr"> When calling this function for a Wikidata lexeme that doesn't exist, the call will throw an error instance like this: </div> <syntaxhighlight lang="json" highlight="10,12"> { "Z1K1": "Z5", "Z5K1": "Z28248", "Z5K2": { "Z1K1": { "Z1K1": "Z7", "Z7K1": "Z885", "Z885K1": "Z28248" }, "Z28248K1": "Q319", "Z28248K2": "P5137", "Z28248K3": "ast" } } </syntaxhighlight> <div lang="en" dir="ltr" class="mw-content-ltr"> While the error type label indicates: <code>No matching lexeme for item in language</code>, a better error message should indicate: </div> * <span lang="en" dir="ltr" class="mw-content-ltr">which is the failing item,</span> * <span lang="en" dir="ltr" class="mw-content-ltr">which is the language missing, and</span> * <span lang="en" dir="ltr" class="mw-content-ltr">what are the possible ways to fix it.</span> <div lang="en" dir="ltr" class="mw-content-ltr"> The error message <code>Z50K3</code> field can provide this functionality. Whenever an Error Type has an error message for the user language (or any of its fallbacks), the error message shown will be rendered by: </div> # <span lang="en" dir="ltr" class="mw-content-ltr">First, replacing the message parameters with the values of the keys. In our example, any <code>$1</code> will be replaced with the value of <code>Z28248K1</code> ("Q319"), <code>$2</code> with "P5137", and <code>$3</code> with "ast",</span> # <span lang="en" dir="ltr" class="mw-content-ltr">Last, sanitizing and rendering the HTML message.</span> <div lang="en" dir="ltr" class="mw-content-ltr"> So a HTML message like: </div> <syntaxhighlight lang="html"> There is no matching lexeme for the item $1 in "$3".<br> <a href="http://wikidata.org/wiki/$1">Edit in Wikidata</a> </syntaxhighlight> <div lang="en" dir="ltr" class="mw-content-ltr"> Will become: </div> : There is no matching lexeme for the item Q319 in "ast" : [[d:Q319|Edit in Wikidata]] <span id="Debugging_your_implementations"></span> == Debuggen deiner Implementierungen == Manchmal läuft etwas schief. Eine Funktion verhält sich möglicherweise anders als erwartet oder ein Wert erscheint merkwürdig. Implementierungen können mitunter sehr komplex sein, und da sie in einer Spielwiesen-Umgebung ausgeführt werden, kann die Fehlersuche extrem schwierig erscheinen. Um das Verständnis der Vorgänge innerhalb eines Funktionsaufrufs zu erleichtern, bietet Wikifunctions einige Debugging-Werkzeuge. Diese Werkzeuge verändern nicht das Ergebnis einer Funktion, sondern fügen den zurückgegebenen Metadaten zusätzliche Informationen hinzu, die du nach dem Ausführen der Funktion einsehen kannst. Du kannst <code>Wikifunctions.Debug()</code> in deinen Code-Implementierungen oder die Funktion {{Z|Z854}} in deinen Kompositionen verwenden. In diesem Abschnitt erfährst du: * Wie man Debug-Meldungen sowohl aus Code- als auch aus Kompositions-Implementierungen hinzufügt, * Wie man die Metadaten manuell oder über die Benutzeroberfläche untersucht, um diese Protokolle einzusehen. <span id="Debugging_your_code_implementations"></span> === Debuggen deiner Code-Implementierungen === Beim Schreiben von Code, sowohl in JavaScript als auch in Python3, kannst du <code>Wikifunctions.Debug()</code> verwenden, um eine Meldung zu deinem Debug-Protokoll hinzuzufügen und die Ausführung fortzusetzen. {{phab|T441028}} <code>Wikifunctions.Debug()</code> hat einen Parameter, der üblicherweise als Zeichenkette erwartet wird. Jedes andere als Parameter übergebene Objekt wird jedoch direkt in eine Zeichenkette umgewandelt. Um zu unseren Code-Implementierungen für unsere Beispielfunktion "verbinde zwei Zeichenketten mit Leerzeichen" Debug-Protokolle hinzuzufügen, können wir dies in JavaScript tun: <syntaxhighlight lang="JavaScript"> function Z30000( Z30000K1, Z30000K2 ) { if ( trim( Z30000K1 ) === '' ) { Wikifunctions.Debug( `first input is empty "${ Z30000K1 }"` ); Wikifunctions.Error( 'Z30005', [ "Z30000K1", Z30000K1 ] ) } if ( trim( Z30000K2 ) === '' ) { Wikifunctions.Debug( `second input is empty "${ Z30000K2 }"` ); Wikifunctions.Error( 'Z30005', [ "Z30000K2", Z30000K2 ] ) } Wikifunctions.Debug( "both inputs are fine" ); return Z30000K1 + " " + Z30000K2; } </syntaxhighlight> Und das Gleiche in deiner Python3-Implementierung: <syntaxhighlight lang="python3"> def Z30000(Z30000K1, Z30000K2): if Z30000K1.strip() == "": Wikifunctions.Debug( 'first input is empty "'+Z30000K1+'"' ) Wikifunctions.Error("Z30005", ["Z30000K1", Z30000K1]) if Z30000K2.strip() == "": Wikifunctions.Debug( 'second input is empty "'+Z30000K2+'"' ) Wikifunctions.Error("Z30005", ["Z30000K2", Z30000K2]) Wikifunctions.Debug( 'both inputs are fine' ) return Z30000K1 + " " + Z30000K2 </syntaxhighlight> Auf diese Weise fügen wir deinen Debug-Protokollen in jedem Fall eine Meldung hinzu: * Schlägt der Funktionsaufruf bei der Überprüfung der ersten oder zweiten Eingabe fehl, ist das Ergebnis der Ausführung ein Fehler, enthält aber einen informativen Protokolleintrag darüber, welcher Zweig den Fehler verursacht hat. * Wenn der Funktionsaufruf erfolgreich ist — weil beide Eingaben gültig sind — gibt der Funktionsaufruf die verbundene Zeichenkette zurück, aber die zurückgegebenen Metadaten enthalten auch ein Debug-Protokoll. <span id="Debugging_your_compositions"></span> === Debuggen deiner Kompositionen === Zur Unterstützung des Debuggens von Kompositionen stellt Wikifunctions die integrierte Funktion {{Z|Z854}} bereit. Mit dieser Funktion kannst du Debug-Meldungen an die Ausführung jedes Funktionsaufrufs anhängen, der die endgültige Ausgabe erzeugt. Die während der Auswertung gesammelten Debug-Protokolle werden als Teil der Ausführungsmetadaten unter dem Schlüssel <code>executorDebugLogs</code> zurückgegeben. <span id="Add_debug_log_to_function_call_(Z854)"></span> ==== Debug-Protokoll zu Funktionsaufruf hinzufügen (Z854) ==== Die Funktion {{Z|Z854}} ist eine integrierte Funktion mit der ZID <code>Z854</code> und benötigt zwei Argumente: * '''Funktionsaufruf''' – Jede Komposition, die du ausführen möchtest. * '''Debug-Protokoll''' – Eine Zeichenketten-Meldung, die protokolliert wird, wenn der angegebene Funktionsaufruf ausgewertet wird. Wenn der umschlossene Funktionsaufruf ausgeführt wird, wird die bereitgestellte Meldung zu den Ausführungsprotokollen hinzugefügt. Wird dieser Funktionsaufruf nicht ausgeführt oder ist seine Ausführung nicht Teil der endgültigen Ausgabe, erscheint sein Debug-Protokoll nicht in den Metadaten des Endergebnisses. Diese integrierte Funktion ist besonders nützlich, wenn du beobachten möchtest: * Welcher Zweig einer Bedingung ausgeführt wurde, oder * Die Reihenfolge der Auswertung in einer Komposition. <span id="Using_Add_debug_log_to_function_call"></span> ==== Verwendung von Debug-Protokoll zu Funktionsaufruf hinzufügen ==== Angenommen, du möchtest zu unserer Beispielfunktion "verbinde zwei Zeichenketten mit Leerzeichen" oder <code>Z30000</code> Debug-Protokolle hinzufügen, sodass für die verschiedenen möglichen Ergebnisse unterschiedliche Meldungen angezeigt werden. Du könntest unsere integrierte Debugging-Funktion wie folgt verwenden: <syntaxhighlight lang="prolog"> if ( is_empty_string( Z30000K1 ), add_debug_log( throw_error( Z30005, ... ), 'failed on first input' ) if( is_empty_string( Z30000K2 ), add_debug_log( throw_error( Z30005, ... ), 'failed on second input' ), add_debug_log( join_with_separator( Z30000K1, Z30000K2, " " ), 'both inputs are ok!' ) ) ) </syntaxhighlight> Dies bewirkt Folgendes: * Wird die Funktion mit einer leeren ersten Eingabe aufgerufen, gibt sie eine Fehlermeldung zurück und die Metadaten enthalten einen Eintrag <code>executorDebugLogs</code> mit dem Protokoll-Eintrag "Fehler bei erster Eingabe". * Wird der Aufruf mit einer leeren zweiten Eingabe aufgerufen, schlägt der Aufruf ebenfalls fehl, die protokollierte Meldung lautet jedoch "Fehler bei zweiter Eingabe". * Bei Aufruf mit gültigen Eingaben gibt die Funktion eine erfolgreiche Antwort zurück und zusätzlich enthalten die Metadaten im Schlüssel <code>executorDebugLogs</code> "Beide Eingaben sind in Ordnung". So würde diese Komposition aussehen: [[File:Add debug log expanded.png|frame|center|alt=Implementierung der Komposition mit Debug-Protokoll hinzufügen, um alle möglichen Ausführungspfade zu protokollieren|Implementierung der Komposition mit Debug-Protokoll hinzufügen, um alle möglichen Ausführungspfade zu protokollieren]] <span id="Accessing_execution_debug_logs"></span> === Zugriff auf Ausführungs-Debug-Protokolle === Unabhängig davon, ob deine Ausführungsprotokolle über <code>Wikifunctions.Debug()</code> oder die integrierte Funktion {{Z|Z854}} hinzugefügt werden, werden sie als Teil der Antwort-Metadaten zurückgegeben. Um die Protokolle zu sehen, klicke nach dem Ausführen deiner Funktion auf die Schaltfläche "Details", die unten im Abschnitt "Ergebnis" erscheint. Die Fehler- und Debug-Informationen werden oben im Dialogfeld "Details" angezeigt. Dies ist das Ergebnis, das du sehen würdest, wenn du die Komposition aus unserem vorherigen Beispiel mit gültigen und ungültigen Eingaben ausführst: {| class="wikitable" | [[File:Execution logs success.png|frameless|center|alt=Funktions-Metadatendialog für eine erfolgreiche Ausführung mit Debug-Protokollen]] | [[File:Execution logs failure.png|frameless|center|alt=Funktions-Metadatendialog für eine fehlgeschlagene Ausführung mit Debug-Protokollen]] |- | Funktions-Metadatendialog für eine erfolgreiche Ausführung: zeigt keine Fehler an, sondern das Protokoll der erfolgreichen Ausführung: ''"Beide Eingaben sind in Ordnung!"'' | Funktions-Metadatendialog für eine fehlgeschlagene Ausführung: zeigt die Fehlerinformationen und das zusätzliche Ausführungsprotokoll für den ersten Fehlerzweig an: ''"Fehler bei erster Eingabe"'' |} [[Category:How to create implementations| {{#translation:}}]] r0se72s0mmcsnjn9keor5hp665wifkr 334148 334146 2026-10-28T20:28:13Z Ameisenigel 44 Created page with "Wenn diese Funktion für ein Wikidata-Lexem aufgerufen wird, das nicht existiert, löst der Aufruf eine Fehlerinstanz wie die folgende aus:" 334148 wikitext text/x-wiki <languages/> Diese Seite bietet eine detailliertere Anleitung dafür, wie man '''Implementierungen erstellt''' und geht über den Überblick auf {{ll|Wikifunctions:Introduction}} hinaus. <span id="Types_of_Implementations"></span> == Arten von Implementierungen == In Wikifunctions kann eine '''Implementierung''' zwei Hauptformen annehmen: '''Code''' oder '''Komposition'''. Eine Code-Implementierung drückt die Logik der Funktion direkt in einer der verfügbaren Programmiersprachen aus (derzeit Python3 oder JavaScript). Sie ist besonders nützlich, wenn sich das Verhalten der Funktion nicht ohne Weiteres aus bestehenden Wikifunktionen ableiten lässt oder wenn eine präzise Kontrolle über die Datenverarbeitung erforderlich ist. Eine Kompositions-Implementierung definiert die Funktion hingegen vollständig durch die Kombination bestehender Funktionen, ohne dass Code geschrieben werden muss. Kompositionen sind leichter verständlich, wiederverwendbar und lassen sich automatisch in andere Sprachen übersetzen. Sie setzen jedoch voraus, dass geeignete Bausteine ​​bereits vorhanden sind und sind oft weniger leistungsfähig. Prüfe daher zunächst, ob dein Ziel durch Komposition erreicht werden kann. Ist dies nicht möglich oder spielen Leistung oder feingranulare Logik eine Rolle, wähle stattdessen eine Code-Implementierung. Es gibt eine dritte Implementierungsart: '''integrierte Implementierungen'''. Diese werden vom Systemcode ausgeführt und können nicht bearbeitet werden. Höchstwahrscheinlich verfügen alle vordefinierten Funktionen über eine integrierte Implementierung. In solchen Fällen wird beim Öffnen der Implementierungsseite die Meldung ''"{{int|wikilambda-implementation-selector-none}}"'' angezeigt. <span id="Practice_Test-Driven_Development"></span> == Praxis der testgetriebenen Entwicklung == '''Testgetriebene Entwicklung''' oder '''TDD''' ist eine Methode zur Softwareentwicklung, bei der Tests geschrieben werden, bevor der eigentliche Code geschrieben wird. Tests dienen dazu, die Funktionsweise einer Funktion anhand von Beispielen und deren Funktionsweise zu verstehen. In Wikifunctions bietet das Schreiben von Tests als erste Tätigkeit erhebliche Vorteile. Wenn du an einer Implementierung arbeitest, kannst du deinen Code anhand der vorhandenen Tests ausführen, um sicherzustellen, dass er sich wie erwartet verhält. Dadurch lassen sich Fehler frühzeitig erkennen, noch bevor du deine Implementierung veröffentlichst. Tests sind außerdem ein effektives Mittel, um die benötigte Funktion zu beschreiben. Durch das Schreiben von Tests '''kommunizierst du klar das erwartete Verhalten''' und die Community kann bei der Implementierung helfen oder alternative Implementierungen erstellen. Stell dir vor, du möchtest eine Funktion implementieren, die zwei Zeichenketten mit einem Leerzeichen dazwischen verknüpft. Ein einfacher Test dafür könnte so aussehen: <syntaxhighlight lang="prolog"> join_with_space( "Hello", "world" ) => "Hello world" </syntaxhighlight> Sobald du das grundlegende Verhalten definiert hast, ist es wichtig, auch '''an Randfälle zu denken''' — Situationen, in denen die Eingaben so beschaffen sind, dass ein spezielles Verhalten erforderlich sein könnte. Was passiert beispielsweise, wenn deine erste Zeichenkette mit einem Leerzeichen endet oder deine zweite mit einem Leerzeichen beginnt? Soll die Funktion alle vorhandenen Leerzeichen beibehalten und ein weiteres hinzufügen oder ein sauber formatiertes Ergebnis mit nur einem Leerzeichen zwischen den Wörtern zurückgeben? Je nach deinen Anforderungen solltest du einen Test für einen solchen Fall erstellen. Ein Test für diesen Sonderfall könnte beispielsweise einer der folgenden sein — aber nicht beide!: <syntaxhighlight lang="prolog"> join_with_space( "Hello ", " world") => "Hello world" </syntaxhighlight> oder ... <syntaxhighlight lang="prolog"> join_with_space( "Hello ", " world") => "Hello world" </syntaxhighlight> Stell sicher, dass deine Tests alle möglichen Sonderfälle abdecken, und sobald du diese hast, stell sicher, dass sie alle mit der Funktion verbunden sind, indem du sie auswählst und auf "Verbinden" klickst. <span id="Code_implementations"></span> == Code-Implementierungen == [[File:Code implementation.png|thumb|alt=Wikifunctions-Code-Editor, der mit einer Funktionsvorlage initialisiert wurde|Beim Hinzufügen einer neuen Code-Implementierung wird die Funktionsvorlage mit den Funktions- und Argumentnamen initialisiert]] Beim Erstellen einer Implementierung mit Code richtet die Wikifunctions-Benutzeroberfläche einen Code-Editor ein, in dem die ausgewählte Sprache für Syntaxhervorhebung und -validierung aktiviert ist. Sobald die zu implementierende Funktion und die Programmiersprache ausgewählt sind, wird dieser Editor mit der korrekten Funktionsvorlage konfiguriert: '''Entferne oder bearbeite sie nicht!''' Platziere deinen Code innerhalb dieser Funktionssignatur. Falls du Hilfsfunktionen benötigst, kannst du diese einfach in deiner Hauptfunktionsdeklaration deklarieren. <span id="Using_input_types_in_your_code"></span> === Verwendung von Eingabetypen in deinem Code === Die Wikifunctions-Typen {{Z|Z6}} und {{Z|Z40}} können in JavaScript und Python3 wie native Typen verwendet werden. Beispielsweise lässt sich eine Zeichenkette verketten oder ein boolescher Wert direkt in einem logischen Ausdruck verwenden. Um andere Typen in deinen Code-Implementierungen zu verwenden, musst du den jeweiligen Typ genauer untersuchen, herausfinden, ob eine Umwandlung in ein natives Äquivalent existiert, und ihn entsprechend behandeln. Nehmen wir beispielsweise an, wir möchten Python-Code schreiben, der eine Eingabe vom Typ {{Z|Z20420}} verarbeitet. Auf der Seite für diesen Typ sehen wir uns die "Typumwandler in Code" an und suchen nach einem Python-Umwandler. Der Umwandler {{Z|Z20424}} wird auf unsere Datumseingabe angewendet, bevor unser Code ausgeführt wird. Unter "nativer Typ" sehen wir, dass unsere Eingabe ein Python-Dictionary ist, und in der Implementierung können wir die zu erwartenden Schlüssel sehen: <syntaxhighlight lang="python3"> return { 'K1': year, 'K2': month, 'K3': day } </syntaxhighlight> Wenn ein Typ keinen Umwandler besitzt, musst du direkt über seine Schlüssel auf seine Bestandteile zugreifen. Nehmen wir beispielsweise an, deine Funktion <code>Z30000</code> hat einen Eingabeparameter <code>Z30000K1</code> vom Typ {{Z|Z11}}. Dieser Typ besitzt zwei Schlüssel: <code>Z11K1</code> für die Sprache (selbst ein Objekt vom Typ {{Z|Z60}}) und <code>Z11K2</code> für den Zeichenketten-Wert. Das Sprachobjekt hat wiederum einen Schlüssel <code>Z60K1</code> für den Sprachcode. Um also eine Zeichenkette mit dem Sprachcode und dem Text zu erhalten, kannst du folgendes schreiben: <syntaxhighlight lang="javascript"> function Z30000( Z30000K1 ) { // z. B. "de: beliebiger Text" return Z30000K1.Z11K1.Z60K1 + ": " + Z30000K1.Z11K2; } </syntaxhighlight> Für eine Kurzübersicht der verfügbaren Typumwandlungen besuche [[Special:MyLanguage/Wikifunctions:Execution targets#Default type conversion|die Tabelle der Standard-Typumwandlungen]]. <span id="Returning_the_right_outputs"></span> === Rückgabe der richtigen Ausgaben === Ähnlich wie bei der Behandlung von Eingaben müssen auch Ausgaben dem in der Funktionsdefinition angegebenen Typ entsprechen. Einige können wie native Typen behandelt werden; daher wird jede Zeichenketten-Ausgabe in ein Wikifunctions-Objekt {{Z|Z6}} und jeder von deiner Implementierung zurückgegebene native boolesche Wert in ein Wikifunctions-Objekt {{Z|Z40}} umgewandelt. Typen mit "Typumwandlern aus Code" wenden die entsprechende Funktion auf die Ausgabe an, um den benötigten Typ zu erzeugen. Am Beispiel von {{Z|Z20420}} transformiert {{Z|Z20443}} die Ausgabe deiner Implementierung – ein Dictionary mit den Schlüsseln K1, K2 und K3 – in die korrekte ZObjekt-Darstellung. Für Typen, die keine Umwandler aus Code haben, kannst du die Ausgabeobjekte sorgfältig erstellen und zurückgeben. Stell dir beispielsweise vor, unsere Funktion <code>Z30000</code> nimmt zwei Zeichenketten als Eingaben entgegen: Sprachcode und Text, und soll ein Objekt {{Z|Z11}} zurückgeben. In Python kannst du dies mit dem Konstruktor <code>ZObject</code> erreichen: <syntaxhighlight lang="python3"> def Z30000(Z30000K1, Z30000K2): lang_object = ZObject( {"Z1K1": "Z9", "Z9K1": "Z60"}, Z60K1 = Z30000K1 ) return ZObject( {"Z1K1": "Z9", "Z9K1": "Z11"}, Z11K1 = lang_object, Z11K2 = Z30000K2 ) </syntaxhighlight> Oder in JavaScript: <syntaxhighlight lang="javascript"> function Z30000( Z30000K1, Z30000K2 ) { const langObject = new ZObject( new Map( [ [ "Z60K1", Z30000K1 ] ] ), { "Z1K1": "Z9", "Z9K1": "Z60" } ); const monolingualKeys = new Map( [ [ "Z11K1", langObject ], [ "Z11K2", Z30000K2 ] ] ); return new ZObject( monolingualKeys, { "Z1K1": "Z9", "Z9K1": "Z11" } ); } </syntaxhighlight> Du kannst mehr über die Klasse <code>ZObject</code> und andere nützliche Konstruktoren auf {{ll|Wikifunctions:Execution_targets#Custom_and_non-built-in_type_conversion}} erfahren. {{phab|T392750}}Stand Mai 2026 kann der Versuch, eine Liste von Listen zurückzugeben, fehlschlagen; daher ist es nicht möglich, solche Funktionen in Code zu implementieren. === Code in Python === In diesem Abschnitt geben wir ein konkretes Beispiel, wie man eine Implementierung in Form von Code in Python erstellt. Angenommen, wir möchten eine Implementierung für eine Funktion erstellen, die zwei Eingabezeichenketten durch Einfügen eines Leerzeichens dazwischen kombiniert und das Ergebnis zurückgibt. Nehmen wir an, die ZID dieser Funktion ist Z30000. Die Implementierung wird über die ZID der Funktion definiert. Das gilt auch für die Argumente der Funktion. Im Fall der Funktion Z30000 mit ihren beiden Argumenten sollte die Funktionsvorlage also so aussehen: <syntaxhighlight lang="python3"> def Z30000(Z30000K1, Z30000K2): </syntaxhighlight> Wie bereits erwähnt, wissen wir, dass die Argumente (<code>Z30000K1</code> und <code>Z30000K2</code>) Zeichenketten sind, daher können wir sie genauso behandeln wie native Zeichenketten in Python. Die Funktion sollte außerdem eine Zeichenkette zurückgeben. In unserem Beispiel geben wir einfach die beiden Argumente, getrennt durch ein Leerzeichen, aneinandergereiht zurück: <syntaxhighlight lang="python3"> def Z30000(Z30000K1, Z30000K2): return Z30000K1 + " " + Z30000K2 </syntaxhighlight> Da es sich um Python handelt, vergesse nicht, diese Zeile einzurücken. Wenn du unserem Rat gefolgt bist, [[#Practice Test-Driven Development|TDD anzuwenden]], verfügst du bereits über eine Reihe von Tests, von denen du weißt, dass sie funktionieren sollten. In diesem Fall kannst du während der Entwicklung deiner Implementierung auf den kreisförmigen Pfeil im Testbereich klicken und überprüfen, ob deine Implementierung alle Tests besteht. Denke daran, dass die Laufzeit keinen Status hat. Gehe nicht von Werten für globale oder statische Variablen aus. Wenn du weitere Fragen dazu hast, was du in Python tun kannst und was nicht, frage auf [[Wikifunctions:Python implementations]]. === Code in JavaScript === In diesem Abschnitt geben wir ein konkretes Beispiel, wie man eine Implementierung in Form von Code in JavaScript erstellt. Angenommen, wir möchten eine Implementierung für eine Funktion erstellen, die zwei Eingabezeichenketten durch Einfügen eines Leerzeichens dazwischen kombiniert und das Ergebnis zurückgibt. Nehmen wir an, die ZID dieser Funktion ist <code>Z30000</code>. Die Implementierung wird über die ZID der Funktion definiert. Das gilt auch für die Argumente der Funktion. Im Fall der Funktion <code>Z30000</code> mit ihren beiden Argumenten sollte die Funktionsvorlage also so aussehen: <syntaxhighlight lang="javascript"> function Z30000( Z30000K1, Z30000K2 ) { } </syntaxhighlight> Wir wissen, dass die Argumente (<code>Z30000K1</code> und <code>Z30000K2</code>) Zeichenketten sind, daher können wir sie in JavaScript wie native Zeichenketten behandeln. Die Funktion soll außerdem eine Zeichenkette zurückgeben. Um die Funktion zu vervollständigen, kannst du eine Zeile hinzufügen, die die Eingabezeichenketten verkettet, etwa so: <syntaxhighlight lang="javascript"> function Z30000( Z30000K1, Z30000K2 ) { return Z30000K1 + " " + Z30000K2; } </syntaxhighlight> Wenn du Tests wie im Abschnitt [[#Practice Test-Driven Development|TDD]] oben empfohlen hast, klicke auf den kreisförmigen Pfeil im Testbereich und prüfe, ob deine Implementierung alle Tests besteht. Denke daran, dass die Laufzeit keinen Status hat. Gehe nicht von Werten für globale oder statische Variablen aus. Wenn du weitere Fragen dazu hast, was du in JavaScript tun kannst und was nicht, frage auf [[Wikifunctions:JavaScript implementations]]. <span id="Calling_another_Wikifunctions_function"></span> === Aufruf einer anderen Wikifunctions-Funktion === Eine Code-Implementierung kann bestimmte andere Wikifunctions-Funktionen aufrufen, die Ausgabe des Aufrufs empfangen und diese Ausgabe für die weitere Verarbeitung nutzen. Wir bezeichnen solche Aufrufe als Callbacks. Derzeit können aus Sicherheits- und Leistungsgründen nur die folgenden integrierten Wikidata-Abruf- und Suchfunktionen auf diese Weise aufgerufen werden: {{Z|Z6820}}, {{Z|Z6821}}, {{Z|Z6822}}, {{Z|Z6824}}, {{Z|Z6825}}, {{Z|Z6826}}, {{Z|Z6830}} und {{Z|Z6831}}. Diese Funktionalität befindet sich in einem frühen Stadium der Einführung; wir hoffen, in Zukunft Aufrufe für eine größere Bandbreite an Funktionen zu ermöglichen. Betrachten wir eine JavaScript-Implementierung, die einen Callback enthält. Diese Implementierung ruft ein Datenobjekt von Wikidata ab, extrahiert die Bezeichnung dieses Datenobjektes in einer bestimmten Sprache und gibt die Bezeichnung als Zeichenkette zurück. Das abzurufende Datenobjekt wird über das Argument <code>Z400K1</code> angegeben, die Sprache über <code>Z400K2</code>. <syntaxhighlight lang="javascript"> function Z400( Z400K1, Z400K2 ) { const item = Wikifunctions.Call('Z6821', Z400K1); for (const label of item.Z6001K2.Z12K1) { if (label.Z11K1.Z60K1 === Z400K2.Z60K1) { return label.Z11K2; }} return 'NOT FOUND'; } </syntaxhighlight> Ein Callback wird durch den Aufruf von <code>Wikifunctions.Call</code> ausgelöst, wie im Beispiel gezeigt. Das erste Argument für <code>Wikifunctions.Call</code> ist stets die ZID der aufzurufenden Funktion – in diesem Fall {{Z|Z6821}}, welche ein einzelnes Argument entgegennimmt. Darauf folgen, durch Kommas getrennt, die an diese Funktion zu übergebenden Argumente. Hierbei handelt es sich bei dem Argument <code>Z400K1</code> um denselben Wert, der auch an <code>Z400</code> übergeben wurde. Dies ist ein gängiges Muster für die Argumentübergabe an Callbacks, jedoch können die Argumente auch mit dem Konstruktor <code>ZObject</code> (wie oben beschrieben) erstellt oder auf andere Weise bezogen werden. Der Wert von <code>Z400K1</code> wäre eine Instanz von {{Z|Z6091}}, die die QID des abzurufenden Datenobjekts enthält. Zeile 2 des Beispiels ruft <code>Z6821</code> auf, um dieses Datenobjekt von Wikidata abzurufen, und weist das resultierende ZObjekt der Konstante <code>item</code> zu. Der restliche Code durchläuft die Bezeichnungen des Datenobjekts, bis er diejenige findet, die der durch <code>Z400K2</code> angegebenen Sprache entspricht. Für das obige Beispiel haben wir der Einfachheit halber <code>Z6821</code> verwendet. Sofern die Implementierung jedoch nicht das gesamte Objekt benötigt, wird dringend empfohlen, zum Abrufen von Wikidata-Datenobjekten, die sehr groß sein können, <code>Z6820</code> zu verwenden. Obwohl der Aufruf von <code>Z6820</code> etwas komplexer ist, ermöglichen seine Parameter das Abrufen spezifischer Teile eines Wikidata-Datenobjekts. Dies kann die Leistung erheblich steigern und bestimmte Fehler vermeiden, da weniger Netzwerkbandbreite und Verarbeitungszeit erforderlich sind. (<code>Z6820</code> kann auch statt <code>Z6822</code>, <code>Z6824</code>, <code>Z6825</code> und <code>Z6826</code> verwendet werden, um ähnliche Vorteile bei der Bandweitenreduzierung zu erreichen.) Im Folgenden zeigen wir, wie <code>Z6820</code> in <code>Wikifunctions.Call</code> verwendet werden kann, um dasselbe Verhalten wie oben zu erzielen. Beachte, dass wir das zweite an <code>Z6820</code> übergebene Argument, <code>[labelsPart]</code>, nutzen, um festzulegen: “Gib nur die Bezeichnungen des Datenobjekts zurück”, und das dritte Argument, <code>[Z400K2]</code>, verwenden, um festzulegen: “Gib die Bezeichnungen nur in der angegebenen Sprache zurück”. (Dieses Argument würde auch für Aliasse und Beschreibungen gelten, sofern diese im Ergebnis enthalten wären.) <syntaxhighlight lang="javascript"> function Z400( Z400K1, Z400K2 ) { const labelsPart = new ZObject( new Map( [ ['Z6030K1', new ZReference('Z6033')] ] ), {Z1K1: 'Z9', Z9K1: 'Z6030'} ); const entities = Wikifunctions.Call( 'Z6820', [Z400K1], [labelsPart], [Z400K2], []); const item = entities.get(Z400K1.Z6091K1); const labels = item.Z6001K2.Z12K1; for (const label of labels) { if (label.Z11K1.Z60K1 === Z400K2.Z60K1) { return label.Z11K2; }} return 'NOT FOUND'; } </syntaxhighlight> Weitere zu beachtende Hinweise: * Obwohl Code-Implementierungen mittlerweile in der Lage sind, Wikidata-Entitäten abzurufen, wird empfohlen, dass sie keine ''vollständigen'' Entitäten zurückgeben. Dies liegt an den derzeitigen Beschränkungen hinsichtlich der Größe des von einer Code-Implementierung zurückgegebenen Wertes. Um eine vollständige, große Entität abzurufen und zurückzugeben, ist es besser, die Abruffunktion aus einer Komposition heraus aufzurufen. * Es kann nur ein Callback gleichzeitig ausgeführt werden. Aus Sicherheitsgründen ist es nicht möglich, die Nebenläufigkeitsfunktionen von JavaScript oder Python zu nutzen, um mehrere Callbacks parallel auszuführen. ** Beachte jedoch, dass du mithilfe von Z6820 mehrere Entitäten auf einmal abrufen kannst. * Derzeit gibt es eine Obergrenze von 3 MiB für die Größe von Wikidata-Inhalten, die über einen einzelnen Callback an eine Code-Implementierung zurückgegeben werden können. Dieselbe Obergrenze gilt für die Größe des Ergebnisses, das von einer Code-Implementierung zurückgegeben wird. <span id="Compositions"></span> == Kompositionen == Im diesem Abschnitt geben wir ein konkretes Beispiel, wie man eine Implementierung in Form einer Komposition erstellt. Angenommen, wir möchten eine Implementierung für eine Funktion erstellen, die zwei Eingabezeichenketten durch Einfügen eines Leerzeichens dazwischen kombiniert und das Ergebnis zurückgibt. Nehmen wir an, die ZID dieser Funktion ist <code>Z30000</code>. Normalerweise ist es sinnvoll, zunächst darüber nachzudenken, wie man vorhandene Funktionen kombinieren kann, um die gewünschte Ausgabe zu erzielen. Manchmal mag dies trivial sein und du kannst einfach mit dem Zusammenstellen und Funktionen fortfahren, aber in vielen Fällen lohnt es sich, die gewünschte Komposition zu notieren. Beispielsweise könnten wir für die angegebene Funktion die vorhandene Funktion {{Z|Z10000}} verwenden. Diese Funktion nimmt zwei Zeichenketten und erstellt daraus eine Zeichenkette. Aber wir müssen dazwischen ein Leerzeichen einfügen. Wir verbinden also zunächst ein Leerzeichen mit dem Ende der ersten Zeichenkette und verbinden dann die zweite Zeichenfolge mit dem Ergebnis dieser ersten Verbindung. Unsere Komposition könnte also so notiert werden: <syntaxhighlight lang="prolog"> join_strings( join_strings( Z30000K1, " " ), Z30000K2 ) </syntaxhighlight> Es gibt mehrere Möglichkeiten, eine Komposition zu schreiben: Beachte, dass dasselbe auch auf folgende Weise erreicht werden kann: <syntaxhighlight lang="prolog"> join_strings( Z30000K1, join_strings( " ", Z30000K2 ) ) </syntaxhighlight> Eine alternative Implementierung könnte auch die vorhandene Funktion {{Z|Z15175}} verwenden, sodass deine Komposition wie folgt aussehen könnte: <syntaxhighlight lang="prolog"> join_with_separator( Z30000K1, Z30000K2, " " ) </syntaxhighlight> Wie du siehst, gibt es mehrere Möglichkeiten, dies zu erreichen. Nimm dir also Zeit und erkunde die vorhandenen Funktionen, die im {{ll|Wikifunctions:Catalogue}} verfügbar sind. Versuchen wir, das zweite Beispiel zu erstellen, <code>join_strings(Z30000K1, join_strings(" ", Z30000K2))</code>. Um dies zu erstellen: # Um eine Implementierung hinzuzufügen, klicke auf der Funktionsseite in der Tabelle "Implementierungen" auf die Schaltfläche "+". # Stelle sicher, dass die Option "Komposition" unter "Implementierung" ausgewählt ist. # Klicke auf das Symbol "›" oder auf den Link "Funktion auswählen", um die Funktionsdetails anzuzeigen. # Suche unter "Funktion" nach dem Namen der äußersten Funktion, die du verwenden möchtest, in diesem Beispiel "verbinde Zeichenketten". Wähle anschließend die gewünschte Funktion aus der Dropdown-Liste aus. # Du siehst zwei neue Felder, eines für jedes der Argumente, die für die ausgewählte Funktion benötigt werden. # Als erstes Argument möchten wir den ersten Eingabewert für unsere Funktion auswählen: ## Klicke neben "erste Zeichenkette" auf die Schaltfläche "…" und wähle "Argumentreferenz" aus. ## Unter "Schlüssel-ID" kannst du nun die erste Zeichenkette deiner Funktion aus dem Dropdown-Menü auswählen, das alle verfügbaren Eingaben enthält. # Für das zweite Argument möchten wir das Ergebnis eines weiteren Aufrufs von "verbinde Zeichenketten" verwenden: ## Klicke neben "zweite Zeichenkette" auf die Schaltfläche "…" und wähle "Funktionsaufruf" aus. ## Suche unter "Funktion" nach der Funktion, die du aufrufen möchtest und wähle sie aus, nämlich "verbinde Zeichenketten". ## Konfiguriere die "erste Zeichenkette" für diesen inneren Funktionsaufruf, indem du einfach ein Leerzeichen in das Textfeld eingibst, und konfiguriere die "zweite Zeichenkette" wie in Schritt 6: Ändere sie mit der Schaltfläche "…" in "Argumentreferenz" und wähle dann das zweite Argument in der Dropdown-Liste aus. Deine Komposition ist nun fertig! Du kannst die Details mithilfe der Pfeiltasten ein- und ausblenden, um dir einen Überblick zu verschaffen. Falls du bereits Tests wie im Abschnitt [[#Practice Test-Driven Development|TDD]] oben empfohlen implementiert hast, klicke im Testbereich auf den kreisförmigen Pfeil und prüfe, ob deine Implementierung die Tests besteht. Sobald deine Komposition die Tests bestanden hat, kannst du sie veröffentlichen. [[File:Composition implementation expanded.png|frame|center|alt=Eine Wikifunctions-Kompositionsimplementierung in ihrer erweiterten Ansicht|Eine Wikifunctions-Kompositionsimplementierung in ihrer erweiterten Ansicht]] [[File:Composition implementation collapsed.png|frame|center|alt=Eine Wikifunctions-Kompositionsimplementierung in ihrer reduzierten Ansicht|Eine Wikifunctions-Kompositionsimplementierung in ihrer reduzierten Ansicht]] <span id="Wikifunctions_error_handling"></span> == Fehlerbehandlung auf Wikifunctions == Als Ersteller einer Wikifunctions-Funktion möchtest du möglicherweise den Benutzer warnen, der deine Funktion aufruft, wenn im Code ein Fehler auftritt oder seine Eingaben bestimmte Kriterien nicht erfüllen. Wenn deine Funktion beispielsweise eine Zeichenkette mit einem Namen erwartet, solltest du prüfen, ob der Name nicht leer ist, und gegebenenfalls eine verständliche Fehlermeldung anzeigen. Hierfür kannst du <code>Wikifunctions.Error()</code> in deinen Code-Implementierungen oder die Funktion {{Z|Z851}} in deinen Kompositionen verwenden. In diesem Abschnitt erfährst du: * Wie man Fehler sowohl aus Code- als auch aus Kompositions-Implementierungen auslöst, * wie man Tests für Fehlerfälle schreibt, und * wie man Fehler abfängt und behandelt, die von Funktionen ausgelöst werden, die man in seinen Kompositionen verwendet. <span id="Throwing_errors_from_code_implementations"></span> === Fehler aus Code-Implementierungen auslösen === Sowohl beim Schreiben von JavaScript- als auch von Python-Code kannst du <code>Wikifunctions.Error()</code> nutzen, um die Ausführung mit einem gewünschten Fehler zu beenden. <code>Wikifunctions.Error()</code> hat zwei Parameter: # Fehlertyp: Eine Zeichenkette, die die ZID des Fehlertyps enthält, den du zurückgeben möchtest. # Fehlerargumente: Eine Liste von Zeichenkettenargumenten zur Erstellung des Fehlers. Gehen wir sie der Reihe nach durch: <span id="Error_type"></span> ==== Fehlertyp ==== Ein Fehlertyp ist ein Objekt, das eine Art von Fehler beschreibt, der im System auftreten kann. Es gibt eine Reihe vordefinierter Fehlertypen, du kannst aber auch eigene Fehlertypen erstellen, die besser zu deinem Anwendungsfall passen. Bei der Verwendung von Fehlern empfiehlt es sich, die verfügbaren Fehlertypen zu durchsuchen, die sich in [[Special:ListObjectsByType/Z50|dieser Liste]] finden. Falls keine passenden Fehler für deinen Fall vorhanden sind, erstelle einen neuen Fehler, indem du zur Erstellungsseite gehst und im Typauswahlfeld "Fehlertyp" auswählst. Lege anschließend die erforderlichen Felder fest: [[File:Error type.png|thumb|alt=Erstellung von Fehlertypen in Wikifunctions|Um einen neuen Fehlertyp (Z50) zu erstellen, bearbeite die Bezeichnung und füge die erforderlichen Schlüssel hinzu.]] * '''Bezeichnung''' – Dies ist der Haupttitel des Fehlers, der eine kurze, aber aussagekräftige Meldung enthalten sollte. Lege die Fehlerbezeichnung im rechten Feld mit dem Titel "Info" fest. * '''Schlüssel''' – Schlüssel enthalten zusätzliche Informationen zur Fehlerursache. Wenn beispielsweise eine Eingabe das falsche Format aufwies, möchtest du den Benutzer möglicherweise über den eingegebenen Inhalt informieren, wenn der Fehler auftritt. Um sie in deinen Implementierungen zu verwenden, müssen Schlüssel vom Zeichenketten sein. Um einen Schlüssel zu erstellen, klicke auf das Symbol "[+]" unterhalb von "Schlüssel", wähle unter "Werttyp" die Option "Zeichenkette" aus und füge eine aussagekräftige Bezeichnung hinzu, beispielsweise "tatsächlich Eingabe". Sobald du alle erforderlichen Schlüssel erstellt hast, kannst du deinen Fehlertyp veröffentlichen und die ID des neu erstellten Objekts speichern. * '''Fehlermeldung''' – Fehlertypen können ein mehrsprachiges Array von Fehlermeldungen enthalten, die mit HTML-Parametern versehen sind. Die Parameter werden als $1, $2 etc. angegeben, wobei die Ziffer dem Schlüssel des Fehlertyps entspricht. Beim Erstellen eines Fehlertyps mit dem Zeichenketten-Schlüssel "aktuelle Eingabe", kann die Fehlermeldung beispielsweise den Platzhalter "$1" verwenden, der zum Zeitpunkt der Fehlerausgabe durch den Wert des Schlüssels "aktuelle Eingabe" ersetzt wird. Um HTML-Meldungen hinzuzufügen, klicke unter "HTML-Fragmente" auf das Symbol "[+]", wähle eine Sprache aus und gib die HTML-Zeichenkette ein. <span id="Error_arguments"></span> ==== Fehlerargumente ==== Fehlerargumente entsprechen den Schlüsseln des Fehlertyps und sollten zusätzliche Informationen zum Verständnis des Fehlers liefern. Fehlerargumente sollten immer Zeichenketten sein. <span id="Using_Wikifunctions.Error()"></span> ==== Verwendung von Wikifunctions.Error() ==== Angenommen, du möchtest einen Fehler auslösen, wenn entweder deine erste oder deine zweite Eingabe leer ist. Du hast den Fehlertyp bereits erstellt und ihm wurde die ZID <code>Z30005</code> zugewiesen. Dein Fehlertyp hat zwei Zeichenketten-Schlüssel: * Eingabeschlüssel: Enthält den Schlüssel der fehlerhaften Eingabe * Eingabewert: Enthält den aktuellen Wert der fehlerhaften Eingabe Um einen Fehler in deiner JavaScript-Implementierung auszulösen, solltest du etwa Folgendes tun: <syntaxhighlight lang="javascript"> function Z30000( Z30000K1, Z30000K2 ) { if ( trim( Z30000K1 ) === '' ) { // Wenn die erste Eingabe leer ist, löse Fehler Z30005 aus // mit zwei Zeichenketten-Argumenten: [ erster Eingabe-Schlüssel, erster Eingabe-Wert ] Wikifunctions.Error( 'Z30005', [ "Z30000K1", Z30000K1 ] ) } if ( trim( Z30000K2 ) === '' ) { // Wenn die zweite Eingabe leer ist, löse Fehler Z30005 aus // mit zwei Zeichenketten-Argumenten: [ zweiter Eingabe-Schlüssel, zweiter Eingabe-Wert ] Wikifunctions.Error( 'Z30005', [ "Z30000K2", Z30000K2 ] ) } return Z30000K1 + " " + Z30000K2; } </syntaxhighlight> Um einen Fehler in deiner Python-Implementierung auszulösen, solltest du etwa Folgendes tun: <syntaxhighlight lang="python3"> def Z30000(Z30000K1, Z30000K2): if Z30000K1.strip() == "": # Wenn die erste Eingabe leer ist, löse Fehler Z30005 aus # mit zwei Zeichenketten-Argumenten: [ erster Eingabe-Schlüssel, erster Eingabe-Wert ] Wikifunctions.Error("Z30005", ["Z30000K1", Z30000K1]) if Z30000K2.strip() == "": # Wenn die zweite Eingabe leer ist, löse Fehler Z30005 aus # mit zwei Zeichenketten-Argumenten: [ erster Eingabe-Schlüssel, erster Eingabe-Wert ] Wikifunctions.Error("Z30005", ["Z30000K2", Z30000K2]) return Z30000K1 + " " + Z30000K2 </syntaxhighlight> Denke daran, dass der Aufruf von <code>Wikifunctions.Error()</code> die Ausführung beendet! <span id="Throwing_errors_from_compositions"></span> === Fehler aus Kompositionen auslösen === Wenn du eine Kompositionsimplementierung erstellst, kannst du einen Fehler auslösen, indem du die Spezialfunktion {{Z|Z851}} aufrufst. <span id="Throw_Error_function_(Z851)"></span> ==== Funktion Fehler auslösen (Z851) ==== Die Funktion {{Z|Z851}} ähnelt der Methode <code>Wikifunctions.Error()</code> und benötigt zwei Argumente: * '''Fehlertyp''' – Ein Verweis auf den Fehlertyp, den du auslösen möchtest * '''Fehlerparameter''' – Eine Liste mit den Argumenten zur Erstellung deines Fehlers, die ebenfalls Zeichenketten sein sollten. <span id="Using_Throw_Error"></span> ==== Verwendung von Fehler auslösen ==== Angenommen, du möchtest deine Komposition so ändern, dass sie zuerst prüft, ob die Argumente nicht leer sind, und einen Fehler ausgibt, wenn sie ein leeres Argument findet. Wenn dann keines der Argumente leer ist, wird die ursprüngliche Komposition ausgeführt, die wie folgt aussieht: <syntaxhighlight lang="prolog"> join_with_separator( Z30000K1, Z30000K2, " " ) </syntaxhighlight> Dazu musst du bedingte Pfade erstellen, für die du die Funktion {{Z|Z802}} verwenden kannst. Stell es dir folgendermaßen vor: * Wenn das erste Argument leer ist, soll ein Fehler für das erste Argument ausgelöst werden * Andernfalls wird mit der Überprüfung des zweiten Arguments fortgefahren * Wenn das zweite Argument leer ist, soll ein Fehler für das zweite Argument ausgelöst werden * Andernfalls wird der Erfolgspfad verfolgt und die verbundenen Zeichenketten mit dem Leerzeichen als Trennzeichen zurückgegeben Oder in funktionalem Pseudocode: <syntaxhighlight lang="prolog"> if ( is_empty_string( Z30000K1 ), throw_error( Z30005, [ "Z30000K1", Z30000K1 ] ), if( is_empty_string( Z30000K2 ), throw_error( Z30005, [ "Z30000K2", Z30000K2 ] ), join_with_separator( Z30000K1, Z30000K2, " " ) ) ) </syntaxhighlight> Lass uns das Schritt für Schritt erstellen: # Um eine Implementierung hinzuzufügen, klicke auf der Funktionsseite in der Tabelle "Implementierungen" auf die Schaltfläche "+". # Stelle sicher, dass die Option "Komposition" unter "Implementierung" ausgewählt ist. # Klicke auf das Symbol "›" oder auf den Link "Funktion auswählen", um die Funktionsdetails anzuzeigen. # Suche unter "Funktion" nach der äußersten Funktion, die du verwenden möchtest, in diesem Fall "wenn", und wähle sie aus. # Überprüfe die Gültigkeit des ersten Arguments: ## Klicke neben "Bedingung" auf die Schaltfläche "…" und wähle "Funktionsaufruf" aus ## Suche unter "Funktion" nach der Funktion "ist leere Zeichenkette" und wähle sie aus ## Klicke neben "Eingabe" auf die Schaltfläche "…" und wähle "Argumentreferenz" aus ## Wähle unter "Schlüssel-ID" die erste Eingabe aus (z. B. "erste Zeichenkette") ## Du kannst den Funktionsaufruf der "Bedingung" nun bei Bedarf ausblenden, indem du auf den Pfeil nach unten neben "Bedingung" klickst. Es sollte dann etwa Folgendes angezeigt werden: "f(x) ist leere Zeichenkette ( → erste Zeichenkette )" # Fehler auslösen, wenn die Bedingung wahr ist: ## Klicke neben "dann" auf die Schaltfläche "…" und wähle "Funktionsaufruf" aus ## Suche unter "Funktion" nach der Funktion "Fehler auslösen" und wähle sie aus ## Suche unter "Fehlertyp" nach deinem Fehlertyp (du kannst die Fehler-ID direkt eingeben, wenn du sie kennst, z. B. Z30005) und wähle ihn aus ## Füge unter "Fehlerparameter" zwei Elemente hinzu, indem du auf die Schaltfläche "+" klickst ## Lege für "Objekt 1" (fehlerhafter Argumentschlüssel) den Typ auf "Zeichenkette" fest und trage die Argumentkennung ein (z. B. "erste Eingabe" oder "Z30000K1") ## Klicke für "Objekt 2" (fehlerhafter Argumentwert) auf die "…" neben "Objekt 2" und wähle "Argumentreferenz" aus ## Wähle unter "Schlüssel-ID" die erste Eingabe aus (z. B. "erste Zeichenkette") ## Du kannst den Funktionsaufruf "dann" nun bei Bedarf ausblenden, indem du auf den Pfeil nach unten neben "dann" klickst. Es sollte dann etwa Folgendes angezeigt werden: "f(x) Fehler auslösen ( ungültiges Format, typisierte Liste ( Objekt, "erste Eingabe", → erste Zeichenkette ) )" # Prüfe das zweite Argument, wenn das erste korrekt war: ## Klicke neben "sonst" auf die Schaltfläche "…" und wähle "Funktionsaufruf" aus ## Suche unter "Funktion" nach der Funktion "wenn" und wähle sie aus ## Richte eine "Bedingung" ein, um die Gültigkeit des zweiten Arguments zu überprüfen, indem du das gleiche Verfahren wie in Schritt 5 beschrieben anwendest. ## Richte "dann" so ein, dass beim zweiten Argument ein Fehler ausgelöst wird, indem du das gleiche Verfahren wie in Schritt 6 beschrieben anwendest. # Richte schließlich den Erfolgspfad ein: ## Klicke neben dem verschachtelten "sonst" auf die Schaltfläche "…" und wähle "Funktionsaufruf" aus ## Suche unter "Funktion" nach der gewünschten Funktion, in diesem Fall "vereinige zwei Zeichenketten mit Trennzeichen", und wähle sie aus ## Klicke neben "erste Zeichenkette" auf die Schaltfläche "…" und setze sie auf "Argumentreferenz", wähle anschließend "erste Zeichenkette" aus ## Klicke neben "zweite Zeichenkette" auf die Schaltfläche "…" und setze sie auf "Argumentreferenz", wähle anschließend "zweite Zeichenkette" aus ## Füge unter "Trennzeichen" ein Leerzeichen in das Textfeld ein Der resultierende Funktionsaufruf sollte folgendermaßen aussehen: [[File:Throw error expanded.png|frame|center|alt=Wikifunctions-Komposition mit der Funktion Fehler auslösen|Wikifunctions-Komposition mit der Funktion Fehler auslösen]] [[File:Throw error collapsed.png|frame|center|alt=Wikifunctions-Komposition mit der Funktion Fehler auslösen in ihrer reduzierten Ansicht|Wikifunctions-Komposition mit der Funktion Fehler auslösen in ihrer reduzierten Ansicht]] <span id="Handling_errors_in_compositions"></span> === Fehlerbehandlung in Kompositionen === Es ist zwar nützlich, Funktionen das Auslösen erwarteter Fehler zu ermöglichen, aber es ist entscheidend, Fehler in den eigenen Kompositionen behandeln zu können, um diese Funktionen sicher verwenden zu können. Angenommen, du möchtest eine neue Funktion "vollständiger Name einer Person" erstellen – wir bezeichnen sie mit der ZID <code>Z30010</code>. Diese Funktion soll den vollständigen Namen einer Person anhand ihres Vor- und Nachnamens zurückgeben. Ist jedoch eines der beiden Felder leer, soll sie stattdessen den Text "Unbekannt" zurückgeben. Du könntest eine Komposition erstellen, indem du unsere Beispielfunktion "verbinde zwei Zeichenketten mit Leerzeichen" oder <code>Z30000</code> verwendest, um den Namen zu generieren. Wenn eine der Eingaben leer ist, weißt du, dass <code>Z30000</code> einen Fehler vom Typ <code>Z30005</code> auslöst. Mithilfe der Funktion {{Z|Z850}} als Wrapper kannst du die Verbindungsoperation ausführen und einen möglichen Fehler abfangen, indem du einfach "Unbekannt" zurückgibst, wenn er auftritt. <span id="Try-Catch_function_(Z850)"></span> ==== Try-Catch-Funktion (Z850) ==== Die Funktion {{Z|Z850}} ist eine integrierte Funktion mit der ZID <code>Z850</code> und benötigt drei Argumente: * '''Funktionsaufruf''' – Der erste Funktionsaufruf, der ausgeführt werden soll. Wenn kein Fehler auftritt, ist die Antwort das Ergebnis dieses Funktionsaufrufs. * '''Fehlertyp''' – Ein Fehlertyp, der abgefangen werden soll, falls er während der Ausführung des ersten Funktionsaufrufs auftritt. * '''Fehlerhandler''' – Ein Funktionsaufruf, der ausgeführt wird, falls der oben genannte Fehler während der Ausführung des ursprünglichen Funktionsaufrufs auftritt. In diesem Fall wird das Ergebnis der Fehlerbehandlung zurückgegeben. <span id="Using_Try-Catch"></span> ==== Verwendung der Try-Catch-Funktion ==== Sobald wir alle Funktionen für unsere Komposition haben, können wir sie folgendermaßen gestalten: <syntaxhighlight lang="prolog"> try_catch( join_with_space( Z30010K1, Z30010K2 ), Z30005, echo( "Unknown" ) ) </syntaxhighlight> Das bedeutet: * Die Funktion "verbinde zwei Zeichenketten mit Leerzeichen" wird mit den beiden Eingaben ausprobiert und wenn alles erfolgreich verläuft, wird das Ergebnis dieser Funktion zurückgegeben * Wenn eine der Eingaben leer ist, löst "verbinde zwei Zeichenketten mit Leerzeichen" einen Fehler vom Typ <code>Z30005</code> aus * Unsere {{Z|Z850}} erkennt dann diesen Fehler und führt die Funktion {{Z|Z801}} aus, die "Unbekannt" zurückgibt Lass uns das Schritt für Schritt erstellen: # Um eine Implementierung hinzuzufügen, klicke auf der Funktionsseite in der Tabelle "Implementierungen" auf die Schaltfläche "+". # Stelle sicher, dass die Option "Komposition" unter "Implementierung" ausgewählt ist. # Klicke auf das Symbol "›" oder auf den Link "Funktion auswählen", um die Funktionsdetails anzuzeigen. # Suche unter "Funktion" nach der äußersten Funktion, die du verwenden möchtest, in diesem Fall "Try-Catch-Funktion", und wähle sie aus. # Richte den Hauptfunktionsaufruf ein: ## Klicke unterhalb des Feldes, in dem die "Try-Catch-Funktion" ausgewählt ist, neben dem Schlüssel "Funktionsaufruf" auf die Schaltfläche "…" und wähle "Funktionsaufruf" aus ## Suche unter "Funktion" nach der Funktion "verbinde zwei Zeichenketten mit Leerzeichen" und wähle sie aus ## Klicke neben "erste Zeichenkette" auf die Schaltfläche "…" und wähle "Argumentreferenz" aus, wähle anschließend das Argument "erster Name" aus der Dropdown-Liste aus. ## Klicke neben "zweite Zeichenkette" auf die Schaltfläche "…" und wähle "Argumentreferenz" aus, wähle anschließend das Argument "zweiter Name" aus der Dropdown-Liste aus. # Wähle den abzufangenden Fehler aus: ## Suche unter "Fehlertyp" nach "ungültige Zeichenkette" und wähle es aus – du kannst direkt nach der ZID <code>Z30005</code> suchen # Richte den Funktionsaufruf für den Fehlerhandler ein: ## Klicke neben "Fehlerhandler" auf die Schaltfläche "…" und wähle "Funktionsaufruf" aus ## Suche unter "Funktion" nach der Funktion "Echo" und wähle sie aus ## Suche unter "Eingabe" und "Typ" den Typ "Zeichenkette" und wähle ihn aus ## Gib nun unter "Eingabe" im Textfeld "Unbekannt" ein Die resultierende Funktion sollte folgendermaßen aussehen: [[File:Try catch expanded.png|frame|center|alt=Wikifunctions-Komposition mit der Try-Catch-Funktion in ihrer erweiterten Ansicht|Wikifunctions-Komposition mit der Try-Catch-Funktion in ihrer erweiterten Ansicht]] [[File:Try catch collapsed.png|frame|center|alt=Wikifunctions-Komposition mit der Try-Catch-Funktion in ihrer reduzierten Ansicht|Wikifunctions-Komposition mit der Try-Catch-Funktion in ihrer reduzierten Ansicht]] <span id="Testing_your_failure_use_cases"></span> === Testen deiner Fehlerfälle === Wie bereits im Abschnitt über die [[#Practice Test-Driven Development|Anwendung von TDD]] erläutert, ist es wichtig, nicht nur die häufigsten Ausführungspfade, sondern auch mögliche Randfälle zu testen. Ebenso wichtig ist es, das Fehlerverhalten zu prüfen. In diesem Abschnitt stellen wir dir die notwendigen Werkzeuge vor, um zu testen, ob deine Funktion bei bestimmten Eingaben fehlschlägt und ob die Fehlermeldung den Erwartungen entspricht. Dazu benötigst du zwei weitere Systemfunktionen: <span id="Is_error_type_(Z852)"></span> ==== ist Fehlertyp (Z852) ==== Die Funktion {{Z|Z852}} ist eine integrierte Funktion mit der ZID <code>Z852</code> und benötigt zwei Argumente: * '''Fehler''' – Ein {{Z|Z5}}-Objekt, das bei einem fehlgeschlagenen Aufruf ausgelöst werden kann. Eine Fehlerinstanz hat einen Typ und einen Wert. * '''Fehlertyp''' – Ein Verweis auf einen {{Z|Z50}}, der mit dem als erstes Argument übergebenen Fehlertyp verglichen wird. Ist dies der Fall, gibt die Funktion wahr zurück. <span id="Get_error_thrown_by_function_call_(Z853)"></span> ==== Fehler erhalten, ausgelöst durch Funktionsaufruf (Z853) ==== Die Funktion {{Z|Z853}} ist eine integrierte Funktion mit der ZID <code>Z853</code> und benötigt ein Argument: * '''Funktionsaufruf''' – Ein Funktionsaufruf, der entweder einen erfolgreichen Wert beliebigen Typs zurückgibt oder einen Fehler auslöst. Diese Funktion gibt ein {{Z|Z882}} zurück, wobei an erster Stelle ein {{Z|Z40}} und an zweiter Stelle ein {{Z|Z1}} steht: * Wenn der Funktionsaufruf erfolgreich ist und somit keinen Fehler auslöst, enthält das zurückgegebene Paar an erster Stelle falsch und an zweiter Stelle leer. * Wenn der Funktionsaufruf einen Fehler auslöst, enthält das zurückgegebene Paar an erster Stelle wahr und an zweiter Stelle den abgefangenen Fehler. Um diese Funktion in deinen Kompositionen zu verwenden, musst du möglicherweise die zusätzlichen Funktionen verwenden: * {{Z|Z821}} und * {{Z|Z822}} <span id="Testing_errors"></span> ==== Fehler testen ==== Angenommen, unsere Zielfunktion "verbinde zwei Zeichenketten mit Leerzeichen" oder <code>Z30000</code> löst einen Fehler vom Typ <code>Z30005</code> aus, und wir möchten dieses Verhalten testen. Dazu müssen wir Folgendes tun: * Einen fehlgeschlagenen Funktionsaufruf auslösen * Den Fehler mit der Funktion {{Z|Z853}} erhalten * Mit {{Z|Z852}} prüfen, ob der Fehler den richtigen Typ hat Tests haben zwei Felder: * '''Aufruf''' – Ein Funktionsaufruf, der mit den zu testenden Eingaben eine Ausgabe erzeugt. Dieser Aufruf gibt einen Wert zurück. * '''Ergebnisprüfung''' – Ein Funktionsaufruf, der überprüft, ob der vom vorherigen Aufruf zurückgegebene Wert dem erwarteten Wert entspricht. Das erste Argument dieses Funktionsaufrufs wird automatisch mit dem Rückgabewert des ersten Aufrufs belegt. Für eine Schritt-für-Schritt-Anleitung zum Erstellen von Tests siehe {{ll|Wikifunctions:Introduction#Create_tests}}. In unserem Beispiel können wir es so strukturieren — aber das ist nicht die einzige Möglichkeit! Der Aufruf, der ein {{Z|Z5}}-Objekt zurückgibt: <syntaxhighlight lang="prolog"> error = get_second_element_of_typed_list( get_error_thrown_by( join_strings_by_whitespace( "", "not empty" ) ) ) </syntaxhighlight> Und die Ergebnisprüfung, die das {{Z|Z5}}-Objekt als erstes Argument verwendet: <syntaxhighlight lang="prolog"> is_error_type( error, Z30005 ) </syntaxhighlight> Lass uns das Schritt für Schritt tun: # Um einen Test hinzuzufügen, klicke auf der Funktionsseite in der Tabelle "Tests" auf die Schaltfläche "+". Die Felder "Aufruf" und "Ergebnisprüfung" enthalten bereits vordefinierte Funktionen. Um die Fehler zu testen, müssen wir diese jedoch ändern. # Als Erstes richten wir den Aufruf ein: ## Klicke unter "Aufruf" auf die Schaltfläche "›", um den Funktionsaufruf zu erweitern. ## Bearbeite das Feld unter "Funktion" und suche die Funktion "erhalte zweites Element eines typisierten Paars" und wähle sie aus ## Klicke anschließend neben "typisiertes Paar" auf die Schaltfläche "…" und wähle "Funktionsaufruf" aus ## Suche unter "Funktion" nach der Funktion "Fehler erhalten, ausgelöst durch Funktionsaufruf" und wähle sie aus ## Klicke neben "Funktionsaufruf" auf die Schaltfläche "…" und wähle "Funktionsaufruf" aus ## Suche unter "Funktion" nach der Funktion "verbinde zwei Zeichenketten mit Leerzeichen" (oder nach ZID <code>Z30000</code>) und wähle sie aus ## Lege nun die Eingaben so fest, dass ein Fehler auftritt: Mindestens eine von ihnen muss leer sein. ## Du kannst jetzt deinen "Aufruf" durch erneutes Klicken auf den Pfeil nach unten wieder ausblenden, wenn du möchtest! # Als Nächstes richten wir die Ergebnisprüfung ein: ## Klicke unter "Ergebnisprüfung" auf die Schaltfläche "›", um den Funktionsaufruf zu erweitern. ## Bearbeite das Feld unter "Funktion" und suche die Funktion "ist Fehlertyp" und wähle sie aus ## Du wirst nun nur noch aufgefordert, das zweite Argument zu konfigurieren. Suche unter "Fehlertyp" nach deinem Fehlertyp <code>Z30005</code> und wähle ihn aus. # Und du bist fertig! Du kannst jetzt auf den kreisförmigen Pfeil im Feld "Implementierungen" klicken und solltest grüne Häkchen sehen. Wenn alles geklappt hat, kannst du deinen Test jetzt speichern. Er sollte folgendermaßen aussehen: [[File:Get error expanded.png|frame|center|alt=Testen eines Fehlers mit den Funktionen Fehler erhalten und ist Fehlertyp in ihrer erweiterten Ansicht|Testen eines Fehlers mit den Funktionen Fehler erhalten und ist Fehlertyp in ihrer erweiterten Ansicht]] [[File:Get error collapsed.png|frame|center|alt=Testen eines Fehlers mit den Funktionen Fehler erhalten und ist Fehlertyp in ihrer reduzierten Ansicht|Testen eines Fehlers mit den Funktionen Fehler erhalten und ist Fehlertyp in ihrer reduzierten Ansicht]] <span id="Creating_actionable_error_messages"></span> === Erstellung handlungsorientierter Fehlermeldungen === Wie oben beschrieben, verfügen Fehlertypen über einen optionalen Schlüssel <code>Z50K3</code>, der eine mehrsprachige Liste von HTML-Zeichenketten enthält. Bei der Darstellung von Informationen zu einem Fehler können die im Fehlertyp hinterlegten Meldungen dazu beitragen, eine klare, präzise, ​​informative, übersetzbare und handlungsorientierte Fehlermeldung zu erstellen. Zu diesem Zweck können Fehlermeldungen Parameter wie <code>$1</code>, <code>$2</code> etc. enthalten, wobei die Ziffer dem Argument des Fehlertyps und dessen Wert in der Fehlerinstanz entspricht. Diese Fehlermeldungen werden in Wikifunctions nach der Ausführung eines Funktionsaufrufs im Dialogfenster "Details" angezeigt. Darüber hinaus werden diese Fehlermeldungen auch in anderen Client-Schnittstellen, wie der Abstrakten Wikipedia, ausgegeben, um den Autoren von Abstrakten Inhalten eine bessere Orientierung zu bieten. [[File:Wikifunctions actionable error message example in the Details dialog.png|thumb|Die Fehlermeldung wird unter Verwendung der HTML-Meldung des Fehlertyps und der Werte der Fehlerargumente generiert.]] [[File:Wikifunctions actionable error message example in Abstract Wikipedia.png|thumb|Sofern verfügbar, wird die HTML-Fehlermeldung im Vorschau-Bereich der Abstrakten Wikipedia angezeigt.]] Lass uns anhand eines konkreten Beispiels die Vorteile von HTML-Fehlermeldungen nachvollziehen: Die Funktion {{Z|Z37847}} gibt die erste Lexem-Referenz zurück, basierend auf einer Wikidata-Datenobjekt-Referenz und einer Sprache. Falls für diese Kombination aus Datenobjekt und Sprache kein Lexem existiert, löst sie einen Fehler vom Typ {{Z|Z28248}} aus, der drei Schlüssel hat: * '''Z28248K1''' ist die QID des angegebenen Wikidata-Datenobjekts * '''Z28248K2''' ist die verbindende Eigenschaft, in diesem Fall <code>P5137/Objekt für diesen Sinn</code> * '''Z28248K3''' ist der Sprachcode Wenn diese Funktion für ein Wikidata-Lexem aufgerufen wird, das nicht existiert, löst der Aufruf eine Fehlerinstanz wie die folgende aus: <syntaxhighlight lang="json" highlight="10,12"> { "Z1K1": "Z5", "Z5K1": "Z28248", "Z5K2": { "Z1K1": { "Z1K1": "Z7", "Z7K1": "Z885", "Z885K1": "Z28248" }, "Z28248K1": "Q319", "Z28248K2": "P5137", "Z28248K3": "ast" } } </syntaxhighlight> <div lang="en" dir="ltr" class="mw-content-ltr"> While the error type label indicates: <code>No matching lexeme for item in language</code>, a better error message should indicate: </div> * <span lang="en" dir="ltr" class="mw-content-ltr">which is the failing item,</span> * <span lang="en" dir="ltr" class="mw-content-ltr">which is the language missing, and</span> * <span lang="en" dir="ltr" class="mw-content-ltr">what are the possible ways to fix it.</span> <div lang="en" dir="ltr" class="mw-content-ltr"> The error message <code>Z50K3</code> field can provide this functionality. Whenever an Error Type has an error message for the user language (or any of its fallbacks), the error message shown will be rendered by: </div> # <span lang="en" dir="ltr" class="mw-content-ltr">First, replacing the message parameters with the values of the keys. In our example, any <code>$1</code> will be replaced with the value of <code>Z28248K1</code> ("Q319"), <code>$2</code> with "P5137", and <code>$3</code> with "ast",</span> # <span lang="en" dir="ltr" class="mw-content-ltr">Last, sanitizing and rendering the HTML message.</span> <div lang="en" dir="ltr" class="mw-content-ltr"> So a HTML message like: </div> <syntaxhighlight lang="html"> There is no matching lexeme for the item $1 in "$3".<br> <a href="http://wikidata.org/wiki/$1">Edit in Wikidata</a> </syntaxhighlight> <div lang="en" dir="ltr" class="mw-content-ltr"> Will become: </div> : There is no matching lexeme for the item Q319 in "ast" : [[d:Q319|Edit in Wikidata]] <span id="Debugging_your_implementations"></span> == Debuggen deiner Implementierungen == Manchmal läuft etwas schief. Eine Funktion verhält sich möglicherweise anders als erwartet oder ein Wert erscheint merkwürdig. Implementierungen können mitunter sehr komplex sein, und da sie in einer Spielwiesen-Umgebung ausgeführt werden, kann die Fehlersuche extrem schwierig erscheinen. Um das Verständnis der Vorgänge innerhalb eines Funktionsaufrufs zu erleichtern, bietet Wikifunctions einige Debugging-Werkzeuge. Diese Werkzeuge verändern nicht das Ergebnis einer Funktion, sondern fügen den zurückgegebenen Metadaten zusätzliche Informationen hinzu, die du nach dem Ausführen der Funktion einsehen kannst. Du kannst <code>Wikifunctions.Debug()</code> in deinen Code-Implementierungen oder die Funktion {{Z|Z854}} in deinen Kompositionen verwenden. In diesem Abschnitt erfährst du: * Wie man Debug-Meldungen sowohl aus Code- als auch aus Kompositions-Implementierungen hinzufügt, * Wie man die Metadaten manuell oder über die Benutzeroberfläche untersucht, um diese Protokolle einzusehen. <span id="Debugging_your_code_implementations"></span> === Debuggen deiner Code-Implementierungen === Beim Schreiben von Code, sowohl in JavaScript als auch in Python3, kannst du <code>Wikifunctions.Debug()</code> verwenden, um eine Meldung zu deinem Debug-Protokoll hinzuzufügen und die Ausführung fortzusetzen. {{phab|T441028}} <code>Wikifunctions.Debug()</code> hat einen Parameter, der üblicherweise als Zeichenkette erwartet wird. Jedes andere als Parameter übergebene Objekt wird jedoch direkt in eine Zeichenkette umgewandelt. Um zu unseren Code-Implementierungen für unsere Beispielfunktion "verbinde zwei Zeichenketten mit Leerzeichen" Debug-Protokolle hinzuzufügen, können wir dies in JavaScript tun: <syntaxhighlight lang="JavaScript"> function Z30000( Z30000K1, Z30000K2 ) { if ( trim( Z30000K1 ) === '' ) { Wikifunctions.Debug( `first input is empty "${ Z30000K1 }"` ); Wikifunctions.Error( 'Z30005', [ "Z30000K1", Z30000K1 ] ) } if ( trim( Z30000K2 ) === '' ) { Wikifunctions.Debug( `second input is empty "${ Z30000K2 }"` ); Wikifunctions.Error( 'Z30005', [ "Z30000K2", Z30000K2 ] ) } Wikifunctions.Debug( "both inputs are fine" ); return Z30000K1 + " " + Z30000K2; } </syntaxhighlight> Und das Gleiche in deiner Python3-Implementierung: <syntaxhighlight lang="python3"> def Z30000(Z30000K1, Z30000K2): if Z30000K1.strip() == "": Wikifunctions.Debug( 'first input is empty "'+Z30000K1+'"' ) Wikifunctions.Error("Z30005", ["Z30000K1", Z30000K1]) if Z30000K2.strip() == "": Wikifunctions.Debug( 'second input is empty "'+Z30000K2+'"' ) Wikifunctions.Error("Z30005", ["Z30000K2", Z30000K2]) Wikifunctions.Debug( 'both inputs are fine' ) return Z30000K1 + " " + Z30000K2 </syntaxhighlight> Auf diese Weise fügen wir deinen Debug-Protokollen in jedem Fall eine Meldung hinzu: * Schlägt der Funktionsaufruf bei der Überprüfung der ersten oder zweiten Eingabe fehl, ist das Ergebnis der Ausführung ein Fehler, enthält aber einen informativen Protokolleintrag darüber, welcher Zweig den Fehler verursacht hat. * Wenn der Funktionsaufruf erfolgreich ist — weil beide Eingaben gültig sind — gibt der Funktionsaufruf die verbundene Zeichenkette zurück, aber die zurückgegebenen Metadaten enthalten auch ein Debug-Protokoll. <span id="Debugging_your_compositions"></span> === Debuggen deiner Kompositionen === Zur Unterstützung des Debuggens von Kompositionen stellt Wikifunctions die integrierte Funktion {{Z|Z854}} bereit. Mit dieser Funktion kannst du Debug-Meldungen an die Ausführung jedes Funktionsaufrufs anhängen, der die endgültige Ausgabe erzeugt. Die während der Auswertung gesammelten Debug-Protokolle werden als Teil der Ausführungsmetadaten unter dem Schlüssel <code>executorDebugLogs</code> zurückgegeben. <span id="Add_debug_log_to_function_call_(Z854)"></span> ==== Debug-Protokoll zu Funktionsaufruf hinzufügen (Z854) ==== Die Funktion {{Z|Z854}} ist eine integrierte Funktion mit der ZID <code>Z854</code> und benötigt zwei Argumente: * '''Funktionsaufruf''' – Jede Komposition, die du ausführen möchtest. * '''Debug-Protokoll''' – Eine Zeichenketten-Meldung, die protokolliert wird, wenn der angegebene Funktionsaufruf ausgewertet wird. Wenn der umschlossene Funktionsaufruf ausgeführt wird, wird die bereitgestellte Meldung zu den Ausführungsprotokollen hinzugefügt. Wird dieser Funktionsaufruf nicht ausgeführt oder ist seine Ausführung nicht Teil der endgültigen Ausgabe, erscheint sein Debug-Protokoll nicht in den Metadaten des Endergebnisses. Diese integrierte Funktion ist besonders nützlich, wenn du beobachten möchtest: * Welcher Zweig einer Bedingung ausgeführt wurde, oder * Die Reihenfolge der Auswertung in einer Komposition. <span id="Using_Add_debug_log_to_function_call"></span> ==== Verwendung von Debug-Protokoll zu Funktionsaufruf hinzufügen ==== Angenommen, du möchtest zu unserer Beispielfunktion "verbinde zwei Zeichenketten mit Leerzeichen" oder <code>Z30000</code> Debug-Protokolle hinzufügen, sodass für die verschiedenen möglichen Ergebnisse unterschiedliche Meldungen angezeigt werden. Du könntest unsere integrierte Debugging-Funktion wie folgt verwenden: <syntaxhighlight lang="prolog"> if ( is_empty_string( Z30000K1 ), add_debug_log( throw_error( Z30005, ... ), 'failed on first input' ) if( is_empty_string( Z30000K2 ), add_debug_log( throw_error( Z30005, ... ), 'failed on second input' ), add_debug_log( join_with_separator( Z30000K1, Z30000K2, " " ), 'both inputs are ok!' ) ) ) </syntaxhighlight> Dies bewirkt Folgendes: * Wird die Funktion mit einer leeren ersten Eingabe aufgerufen, gibt sie eine Fehlermeldung zurück und die Metadaten enthalten einen Eintrag <code>executorDebugLogs</code> mit dem Protokoll-Eintrag "Fehler bei erster Eingabe". * Wird der Aufruf mit einer leeren zweiten Eingabe aufgerufen, schlägt der Aufruf ebenfalls fehl, die protokollierte Meldung lautet jedoch "Fehler bei zweiter Eingabe". * Bei Aufruf mit gültigen Eingaben gibt die Funktion eine erfolgreiche Antwort zurück und zusätzlich enthalten die Metadaten im Schlüssel <code>executorDebugLogs</code> "Beide Eingaben sind in Ordnung". So würde diese Komposition aussehen: [[File:Add debug log expanded.png|frame|center|alt=Implementierung der Komposition mit Debug-Protokoll hinzufügen, um alle möglichen Ausführungspfade zu protokollieren|Implementierung der Komposition mit Debug-Protokoll hinzufügen, um alle möglichen Ausführungspfade zu protokollieren]] <span id="Accessing_execution_debug_logs"></span> === Zugriff auf Ausführungs-Debug-Protokolle === Unabhängig davon, ob deine Ausführungsprotokolle über <code>Wikifunctions.Debug()</code> oder die integrierte Funktion {{Z|Z854}} hinzugefügt werden, werden sie als Teil der Antwort-Metadaten zurückgegeben. Um die Protokolle zu sehen, klicke nach dem Ausführen deiner Funktion auf die Schaltfläche "Details", die unten im Abschnitt "Ergebnis" erscheint. Die Fehler- und Debug-Informationen werden oben im Dialogfeld "Details" angezeigt. Dies ist das Ergebnis, das du sehen würdest, wenn du die Komposition aus unserem vorherigen Beispiel mit gültigen und ungültigen Eingaben ausführst: {| class="wikitable" | [[File:Execution logs success.png|frameless|center|alt=Funktions-Metadatendialog für eine erfolgreiche Ausführung mit Debug-Protokollen]] | [[File:Execution logs failure.png|frameless|center|alt=Funktions-Metadatendialog für eine fehlgeschlagene Ausführung mit Debug-Protokollen]] |- | Funktions-Metadatendialog für eine erfolgreiche Ausführung: zeigt keine Fehler an, sondern das Protokoll der erfolgreichen Ausführung: ''"Beide Eingaben sind in Ordnung!"'' | Funktions-Metadatendialog für eine fehlgeschlagene Ausführung: zeigt die Fehlerinformationen und das zusätzliche Ausführungsprotokoll für den ersten Fehlerzweig an: ''"Fehler bei erster Eingabe"'' |} [[Category:How to create implementations| {{#translation:}}]] swj9nyd8zquz3su1305v03jnc1vx3zc Module:Message box/fmbox.css 828 14303 334305 120567 2026-10-29T06:00:30Z Axolitl 85298 Better dark mode borders 334305 sanitized-css text/css /* {{pp|small=y}} */ .fmbox { clear: both; margin: 0.2em 0; width: 100%; border: 1px solid var(--border-color-base, #a2a9b1); background-color: var(--background-color-interactive-subtle, #f8f9fa); box-sizing: border-box; color: var(--color-base, #202122); } .fmbox-warning { border: 1px solid #bb7070; /* Dark pink */ background-color: #ffdbdb; /* Pink */ } .fmbox-editnotice { background-color: transparent; } .fmbox .mbox-text { border: none; /* @noflip */ padding: 0.25em 0.9em; width: 100%; } .fmbox .mbox-image { border: none; /* @noflip */ padding: 2px 0 2px 0.9em; text-align: center; } .fmbox .mbox-imageright { border: none; /* @noflip */ padding: 2px 0.9em 2px 0; text-align: center; } .fmbox .mbox-invalid-type { text-align: center; } @media screen { html.skin-theme-clientpref-night .fmbox-warning { background-color: #683131; /* Reddish, same hue/saturation as light */ } } @media screen and ( prefers-color-scheme: dark) { html.skin-theme-clientpref-os .fmbox-warning { background-color: #683131; /* Reddish, same hue/saturation as light */ } } h1zlom6dq7erniyi511exuubar11em8 Wikifunctions:Translation administrators/pl 4 14667 334292 278607 2026-10-28T23:43:16Z Chrumps 3889 Created page with "Poczekać tydzień na dyskusję." 334292 wikitext text/x-wiki <Languages/> [[File:Wikifunctions Translation Administrator Icon.svg|thumb|Administratorzy tłumaczeń Wikifunkcji]] Administratorzy tłumaczeń to użytkownicy, którzy należą do grupy <code>translationadmin</code>. Na Wikifunkcjach jest aktualnie '''[[Special:ListUsers/translationadmin|{{NUMBERINGROUP:translationadmin}}]]''' administratorów tłumaczeń. <span id="Overview"></span> == Przegląd == Administratorzy tłumaczeń mogą oznaczać strony do tłumaczenia, korzystając z [[mw:Special:MyLanguage/Extension:Translate|rozszerzenia tłumaczeń]]. Dzięki temu użytkownicy mogą tłumaczyć oznaczone strony na dowolne języki. <span id="Current_translation_administrators"></span> === Obecni administratorzy tłumaczeń === {{Special:Listusers/translationadmin|limit=500}} <span id="How_to_request"></span> == Jak wnioskować == {{Main|1=Wikifunctions:Requests for user groups}} Użytkownicy mogą ubiegać się o uprawnienia administratora tłumaczeń na stronie [[Wikifunctions:Requests for user groups#Translation administrator]]. <span id="Requirements"></span> === Wymagania === Aby rozpocząć proces przyznawania uprawnień administratora tłumaczeń na Wikifunkcjach, użytkownik musi spełnić następujące wymagania: * Utwórz nową sekcję dyskusji z prośbą o przyznanie uprawnień na [[Wikifunctions:Requests for user groups#Translation administrator]]. * Poczekać tydzień na dyskusję. * Kandydat musi uzyskać przynajmniej 2/3 (dwie trzecie) głosów poparcia. * Zaprezentuj przykładową edycję, aby zademonstrować swoje praktyczne doświadczenie ze składnią tłumaczeń <span id="Granting"></span> === Nadawanie === Gdy prośba zostanie przyjęta, należy zgłosić to na stronie [[m:Special:MyLanguage/Steward requests/Permissions#Miscellaneous requests|Steward requests/Permissions#Miscellaneous requests]]. Steward przyzna odpowiednie uprawnienia. Jeśli uprawnienia są tymczasowe, zostaną automatycznie usunięte po upływie okresu ważności, bez powiadomienia. Jeśli konieczne jest przedłużenie tego okresu, należy rozpocząć nową dyskusję przed ich wygaśnięciem. Administratorzy nie muszą przechodzić kolejnej dyskusji, aby zostać administratorami tłumaczeń; w razie potrzeby mogą samodzielnie przyznać prawa do swojego konta. Tymczasowi administratorzy nie mogą samodzielnie przyznawać stałych uprawnień administratora tłumaczeń. <span id="Technical_ability"></span> == Możliwości techniczne == :{{seealso|Special:ListGroupRights#translationadmin}} Przynależność do grupy <code>translationadmin</code> daje użytkownikom następujące uprawnienia: * {{int|right-pagelang}} <code>(pagelang)</code> * {{int|right-oathauth-enable}} <code>(oathauth-enable)</code> * {{int|right-translate-import}} <code>(translate-import)</code> * {{int|right-translate-manage}} <code>(translate-manage)</code> * {{int|right-pagetranslation}} <code>(pagetranslation)</code> <span id="See_also"></span> == Zobacz też == * [[Special:MyLanguage/Wikifunctions:User groups|Wikifunkcje:Grupy użytkowników]] * [[Wikifunctions:Translators' noticeboard|Wikifunkcje:Tablica ogłoszeń administratorów tłumaczeń]] [[Category:Translation administrators]] [[Category:User groups{{#translation:}}]] rptxgyoldukejzptjm5l8a5txn3rp2p 334294 334292 2026-10-28T23:43:51Z Chrumps 3889 334294 wikitext text/x-wiki <Languages/> [[File:Wikifunctions Translation Administrator Icon.svg|thumb|Administratorzy tłumaczeń Wikifunkcji]] Administratorzy tłumaczeń to użytkownicy, którzy należą do grupy <code>translationadmin</code>. Na Wikifunkcjach jest aktualnie '''[[Special:ListUsers/translationadmin|{{NUMBERINGROUP:translationadmin}}]]''' administratorów tłumaczeń. <span id="Overview"></span> == Przegląd == Administratorzy tłumaczeń mogą oznaczać strony do tłumaczenia, korzystając z [[mw:Special:MyLanguage/Extension:Translate|rozszerzenia tłumaczeń]]. Dzięki temu użytkownicy mogą tłumaczyć oznaczone strony na dowolne języki. <span id="Current_translation_administrators"></span> === Obecni administratorzy tłumaczeń === {{Special:Listusers/translationadmin|limit=500}} <span id="How_to_request"></span> == Jak wnioskować == {{Main|1=Wikifunctions:Requests for user groups}} Użytkownicy mogą ubiegać się o uprawnienia administratora tłumaczeń na stronie [[Wikifunctions:Requests for user groups#Translation administrator]]. <span id="Requirements"></span> === Wymagania === Aby rozpocząć proces przyznawania uprawnień administratora tłumaczeń na Wikifunkcjach, użytkownik musi spełnić następujące wymagania: * Utwórz nową sekcję dyskusji z prośbą o przyznanie uprawnień na [[Wikifunctions:Requests for user groups#Translation administrator]]. * Poczekać tydzień na dyskusję. * Kandydat musi uzyskać przynajmniej 2/3 (dwie trzecie) głosów poparcia. * Przedstawić przykładową edycję potwierdzającą praktyczne doświadczenie w posługiwaniu się składnią tłumaczeń. <span id="Granting"></span> === Nadawanie === Gdy prośba zostanie przyjęta, należy zgłosić to na stronie [[m:Special:MyLanguage/Steward requests/Permissions#Miscellaneous requests|Steward requests/Permissions#Miscellaneous requests]]. Steward przyzna odpowiednie uprawnienia. Jeśli uprawnienia są tymczasowe, zostaną automatycznie usunięte po upływie okresu ważności, bez powiadomienia. Jeśli konieczne jest przedłużenie tego okresu, należy rozpocząć nową dyskusję przed ich wygaśnięciem. Administratorzy nie muszą przechodzić kolejnej dyskusji, aby zostać administratorami tłumaczeń; w razie potrzeby mogą samodzielnie przyznać prawa do swojego konta. Tymczasowi administratorzy nie mogą samodzielnie przyznawać stałych uprawnień administratora tłumaczeń. <span id="Technical_ability"></span> == Możliwości techniczne == :{{seealso|Special:ListGroupRights#translationadmin}} Przynależność do grupy <code>translationadmin</code> daje użytkownikom następujące uprawnienia: * {{int|right-pagelang}} <code>(pagelang)</code> * {{int|right-oathauth-enable}} <code>(oathauth-enable)</code> * {{int|right-translate-import}} <code>(translate-import)</code> * {{int|right-translate-manage}} <code>(translate-manage)</code> * {{int|right-pagetranslation}} <code>(pagetranslation)</code> <span id="See_also"></span> == Zobacz też == * [[Special:MyLanguage/Wikifunctions:User groups|Wikifunkcje:Grupy użytkowników]] * [[Wikifunctions:Translators' noticeboard|Wikifunkcje:Tablica ogłoszeń administratorów tłumaczeń]] [[Category:Translation administrators]] [[Category:User groups{{#translation:}}]] 12olcu5pwft5ihtpysqk26nsoka40ey Wikifunctions:Users/pl 4 16472 334284 57559 2026-10-28T23:37:53Z Chrumps 3889 Created page with "Zarejestrowani użytkownicy to użytkownicy należący do grupy $1." 334284 wikitext text/x-wiki <languages /> Zarejestrowani użytkownicy to użytkownicy należący do grupy <code>user</code>. <span id="Overview"></span> == Przegląd == <div lang="en" dir="ltr" class="mw-content-ltr"> '''Registered users''' are those who have signed up for an account and have logged into Wikifunctions or another Wikimedia project. </div> <span id="See_also"></span> == Zobacz też == * {{ll|Wikifunctions:User groups}} [[Category:User groups{{#translation:}}]] [[Category:Users]] n44der4ygivyi8ohhyyvy34ftp02jkw 334286 334284 2026-10-28T23:38:46Z Chrumps 3889 Created page with "'''Zarejestrowani użytkownicy''' to tacy, którzy utworzyli konto i zalogowali się do Wikifunkcji lub innego projektu Wikimedia." 334286 wikitext text/x-wiki <languages /> Zarejestrowani użytkownicy to użytkownicy należący do grupy <code>user</code>. <span id="Overview"></span> == Przegląd == '''Zarejestrowani użytkownicy''' to tacy, którzy utworzyli konto i zalogowali się do Wikifunkcji lub innego projektu Wikimedia. <span id="See_also"></span> == Zobacz też == * {{ll|Wikifunctions:User groups}} [[Category:User groups{{#translation:}}]] [[Category:Users]] agdbiecqtqjp37h7tv879skniczowj5 334288 334286 2026-10-28T23:39:52Z Chrumps 3889 334288 wikitext text/x-wiki <languages /> Zarejestrowani użytkownicy to użytkownicy należący do grupy <code>user</code>. <span id="Overview"></span> == Informacje ogólne == '''Zarejestrowani użytkownicy''' to tacy, którzy utworzyli konto i zalogowali się do Wikifunkcji lub innego projektu Wikimedia. <span id="See_also"></span> == Zobacz też == * {{ll|Wikifunctions:User groups}} [[Category:User groups{{#translation:}}]] [[Category:Users]] 75bfua2eag5u79l4vm2b7kdrh1fcyyi Translations:Wikifunctions:Users/6/pl 1198 16473 334287 57556 2026-10-28T23:39:48Z Chrumps 3889 334287 wikitext text/x-wiki == Informacje ogólne == nrfxc25n3gya5un1pjobpi3owq8dawh Wikifunctions:User groups/pl 4 17091 334297 255318 2026-10-28T23:45:52Z Chrumps 3889 Created page with "Przegląd grup użytkowników i uprawnień w Wikifunkcjach" 334297 wikitext text/x-wiki <languages/> {{shortcut|[[WF:GROUP]]}} <span id="Summary"></span> == Podsumowanie == Tabela podsumowuje aktualne uprawnienia: <div class="noresize"> {| class="wikitable" style="text-align:center;margin:auto;" |+Przegląd grup użytkowników i uprawnień w Wikifunkcjach ! !scope="col"|<span class="mw-translate-fuzzy">Uruchamianie opublikowanych funkcji</span> !scope="col"|<span lang="en" dir="ltr" class="mw-content-ltr">Edit labels/aliases/descriptions on all objects</span> !scope="col"|Publikowanie i edycja stron z wikikodem (nie-obiektów) !scope="col"|Tworzenie funkcji, implementacji i przypadków testowych !scope="col"|Uruchamianie funkcji przed publikacją (w celu testowania) !scope="col"|<span class="mw-translate-fuzzy">Przyłączanie/odłączanie przypadków testowych i implementacji</span> !scope="col"|<span class="mw-translate-fuzzy">Edycja przyłączonych implementacji i przypadków testowych</span> !scope="col"|<span class="mw-translate-fuzzy">Edytowanie aktywnej funkcji (z przyłączonymi implementacjami)</span> !scope="col"|<span lang="en" dir="ltr" class="mw-content-ltr">Create and edit predefined objects (Zobjects < Z10000)</span> |- !scope="row"|Każdy – w tym niezalogowani |✅ |style="background-color:#F9DDE9;"|– |style="background-color:#F9DDE9;"|– |style="background-color:#F9DDE9;"|– |style="background-color:#F9DDE9;"|– |style="background-color:#F9DDE9;"|– |style="background-color:#F9DDE9;"|– |style="background-color:#F9DDE9;"|– |style="background-color:#F9DDE9;"|– |- !scope="row"|Każdy – zalogowani |✅ |✅ |✅ |✅ |style="background-color:#F9DDE9;"|– |style="background-color:#F9DDE9;"|– |style="background-color:#F9DDE9;"|– |style="background-color:#F9DDE9;"|– |style="background-color:#F9DDE9;"|– |- !scope="row"|Administratorzy |✅ |✅ |✅ |✅ |style="background-color:#F9DDE9;"|– |style="background-color:#F9DDE9;"|– |style="background-color:#F9DDE9;"|– |style="background-color:#F9DDE9;"|– |style="background-color:#F9DDE9;"|– |- !scope="row"|Funkcjonierzy |✅ |✅ |✅ |✅ |✅ |✅ |✅ |style="background-color:#F9DDE9;"|– |style="background-color:#F9DDE9;"|– |- !scope="row"|<span class="mw-translate-fuzzy">Konserwatorzy</span> |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |- !scope="row"|Pracownicy Wikifunkcji |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |✅ |- |}</div> Zobacz też [[:mw:Special:MyLanguage/Help:Wikifunctions/User rights|uprawnienia użytkowników Wikifunkcji na MediaWiki]]. <span id="List_of_user_groups"></span> == Lista grup użytkowników == Lokalne grupy użytkowników są przyznawane na Wikifunkcjach i nie mają wpływu na uprawnienia na innych projektach Wikimedia. <span id="Unregistered_users"></span> === Użytkownicy niezarejestrowani === {{Main|m:Special:MyLanguage/Unregistered user{{!}}Meta-Wiki:Unregistered user}} Użytkownicy, którzy nie są zalogowani, nazywani są użytkownikami niezarejestrowanymi lub użytkownikami IP. Mogą edytować etykiety, opisy i aliasy obiektów; mogą edytować strony, które nie są chronione lub częściowo chronione; ich edycje pojawią się w historii stron wraz z adresem IP, z którego zostały wprowadzone. <span id="Registered_users"></span> === Użytkownicy zarejestrowani === {{Main|m:Special:MyLanguage/Registered user{{!}}Meta-Wiki:Registered user}} Zarejestrowani użytkownicy to osoby, które założyły konto i zalogowały się do projektu Wikimedia. Oprócz możliwości dostępnych dla niezarejestrowanych użytkowników, mogą oni: tworzyć i edytować obiekty, funkcje oraz przypadki testowe, tworzyć strony, zmieniać własne preferencje, edytować swoją listę obserwowanych stron oraz oznaczać edycje jako drobne. <span id="Confirmed_and_Autoconfirmed_users"></span> === Użytkownicy zatwierdzeni i automatycznie zatwierdzeni === {{Main|Special:MyLanguage/Wikifunctions:Confirmed users{{!}}Wikifunctions:Confirmed users}} Użytkownicy zatwierdzeni mają dostęp do takich samych uprawnień jak automatycznie zatwierdzeni, zanim osiągną progi wymagane do automatycznego nadania statusu zatwierdzonego. W szczególności, tacy użytkownicy mogą przenosić strony i edytować strony częściowo chronione, bez wysyłania prośby o edycję. <div lang="en" dir="ltr" class="mw-content-ltr"> === Autopatrollers === </div> {{Main|Special:MyLanguage/Wikifunctions:Autopatrollers{{!}}Wikifunctions:Autopatrollers}} <div lang="en" dir="ltr" class="mw-content-ltr"> Autopatrollers are users who have all their edits automatically marked as patrolled. </div> <span id="Functioneers"></span> === Funkcjonierzy === {{Main|Special:MyLanguage/Wikifunctions:Functioneers{{!}}Wikifunctions:Functioneers}} Funkcjonierzy to użytkownicy, którzy mają możliwość zatwierdzania i dezaktywowania zarówno implementacji, jak i przypadków testowych powiązanych z funkcjami. Mogą także edytować połączone (zatwierdzone) funkcje, implementacje i przypadki testowe. <span id="Maintainers"></span> === Konserwatorzy === {{Main|Special:MyLanguage/Wikifunctions:Maintainers{{!}}Wikifunctions:Maintainers}} Konserwatorzy mogą tworzyć i edytować obiekty zastrzeżone (tzn. te, których identyfikator jest mniejszy niż Z10000). Mogą tworzyć i edytować obiekty typu Obiekt, Język naturalny, Język programowania. Ponadto, mogą edytować funkcje dostarczane przez [[Special:MyLanguage/User:WikiLambda system|system WikiLambda]]. <span id="Administrators"></span> === Administratorzy === {{Main|Special:MyLanguage/Wikifunctions:Administrators{{!}}Wikifunctions:Administrators}} Administratorzy (inaczej: admini, sysopi) są doświadczonymi i zaufanymi użytkownikami, którzy są w stanie wykonywać zadania utrzymaniowe, aby Wikifunkcje działały prawidłowo. Do tych zadań wliczają się: usuwanie i zabezpieczanie stron, blokowanie użytkowników, nadawanie użytkownikom uprawnień. <span id="Interface_administrators"></span> === Administratorzy interfejsu === {{Main|Special:MyLanguage/Wikifunctions:Interface administrators{{!}}Wikifunctions:Interface administrators}} Administratorzy interfejsu to wysoce zaufani użytkownicy, którzy mogą edytować wszystkie strony w przestrzeni MediaWiki, w tym strony z kodem CSS, JavaScript i JSON. Znajdująca się na nich treść może być wykonywana w przeglądarce użytkownika, odwiedzającego wiki, i np. wpłynąć na wygląd strony. Ci użytkownicy mogą również edytować analogiczne strony z kodem w przestrzeni poszczególnych użytkowników. <span id="Translation_administrators"></span> === Administratorzy tłumaczeń === {{Main|Special:MyLanguage/Wikifunctions:Translation administrators{{!}}Wikifunctions:Translation administrators}} Administratorzy tłumaczeń mogą oznaczać strony do tłumaczenia, korzystając z [[mw:Special:MyLanguage/Extension:Translate|rozszerzenia Translate]]. Dzięki temu użytkownicy mogą tłumaczyć oznaczone strony na dowolne języki. <span id="Bureaucrats"></span> === Biurokraci === {{Main|Special:MyLanguage/Wikifunctions:Bureaucrats{{!}}Wikifunctions:Bureaucrats}} Biurokraci są doświadczonymi i zaufanymi użytkownikami, którzy mogą nadawać i odbierać zaawansowane uprawnienia, w tym administratora, administratora tłumaczeń, administratora interfejsu oraz bota. <span id="List_of_specialised_groups"></span> == Lista specjalnych grup == <span id="IP_block_exemption"></span> === Uprawnienie do logowania się z zablokowanych adresów IP === {{Main|m:Special:MyLanguage/IP block exempt{{!}}Meta-Wiki:IP block exempt}} Użytkownicy, których wyłączono z blokad IP, nie podlegają blokadom automatycznym, blokadom adresów oraz zakresów IP (zarówno lokalnym, jak i globalnym). Nie dotyka ich również blokada serwerów proxy i Tor. <span id="Check_users"></span> === Checkuserzy === {{Main|m:Special:MyLanguage/CheckUser policy{{!}}Meta-Wiki:CheckUser policy}} Użytkownicy z uprawnieniami checkusera mogą między innymi sprawdzać, czy jedno konto stanowi na tej wiki pacynkę innego konta (nie pozwala na sprawdzenie na pozostałych wiki). <span id="Suppressors"></span> === Rewizorzy === {{Main|m:Special:MyLanguage/Oversight policy{{!}}Meta-Wiki:Oversight policy}} Rewizorzy mogą ukrywać edycje, opisy, nazwy użytkowników i wpisy w logu przed widokiem publicznym. Zatuszowane w ten sposób dane mogą być wyświetlone i przywrócone wyłącznie przez rewizorów. <span id="Bots"></span> === Boty === {{Main|Special:MyLanguage/Wikifunctions:Bots{{!}}Wikifunctions:Bots}} Boty to automatyczne narzędzia, które wykonują edycje bez konieczności udziału lub nadzoru człowieka. <!-- === Account creators === {{Main|Wikifunctions:Account creators}}--> <!--Text--> <span id="Importers"></span> === Importerzy === {{Main|m:Special:MyLanguage/Importer{{!}}Meta-Wiki:Importer}} Istnieją dwa rodzaje importerów: importerzy i importerzy transwiki. Oboje mogą importować strony z innych wiki, ale tylko pierwsza grupa może wgrywać strony z dysku komputera. <span id="Wikifunctions_staff"></span> === Pracownicy Wikifunkcji === {{Main|Special:MyLanguage/Wikifunctions:Wikifunctions staff members{{!}}Wikifunctions:Wikifunctions staff members}} Pewna liczba pracowników i kontraktorów Fundacji Wikimedia znajduje się w grupie ''pracowników Wikifunkcji''. Ci użytkownicy mają dostęp do różnych akcji na wiki, co pozwala im wspierać rozwój oprogramowania i społeczności. <span id="List_of_global_groups"></span> == Lista grup globalnych == Globalne grupy użytkowników mają wpływ na wiele projektów Wikimedia. Następujące są aktywne na Wikifunkcjach: <span id="Global_sysops"></span> === Globalni administratorzy === {{Main|m:Special:MyLanguage/Global sysops{{!}}Meta-Wiki:Global sysops}} Globalni administratorzy mają dostęp do narzędzi administracyjnych na [[Special:WikiSets/7|większości publicznych wiki]], aby powstrzymywać wandalizmy i dokonywać czynności utrzymaniowych. Nie mają oni dostępu administracyjnego na wszystkich wiki, nie mają też szczególnej kontroli edytorskiej nad treścią wiki ani lokalną społecznością. <span id="Stewards"></span> === Stewardzi === {{Main|m:Special:MyLanguage/Stewards{{!}}Meta-Wiki:Stewards}} Stewardzi to grupa globalna z pełnym dostępem do interfejsu wiki na wszystkich publicznych wiki Wikimediów. Mogą zmieniać lokalne i globalne uprawnienia użytkowników, zmieniać status i nazwę kont globalnych, a także korzystać z wszystkich uprawnień administratorów i biurokratów. [[Category:User groups{{#translation:}}|*]] 7szbkkim1ootjexl5w8yvarnww8a6f8 Wikifunctions:Blocking policy/pl 4 19864 334215 116870 2026-10-28T23:03:11Z Chrumps 3889 Created page with "== Odwołanie od blokady ==" 334215 wikitext text/x-wiki {{draft}} <languages/> <div lang="en" dir="ltr" class="mw-content-ltr"> [[Special:MyLanguage/WF:Administrators|Administrators]] are given the ability to administer '''blocks''' to users when appropriate. A blocked user is usually restricted from editing, among other things. In a general sense, blocks are a last resort for behaviour that has the potential to damage Wikifunctions or disrupt its collegial atmosphere. Blocks may be sitewide or partial (affecting only certain actions). In this way, blocking is designed to be a ''preventative'' measure and not a ''punitive'' one; "cool-down" blocks are not condoned. </div> <span id="Use"></span> == Użycie == <div lang="en" dir="ltr" class="mw-content-ltr"> Blocks may be applied for a number of reasons. The more common of these are detailed below: </div> * <span lang="en" dir="ltr" class="mw-content-ltr">'''[[Special:MyLanguage/WF:Vandalism|Vandalism]]'''. Disruptive editing may result in a block. For example:</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Insertion of gratuitous vulgarity</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Gibberish text</span> ** Usuwanie treści ze stron * '''Spam'''. * '''[[m:Special:MyLanguage/Copyright|Naruszenia praw autorskich]]'''. * '''[[m:Special:MyLanguage/Edit war|Wojna edycyjna]]'''. * <span lang="en" dir="ltr" class="mw-content-ltr">'''Personal attacks''' or '''harassment'''. Accounts and IP addresses which are used primarily to create a hostile environment for another user may be blocked. Good faith disputes between users, however, should be brought to [[WF:Project chat|project chat]] for outside input. Tracking a user's contributions for policy violations is not harassment.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Unauthorized or non-responsive [[Special:MyLanguage/WF:Bots|bot]] accounts'''. Bot accounts must be authorized by the Wikifunctions community. Questionable bot-like editing that cannot be explained by the user should be blocked until discussion takes place. Bot proposals can be discussed at [[WF:Bots]] or [[WF:Project chat|project chat]]. Bot approval can be sought at [[WF:Bots/Requests]].</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Approved bot accounts that are temporarily malfunctioning'''. This is to prevent additional damage until the bot-owner can address the problem.</span> * [[Special:MyLanguage/WF:Username policy#INAPPR|'''Nieodpowiednie nazwy użytkowników''']]. * <span lang="en" dir="ltr" class="mw-content-ltr">'''Evasion of blocks'''. An administrator may reset the block of a user who intentionally evades a block (and revert their contributions), and may extend the duration of the block if the user engages in further blockable behaviour while evading the block. User accounts or IP addresses used to evade a block may and should also be blocked.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Abusing multiple accounts''' to mislead, deceive, disrupt, distort consensus or to evade blocks or other sanctions. Secondary accounts are typically blocked indefinitely. The primary account may or may not be subject to new or extended blocks depending on the circumstances.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Open or anonymizing proxies''' are typically blocked upon detection in accordance with [[m:Special:MyLanguage/No open proxies|Wikimedia-wide policy]]. The normal duration of such blocks is one year.</span> <span id="Instructions_for_administrators"></span> == Instrukcje dla administratorów == <span id="Before_blocking"></span> === Przed zablokowaniem === * <span lang="en" dir="ltr" class="mw-content-ltr">For blocks based on disruptive behaviour, such as vandalism, repeated copyright violations and manual promotional activities, ensure that the user has been appropriately '''warned,''' preferably using a [[:Category:Block warning templates|block warning template]]. No warning is necessary when blocking open proxies and users with inappropriate or abusive usernames. Accounts and IP addresses used solely for severely disruptive purposes such as automated spamming, serious vandalism or harassment may also be blocked without prior warning.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Controversial blocks''' may be discussed at the [[WF:Administrators' noticeboard|blocks and protections noticeboard]], preferably before they are applied if at all possible. As a rule of thumb, when in doubt, do not block.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''[[:mw:Special:MyLanguage/Help:Range blocks|Range blocks]]''' are especially powerful tools, and discussion of these is particularly encouraged. Range blocks with a duration longer than 24 hours should be discussed with a {{pg|WF:Checkusers|checkuser}} to assess the likely impact.</span> <div lang="en" dir="ltr" class="mw-content-ltr"> === When blocking === </div> * <span lang="en" dir="ltr" class="mw-content-ltr">Blocks can be applied to '''registered users, IP addresses or address ranges.'''</span> * <span lang="en" dir="ltr" class="mw-content-ltr">As blocks are preventative rather than punitive, use a block '''duration''' that is proportional to the time likely needed for the user to familiarize themselves with relevant policies and adjust their behaviour. Also consider the user's past behaviour and the severity of the disruption. When blocking IP addresses, keep in mind that innocent third parties sharing the same addresses may be affected.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">Provide a '''reason''' for the block. The rationale should preferably use links to relevant policies to help the blocked user understand why they have been blocked. Where appropriate, diffs or [[w:Help:Permanent link|permanent links]] documenting the reason for the block are also helpful.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Account creation''' should be prevented in most cases, but may be allowed when blocking an inappropriate user name to allow creation of a different name.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Autoblocking''' of IP addresses used by the blocked user should typically be enabled for users who were blocked for disruptive behavior. It should be disabled in most other cases, like blocking malfunctioning bots and usernames that don't follow the {{pg|WF:Username policy|username policy}}.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">Only prevent the blocked user from using their '''talk page''' or sending '''e-mail''' if they are likely to abuse these privileges.</span> <span id="After_blocking"></span> === Po zablokowaniu === * <span lang="en" dir="ltr" class="mw-content-ltr">'''Notify''' the blocked user, preferably using a [[:Category:User block templates|user block template]].</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Watch''' the blocked user's user talk page and ensure that '''[[:Category:Requests for unblock|requests for unblock]]''' are attended to.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">Blocks based on disruptive behaviour should be '''lifted''' if there is reason to believe that the disruptive behaviour will not resume.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Controversial blocks''' may also be discussed at the [[Wikifunctions:Administrators' noticeboard|blocks and protections noticeboard]] after they have been applied. To avoid [[:en:WP:WW|wheel warring]], another administrator should lift a block only if there is consensus to do so, even if there is no clear consensus in favor of the original block.</span> <span id="Appealing_a_block"></span> == Odwołanie od blokady == <div lang="en" dir="ltr" class="mw-content-ltr"> Blocked users are [[MediaWiki:Blockedtext|informed]] that they may '''request unblocking.''' They may do this by adding {{tld|unblock|''reason for the request''}} to their '''[[Special:MyTalk|own user talk page]].''' Alternatively, they may request unblocking with an appropriate reason via '''[[Special:EmailUser|e-mail]]''' to the blocking administrator or another administrator. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> An '''appropriate reason''' will almost always include one of the following: </div> * <span lang="en" dir="ltr" class="mw-content-ltr">An '''acknowledgement''' that the block was appropriate and a '''credible promise''' that the behaviour that led to the block will not be repeated</span> * <span lang="en" dir="ltr" class="mw-content-ltr">An explanation of why the block is '''not appropriate''' based on this and other relevant policies and guidelines or is '''likely to be a mistake or an unintended side effect'''</span> <div lang="en" dir="ltr" class="mw-content-ltr"> An unblock request may be '''[[Template:Unblock granted|granted]]''' or '''[[Template:Unblock declined|declined]].''' Before granting a request to lift a block placed by another administrator, the reviewing administrator should '''consult with the blocking administrator,''' except in obvious, uncontroversial cases. [[:Category:Requests for unblock|Requests made on user talk pages]] may only be declined by an '''uninvolved administrator.''' </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Making repeated unblocking requests without appropriate reasons may be considered abusive. As noted above, users who have abused or are likely to abuse the ability to edit their own user talk page and/or send e-mail in this or any other way may have either or both of these privileges revoked, which also prevents these privileges from being used for unblocking requests. </div> <span id="See_also"></span> == Zobacz też == <!-- * [[:Category:Block warning templates]] * [[:Category:User block templates]]--> * <span lang="en" dir="ltr" class="mw-content-ltr">[[m:Special:MyLanguage/Global locks|Global locks]], [[m:Special:MyLanguage/Global blocks|global blocks]], and [[m:Special:MyLanguage/Global bans|global bans]]: similar concepts spanning all Wikimedia projects</span> [[Category:Policy{{#translation:}}]] mkbqs1nfkarfxjnaksz65b7qh9912bh 334217 334215 2026-10-28T23:04:07Z Chrumps 3889 Created page with "'''Odpowiednie uzasadnienie''' niemal zawsze zawiera jeden z następujących elementów:" 334217 wikitext text/x-wiki {{draft}} <languages/> <div lang="en" dir="ltr" class="mw-content-ltr"> [[Special:MyLanguage/WF:Administrators|Administrators]] are given the ability to administer '''blocks''' to users when appropriate. A blocked user is usually restricted from editing, among other things. In a general sense, blocks are a last resort for behaviour that has the potential to damage Wikifunctions or disrupt its collegial atmosphere. Blocks may be sitewide or partial (affecting only certain actions). In this way, blocking is designed to be a ''preventative'' measure and not a ''punitive'' one; "cool-down" blocks are not condoned. </div> <span id="Use"></span> == Użycie == <div lang="en" dir="ltr" class="mw-content-ltr"> Blocks may be applied for a number of reasons. The more common of these are detailed below: </div> * <span lang="en" dir="ltr" class="mw-content-ltr">'''[[Special:MyLanguage/WF:Vandalism|Vandalism]]'''. Disruptive editing may result in a block. For example:</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Insertion of gratuitous vulgarity</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Gibberish text</span> ** Usuwanie treści ze stron * '''Spam'''. * '''[[m:Special:MyLanguage/Copyright|Naruszenia praw autorskich]]'''. * '''[[m:Special:MyLanguage/Edit war|Wojna edycyjna]]'''. * <span lang="en" dir="ltr" class="mw-content-ltr">'''Personal attacks''' or '''harassment'''. Accounts and IP addresses which are used primarily to create a hostile environment for another user may be blocked. Good faith disputes between users, however, should be brought to [[WF:Project chat|project chat]] for outside input. Tracking a user's contributions for policy violations is not harassment.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Unauthorized or non-responsive [[Special:MyLanguage/WF:Bots|bot]] accounts'''. Bot accounts must be authorized by the Wikifunctions community. Questionable bot-like editing that cannot be explained by the user should be blocked until discussion takes place. Bot proposals can be discussed at [[WF:Bots]] or [[WF:Project chat|project chat]]. Bot approval can be sought at [[WF:Bots/Requests]].</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Approved bot accounts that are temporarily malfunctioning'''. This is to prevent additional damage until the bot-owner can address the problem.</span> * [[Special:MyLanguage/WF:Username policy#INAPPR|'''Nieodpowiednie nazwy użytkowników''']]. * <span lang="en" dir="ltr" class="mw-content-ltr">'''Evasion of blocks'''. An administrator may reset the block of a user who intentionally evades a block (and revert their contributions), and may extend the duration of the block if the user engages in further blockable behaviour while evading the block. User accounts or IP addresses used to evade a block may and should also be blocked.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Abusing multiple accounts''' to mislead, deceive, disrupt, distort consensus or to evade blocks or other sanctions. Secondary accounts are typically blocked indefinitely. The primary account may or may not be subject to new or extended blocks depending on the circumstances.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Open or anonymizing proxies''' are typically blocked upon detection in accordance with [[m:Special:MyLanguage/No open proxies|Wikimedia-wide policy]]. The normal duration of such blocks is one year.</span> <span id="Instructions_for_administrators"></span> == Instrukcje dla administratorów == <span id="Before_blocking"></span> === Przed zablokowaniem === * <span lang="en" dir="ltr" class="mw-content-ltr">For blocks based on disruptive behaviour, such as vandalism, repeated copyright violations and manual promotional activities, ensure that the user has been appropriately '''warned,''' preferably using a [[:Category:Block warning templates|block warning template]]. No warning is necessary when blocking open proxies and users with inappropriate or abusive usernames. Accounts and IP addresses used solely for severely disruptive purposes such as automated spamming, serious vandalism or harassment may also be blocked without prior warning.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Controversial blocks''' may be discussed at the [[WF:Administrators' noticeboard|blocks and protections noticeboard]], preferably before they are applied if at all possible. As a rule of thumb, when in doubt, do not block.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''[[:mw:Special:MyLanguage/Help:Range blocks|Range blocks]]''' are especially powerful tools, and discussion of these is particularly encouraged. Range blocks with a duration longer than 24 hours should be discussed with a {{pg|WF:Checkusers|checkuser}} to assess the likely impact.</span> <div lang="en" dir="ltr" class="mw-content-ltr"> === When blocking === </div> * <span lang="en" dir="ltr" class="mw-content-ltr">Blocks can be applied to '''registered users, IP addresses or address ranges.'''</span> * <span lang="en" dir="ltr" class="mw-content-ltr">As blocks are preventative rather than punitive, use a block '''duration''' that is proportional to the time likely needed for the user to familiarize themselves with relevant policies and adjust their behaviour. Also consider the user's past behaviour and the severity of the disruption. When blocking IP addresses, keep in mind that innocent third parties sharing the same addresses may be affected.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">Provide a '''reason''' for the block. The rationale should preferably use links to relevant policies to help the blocked user understand why they have been blocked. Where appropriate, diffs or [[w:Help:Permanent link|permanent links]] documenting the reason for the block are also helpful.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Account creation''' should be prevented in most cases, but may be allowed when blocking an inappropriate user name to allow creation of a different name.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Autoblocking''' of IP addresses used by the blocked user should typically be enabled for users who were blocked for disruptive behavior. It should be disabled in most other cases, like blocking malfunctioning bots and usernames that don't follow the {{pg|WF:Username policy|username policy}}.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">Only prevent the blocked user from using their '''talk page''' or sending '''e-mail''' if they are likely to abuse these privileges.</span> <span id="After_blocking"></span> === Po zablokowaniu === * <span lang="en" dir="ltr" class="mw-content-ltr">'''Notify''' the blocked user, preferably using a [[:Category:User block templates|user block template]].</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Watch''' the blocked user's user talk page and ensure that '''[[:Category:Requests for unblock|requests for unblock]]''' are attended to.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">Blocks based on disruptive behaviour should be '''lifted''' if there is reason to believe that the disruptive behaviour will not resume.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Controversial blocks''' may also be discussed at the [[Wikifunctions:Administrators' noticeboard|blocks and protections noticeboard]] after they have been applied. To avoid [[:en:WP:WW|wheel warring]], another administrator should lift a block only if there is consensus to do so, even if there is no clear consensus in favor of the original block.</span> <span id="Appealing_a_block"></span> == Odwołanie od blokady == <div lang="en" dir="ltr" class="mw-content-ltr"> Blocked users are [[MediaWiki:Blockedtext|informed]] that they may '''request unblocking.''' They may do this by adding {{tld|unblock|''reason for the request''}} to their '''[[Special:MyTalk|own user talk page]].''' Alternatively, they may request unblocking with an appropriate reason via '''[[Special:EmailUser|e-mail]]''' to the blocking administrator or another administrator. </div> '''Odpowiednie uzasadnienie''' niemal zawsze zawiera jeden z następujących elementów: * <span lang="en" dir="ltr" class="mw-content-ltr">An '''acknowledgement''' that the block was appropriate and a '''credible promise''' that the behaviour that led to the block will not be repeated</span> * <span lang="en" dir="ltr" class="mw-content-ltr">An explanation of why the block is '''not appropriate''' based on this and other relevant policies and guidelines or is '''likely to be a mistake or an unintended side effect'''</span> <div lang="en" dir="ltr" class="mw-content-ltr"> An unblock request may be '''[[Template:Unblock granted|granted]]''' or '''[[Template:Unblock declined|declined]].''' Before granting a request to lift a block placed by another administrator, the reviewing administrator should '''consult with the blocking administrator,''' except in obvious, uncontroversial cases. [[:Category:Requests for unblock|Requests made on user talk pages]] may only be declined by an '''uninvolved administrator.''' </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Making repeated unblocking requests without appropriate reasons may be considered abusive. As noted above, users who have abused or are likely to abuse the ability to edit their own user talk page and/or send e-mail in this or any other way may have either or both of these privileges revoked, which also prevents these privileges from being used for unblocking requests. </div> <span id="See_also"></span> == Zobacz też == <!-- * [[:Category:Block warning templates]] * [[:Category:User block templates]]--> * <span lang="en" dir="ltr" class="mw-content-ltr">[[m:Special:MyLanguage/Global locks|Global locks]], [[m:Special:MyLanguage/Global blocks|global blocks]], and [[m:Special:MyLanguage/Global bans|global bans]]: similar concepts spanning all Wikimedia projects</span> [[Category:Policy{{#translation:}}]] arxl2xxea0rher15rfpkxpal68kike6 334219 334217 2026-10-28T23:05:13Z Chrumps 3889 Created page with "'''Przyznanie się''', że blokada była uzasadniona, oraz '''wiarygodne zapewnienie''', że zachowanie, które do niej doprowadziło, nie powtórzy się" 334219 wikitext text/x-wiki {{draft}} <languages/> <div lang="en" dir="ltr" class="mw-content-ltr"> [[Special:MyLanguage/WF:Administrators|Administrators]] are given the ability to administer '''blocks''' to users when appropriate. A blocked user is usually restricted from editing, among other things. In a general sense, blocks are a last resort for behaviour that has the potential to damage Wikifunctions or disrupt its collegial atmosphere. Blocks may be sitewide or partial (affecting only certain actions). In this way, blocking is designed to be a ''preventative'' measure and not a ''punitive'' one; "cool-down" blocks are not condoned. </div> <span id="Use"></span> == Użycie == <div lang="en" dir="ltr" class="mw-content-ltr"> Blocks may be applied for a number of reasons. The more common of these are detailed below: </div> * <span lang="en" dir="ltr" class="mw-content-ltr">'''[[Special:MyLanguage/WF:Vandalism|Vandalism]]'''. Disruptive editing may result in a block. For example:</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Insertion of gratuitous vulgarity</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Gibberish text</span> ** Usuwanie treści ze stron * '''Spam'''. * '''[[m:Special:MyLanguage/Copyright|Naruszenia praw autorskich]]'''. * '''[[m:Special:MyLanguage/Edit war|Wojna edycyjna]]'''. * <span lang="en" dir="ltr" class="mw-content-ltr">'''Personal attacks''' or '''harassment'''. Accounts and IP addresses which are used primarily to create a hostile environment for another user may be blocked. Good faith disputes between users, however, should be brought to [[WF:Project chat|project chat]] for outside input. Tracking a user's contributions for policy violations is not harassment.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Unauthorized or non-responsive [[Special:MyLanguage/WF:Bots|bot]] accounts'''. Bot accounts must be authorized by the Wikifunctions community. Questionable bot-like editing that cannot be explained by the user should be blocked until discussion takes place. Bot proposals can be discussed at [[WF:Bots]] or [[WF:Project chat|project chat]]. Bot approval can be sought at [[WF:Bots/Requests]].</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Approved bot accounts that are temporarily malfunctioning'''. This is to prevent additional damage until the bot-owner can address the problem.</span> * [[Special:MyLanguage/WF:Username policy#INAPPR|'''Nieodpowiednie nazwy użytkowników''']]. * <span lang="en" dir="ltr" class="mw-content-ltr">'''Evasion of blocks'''. An administrator may reset the block of a user who intentionally evades a block (and revert their contributions), and may extend the duration of the block if the user engages in further blockable behaviour while evading the block. User accounts or IP addresses used to evade a block may and should also be blocked.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Abusing multiple accounts''' to mislead, deceive, disrupt, distort consensus or to evade blocks or other sanctions. Secondary accounts are typically blocked indefinitely. The primary account may or may not be subject to new or extended blocks depending on the circumstances.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Open or anonymizing proxies''' are typically blocked upon detection in accordance with [[m:Special:MyLanguage/No open proxies|Wikimedia-wide policy]]. The normal duration of such blocks is one year.</span> <span id="Instructions_for_administrators"></span> == Instrukcje dla administratorów == <span id="Before_blocking"></span> === Przed zablokowaniem === * <span lang="en" dir="ltr" class="mw-content-ltr">For blocks based on disruptive behaviour, such as vandalism, repeated copyright violations and manual promotional activities, ensure that the user has been appropriately '''warned,''' preferably using a [[:Category:Block warning templates|block warning template]]. No warning is necessary when blocking open proxies and users with inappropriate or abusive usernames. Accounts and IP addresses used solely for severely disruptive purposes such as automated spamming, serious vandalism or harassment may also be blocked without prior warning.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Controversial blocks''' may be discussed at the [[WF:Administrators' noticeboard|blocks and protections noticeboard]], preferably before they are applied if at all possible. As a rule of thumb, when in doubt, do not block.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''[[:mw:Special:MyLanguage/Help:Range blocks|Range blocks]]''' are especially powerful tools, and discussion of these is particularly encouraged. Range blocks with a duration longer than 24 hours should be discussed with a {{pg|WF:Checkusers|checkuser}} to assess the likely impact.</span> <div lang="en" dir="ltr" class="mw-content-ltr"> === When blocking === </div> * <span lang="en" dir="ltr" class="mw-content-ltr">Blocks can be applied to '''registered users, IP addresses or address ranges.'''</span> * <span lang="en" dir="ltr" class="mw-content-ltr">As blocks are preventative rather than punitive, use a block '''duration''' that is proportional to the time likely needed for the user to familiarize themselves with relevant policies and adjust their behaviour. Also consider the user's past behaviour and the severity of the disruption. When blocking IP addresses, keep in mind that innocent third parties sharing the same addresses may be affected.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">Provide a '''reason''' for the block. The rationale should preferably use links to relevant policies to help the blocked user understand why they have been blocked. Where appropriate, diffs or [[w:Help:Permanent link|permanent links]] documenting the reason for the block are also helpful.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Account creation''' should be prevented in most cases, but may be allowed when blocking an inappropriate user name to allow creation of a different name.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Autoblocking''' of IP addresses used by the blocked user should typically be enabled for users who were blocked for disruptive behavior. It should be disabled in most other cases, like blocking malfunctioning bots and usernames that don't follow the {{pg|WF:Username policy|username policy}}.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">Only prevent the blocked user from using their '''talk page''' or sending '''e-mail''' if they are likely to abuse these privileges.</span> <span id="After_blocking"></span> === Po zablokowaniu === * <span lang="en" dir="ltr" class="mw-content-ltr">'''Notify''' the blocked user, preferably using a [[:Category:User block templates|user block template]].</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Watch''' the blocked user's user talk page and ensure that '''[[:Category:Requests for unblock|requests for unblock]]''' are attended to.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">Blocks based on disruptive behaviour should be '''lifted''' if there is reason to believe that the disruptive behaviour will not resume.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Controversial blocks''' may also be discussed at the [[Wikifunctions:Administrators' noticeboard|blocks and protections noticeboard]] after they have been applied. To avoid [[:en:WP:WW|wheel warring]], another administrator should lift a block only if there is consensus to do so, even if there is no clear consensus in favor of the original block.</span> <span id="Appealing_a_block"></span> == Odwołanie od blokady == <div lang="en" dir="ltr" class="mw-content-ltr"> Blocked users are [[MediaWiki:Blockedtext|informed]] that they may '''request unblocking.''' They may do this by adding {{tld|unblock|''reason for the request''}} to their '''[[Special:MyTalk|own user talk page]].''' Alternatively, they may request unblocking with an appropriate reason via '''[[Special:EmailUser|e-mail]]''' to the blocking administrator or another administrator. </div> '''Odpowiednie uzasadnienie''' niemal zawsze zawiera jeden z następujących elementów: * '''Przyznanie się''', że blokada była uzasadniona, oraz '''wiarygodne zapewnienie''', że zachowanie, które do niej doprowadziło, nie powtórzy się * <span lang="en" dir="ltr" class="mw-content-ltr">An explanation of why the block is '''not appropriate''' based on this and other relevant policies and guidelines or is '''likely to be a mistake or an unintended side effect'''</span> <div lang="en" dir="ltr" class="mw-content-ltr"> An unblock request may be '''[[Template:Unblock granted|granted]]''' or '''[[Template:Unblock declined|declined]].''' Before granting a request to lift a block placed by another administrator, the reviewing administrator should '''consult with the blocking administrator,''' except in obvious, uncontroversial cases. [[:Category:Requests for unblock|Requests made on user talk pages]] may only be declined by an '''uninvolved administrator.''' </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Making repeated unblocking requests without appropriate reasons may be considered abusive. As noted above, users who have abused or are likely to abuse the ability to edit their own user talk page and/or send e-mail in this or any other way may have either or both of these privileges revoked, which also prevents these privileges from being used for unblocking requests. </div> <span id="See_also"></span> == Zobacz też == <!-- * [[:Category:Block warning templates]] * [[:Category:User block templates]]--> * <span lang="en" dir="ltr" class="mw-content-ltr">[[m:Special:MyLanguage/Global locks|Global locks]], [[m:Special:MyLanguage/Global blocks|global blocks]], and [[m:Special:MyLanguage/Global bans|global bans]]: similar concepts spanning all Wikimedia projects</span> [[Category:Policy{{#translation:}}]] 2roe8oowbprx81x81p032bfh56k8vkq 334221 334219 2026-10-28T23:06:00Z Chrumps 3889 Created page with "Wyjaśnienie, dlaczego blokada jest '''nieuzasadniona''' w świetle niniejszych oraz innych odpowiednich zasad i wytycznych albo dlaczego '''prawdopodobnie nałożono ją omyłkowo lub stanowi ona niezamierzony skutek uboczny'''." 334221 wikitext text/x-wiki {{draft}} <languages/> <div lang="en" dir="ltr" class="mw-content-ltr"> [[Special:MyLanguage/WF:Administrators|Administrators]] are given the ability to administer '''blocks''' to users when appropriate. A blocked user is usually restricted from editing, among other things. In a general sense, blocks are a last resort for behaviour that has the potential to damage Wikifunctions or disrupt its collegial atmosphere. Blocks may be sitewide or partial (affecting only certain actions). In this way, blocking is designed to be a ''preventative'' measure and not a ''punitive'' one; "cool-down" blocks are not condoned. </div> <span id="Use"></span> == Użycie == <div lang="en" dir="ltr" class="mw-content-ltr"> Blocks may be applied for a number of reasons. The more common of these are detailed below: </div> * <span lang="en" dir="ltr" class="mw-content-ltr">'''[[Special:MyLanguage/WF:Vandalism|Vandalism]]'''. Disruptive editing may result in a block. For example:</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Insertion of gratuitous vulgarity</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Gibberish text</span> ** Usuwanie treści ze stron * '''Spam'''. * '''[[m:Special:MyLanguage/Copyright|Naruszenia praw autorskich]]'''. * '''[[m:Special:MyLanguage/Edit war|Wojna edycyjna]]'''. * <span lang="en" dir="ltr" class="mw-content-ltr">'''Personal attacks''' or '''harassment'''. Accounts and IP addresses which are used primarily to create a hostile environment for another user may be blocked. Good faith disputes between users, however, should be brought to [[WF:Project chat|project chat]] for outside input. Tracking a user's contributions for policy violations is not harassment.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Unauthorized or non-responsive [[Special:MyLanguage/WF:Bots|bot]] accounts'''. Bot accounts must be authorized by the Wikifunctions community. Questionable bot-like editing that cannot be explained by the user should be blocked until discussion takes place. Bot proposals can be discussed at [[WF:Bots]] or [[WF:Project chat|project chat]]. Bot approval can be sought at [[WF:Bots/Requests]].</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Approved bot accounts that are temporarily malfunctioning'''. This is to prevent additional damage until the bot-owner can address the problem.</span> * [[Special:MyLanguage/WF:Username policy#INAPPR|'''Nieodpowiednie nazwy użytkowników''']]. * <span lang="en" dir="ltr" class="mw-content-ltr">'''Evasion of blocks'''. An administrator may reset the block of a user who intentionally evades a block (and revert their contributions), and may extend the duration of the block if the user engages in further blockable behaviour while evading the block. User accounts or IP addresses used to evade a block may and should also be blocked.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Abusing multiple accounts''' to mislead, deceive, disrupt, distort consensus or to evade blocks or other sanctions. Secondary accounts are typically blocked indefinitely. The primary account may or may not be subject to new or extended blocks depending on the circumstances.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Open or anonymizing proxies''' are typically blocked upon detection in accordance with [[m:Special:MyLanguage/No open proxies|Wikimedia-wide policy]]. The normal duration of such blocks is one year.</span> <span id="Instructions_for_administrators"></span> == Instrukcje dla administratorów == <span id="Before_blocking"></span> === Przed zablokowaniem === * <span lang="en" dir="ltr" class="mw-content-ltr">For blocks based on disruptive behaviour, such as vandalism, repeated copyright violations and manual promotional activities, ensure that the user has been appropriately '''warned,''' preferably using a [[:Category:Block warning templates|block warning template]]. No warning is necessary when blocking open proxies and users with inappropriate or abusive usernames. Accounts and IP addresses used solely for severely disruptive purposes such as automated spamming, serious vandalism or harassment may also be blocked without prior warning.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Controversial blocks''' may be discussed at the [[WF:Administrators' noticeboard|blocks and protections noticeboard]], preferably before they are applied if at all possible. As a rule of thumb, when in doubt, do not block.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''[[:mw:Special:MyLanguage/Help:Range blocks|Range blocks]]''' are especially powerful tools, and discussion of these is particularly encouraged. Range blocks with a duration longer than 24 hours should be discussed with a {{pg|WF:Checkusers|checkuser}} to assess the likely impact.</span> <div lang="en" dir="ltr" class="mw-content-ltr"> === When blocking === </div> * <span lang="en" dir="ltr" class="mw-content-ltr">Blocks can be applied to '''registered users, IP addresses or address ranges.'''</span> * <span lang="en" dir="ltr" class="mw-content-ltr">As blocks are preventative rather than punitive, use a block '''duration''' that is proportional to the time likely needed for the user to familiarize themselves with relevant policies and adjust their behaviour. Also consider the user's past behaviour and the severity of the disruption. When blocking IP addresses, keep in mind that innocent third parties sharing the same addresses may be affected.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">Provide a '''reason''' for the block. The rationale should preferably use links to relevant policies to help the blocked user understand why they have been blocked. Where appropriate, diffs or [[w:Help:Permanent link|permanent links]] documenting the reason for the block are also helpful.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Account creation''' should be prevented in most cases, but may be allowed when blocking an inappropriate user name to allow creation of a different name.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Autoblocking''' of IP addresses used by the blocked user should typically be enabled for users who were blocked for disruptive behavior. It should be disabled in most other cases, like blocking malfunctioning bots and usernames that don't follow the {{pg|WF:Username policy|username policy}}.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">Only prevent the blocked user from using their '''talk page''' or sending '''e-mail''' if they are likely to abuse these privileges.</span> <span id="After_blocking"></span> === Po zablokowaniu === * <span lang="en" dir="ltr" class="mw-content-ltr">'''Notify''' the blocked user, preferably using a [[:Category:User block templates|user block template]].</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Watch''' the blocked user's user talk page and ensure that '''[[:Category:Requests for unblock|requests for unblock]]''' are attended to.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">Blocks based on disruptive behaviour should be '''lifted''' if there is reason to believe that the disruptive behaviour will not resume.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Controversial blocks''' may also be discussed at the [[Wikifunctions:Administrators' noticeboard|blocks and protections noticeboard]] after they have been applied. To avoid [[:en:WP:WW|wheel warring]], another administrator should lift a block only if there is consensus to do so, even if there is no clear consensus in favor of the original block.</span> <span id="Appealing_a_block"></span> == Odwołanie od blokady == <div lang="en" dir="ltr" class="mw-content-ltr"> Blocked users are [[MediaWiki:Blockedtext|informed]] that they may '''request unblocking.''' They may do this by adding {{tld|unblock|''reason for the request''}} to their '''[[Special:MyTalk|own user talk page]].''' Alternatively, they may request unblocking with an appropriate reason via '''[[Special:EmailUser|e-mail]]''' to the blocking administrator or another administrator. </div> '''Odpowiednie uzasadnienie''' niemal zawsze zawiera jeden z następujących elementów: * '''Przyznanie się''', że blokada była uzasadniona, oraz '''wiarygodne zapewnienie''', że zachowanie, które do niej doprowadziło, nie powtórzy się * Wyjaśnienie, dlaczego blokada jest '''nieuzasadniona''' w świetle niniejszych oraz innych odpowiednich zasad i wytycznych albo dlaczego '''prawdopodobnie nałożono ją omyłkowo lub stanowi ona niezamierzony skutek uboczny'''. <div lang="en" dir="ltr" class="mw-content-ltr"> An unblock request may be '''[[Template:Unblock granted|granted]]''' or '''[[Template:Unblock declined|declined]].''' Before granting a request to lift a block placed by another administrator, the reviewing administrator should '''consult with the blocking administrator,''' except in obvious, uncontroversial cases. [[:Category:Requests for unblock|Requests made on user talk pages]] may only be declined by an '''uninvolved administrator.''' </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Making repeated unblocking requests without appropriate reasons may be considered abusive. As noted above, users who have abused or are likely to abuse the ability to edit their own user talk page and/or send e-mail in this or any other way may have either or both of these privileges revoked, which also prevents these privileges from being used for unblocking requests. </div> <span id="See_also"></span> == Zobacz też == <!-- * [[:Category:Block warning templates]] * [[:Category:User block templates]]--> * <span lang="en" dir="ltr" class="mw-content-ltr">[[m:Special:MyLanguage/Global locks|Global locks]], [[m:Special:MyLanguage/Global blocks|global blocks]], and [[m:Special:MyLanguage/Global bans|global bans]]: similar concepts spanning all Wikimedia projects</span> [[Category:Policy{{#translation:}}]] 8ybpf6q17bt5swpf07296yvax10mwp7 334223 334221 2026-10-28T23:08:47Z Chrumps 3889 Created page with "Wniosek o odblokowanie może zostać '''[[$1|zaakceptowany]]''' albo '''[[$2|odrzucony]]]'''. Przed zaakceptowaniem wniosku dotyczącego blokady nałożonej przez innego administratora administrator rozpatrujący wniosek powinien '''skonsultować się z administratorem, który nałożył blokadę''', z wyjątkiem oczywistych i niebudzących kontrowersji przypadków. [[$3|Wnioski składane na stronach dyskusji]] mogą być odrzucane wyłącznie przez '''administratora nie..." 334223 wikitext text/x-wiki {{draft}} <languages/> <div lang="en" dir="ltr" class="mw-content-ltr"> [[Special:MyLanguage/WF:Administrators|Administrators]] are given the ability to administer '''blocks''' to users when appropriate. A blocked user is usually restricted from editing, among other things. In a general sense, blocks are a last resort for behaviour that has the potential to damage Wikifunctions or disrupt its collegial atmosphere. Blocks may be sitewide or partial (affecting only certain actions). In this way, blocking is designed to be a ''preventative'' measure and not a ''punitive'' one; "cool-down" blocks are not condoned. </div> <span id="Use"></span> == Użycie == <div lang="en" dir="ltr" class="mw-content-ltr"> Blocks may be applied for a number of reasons. The more common of these are detailed below: </div> * <span lang="en" dir="ltr" class="mw-content-ltr">'''[[Special:MyLanguage/WF:Vandalism|Vandalism]]'''. Disruptive editing may result in a block. For example:</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Insertion of gratuitous vulgarity</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Gibberish text</span> ** Usuwanie treści ze stron * '''Spam'''. * '''[[m:Special:MyLanguage/Copyright|Naruszenia praw autorskich]]'''. * '''[[m:Special:MyLanguage/Edit war|Wojna edycyjna]]'''. * <span lang="en" dir="ltr" class="mw-content-ltr">'''Personal attacks''' or '''harassment'''. Accounts and IP addresses which are used primarily to create a hostile environment for another user may be blocked. Good faith disputes between users, however, should be brought to [[WF:Project chat|project chat]] for outside input. Tracking a user's contributions for policy violations is not harassment.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Unauthorized or non-responsive [[Special:MyLanguage/WF:Bots|bot]] accounts'''. Bot accounts must be authorized by the Wikifunctions community. Questionable bot-like editing that cannot be explained by the user should be blocked until discussion takes place. Bot proposals can be discussed at [[WF:Bots]] or [[WF:Project chat|project chat]]. Bot approval can be sought at [[WF:Bots/Requests]].</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Approved bot accounts that are temporarily malfunctioning'''. This is to prevent additional damage until the bot-owner can address the problem.</span> * [[Special:MyLanguage/WF:Username policy#INAPPR|'''Nieodpowiednie nazwy użytkowników''']]. * <span lang="en" dir="ltr" class="mw-content-ltr">'''Evasion of blocks'''. An administrator may reset the block of a user who intentionally evades a block (and revert their contributions), and may extend the duration of the block if the user engages in further blockable behaviour while evading the block. User accounts or IP addresses used to evade a block may and should also be blocked.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Abusing multiple accounts''' to mislead, deceive, disrupt, distort consensus or to evade blocks or other sanctions. Secondary accounts are typically blocked indefinitely. The primary account may or may not be subject to new or extended blocks depending on the circumstances.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Open or anonymizing proxies''' are typically blocked upon detection in accordance with [[m:Special:MyLanguage/No open proxies|Wikimedia-wide policy]]. The normal duration of such blocks is one year.</span> <span id="Instructions_for_administrators"></span> == Instrukcje dla administratorów == <span id="Before_blocking"></span> === Przed zablokowaniem === * <span lang="en" dir="ltr" class="mw-content-ltr">For blocks based on disruptive behaviour, such as vandalism, repeated copyright violations and manual promotional activities, ensure that the user has been appropriately '''warned,''' preferably using a [[:Category:Block warning templates|block warning template]]. No warning is necessary when blocking open proxies and users with inappropriate or abusive usernames. Accounts and IP addresses used solely for severely disruptive purposes such as automated spamming, serious vandalism or harassment may also be blocked without prior warning.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Controversial blocks''' may be discussed at the [[WF:Administrators' noticeboard|blocks and protections noticeboard]], preferably before they are applied if at all possible. As a rule of thumb, when in doubt, do not block.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''[[:mw:Special:MyLanguage/Help:Range blocks|Range blocks]]''' are especially powerful tools, and discussion of these is particularly encouraged. Range blocks with a duration longer than 24 hours should be discussed with a {{pg|WF:Checkusers|checkuser}} to assess the likely impact.</span> <div lang="en" dir="ltr" class="mw-content-ltr"> === When blocking === </div> * <span lang="en" dir="ltr" class="mw-content-ltr">Blocks can be applied to '''registered users, IP addresses or address ranges.'''</span> * <span lang="en" dir="ltr" class="mw-content-ltr">As blocks are preventative rather than punitive, use a block '''duration''' that is proportional to the time likely needed for the user to familiarize themselves with relevant policies and adjust their behaviour. Also consider the user's past behaviour and the severity of the disruption. When blocking IP addresses, keep in mind that innocent third parties sharing the same addresses may be affected.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">Provide a '''reason''' for the block. The rationale should preferably use links to relevant policies to help the blocked user understand why they have been blocked. Where appropriate, diffs or [[w:Help:Permanent link|permanent links]] documenting the reason for the block are also helpful.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Account creation''' should be prevented in most cases, but may be allowed when blocking an inappropriate user name to allow creation of a different name.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Autoblocking''' of IP addresses used by the blocked user should typically be enabled for users who were blocked for disruptive behavior. It should be disabled in most other cases, like blocking malfunctioning bots and usernames that don't follow the {{pg|WF:Username policy|username policy}}.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">Only prevent the blocked user from using their '''talk page''' or sending '''e-mail''' if they are likely to abuse these privileges.</span> <span id="After_blocking"></span> === Po zablokowaniu === * <span lang="en" dir="ltr" class="mw-content-ltr">'''Notify''' the blocked user, preferably using a [[:Category:User block templates|user block template]].</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Watch''' the blocked user's user talk page and ensure that '''[[:Category:Requests for unblock|requests for unblock]]''' are attended to.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">Blocks based on disruptive behaviour should be '''lifted''' if there is reason to believe that the disruptive behaviour will not resume.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Controversial blocks''' may also be discussed at the [[Wikifunctions:Administrators' noticeboard|blocks and protections noticeboard]] after they have been applied. To avoid [[:en:WP:WW|wheel warring]], another administrator should lift a block only if there is consensus to do so, even if there is no clear consensus in favor of the original block.</span> <span id="Appealing_a_block"></span> == Odwołanie od blokady == <div lang="en" dir="ltr" class="mw-content-ltr"> Blocked users are [[MediaWiki:Blockedtext|informed]] that they may '''request unblocking.''' They may do this by adding {{tld|unblock|''reason for the request''}} to their '''[[Special:MyTalk|own user talk page]].''' Alternatively, they may request unblocking with an appropriate reason via '''[[Special:EmailUser|e-mail]]''' to the blocking administrator or another administrator. </div> '''Odpowiednie uzasadnienie''' niemal zawsze zawiera jeden z następujących elementów: * '''Przyznanie się''', że blokada była uzasadniona, oraz '''wiarygodne zapewnienie''', że zachowanie, które do niej doprowadziło, nie powtórzy się * Wyjaśnienie, dlaczego blokada jest '''nieuzasadniona''' w świetle niniejszych oraz innych odpowiednich zasad i wytycznych albo dlaczego '''prawdopodobnie nałożono ją omyłkowo lub stanowi ona niezamierzony skutek uboczny'''. <div class="mw-translate-fuzzy"> Wniosek o odblokowanie może zostać '''[[Template:Unblock granted|zaakceptowany]]''' albo '''[[Template:Unblock declined|odrzucony]]]'''. Przed zaakceptowaniem wniosku dotyczącego blokady nałożonej przez innego administratora administrator rozpatrujący wniosek powinien '''skonsultować się z administratorem, który nałożył blokadę''', z wyjątkiem oczywistych i niebudzących kontrowersji przypadków. [[:Category:Requests for unblock|Wnioski składane na stronach dyskusji]] mogą być odrzucane wyłącznie przez '''administratora niezaangażowanego w sprawę'''. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Making repeated unblocking requests without appropriate reasons may be considered abusive. As noted above, users who have abused or are likely to abuse the ability to edit their own user talk page and/or send e-mail in this or any other way may have either or both of these privileges revoked, which also prevents these privileges from being used for unblocking requests. </div> <span id="See_also"></span> == Zobacz też == <!-- * [[:Category:Block warning templates]] * [[:Category:User block templates]]--> * <span lang="en" dir="ltr" class="mw-content-ltr">[[m:Special:MyLanguage/Global locks|Global locks]], [[m:Special:MyLanguage/Global blocks|global blocks]], and [[m:Special:MyLanguage/Global bans|global bans]]: similar concepts spanning all Wikimedia projects</span> [[Category:Policy{{#translation:}}]] ajl50xdy73n01fwu8g0125oj6tok59h 334225 334223 2026-10-28T23:09:39Z Chrumps 3889 Created page with "Wielokrotne składanie wniosków o odblokowanie bez odpowiedniego uzasadnienia może zostać uznane za nadużycie. Jak wskazano powyżej, użytkownikom, którzy nadużywają lub prawdopodobnie będą nadużywać możliwości edytowania własnej strony dyskusji bądź wysyłania wiadomości e-mail, można odebrać jedno albo oba te uprawnienia. Uniemożliwi to również korzystanie z nich w celu składania kolejnych wniosków o odblokowanie." 334225 wikitext text/x-wiki {{draft}} <languages/> <div lang="en" dir="ltr" class="mw-content-ltr"> [[Special:MyLanguage/WF:Administrators|Administrators]] are given the ability to administer '''blocks''' to users when appropriate. A blocked user is usually restricted from editing, among other things. In a general sense, blocks are a last resort for behaviour that has the potential to damage Wikifunctions or disrupt its collegial atmosphere. Blocks may be sitewide or partial (affecting only certain actions). In this way, blocking is designed to be a ''preventative'' measure and not a ''punitive'' one; "cool-down" blocks are not condoned. </div> <span id="Use"></span> == Użycie == <div lang="en" dir="ltr" class="mw-content-ltr"> Blocks may be applied for a number of reasons. The more common of these are detailed below: </div> * <span lang="en" dir="ltr" class="mw-content-ltr">'''[[Special:MyLanguage/WF:Vandalism|Vandalism]]'''. Disruptive editing may result in a block. For example:</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Insertion of gratuitous vulgarity</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Gibberish text</span> ** Usuwanie treści ze stron * '''Spam'''. * '''[[m:Special:MyLanguage/Copyright|Naruszenia praw autorskich]]'''. * '''[[m:Special:MyLanguage/Edit war|Wojna edycyjna]]'''. * <span lang="en" dir="ltr" class="mw-content-ltr">'''Personal attacks''' or '''harassment'''. Accounts and IP addresses which are used primarily to create a hostile environment for another user may be blocked. Good faith disputes between users, however, should be brought to [[WF:Project chat|project chat]] for outside input. Tracking a user's contributions for policy violations is not harassment.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Unauthorized or non-responsive [[Special:MyLanguage/WF:Bots|bot]] accounts'''. Bot accounts must be authorized by the Wikifunctions community. Questionable bot-like editing that cannot be explained by the user should be blocked until discussion takes place. Bot proposals can be discussed at [[WF:Bots]] or [[WF:Project chat|project chat]]. Bot approval can be sought at [[WF:Bots/Requests]].</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Approved bot accounts that are temporarily malfunctioning'''. This is to prevent additional damage until the bot-owner can address the problem.</span> * [[Special:MyLanguage/WF:Username policy#INAPPR|'''Nieodpowiednie nazwy użytkowników''']]. * <span lang="en" dir="ltr" class="mw-content-ltr">'''Evasion of blocks'''. An administrator may reset the block of a user who intentionally evades a block (and revert their contributions), and may extend the duration of the block if the user engages in further blockable behaviour while evading the block. User accounts or IP addresses used to evade a block may and should also be blocked.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Abusing multiple accounts''' to mislead, deceive, disrupt, distort consensus or to evade blocks or other sanctions. Secondary accounts are typically blocked indefinitely. The primary account may or may not be subject to new or extended blocks depending on the circumstances.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Open or anonymizing proxies''' are typically blocked upon detection in accordance with [[m:Special:MyLanguage/No open proxies|Wikimedia-wide policy]]. The normal duration of such blocks is one year.</span> <span id="Instructions_for_administrators"></span> == Instrukcje dla administratorów == <span id="Before_blocking"></span> === Przed zablokowaniem === * <span lang="en" dir="ltr" class="mw-content-ltr">For blocks based on disruptive behaviour, such as vandalism, repeated copyright violations and manual promotional activities, ensure that the user has been appropriately '''warned,''' preferably using a [[:Category:Block warning templates|block warning template]]. No warning is necessary when blocking open proxies and users with inappropriate or abusive usernames. Accounts and IP addresses used solely for severely disruptive purposes such as automated spamming, serious vandalism or harassment may also be blocked without prior warning.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Controversial blocks''' may be discussed at the [[WF:Administrators' noticeboard|blocks and protections noticeboard]], preferably before they are applied if at all possible. As a rule of thumb, when in doubt, do not block.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''[[:mw:Special:MyLanguage/Help:Range blocks|Range blocks]]''' are especially powerful tools, and discussion of these is particularly encouraged. Range blocks with a duration longer than 24 hours should be discussed with a {{pg|WF:Checkusers|checkuser}} to assess the likely impact.</span> <div lang="en" dir="ltr" class="mw-content-ltr"> === When blocking === </div> * <span lang="en" dir="ltr" class="mw-content-ltr">Blocks can be applied to '''registered users, IP addresses or address ranges.'''</span> * <span lang="en" dir="ltr" class="mw-content-ltr">As blocks are preventative rather than punitive, use a block '''duration''' that is proportional to the time likely needed for the user to familiarize themselves with relevant policies and adjust their behaviour. Also consider the user's past behaviour and the severity of the disruption. When blocking IP addresses, keep in mind that innocent third parties sharing the same addresses may be affected.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">Provide a '''reason''' for the block. The rationale should preferably use links to relevant policies to help the blocked user understand why they have been blocked. Where appropriate, diffs or [[w:Help:Permanent link|permanent links]] documenting the reason for the block are also helpful.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Account creation''' should be prevented in most cases, but may be allowed when blocking an inappropriate user name to allow creation of a different name.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Autoblocking''' of IP addresses used by the blocked user should typically be enabled for users who were blocked for disruptive behavior. It should be disabled in most other cases, like blocking malfunctioning bots and usernames that don't follow the {{pg|WF:Username policy|username policy}}.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">Only prevent the blocked user from using their '''talk page''' or sending '''e-mail''' if they are likely to abuse these privileges.</span> <span id="After_blocking"></span> === Po zablokowaniu === * <span lang="en" dir="ltr" class="mw-content-ltr">'''Notify''' the blocked user, preferably using a [[:Category:User block templates|user block template]].</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Watch''' the blocked user's user talk page and ensure that '''[[:Category:Requests for unblock|requests for unblock]]''' are attended to.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">Blocks based on disruptive behaviour should be '''lifted''' if there is reason to believe that the disruptive behaviour will not resume.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Controversial blocks''' may also be discussed at the [[Wikifunctions:Administrators' noticeboard|blocks and protections noticeboard]] after they have been applied. To avoid [[:en:WP:WW|wheel warring]], another administrator should lift a block only if there is consensus to do so, even if there is no clear consensus in favor of the original block.</span> <span id="Appealing_a_block"></span> == Odwołanie od blokady == <div lang="en" dir="ltr" class="mw-content-ltr"> Blocked users are [[MediaWiki:Blockedtext|informed]] that they may '''request unblocking.''' They may do this by adding {{tld|unblock|''reason for the request''}} to their '''[[Special:MyTalk|own user talk page]].''' Alternatively, they may request unblocking with an appropriate reason via '''[[Special:EmailUser|e-mail]]''' to the blocking administrator or another administrator. </div> '''Odpowiednie uzasadnienie''' niemal zawsze zawiera jeden z następujących elementów: * '''Przyznanie się''', że blokada była uzasadniona, oraz '''wiarygodne zapewnienie''', że zachowanie, które do niej doprowadziło, nie powtórzy się * Wyjaśnienie, dlaczego blokada jest '''nieuzasadniona''' w świetle niniejszych oraz innych odpowiednich zasad i wytycznych albo dlaczego '''prawdopodobnie nałożono ją omyłkowo lub stanowi ona niezamierzony skutek uboczny'''. <div class="mw-translate-fuzzy"> Wniosek o odblokowanie może zostać '''[[Template:Unblock granted|zaakceptowany]]''' albo '''[[Template:Unblock declined|odrzucony]]]'''. Przed zaakceptowaniem wniosku dotyczącego blokady nałożonej przez innego administratora administrator rozpatrujący wniosek powinien '''skonsultować się z administratorem, który nałożył blokadę''', z wyjątkiem oczywistych i niebudzących kontrowersji przypadków. [[:Category:Requests for unblock|Wnioski składane na stronach dyskusji]] mogą być odrzucane wyłącznie przez '''administratora niezaangażowanego w sprawę'''. </div> Wielokrotne składanie wniosków o odblokowanie bez odpowiedniego uzasadnienia może zostać uznane za nadużycie. Jak wskazano powyżej, użytkownikom, którzy nadużywają lub prawdopodobnie będą nadużywać możliwości edytowania własnej strony dyskusji bądź wysyłania wiadomości e-mail, można odebrać jedno albo oba te uprawnienia. Uniemożliwi to również korzystanie z nich w celu składania kolejnych wniosków o odblokowanie. <span id="See_also"></span> == Zobacz też == <!-- * [[:Category:Block warning templates]] * [[:Category:User block templates]]--> * <span lang="en" dir="ltr" class="mw-content-ltr">[[m:Special:MyLanguage/Global locks|Global locks]], [[m:Special:MyLanguage/Global blocks|global blocks]], and [[m:Special:MyLanguage/Global bans|global bans]]: similar concepts spanning all Wikimedia projects</span> [[Category:Policy{{#translation:}}]] 579gooa2xbqnimmv5ehbodkvvzp1w9w 334227 334225 2026-10-28T23:11:30Z Chrumps 3889 Created page with "Blokady nałożone z powodu destrukcyjnego zachowania powinny zostać '''zniesione''', jeśli istnieją podstawy, by sądzić, że zachowanie to się nie powtórzy." 334227 wikitext text/x-wiki {{draft}} <languages/> <div lang="en" dir="ltr" class="mw-content-ltr"> [[Special:MyLanguage/WF:Administrators|Administrators]] are given the ability to administer '''blocks''' to users when appropriate. A blocked user is usually restricted from editing, among other things. In a general sense, blocks are a last resort for behaviour that has the potential to damage Wikifunctions or disrupt its collegial atmosphere. Blocks may be sitewide or partial (affecting only certain actions). In this way, blocking is designed to be a ''preventative'' measure and not a ''punitive'' one; "cool-down" blocks are not condoned. </div> <span id="Use"></span> == Użycie == <div lang="en" dir="ltr" class="mw-content-ltr"> Blocks may be applied for a number of reasons. The more common of these are detailed below: </div> * <span lang="en" dir="ltr" class="mw-content-ltr">'''[[Special:MyLanguage/WF:Vandalism|Vandalism]]'''. Disruptive editing may result in a block. For example:</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Insertion of gratuitous vulgarity</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Gibberish text</span> ** Usuwanie treści ze stron * '''Spam'''. * '''[[m:Special:MyLanguage/Copyright|Naruszenia praw autorskich]]'''. * '''[[m:Special:MyLanguage/Edit war|Wojna edycyjna]]'''. * <span lang="en" dir="ltr" class="mw-content-ltr">'''Personal attacks''' or '''harassment'''. Accounts and IP addresses which are used primarily to create a hostile environment for another user may be blocked. Good faith disputes between users, however, should be brought to [[WF:Project chat|project chat]] for outside input. Tracking a user's contributions for policy violations is not harassment.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Unauthorized or non-responsive [[Special:MyLanguage/WF:Bots|bot]] accounts'''. Bot accounts must be authorized by the Wikifunctions community. Questionable bot-like editing that cannot be explained by the user should be blocked until discussion takes place. Bot proposals can be discussed at [[WF:Bots]] or [[WF:Project chat|project chat]]. Bot approval can be sought at [[WF:Bots/Requests]].</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Approved bot accounts that are temporarily malfunctioning'''. This is to prevent additional damage until the bot-owner can address the problem.</span> * [[Special:MyLanguage/WF:Username policy#INAPPR|'''Nieodpowiednie nazwy użytkowników''']]. * <span lang="en" dir="ltr" class="mw-content-ltr">'''Evasion of blocks'''. An administrator may reset the block of a user who intentionally evades a block (and revert their contributions), and may extend the duration of the block if the user engages in further blockable behaviour while evading the block. User accounts or IP addresses used to evade a block may and should also be blocked.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Abusing multiple accounts''' to mislead, deceive, disrupt, distort consensus or to evade blocks or other sanctions. Secondary accounts are typically blocked indefinitely. The primary account may or may not be subject to new or extended blocks depending on the circumstances.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Open or anonymizing proxies''' are typically blocked upon detection in accordance with [[m:Special:MyLanguage/No open proxies|Wikimedia-wide policy]]. The normal duration of such blocks is one year.</span> <span id="Instructions_for_administrators"></span> == Instrukcje dla administratorów == <span id="Before_blocking"></span> === Przed zablokowaniem === * <span lang="en" dir="ltr" class="mw-content-ltr">For blocks based on disruptive behaviour, such as vandalism, repeated copyright violations and manual promotional activities, ensure that the user has been appropriately '''warned,''' preferably using a [[:Category:Block warning templates|block warning template]]. No warning is necessary when blocking open proxies and users with inappropriate or abusive usernames. Accounts and IP addresses used solely for severely disruptive purposes such as automated spamming, serious vandalism or harassment may also be blocked without prior warning.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Controversial blocks''' may be discussed at the [[WF:Administrators' noticeboard|blocks and protections noticeboard]], preferably before they are applied if at all possible. As a rule of thumb, when in doubt, do not block.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''[[:mw:Special:MyLanguage/Help:Range blocks|Range blocks]]''' are especially powerful tools, and discussion of these is particularly encouraged. Range blocks with a duration longer than 24 hours should be discussed with a {{pg|WF:Checkusers|checkuser}} to assess the likely impact.</span> <div lang="en" dir="ltr" class="mw-content-ltr"> === When blocking === </div> * <span lang="en" dir="ltr" class="mw-content-ltr">Blocks can be applied to '''registered users, IP addresses or address ranges.'''</span> * <span lang="en" dir="ltr" class="mw-content-ltr">As blocks are preventative rather than punitive, use a block '''duration''' that is proportional to the time likely needed for the user to familiarize themselves with relevant policies and adjust their behaviour. Also consider the user's past behaviour and the severity of the disruption. When blocking IP addresses, keep in mind that innocent third parties sharing the same addresses may be affected.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">Provide a '''reason''' for the block. The rationale should preferably use links to relevant policies to help the blocked user understand why they have been blocked. Where appropriate, diffs or [[w:Help:Permanent link|permanent links]] documenting the reason for the block are also helpful.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Account creation''' should be prevented in most cases, but may be allowed when blocking an inappropriate user name to allow creation of a different name.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Autoblocking''' of IP addresses used by the blocked user should typically be enabled for users who were blocked for disruptive behavior. It should be disabled in most other cases, like blocking malfunctioning bots and usernames that don't follow the {{pg|WF:Username policy|username policy}}.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">Only prevent the blocked user from using their '''talk page''' or sending '''e-mail''' if they are likely to abuse these privileges.</span> <span id="After_blocking"></span> === Po zablokowaniu === * <span lang="en" dir="ltr" class="mw-content-ltr">'''Notify''' the blocked user, preferably using a [[:Category:User block templates|user block template]].</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Watch''' the blocked user's user talk page and ensure that '''[[:Category:Requests for unblock|requests for unblock]]''' are attended to.</span> * Blokady nałożone z powodu destrukcyjnego zachowania powinny zostać '''zniesione''', jeśli istnieją podstawy, by sądzić, że zachowanie to się nie powtórzy. * <span lang="en" dir="ltr" class="mw-content-ltr">'''Controversial blocks''' may also be discussed at the [[Wikifunctions:Administrators' noticeboard|blocks and protections noticeboard]] after they have been applied. To avoid [[:en:WP:WW|wheel warring]], another administrator should lift a block only if there is consensus to do so, even if there is no clear consensus in favor of the original block.</span> <span id="Appealing_a_block"></span> == Odwołanie od blokady == <div lang="en" dir="ltr" class="mw-content-ltr"> Blocked users are [[MediaWiki:Blockedtext|informed]] that they may '''request unblocking.''' They may do this by adding {{tld|unblock|''reason for the request''}} to their '''[[Special:MyTalk|own user talk page]].''' Alternatively, they may request unblocking with an appropriate reason via '''[[Special:EmailUser|e-mail]]''' to the blocking administrator or another administrator. </div> '''Odpowiednie uzasadnienie''' niemal zawsze zawiera jeden z następujących elementów: * '''Przyznanie się''', że blokada była uzasadniona, oraz '''wiarygodne zapewnienie''', że zachowanie, które do niej doprowadziło, nie powtórzy się * Wyjaśnienie, dlaczego blokada jest '''nieuzasadniona''' w świetle niniejszych oraz innych odpowiednich zasad i wytycznych albo dlaczego '''prawdopodobnie nałożono ją omyłkowo lub stanowi ona niezamierzony skutek uboczny'''. <div class="mw-translate-fuzzy"> Wniosek o odblokowanie może zostać '''[[Template:Unblock granted|zaakceptowany]]''' albo '''[[Template:Unblock declined|odrzucony]]]'''. Przed zaakceptowaniem wniosku dotyczącego blokady nałożonej przez innego administratora administrator rozpatrujący wniosek powinien '''skonsultować się z administratorem, który nałożył blokadę''', z wyjątkiem oczywistych i niebudzących kontrowersji przypadków. [[:Category:Requests for unblock|Wnioski składane na stronach dyskusji]] mogą być odrzucane wyłącznie przez '''administratora niezaangażowanego w sprawę'''. </div> Wielokrotne składanie wniosków o odblokowanie bez odpowiedniego uzasadnienia może zostać uznane za nadużycie. Jak wskazano powyżej, użytkownikom, którzy nadużywają lub prawdopodobnie będą nadużywać możliwości edytowania własnej strony dyskusji bądź wysyłania wiadomości e-mail, można odebrać jedno albo oba te uprawnienia. Uniemożliwi to również korzystanie z nich w celu składania kolejnych wniosków o odblokowanie. <span id="See_also"></span> == Zobacz też == <!-- * [[:Category:Block warning templates]] * [[:Category:User block templates]]--> * <span lang="en" dir="ltr" class="mw-content-ltr">[[m:Special:MyLanguage/Global locks|Global locks]], [[m:Special:MyLanguage/Global blocks|global blocks]], and [[m:Special:MyLanguage/Global bans|global bans]]: similar concepts spanning all Wikimedia projects</span> [[Category:Policy{{#translation:}}]] a5b4u8bcz0cov1v0zwphk11jnxg0vgz 334229 334227 2026-10-28T23:12:26Z Chrumps 3889 Created page with "Należy '''powiadomić''' zablokowanego użytkownika, najlepiej za pomocą [[:$1|szablonu informacji o blokadzie]]." 334229 wikitext text/x-wiki {{draft}} <languages/> <div lang="en" dir="ltr" class="mw-content-ltr"> [[Special:MyLanguage/WF:Administrators|Administrators]] are given the ability to administer '''blocks''' to users when appropriate. A blocked user is usually restricted from editing, among other things. In a general sense, blocks are a last resort for behaviour that has the potential to damage Wikifunctions or disrupt its collegial atmosphere. Blocks may be sitewide or partial (affecting only certain actions). In this way, blocking is designed to be a ''preventative'' measure and not a ''punitive'' one; "cool-down" blocks are not condoned. </div> <span id="Use"></span> == Użycie == <div lang="en" dir="ltr" class="mw-content-ltr"> Blocks may be applied for a number of reasons. The more common of these are detailed below: </div> * <span lang="en" dir="ltr" class="mw-content-ltr">'''[[Special:MyLanguage/WF:Vandalism|Vandalism]]'''. Disruptive editing may result in a block. For example:</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Insertion of gratuitous vulgarity</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Gibberish text</span> ** Usuwanie treści ze stron * '''Spam'''. * '''[[m:Special:MyLanguage/Copyright|Naruszenia praw autorskich]]'''. * '''[[m:Special:MyLanguage/Edit war|Wojna edycyjna]]'''. * <span lang="en" dir="ltr" class="mw-content-ltr">'''Personal attacks''' or '''harassment'''. Accounts and IP addresses which are used primarily to create a hostile environment for another user may be blocked. Good faith disputes between users, however, should be brought to [[WF:Project chat|project chat]] for outside input. Tracking a user's contributions for policy violations is not harassment.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Unauthorized or non-responsive [[Special:MyLanguage/WF:Bots|bot]] accounts'''. Bot accounts must be authorized by the Wikifunctions community. Questionable bot-like editing that cannot be explained by the user should be blocked until discussion takes place. Bot proposals can be discussed at [[WF:Bots]] or [[WF:Project chat|project chat]]. Bot approval can be sought at [[WF:Bots/Requests]].</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Approved bot accounts that are temporarily malfunctioning'''. This is to prevent additional damage until the bot-owner can address the problem.</span> * [[Special:MyLanguage/WF:Username policy#INAPPR|'''Nieodpowiednie nazwy użytkowników''']]. * <span lang="en" dir="ltr" class="mw-content-ltr">'''Evasion of blocks'''. An administrator may reset the block of a user who intentionally evades a block (and revert their contributions), and may extend the duration of the block if the user engages in further blockable behaviour while evading the block. User accounts or IP addresses used to evade a block may and should also be blocked.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Abusing multiple accounts''' to mislead, deceive, disrupt, distort consensus or to evade blocks or other sanctions. Secondary accounts are typically blocked indefinitely. The primary account may or may not be subject to new or extended blocks depending on the circumstances.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Open or anonymizing proxies''' are typically blocked upon detection in accordance with [[m:Special:MyLanguage/No open proxies|Wikimedia-wide policy]]. The normal duration of such blocks is one year.</span> <span id="Instructions_for_administrators"></span> == Instrukcje dla administratorów == <span id="Before_blocking"></span> === Przed zablokowaniem === * <span lang="en" dir="ltr" class="mw-content-ltr">For blocks based on disruptive behaviour, such as vandalism, repeated copyright violations and manual promotional activities, ensure that the user has been appropriately '''warned,''' preferably using a [[:Category:Block warning templates|block warning template]]. No warning is necessary when blocking open proxies and users with inappropriate or abusive usernames. Accounts and IP addresses used solely for severely disruptive purposes such as automated spamming, serious vandalism or harassment may also be blocked without prior warning.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Controversial blocks''' may be discussed at the [[WF:Administrators' noticeboard|blocks and protections noticeboard]], preferably before they are applied if at all possible. As a rule of thumb, when in doubt, do not block.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''[[:mw:Special:MyLanguage/Help:Range blocks|Range blocks]]''' are especially powerful tools, and discussion of these is particularly encouraged. Range blocks with a duration longer than 24 hours should be discussed with a {{pg|WF:Checkusers|checkuser}} to assess the likely impact.</span> <div lang="en" dir="ltr" class="mw-content-ltr"> === When blocking === </div> * <span lang="en" dir="ltr" class="mw-content-ltr">Blocks can be applied to '''registered users, IP addresses or address ranges.'''</span> * <span lang="en" dir="ltr" class="mw-content-ltr">As blocks are preventative rather than punitive, use a block '''duration''' that is proportional to the time likely needed for the user to familiarize themselves with relevant policies and adjust their behaviour. Also consider the user's past behaviour and the severity of the disruption. When blocking IP addresses, keep in mind that innocent third parties sharing the same addresses may be affected.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">Provide a '''reason''' for the block. The rationale should preferably use links to relevant policies to help the blocked user understand why they have been blocked. Where appropriate, diffs or [[w:Help:Permanent link|permanent links]] documenting the reason for the block are also helpful.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Account creation''' should be prevented in most cases, but may be allowed when blocking an inappropriate user name to allow creation of a different name.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Autoblocking''' of IP addresses used by the blocked user should typically be enabled for users who were blocked for disruptive behavior. It should be disabled in most other cases, like blocking malfunctioning bots and usernames that don't follow the {{pg|WF:Username policy|username policy}}.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">Only prevent the blocked user from using their '''talk page''' or sending '''e-mail''' if they are likely to abuse these privileges.</span> <span id="After_blocking"></span> === Po zablokowaniu === * Należy '''powiadomić''' zablokowanego użytkownika, najlepiej za pomocą [[:Category:User block templates|szablonu informacji o blokadzie]]. * <span lang="en" dir="ltr" class="mw-content-ltr">'''Watch''' the blocked user's user talk page and ensure that '''[[:Category:Requests for unblock|requests for unblock]]''' are attended to.</span> * Blokady nałożone z powodu destrukcyjnego zachowania powinny zostać '''zniesione''', jeśli istnieją podstawy, by sądzić, że zachowanie to się nie powtórzy. * <span lang="en" dir="ltr" class="mw-content-ltr">'''Controversial blocks''' may also be discussed at the [[Wikifunctions:Administrators' noticeboard|blocks and protections noticeboard]] after they have been applied. To avoid [[:en:WP:WW|wheel warring]], another administrator should lift a block only if there is consensus to do so, even if there is no clear consensus in favor of the original block.</span> <span id="Appealing_a_block"></span> == Odwołanie od blokady == <div lang="en" dir="ltr" class="mw-content-ltr"> Blocked users are [[MediaWiki:Blockedtext|informed]] that they may '''request unblocking.''' They may do this by adding {{tld|unblock|''reason for the request''}} to their '''[[Special:MyTalk|own user talk page]].''' Alternatively, they may request unblocking with an appropriate reason via '''[[Special:EmailUser|e-mail]]''' to the blocking administrator or another administrator. </div> '''Odpowiednie uzasadnienie''' niemal zawsze zawiera jeden z następujących elementów: * '''Przyznanie się''', że blokada była uzasadniona, oraz '''wiarygodne zapewnienie''', że zachowanie, które do niej doprowadziło, nie powtórzy się * Wyjaśnienie, dlaczego blokada jest '''nieuzasadniona''' w świetle niniejszych oraz innych odpowiednich zasad i wytycznych albo dlaczego '''prawdopodobnie nałożono ją omyłkowo lub stanowi ona niezamierzony skutek uboczny'''. <div class="mw-translate-fuzzy"> Wniosek o odblokowanie może zostać '''[[Template:Unblock granted|zaakceptowany]]''' albo '''[[Template:Unblock declined|odrzucony]]]'''. Przed zaakceptowaniem wniosku dotyczącego blokady nałożonej przez innego administratora administrator rozpatrujący wniosek powinien '''skonsultować się z administratorem, który nałożył blokadę''', z wyjątkiem oczywistych i niebudzących kontrowersji przypadków. [[:Category:Requests for unblock|Wnioski składane na stronach dyskusji]] mogą być odrzucane wyłącznie przez '''administratora niezaangażowanego w sprawę'''. </div> Wielokrotne składanie wniosków o odblokowanie bez odpowiedniego uzasadnienia może zostać uznane za nadużycie. Jak wskazano powyżej, użytkownikom, którzy nadużywają lub prawdopodobnie będą nadużywać możliwości edytowania własnej strony dyskusji bądź wysyłania wiadomości e-mail, można odebrać jedno albo oba te uprawnienia. Uniemożliwi to również korzystanie z nich w celu składania kolejnych wniosków o odblokowanie. <span id="See_also"></span> == Zobacz też == <!-- * [[:Category:Block warning templates]] * [[:Category:User block templates]]--> * <span lang="en" dir="ltr" class="mw-content-ltr">[[m:Special:MyLanguage/Global locks|Global locks]], [[m:Special:MyLanguage/Global blocks|global blocks]], and [[m:Special:MyLanguage/Global bans|global bans]]: similar concepts spanning all Wikimedia projects</span> [[Category:Policy{{#translation:}}]] e4rex843r2dfutneomn0t3882il202s 334231 334229 2026-10-28T23:13:06Z Chrumps 3889 Created page with "Należy '''obserwować''' stronę dyskusji zablokowanego użytkownika i dopilnować, aby '''[[$1|wnioski o odblokowanie]]''' były rozpatrywane." 334231 wikitext text/x-wiki {{draft}} <languages/> <div lang="en" dir="ltr" class="mw-content-ltr"> [[Special:MyLanguage/WF:Administrators|Administrators]] are given the ability to administer '''blocks''' to users when appropriate. A blocked user is usually restricted from editing, among other things. In a general sense, blocks are a last resort for behaviour that has the potential to damage Wikifunctions or disrupt its collegial atmosphere. Blocks may be sitewide or partial (affecting only certain actions). In this way, blocking is designed to be a ''preventative'' measure and not a ''punitive'' one; "cool-down" blocks are not condoned. </div> <span id="Use"></span> == Użycie == <div lang="en" dir="ltr" class="mw-content-ltr"> Blocks may be applied for a number of reasons. The more common of these are detailed below: </div> * <span lang="en" dir="ltr" class="mw-content-ltr">'''[[Special:MyLanguage/WF:Vandalism|Vandalism]]'''. Disruptive editing may result in a block. For example:</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Insertion of gratuitous vulgarity</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Gibberish text</span> ** Usuwanie treści ze stron * '''Spam'''. * '''[[m:Special:MyLanguage/Copyright|Naruszenia praw autorskich]]'''. * '''[[m:Special:MyLanguage/Edit war|Wojna edycyjna]]'''. * <span lang="en" dir="ltr" class="mw-content-ltr">'''Personal attacks''' or '''harassment'''. Accounts and IP addresses which are used primarily to create a hostile environment for another user may be blocked. Good faith disputes between users, however, should be brought to [[WF:Project chat|project chat]] for outside input. Tracking a user's contributions for policy violations is not harassment.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Unauthorized or non-responsive [[Special:MyLanguage/WF:Bots|bot]] accounts'''. Bot accounts must be authorized by the Wikifunctions community. Questionable bot-like editing that cannot be explained by the user should be blocked until discussion takes place. Bot proposals can be discussed at [[WF:Bots]] or [[WF:Project chat|project chat]]. Bot approval can be sought at [[WF:Bots/Requests]].</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Approved bot accounts that are temporarily malfunctioning'''. This is to prevent additional damage until the bot-owner can address the problem.</span> * [[Special:MyLanguage/WF:Username policy#INAPPR|'''Nieodpowiednie nazwy użytkowników''']]. * <span lang="en" dir="ltr" class="mw-content-ltr">'''Evasion of blocks'''. An administrator may reset the block of a user who intentionally evades a block (and revert their contributions), and may extend the duration of the block if the user engages in further blockable behaviour while evading the block. User accounts or IP addresses used to evade a block may and should also be blocked.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Abusing multiple accounts''' to mislead, deceive, disrupt, distort consensus or to evade blocks or other sanctions. Secondary accounts are typically blocked indefinitely. The primary account may or may not be subject to new or extended blocks depending on the circumstances.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Open or anonymizing proxies''' are typically blocked upon detection in accordance with [[m:Special:MyLanguage/No open proxies|Wikimedia-wide policy]]. The normal duration of such blocks is one year.</span> <span id="Instructions_for_administrators"></span> == Instrukcje dla administratorów == <span id="Before_blocking"></span> === Przed zablokowaniem === * <span lang="en" dir="ltr" class="mw-content-ltr">For blocks based on disruptive behaviour, such as vandalism, repeated copyright violations and manual promotional activities, ensure that the user has been appropriately '''warned,''' preferably using a [[:Category:Block warning templates|block warning template]]. No warning is necessary when blocking open proxies and users with inappropriate or abusive usernames. Accounts and IP addresses used solely for severely disruptive purposes such as automated spamming, serious vandalism or harassment may also be blocked without prior warning.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Controversial blocks''' may be discussed at the [[WF:Administrators' noticeboard|blocks and protections noticeboard]], preferably before they are applied if at all possible. As a rule of thumb, when in doubt, do not block.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''[[:mw:Special:MyLanguage/Help:Range blocks|Range blocks]]''' are especially powerful tools, and discussion of these is particularly encouraged. Range blocks with a duration longer than 24 hours should be discussed with a {{pg|WF:Checkusers|checkuser}} to assess the likely impact.</span> <div lang="en" dir="ltr" class="mw-content-ltr"> === When blocking === </div> * <span lang="en" dir="ltr" class="mw-content-ltr">Blocks can be applied to '''registered users, IP addresses or address ranges.'''</span> * <span lang="en" dir="ltr" class="mw-content-ltr">As blocks are preventative rather than punitive, use a block '''duration''' that is proportional to the time likely needed for the user to familiarize themselves with relevant policies and adjust their behaviour. Also consider the user's past behaviour and the severity of the disruption. When blocking IP addresses, keep in mind that innocent third parties sharing the same addresses may be affected.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">Provide a '''reason''' for the block. The rationale should preferably use links to relevant policies to help the blocked user understand why they have been blocked. Where appropriate, diffs or [[w:Help:Permanent link|permanent links]] documenting the reason for the block are also helpful.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Account creation''' should be prevented in most cases, but may be allowed when blocking an inappropriate user name to allow creation of a different name.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Autoblocking''' of IP addresses used by the blocked user should typically be enabled for users who were blocked for disruptive behavior. It should be disabled in most other cases, like blocking malfunctioning bots and usernames that don't follow the {{pg|WF:Username policy|username policy}}.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">Only prevent the blocked user from using their '''talk page''' or sending '''e-mail''' if they are likely to abuse these privileges.</span> <span id="After_blocking"></span> === Po zablokowaniu === * Należy '''powiadomić''' zablokowanego użytkownika, najlepiej za pomocą [[:Category:User block templates|szablonu informacji o blokadzie]]. * Należy '''obserwować''' stronę dyskusji zablokowanego użytkownika i dopilnować, aby '''[[:Category:Requests for unblock|wnioski o odblokowanie]]''' były rozpatrywane. * Blokady nałożone z powodu destrukcyjnego zachowania powinny zostać '''zniesione''', jeśli istnieją podstawy, by sądzić, że zachowanie to się nie powtórzy. * <span lang="en" dir="ltr" class="mw-content-ltr">'''Controversial blocks''' may also be discussed at the [[Wikifunctions:Administrators' noticeboard|blocks and protections noticeboard]] after they have been applied. To avoid [[:en:WP:WW|wheel warring]], another administrator should lift a block only if there is consensus to do so, even if there is no clear consensus in favor of the original block.</span> <span id="Appealing_a_block"></span> == Odwołanie od blokady == <div lang="en" dir="ltr" class="mw-content-ltr"> Blocked users are [[MediaWiki:Blockedtext|informed]] that they may '''request unblocking.''' They may do this by adding {{tld|unblock|''reason for the request''}} to their '''[[Special:MyTalk|own user talk page]].''' Alternatively, they may request unblocking with an appropriate reason via '''[[Special:EmailUser|e-mail]]''' to the blocking administrator or another administrator. </div> '''Odpowiednie uzasadnienie''' niemal zawsze zawiera jeden z następujących elementów: * '''Przyznanie się''', że blokada była uzasadniona, oraz '''wiarygodne zapewnienie''', że zachowanie, które do niej doprowadziło, nie powtórzy się * Wyjaśnienie, dlaczego blokada jest '''nieuzasadniona''' w świetle niniejszych oraz innych odpowiednich zasad i wytycznych albo dlaczego '''prawdopodobnie nałożono ją omyłkowo lub stanowi ona niezamierzony skutek uboczny'''. <div class="mw-translate-fuzzy"> Wniosek o odblokowanie może zostać '''[[Template:Unblock granted|zaakceptowany]]''' albo '''[[Template:Unblock declined|odrzucony]]]'''. Przed zaakceptowaniem wniosku dotyczącego blokady nałożonej przez innego administratora administrator rozpatrujący wniosek powinien '''skonsultować się z administratorem, który nałożył blokadę''', z wyjątkiem oczywistych i niebudzących kontrowersji przypadków. [[:Category:Requests for unblock|Wnioski składane na stronach dyskusji]] mogą być odrzucane wyłącznie przez '''administratora niezaangażowanego w sprawę'''. </div> Wielokrotne składanie wniosków o odblokowanie bez odpowiedniego uzasadnienia może zostać uznane za nadużycie. Jak wskazano powyżej, użytkownikom, którzy nadużywają lub prawdopodobnie będą nadużywać możliwości edytowania własnej strony dyskusji bądź wysyłania wiadomości e-mail, można odebrać jedno albo oba te uprawnienia. Uniemożliwi to również korzystanie z nich w celu składania kolejnych wniosków o odblokowanie. <span id="See_also"></span> == Zobacz też == <!-- * [[:Category:Block warning templates]] * [[:Category:User block templates]]--> * <span lang="en" dir="ltr" class="mw-content-ltr">[[m:Special:MyLanguage/Global locks|Global locks]], [[m:Special:MyLanguage/Global blocks|global blocks]], and [[m:Special:MyLanguage/Global bans|global bans]]: similar concepts spanning all Wikimedia projects</span> [[Category:Policy{{#translation:}}]] o9nfv5zk0e5zwyo67fgxhlg8eo6ia8r 334233 334231 2026-10-28T23:14:26Z Chrumps 3889 Created page with "'''Kontrowersyjne blokady''' można omawiać na [[$1|tablicy ogłoszeń dotyczącej blokad i zabezpieczeń]] również po ich nałożeniu. Aby uniknąć „wojny administratorów”, inny administrator powinien znieść blokadę tylko wtedy, gdy istnieje co do tego konsensus, nawet jeżeli nie ma wyraźnego konsensusu popierającego pierwotną blokadę." 334233 wikitext text/x-wiki {{draft}} <languages/> <div lang="en" dir="ltr" class="mw-content-ltr"> [[Special:MyLanguage/WF:Administrators|Administrators]] are given the ability to administer '''blocks''' to users when appropriate. A blocked user is usually restricted from editing, among other things. In a general sense, blocks are a last resort for behaviour that has the potential to damage Wikifunctions or disrupt its collegial atmosphere. Blocks may be sitewide or partial (affecting only certain actions). In this way, blocking is designed to be a ''preventative'' measure and not a ''punitive'' one; "cool-down" blocks are not condoned. </div> <span id="Use"></span> == Użycie == <div lang="en" dir="ltr" class="mw-content-ltr"> Blocks may be applied for a number of reasons. The more common of these are detailed below: </div> * <span lang="en" dir="ltr" class="mw-content-ltr">'''[[Special:MyLanguage/WF:Vandalism|Vandalism]]'''. Disruptive editing may result in a block. For example:</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Insertion of gratuitous vulgarity</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Gibberish text</span> ** Usuwanie treści ze stron * '''Spam'''. * '''[[m:Special:MyLanguage/Copyright|Naruszenia praw autorskich]]'''. * '''[[m:Special:MyLanguage/Edit war|Wojna edycyjna]]'''. * <span lang="en" dir="ltr" class="mw-content-ltr">'''Personal attacks''' or '''harassment'''. Accounts and IP addresses which are used primarily to create a hostile environment for another user may be blocked. Good faith disputes between users, however, should be brought to [[WF:Project chat|project chat]] for outside input. Tracking a user's contributions for policy violations is not harassment.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Unauthorized or non-responsive [[Special:MyLanguage/WF:Bots|bot]] accounts'''. Bot accounts must be authorized by the Wikifunctions community. Questionable bot-like editing that cannot be explained by the user should be blocked until discussion takes place. Bot proposals can be discussed at [[WF:Bots]] or [[WF:Project chat|project chat]]. Bot approval can be sought at [[WF:Bots/Requests]].</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Approved bot accounts that are temporarily malfunctioning'''. This is to prevent additional damage until the bot-owner can address the problem.</span> * [[Special:MyLanguage/WF:Username policy#INAPPR|'''Nieodpowiednie nazwy użytkowników''']]. * <span lang="en" dir="ltr" class="mw-content-ltr">'''Evasion of blocks'''. An administrator may reset the block of a user who intentionally evades a block (and revert their contributions), and may extend the duration of the block if the user engages in further blockable behaviour while evading the block. User accounts or IP addresses used to evade a block may and should also be blocked.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Abusing multiple accounts''' to mislead, deceive, disrupt, distort consensus or to evade blocks or other sanctions. Secondary accounts are typically blocked indefinitely. The primary account may or may not be subject to new or extended blocks depending on the circumstances.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Open or anonymizing proxies''' are typically blocked upon detection in accordance with [[m:Special:MyLanguage/No open proxies|Wikimedia-wide policy]]. The normal duration of such blocks is one year.</span> <span id="Instructions_for_administrators"></span> == Instrukcje dla administratorów == <span id="Before_blocking"></span> === Przed zablokowaniem === * <span lang="en" dir="ltr" class="mw-content-ltr">For blocks based on disruptive behaviour, such as vandalism, repeated copyright violations and manual promotional activities, ensure that the user has been appropriately '''warned,''' preferably using a [[:Category:Block warning templates|block warning template]]. No warning is necessary when blocking open proxies and users with inappropriate or abusive usernames. Accounts and IP addresses used solely for severely disruptive purposes such as automated spamming, serious vandalism or harassment may also be blocked without prior warning.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Controversial blocks''' may be discussed at the [[WF:Administrators' noticeboard|blocks and protections noticeboard]], preferably before they are applied if at all possible. As a rule of thumb, when in doubt, do not block.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''[[:mw:Special:MyLanguage/Help:Range blocks|Range blocks]]''' are especially powerful tools, and discussion of these is particularly encouraged. Range blocks with a duration longer than 24 hours should be discussed with a {{pg|WF:Checkusers|checkuser}} to assess the likely impact.</span> <div lang="en" dir="ltr" class="mw-content-ltr"> === When blocking === </div> * <span lang="en" dir="ltr" class="mw-content-ltr">Blocks can be applied to '''registered users, IP addresses or address ranges.'''</span> * <span lang="en" dir="ltr" class="mw-content-ltr">As blocks are preventative rather than punitive, use a block '''duration''' that is proportional to the time likely needed for the user to familiarize themselves with relevant policies and adjust their behaviour. Also consider the user's past behaviour and the severity of the disruption. When blocking IP addresses, keep in mind that innocent third parties sharing the same addresses may be affected.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">Provide a '''reason''' for the block. The rationale should preferably use links to relevant policies to help the blocked user understand why they have been blocked. Where appropriate, diffs or [[w:Help:Permanent link|permanent links]] documenting the reason for the block are also helpful.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Account creation''' should be prevented in most cases, but may be allowed when blocking an inappropriate user name to allow creation of a different name.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Autoblocking''' of IP addresses used by the blocked user should typically be enabled for users who were blocked for disruptive behavior. It should be disabled in most other cases, like blocking malfunctioning bots and usernames that don't follow the {{pg|WF:Username policy|username policy}}.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">Only prevent the blocked user from using their '''talk page''' or sending '''e-mail''' if they are likely to abuse these privileges.</span> <span id="After_blocking"></span> === Po zablokowaniu === * Należy '''powiadomić''' zablokowanego użytkownika, najlepiej za pomocą [[:Category:User block templates|szablonu informacji o blokadzie]]. * Należy '''obserwować''' stronę dyskusji zablokowanego użytkownika i dopilnować, aby '''[[:Category:Requests for unblock|wnioski o odblokowanie]]''' były rozpatrywane. * Blokady nałożone z powodu destrukcyjnego zachowania powinny zostać '''zniesione''', jeśli istnieją podstawy, by sądzić, że zachowanie to się nie powtórzy. * '''Kontrowersyjne blokady''' można omawiać na [[Wikifunctions:Administrators' noticeboard|tablicy ogłoszeń dotyczącej blokad i zabezpieczeń]] również po ich nałożeniu. Aby uniknąć „wojny administratorów”, inny administrator powinien znieść blokadę tylko wtedy, gdy istnieje co do tego konsensus, nawet jeżeli nie ma wyraźnego konsensusu popierającego pierwotną blokadę. <span id="Appealing_a_block"></span> == Odwołanie od blokady == <div lang="en" dir="ltr" class="mw-content-ltr"> Blocked users are [[MediaWiki:Blockedtext|informed]] that they may '''request unblocking.''' They may do this by adding {{tld|unblock|''reason for the request''}} to their '''[[Special:MyTalk|own user talk page]].''' Alternatively, they may request unblocking with an appropriate reason via '''[[Special:EmailUser|e-mail]]''' to the blocking administrator or another administrator. </div> '''Odpowiednie uzasadnienie''' niemal zawsze zawiera jeden z następujących elementów: * '''Przyznanie się''', że blokada była uzasadniona, oraz '''wiarygodne zapewnienie''', że zachowanie, które do niej doprowadziło, nie powtórzy się * Wyjaśnienie, dlaczego blokada jest '''nieuzasadniona''' w świetle niniejszych oraz innych odpowiednich zasad i wytycznych albo dlaczego '''prawdopodobnie nałożono ją omyłkowo lub stanowi ona niezamierzony skutek uboczny'''. <div class="mw-translate-fuzzy"> Wniosek o odblokowanie może zostać '''[[Template:Unblock granted|zaakceptowany]]''' albo '''[[Template:Unblock declined|odrzucony]]]'''. Przed zaakceptowaniem wniosku dotyczącego blokady nałożonej przez innego administratora administrator rozpatrujący wniosek powinien '''skonsultować się z administratorem, który nałożył blokadę''', z wyjątkiem oczywistych i niebudzących kontrowersji przypadków. [[:Category:Requests for unblock|Wnioski składane na stronach dyskusji]] mogą być odrzucane wyłącznie przez '''administratora niezaangażowanego w sprawę'''. </div> Wielokrotne składanie wniosków o odblokowanie bez odpowiedniego uzasadnienia może zostać uznane za nadużycie. Jak wskazano powyżej, użytkownikom, którzy nadużywają lub prawdopodobnie będą nadużywać możliwości edytowania własnej strony dyskusji bądź wysyłania wiadomości e-mail, można odebrać jedno albo oba te uprawnienia. Uniemożliwi to również korzystanie z nich w celu składania kolejnych wniosków o odblokowanie. <span id="See_also"></span> == Zobacz też == <!-- * [[:Category:Block warning templates]] * [[:Category:User block templates]]--> * <span lang="en" dir="ltr" class="mw-content-ltr">[[m:Special:MyLanguage/Global locks|Global locks]], [[m:Special:MyLanguage/Global blocks|global blocks]], and [[m:Special:MyLanguage/Global bans|global bans]]: similar concepts spanning all Wikimedia projects</span> [[Category:Policy{{#translation:}}]] blvdth0m784kir1u0mz1pfawkp77gtu 334235 334233 2026-10-28T23:15:22Z Chrumps 3889 Created page with "Blokady mogą być nakładane na '''zarejestrowanych użytkowników, adresy IP oraz zakresy adresów IP.'''" 334235 wikitext text/x-wiki {{draft}} <languages/> <div lang="en" dir="ltr" class="mw-content-ltr"> [[Special:MyLanguage/WF:Administrators|Administrators]] are given the ability to administer '''blocks''' to users when appropriate. A blocked user is usually restricted from editing, among other things. In a general sense, blocks are a last resort for behaviour that has the potential to damage Wikifunctions or disrupt its collegial atmosphere. Blocks may be sitewide or partial (affecting only certain actions). In this way, blocking is designed to be a ''preventative'' measure and not a ''punitive'' one; "cool-down" blocks are not condoned. </div> <span id="Use"></span> == Użycie == <div lang="en" dir="ltr" class="mw-content-ltr"> Blocks may be applied for a number of reasons. The more common of these are detailed below: </div> * <span lang="en" dir="ltr" class="mw-content-ltr">'''[[Special:MyLanguage/WF:Vandalism|Vandalism]]'''. Disruptive editing may result in a block. For example:</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Insertion of gratuitous vulgarity</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Gibberish text</span> ** Usuwanie treści ze stron * '''Spam'''. * '''[[m:Special:MyLanguage/Copyright|Naruszenia praw autorskich]]'''. * '''[[m:Special:MyLanguage/Edit war|Wojna edycyjna]]'''. * <span lang="en" dir="ltr" class="mw-content-ltr">'''Personal attacks''' or '''harassment'''. Accounts and IP addresses which are used primarily to create a hostile environment for another user may be blocked. Good faith disputes between users, however, should be brought to [[WF:Project chat|project chat]] for outside input. Tracking a user's contributions for policy violations is not harassment.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Unauthorized or non-responsive [[Special:MyLanguage/WF:Bots|bot]] accounts'''. Bot accounts must be authorized by the Wikifunctions community. Questionable bot-like editing that cannot be explained by the user should be blocked until discussion takes place. Bot proposals can be discussed at [[WF:Bots]] or [[WF:Project chat|project chat]]. Bot approval can be sought at [[WF:Bots/Requests]].</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Approved bot accounts that are temporarily malfunctioning'''. This is to prevent additional damage until the bot-owner can address the problem.</span> * [[Special:MyLanguage/WF:Username policy#INAPPR|'''Nieodpowiednie nazwy użytkowników''']]. * <span lang="en" dir="ltr" class="mw-content-ltr">'''Evasion of blocks'''. An administrator may reset the block of a user who intentionally evades a block (and revert their contributions), and may extend the duration of the block if the user engages in further blockable behaviour while evading the block. User accounts or IP addresses used to evade a block may and should also be blocked.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Abusing multiple accounts''' to mislead, deceive, disrupt, distort consensus or to evade blocks or other sanctions. Secondary accounts are typically blocked indefinitely. The primary account may or may not be subject to new or extended blocks depending on the circumstances.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Open or anonymizing proxies''' are typically blocked upon detection in accordance with [[m:Special:MyLanguage/No open proxies|Wikimedia-wide policy]]. The normal duration of such blocks is one year.</span> <span id="Instructions_for_administrators"></span> == Instrukcje dla administratorów == <span id="Before_blocking"></span> === Przed zablokowaniem === * <span lang="en" dir="ltr" class="mw-content-ltr">For blocks based on disruptive behaviour, such as vandalism, repeated copyright violations and manual promotional activities, ensure that the user has been appropriately '''warned,''' preferably using a [[:Category:Block warning templates|block warning template]]. No warning is necessary when blocking open proxies and users with inappropriate or abusive usernames. Accounts and IP addresses used solely for severely disruptive purposes such as automated spamming, serious vandalism or harassment may also be blocked without prior warning.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Controversial blocks''' may be discussed at the [[WF:Administrators' noticeboard|blocks and protections noticeboard]], preferably before they are applied if at all possible. As a rule of thumb, when in doubt, do not block.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''[[:mw:Special:MyLanguage/Help:Range blocks|Range blocks]]''' are especially powerful tools, and discussion of these is particularly encouraged. Range blocks with a duration longer than 24 hours should be discussed with a {{pg|WF:Checkusers|checkuser}} to assess the likely impact.</span> <div lang="en" dir="ltr" class="mw-content-ltr"> === When blocking === </div> * Blokady mogą być nakładane na '''zarejestrowanych użytkowników, adresy IP oraz zakresy adresów IP.''' * <span lang="en" dir="ltr" class="mw-content-ltr">As blocks are preventative rather than punitive, use a block '''duration''' that is proportional to the time likely needed for the user to familiarize themselves with relevant policies and adjust their behaviour. Also consider the user's past behaviour and the severity of the disruption. When blocking IP addresses, keep in mind that innocent third parties sharing the same addresses may be affected.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">Provide a '''reason''' for the block. The rationale should preferably use links to relevant policies to help the blocked user understand why they have been blocked. Where appropriate, diffs or [[w:Help:Permanent link|permanent links]] documenting the reason for the block are also helpful.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Account creation''' should be prevented in most cases, but may be allowed when blocking an inappropriate user name to allow creation of a different name.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Autoblocking''' of IP addresses used by the blocked user should typically be enabled for users who were blocked for disruptive behavior. It should be disabled in most other cases, like blocking malfunctioning bots and usernames that don't follow the {{pg|WF:Username policy|username policy}}.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">Only prevent the blocked user from using their '''talk page''' or sending '''e-mail''' if they are likely to abuse these privileges.</span> <span id="After_blocking"></span> === Po zablokowaniu === * Należy '''powiadomić''' zablokowanego użytkownika, najlepiej za pomocą [[:Category:User block templates|szablonu informacji o blokadzie]]. * Należy '''obserwować''' stronę dyskusji zablokowanego użytkownika i dopilnować, aby '''[[:Category:Requests for unblock|wnioski o odblokowanie]]''' były rozpatrywane. * Blokady nałożone z powodu destrukcyjnego zachowania powinny zostać '''zniesione''', jeśli istnieją podstawy, by sądzić, że zachowanie to się nie powtórzy. * '''Kontrowersyjne blokady''' można omawiać na [[Wikifunctions:Administrators' noticeboard|tablicy ogłoszeń dotyczącej blokad i zabezpieczeń]] również po ich nałożeniu. Aby uniknąć „wojny administratorów”, inny administrator powinien znieść blokadę tylko wtedy, gdy istnieje co do tego konsensus, nawet jeżeli nie ma wyraźnego konsensusu popierającego pierwotną blokadę. <span id="Appealing_a_block"></span> == Odwołanie od blokady == <div lang="en" dir="ltr" class="mw-content-ltr"> Blocked users are [[MediaWiki:Blockedtext|informed]] that they may '''request unblocking.''' They may do this by adding {{tld|unblock|''reason for the request''}} to their '''[[Special:MyTalk|own user talk page]].''' Alternatively, they may request unblocking with an appropriate reason via '''[[Special:EmailUser|e-mail]]''' to the blocking administrator or another administrator. </div> '''Odpowiednie uzasadnienie''' niemal zawsze zawiera jeden z następujących elementów: * '''Przyznanie się''', że blokada była uzasadniona, oraz '''wiarygodne zapewnienie''', że zachowanie, które do niej doprowadziło, nie powtórzy się * Wyjaśnienie, dlaczego blokada jest '''nieuzasadniona''' w świetle niniejszych oraz innych odpowiednich zasad i wytycznych albo dlaczego '''prawdopodobnie nałożono ją omyłkowo lub stanowi ona niezamierzony skutek uboczny'''. <div class="mw-translate-fuzzy"> Wniosek o odblokowanie może zostać '''[[Template:Unblock granted|zaakceptowany]]''' albo '''[[Template:Unblock declined|odrzucony]]]'''. Przed zaakceptowaniem wniosku dotyczącego blokady nałożonej przez innego administratora administrator rozpatrujący wniosek powinien '''skonsultować się z administratorem, który nałożył blokadę''', z wyjątkiem oczywistych i niebudzących kontrowersji przypadków. [[:Category:Requests for unblock|Wnioski składane na stronach dyskusji]] mogą być odrzucane wyłącznie przez '''administratora niezaangażowanego w sprawę'''. </div> Wielokrotne składanie wniosków o odblokowanie bez odpowiedniego uzasadnienia może zostać uznane za nadużycie. Jak wskazano powyżej, użytkownikom, którzy nadużywają lub prawdopodobnie będą nadużywać możliwości edytowania własnej strony dyskusji bądź wysyłania wiadomości e-mail, można odebrać jedno albo oba te uprawnienia. Uniemożliwi to również korzystanie z nich w celu składania kolejnych wniosków o odblokowanie. <span id="See_also"></span> == Zobacz też == <!-- * [[:Category:Block warning templates]] * [[:Category:User block templates]]--> * <span lang="en" dir="ltr" class="mw-content-ltr">[[m:Special:MyLanguage/Global locks|Global locks]], [[m:Special:MyLanguage/Global blocks|global blocks]], and [[m:Special:MyLanguage/Global bans|global bans]]: similar concepts spanning all Wikimedia projects</span> [[Category:Policy{{#translation:}}]] 17jndzowwa2eoteqccixpy1ypeg2k1m 334237 334235 2026-10-28T23:16:30Z Chrumps 3889 Created page with "Ponieważ blokady mają charakter zapobiegawczy, a nie karny, należy ustalić '''czas trwania''' blokady proporcjonalny do okresu, którego użytkownik prawdopodobnie potrzebuje, aby zapoznać się z odpowiednimi zasadami i zmienić swoje postępowanie. Należy również uwzględnić wcześniejsze zachowanie użytkownika oraz wagę spowodowanych zakłóceń. Przy blokowaniu adresów IP trzeba pamiętać, że blokada może dotknąć niewinne osoby trzecie korzystające z..." 334237 wikitext text/x-wiki {{draft}} <languages/> <div lang="en" dir="ltr" class="mw-content-ltr"> [[Special:MyLanguage/WF:Administrators|Administrators]] are given the ability to administer '''blocks''' to users when appropriate. A blocked user is usually restricted from editing, among other things. In a general sense, blocks are a last resort for behaviour that has the potential to damage Wikifunctions or disrupt its collegial atmosphere. Blocks may be sitewide or partial (affecting only certain actions). In this way, blocking is designed to be a ''preventative'' measure and not a ''punitive'' one; "cool-down" blocks are not condoned. </div> <span id="Use"></span> == Użycie == <div lang="en" dir="ltr" class="mw-content-ltr"> Blocks may be applied for a number of reasons. The more common of these are detailed below: </div> * <span lang="en" dir="ltr" class="mw-content-ltr">'''[[Special:MyLanguage/WF:Vandalism|Vandalism]]'''. Disruptive editing may result in a block. For example:</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Insertion of gratuitous vulgarity</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Gibberish text</span> ** Usuwanie treści ze stron * '''Spam'''. * '''[[m:Special:MyLanguage/Copyright|Naruszenia praw autorskich]]'''. * '''[[m:Special:MyLanguage/Edit war|Wojna edycyjna]]'''. * <span lang="en" dir="ltr" class="mw-content-ltr">'''Personal attacks''' or '''harassment'''. Accounts and IP addresses which are used primarily to create a hostile environment for another user may be blocked. Good faith disputes between users, however, should be brought to [[WF:Project chat|project chat]] for outside input. Tracking a user's contributions for policy violations is not harassment.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Unauthorized or non-responsive [[Special:MyLanguage/WF:Bots|bot]] accounts'''. Bot accounts must be authorized by the Wikifunctions community. Questionable bot-like editing that cannot be explained by the user should be blocked until discussion takes place. Bot proposals can be discussed at [[WF:Bots]] or [[WF:Project chat|project chat]]. Bot approval can be sought at [[WF:Bots/Requests]].</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Approved bot accounts that are temporarily malfunctioning'''. This is to prevent additional damage until the bot-owner can address the problem.</span> * [[Special:MyLanguage/WF:Username policy#INAPPR|'''Nieodpowiednie nazwy użytkowników''']]. * <span lang="en" dir="ltr" class="mw-content-ltr">'''Evasion of blocks'''. An administrator may reset the block of a user who intentionally evades a block (and revert their contributions), and may extend the duration of the block if the user engages in further blockable behaviour while evading the block. User accounts or IP addresses used to evade a block may and should also be blocked.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Abusing multiple accounts''' to mislead, deceive, disrupt, distort consensus or to evade blocks or other sanctions. Secondary accounts are typically blocked indefinitely. The primary account may or may not be subject to new or extended blocks depending on the circumstances.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Open or anonymizing proxies''' are typically blocked upon detection in accordance with [[m:Special:MyLanguage/No open proxies|Wikimedia-wide policy]]. The normal duration of such blocks is one year.</span> <span id="Instructions_for_administrators"></span> == Instrukcje dla administratorów == <span id="Before_blocking"></span> === Przed zablokowaniem === * <span lang="en" dir="ltr" class="mw-content-ltr">For blocks based on disruptive behaviour, such as vandalism, repeated copyright violations and manual promotional activities, ensure that the user has been appropriately '''warned,''' preferably using a [[:Category:Block warning templates|block warning template]]. No warning is necessary when blocking open proxies and users with inappropriate or abusive usernames. Accounts and IP addresses used solely for severely disruptive purposes such as automated spamming, serious vandalism or harassment may also be blocked without prior warning.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Controversial blocks''' may be discussed at the [[WF:Administrators' noticeboard|blocks and protections noticeboard]], preferably before they are applied if at all possible. As a rule of thumb, when in doubt, do not block.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''[[:mw:Special:MyLanguage/Help:Range blocks|Range blocks]]''' are especially powerful tools, and discussion of these is particularly encouraged. Range blocks with a duration longer than 24 hours should be discussed with a {{pg|WF:Checkusers|checkuser}} to assess the likely impact.</span> <div lang="en" dir="ltr" class="mw-content-ltr"> === When blocking === </div> * Blokady mogą być nakładane na '''zarejestrowanych użytkowników, adresy IP oraz zakresy adresów IP.''' * Ponieważ blokady mają charakter zapobiegawczy, a nie karny, należy ustalić '''czas trwania''' blokady proporcjonalny do okresu, którego użytkownik prawdopodobnie potrzebuje, aby zapoznać się z odpowiednimi zasadami i zmienić swoje postępowanie. Należy również uwzględnić wcześniejsze zachowanie użytkownika oraz wagę spowodowanych zakłóceń. Przy blokowaniu adresów IP trzeba pamiętać, że blokada może dotknąć niewinne osoby trzecie korzystające z tych samych adresów. * <span lang="en" dir="ltr" class="mw-content-ltr">Provide a '''reason''' for the block. The rationale should preferably use links to relevant policies to help the blocked user understand why they have been blocked. Where appropriate, diffs or [[w:Help:Permanent link|permanent links]] documenting the reason for the block are also helpful.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Account creation''' should be prevented in most cases, but may be allowed when blocking an inappropriate user name to allow creation of a different name.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Autoblocking''' of IP addresses used by the blocked user should typically be enabled for users who were blocked for disruptive behavior. It should be disabled in most other cases, like blocking malfunctioning bots and usernames that don't follow the {{pg|WF:Username policy|username policy}}.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">Only prevent the blocked user from using their '''talk page''' or sending '''e-mail''' if they are likely to abuse these privileges.</span> <span id="After_blocking"></span> === Po zablokowaniu === * Należy '''powiadomić''' zablokowanego użytkownika, najlepiej za pomocą [[:Category:User block templates|szablonu informacji o blokadzie]]. * Należy '''obserwować''' stronę dyskusji zablokowanego użytkownika i dopilnować, aby '''[[:Category:Requests for unblock|wnioski o odblokowanie]]''' były rozpatrywane. * Blokady nałożone z powodu destrukcyjnego zachowania powinny zostać '''zniesione''', jeśli istnieją podstawy, by sądzić, że zachowanie to się nie powtórzy. * '''Kontrowersyjne blokady''' można omawiać na [[Wikifunctions:Administrators' noticeboard|tablicy ogłoszeń dotyczącej blokad i zabezpieczeń]] również po ich nałożeniu. Aby uniknąć „wojny administratorów”, inny administrator powinien znieść blokadę tylko wtedy, gdy istnieje co do tego konsensus, nawet jeżeli nie ma wyraźnego konsensusu popierającego pierwotną blokadę. <span id="Appealing_a_block"></span> == Odwołanie od blokady == <div lang="en" dir="ltr" class="mw-content-ltr"> Blocked users are [[MediaWiki:Blockedtext|informed]] that they may '''request unblocking.''' They may do this by adding {{tld|unblock|''reason for the request''}} to their '''[[Special:MyTalk|own user talk page]].''' Alternatively, they may request unblocking with an appropriate reason via '''[[Special:EmailUser|e-mail]]''' to the blocking administrator or another administrator. </div> '''Odpowiednie uzasadnienie''' niemal zawsze zawiera jeden z następujących elementów: * '''Przyznanie się''', że blokada była uzasadniona, oraz '''wiarygodne zapewnienie''', że zachowanie, które do niej doprowadziło, nie powtórzy się * Wyjaśnienie, dlaczego blokada jest '''nieuzasadniona''' w świetle niniejszych oraz innych odpowiednich zasad i wytycznych albo dlaczego '''prawdopodobnie nałożono ją omyłkowo lub stanowi ona niezamierzony skutek uboczny'''. <div class="mw-translate-fuzzy"> Wniosek o odblokowanie może zostać '''[[Template:Unblock granted|zaakceptowany]]''' albo '''[[Template:Unblock declined|odrzucony]]]'''. Przed zaakceptowaniem wniosku dotyczącego blokady nałożonej przez innego administratora administrator rozpatrujący wniosek powinien '''skonsultować się z administratorem, który nałożył blokadę''', z wyjątkiem oczywistych i niebudzących kontrowersji przypadków. [[:Category:Requests for unblock|Wnioski składane na stronach dyskusji]] mogą być odrzucane wyłącznie przez '''administratora niezaangażowanego w sprawę'''. </div> Wielokrotne składanie wniosków o odblokowanie bez odpowiedniego uzasadnienia może zostać uznane za nadużycie. Jak wskazano powyżej, użytkownikom, którzy nadużywają lub prawdopodobnie będą nadużywać możliwości edytowania własnej strony dyskusji bądź wysyłania wiadomości e-mail, można odebrać jedno albo oba te uprawnienia. Uniemożliwi to również korzystanie z nich w celu składania kolejnych wniosków o odblokowanie. <span id="See_also"></span> == Zobacz też == <!-- * [[:Category:Block warning templates]] * [[:Category:User block templates]]--> * <span lang="en" dir="ltr" class="mw-content-ltr">[[m:Special:MyLanguage/Global locks|Global locks]], [[m:Special:MyLanguage/Global blocks|global blocks]], and [[m:Special:MyLanguage/Global bans|global bans]]: similar concepts spanning all Wikimedia projects</span> [[Category:Policy{{#translation:}}]] thhsjzpk9ejdj3dymnnj1oxej4hxr34 334239 334237 2026-10-28T23:17:11Z Chrumps 3889 Created page with "Należy podać '''powód''' blokady. Uzasadnienie powinno w miarę możliwości zawierać odnośniki do odpowiednich zasad, aby pomóc zablokowanemu użytkownikowi zrozumieć przyczynę blokady. W stosownych przypadkach pomocne są również porównania wersji lub [[w:Help:Permanent link|stałe linki]] dokumentujące przyczynę blokady." 334239 wikitext text/x-wiki {{draft}} <languages/> <div lang="en" dir="ltr" class="mw-content-ltr"> [[Special:MyLanguage/WF:Administrators|Administrators]] are given the ability to administer '''blocks''' to users when appropriate. A blocked user is usually restricted from editing, among other things. In a general sense, blocks are a last resort for behaviour that has the potential to damage Wikifunctions or disrupt its collegial atmosphere. Blocks may be sitewide or partial (affecting only certain actions). In this way, blocking is designed to be a ''preventative'' measure and not a ''punitive'' one; "cool-down" blocks are not condoned. </div> <span id="Use"></span> == Użycie == <div lang="en" dir="ltr" class="mw-content-ltr"> Blocks may be applied for a number of reasons. The more common of these are detailed below: </div> * <span lang="en" dir="ltr" class="mw-content-ltr">'''[[Special:MyLanguage/WF:Vandalism|Vandalism]]'''. Disruptive editing may result in a block. For example:</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Insertion of gratuitous vulgarity</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Gibberish text</span> ** Usuwanie treści ze stron * '''Spam'''. * '''[[m:Special:MyLanguage/Copyright|Naruszenia praw autorskich]]'''. * '''[[m:Special:MyLanguage/Edit war|Wojna edycyjna]]'''. * <span lang="en" dir="ltr" class="mw-content-ltr">'''Personal attacks''' or '''harassment'''. Accounts and IP addresses which are used primarily to create a hostile environment for another user may be blocked. Good faith disputes between users, however, should be brought to [[WF:Project chat|project chat]] for outside input. Tracking a user's contributions for policy violations is not harassment.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Unauthorized or non-responsive [[Special:MyLanguage/WF:Bots|bot]] accounts'''. Bot accounts must be authorized by the Wikifunctions community. Questionable bot-like editing that cannot be explained by the user should be blocked until discussion takes place. Bot proposals can be discussed at [[WF:Bots]] or [[WF:Project chat|project chat]]. Bot approval can be sought at [[WF:Bots/Requests]].</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Approved bot accounts that are temporarily malfunctioning'''. This is to prevent additional damage until the bot-owner can address the problem.</span> * [[Special:MyLanguage/WF:Username policy#INAPPR|'''Nieodpowiednie nazwy użytkowników''']]. * <span lang="en" dir="ltr" class="mw-content-ltr">'''Evasion of blocks'''. An administrator may reset the block of a user who intentionally evades a block (and revert their contributions), and may extend the duration of the block if the user engages in further blockable behaviour while evading the block. User accounts or IP addresses used to evade a block may and should also be blocked.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Abusing multiple accounts''' to mislead, deceive, disrupt, distort consensus or to evade blocks or other sanctions. Secondary accounts are typically blocked indefinitely. The primary account may or may not be subject to new or extended blocks depending on the circumstances.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Open or anonymizing proxies''' are typically blocked upon detection in accordance with [[m:Special:MyLanguage/No open proxies|Wikimedia-wide policy]]. The normal duration of such blocks is one year.</span> <span id="Instructions_for_administrators"></span> == Instrukcje dla administratorów == <span id="Before_blocking"></span> === Przed zablokowaniem === * <span lang="en" dir="ltr" class="mw-content-ltr">For blocks based on disruptive behaviour, such as vandalism, repeated copyright violations and manual promotional activities, ensure that the user has been appropriately '''warned,''' preferably using a [[:Category:Block warning templates|block warning template]]. No warning is necessary when blocking open proxies and users with inappropriate or abusive usernames. Accounts and IP addresses used solely for severely disruptive purposes such as automated spamming, serious vandalism or harassment may also be blocked without prior warning.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Controversial blocks''' may be discussed at the [[WF:Administrators' noticeboard|blocks and protections noticeboard]], preferably before they are applied if at all possible. As a rule of thumb, when in doubt, do not block.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''[[:mw:Special:MyLanguage/Help:Range blocks|Range blocks]]''' are especially powerful tools, and discussion of these is particularly encouraged. Range blocks with a duration longer than 24 hours should be discussed with a {{pg|WF:Checkusers|checkuser}} to assess the likely impact.</span> <div lang="en" dir="ltr" class="mw-content-ltr"> === When blocking === </div> * Blokady mogą być nakładane na '''zarejestrowanych użytkowników, adresy IP oraz zakresy adresów IP.''' * Ponieważ blokady mają charakter zapobiegawczy, a nie karny, należy ustalić '''czas trwania''' blokady proporcjonalny do okresu, którego użytkownik prawdopodobnie potrzebuje, aby zapoznać się z odpowiednimi zasadami i zmienić swoje postępowanie. Należy również uwzględnić wcześniejsze zachowanie użytkownika oraz wagę spowodowanych zakłóceń. Przy blokowaniu adresów IP trzeba pamiętać, że blokada może dotknąć niewinne osoby trzecie korzystające z tych samych adresów. * Należy podać '''powód''' blokady. Uzasadnienie powinno w miarę możliwości zawierać odnośniki do odpowiednich zasad, aby pomóc zablokowanemu użytkownikowi zrozumieć przyczynę blokady. W stosownych przypadkach pomocne są również porównania wersji lub [[w:Help:Permanent link|stałe linki]] dokumentujące przyczynę blokady. * <span lang="en" dir="ltr" class="mw-content-ltr">'''Account creation''' should be prevented in most cases, but may be allowed when blocking an inappropriate user name to allow creation of a different name.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Autoblocking''' of IP addresses used by the blocked user should typically be enabled for users who were blocked for disruptive behavior. It should be disabled in most other cases, like blocking malfunctioning bots and usernames that don't follow the {{pg|WF:Username policy|username policy}}.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">Only prevent the blocked user from using their '''talk page''' or sending '''e-mail''' if they are likely to abuse these privileges.</span> <span id="After_blocking"></span> === Po zablokowaniu === * Należy '''powiadomić''' zablokowanego użytkownika, najlepiej za pomocą [[:Category:User block templates|szablonu informacji o blokadzie]]. * Należy '''obserwować''' stronę dyskusji zablokowanego użytkownika i dopilnować, aby '''[[:Category:Requests for unblock|wnioski o odblokowanie]]''' były rozpatrywane. * Blokady nałożone z powodu destrukcyjnego zachowania powinny zostać '''zniesione''', jeśli istnieją podstawy, by sądzić, że zachowanie to się nie powtórzy. * '''Kontrowersyjne blokady''' można omawiać na [[Wikifunctions:Administrators' noticeboard|tablicy ogłoszeń dotyczącej blokad i zabezpieczeń]] również po ich nałożeniu. Aby uniknąć „wojny administratorów”, inny administrator powinien znieść blokadę tylko wtedy, gdy istnieje co do tego konsensus, nawet jeżeli nie ma wyraźnego konsensusu popierającego pierwotną blokadę. <span id="Appealing_a_block"></span> == Odwołanie od blokady == <div lang="en" dir="ltr" class="mw-content-ltr"> Blocked users are [[MediaWiki:Blockedtext|informed]] that they may '''request unblocking.''' They may do this by adding {{tld|unblock|''reason for the request''}} to their '''[[Special:MyTalk|own user talk page]].''' Alternatively, they may request unblocking with an appropriate reason via '''[[Special:EmailUser|e-mail]]''' to the blocking administrator or another administrator. </div> '''Odpowiednie uzasadnienie''' niemal zawsze zawiera jeden z następujących elementów: * '''Przyznanie się''', że blokada była uzasadniona, oraz '''wiarygodne zapewnienie''', że zachowanie, które do niej doprowadziło, nie powtórzy się * Wyjaśnienie, dlaczego blokada jest '''nieuzasadniona''' w świetle niniejszych oraz innych odpowiednich zasad i wytycznych albo dlaczego '''prawdopodobnie nałożono ją omyłkowo lub stanowi ona niezamierzony skutek uboczny'''. <div class="mw-translate-fuzzy"> Wniosek o odblokowanie może zostać '''[[Template:Unblock granted|zaakceptowany]]''' albo '''[[Template:Unblock declined|odrzucony]]]'''. Przed zaakceptowaniem wniosku dotyczącego blokady nałożonej przez innego administratora administrator rozpatrujący wniosek powinien '''skonsultować się z administratorem, który nałożył blokadę''', z wyjątkiem oczywistych i niebudzących kontrowersji przypadków. [[:Category:Requests for unblock|Wnioski składane na stronach dyskusji]] mogą być odrzucane wyłącznie przez '''administratora niezaangażowanego w sprawę'''. </div> Wielokrotne składanie wniosków o odblokowanie bez odpowiedniego uzasadnienia może zostać uznane za nadużycie. Jak wskazano powyżej, użytkownikom, którzy nadużywają lub prawdopodobnie będą nadużywać możliwości edytowania własnej strony dyskusji bądź wysyłania wiadomości e-mail, można odebrać jedno albo oba te uprawnienia. Uniemożliwi to również korzystanie z nich w celu składania kolejnych wniosków o odblokowanie. <span id="See_also"></span> == Zobacz też == <!-- * [[:Category:Block warning templates]] * [[:Category:User block templates]]--> * <span lang="en" dir="ltr" class="mw-content-ltr">[[m:Special:MyLanguage/Global locks|Global locks]], [[m:Special:MyLanguage/Global blocks|global blocks]], and [[m:Special:MyLanguage/Global bans|global bans]]: similar concepts spanning all Wikimedia projects</span> [[Category:Policy{{#translation:}}]] h7yyeoz11hquy4oytryk9w0ey2umku0 334241 334239 2026-10-28T23:18:11Z Chrumps 3889 Created page with "Możliwość '''tworzenia kont''' powinna być w większości przypadków wyłączona. Można ją jednak pozostawić włączoną w przypadku blokady za nieodpowiednią nazwę użytkownika, aby umożliwić utworzenie konta pod inną nazwą." 334241 wikitext text/x-wiki {{draft}} <languages/> <div lang="en" dir="ltr" class="mw-content-ltr"> [[Special:MyLanguage/WF:Administrators|Administrators]] are given the ability to administer '''blocks''' to users when appropriate. A blocked user is usually restricted from editing, among other things. In a general sense, blocks are a last resort for behaviour that has the potential to damage Wikifunctions or disrupt its collegial atmosphere. Blocks may be sitewide or partial (affecting only certain actions). In this way, blocking is designed to be a ''preventative'' measure and not a ''punitive'' one; "cool-down" blocks are not condoned. </div> <span id="Use"></span> == Użycie == <div lang="en" dir="ltr" class="mw-content-ltr"> Blocks may be applied for a number of reasons. The more common of these are detailed below: </div> * <span lang="en" dir="ltr" class="mw-content-ltr">'''[[Special:MyLanguage/WF:Vandalism|Vandalism]]'''. Disruptive editing may result in a block. For example:</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Insertion of gratuitous vulgarity</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Gibberish text</span> ** Usuwanie treści ze stron * '''Spam'''. * '''[[m:Special:MyLanguage/Copyright|Naruszenia praw autorskich]]'''. * '''[[m:Special:MyLanguage/Edit war|Wojna edycyjna]]'''. * <span lang="en" dir="ltr" class="mw-content-ltr">'''Personal attacks''' or '''harassment'''. Accounts and IP addresses which are used primarily to create a hostile environment for another user may be blocked. Good faith disputes between users, however, should be brought to [[WF:Project chat|project chat]] for outside input. Tracking a user's contributions for policy violations is not harassment.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Unauthorized or non-responsive [[Special:MyLanguage/WF:Bots|bot]] accounts'''. Bot accounts must be authorized by the Wikifunctions community. Questionable bot-like editing that cannot be explained by the user should be blocked until discussion takes place. Bot proposals can be discussed at [[WF:Bots]] or [[WF:Project chat|project chat]]. Bot approval can be sought at [[WF:Bots/Requests]].</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Approved bot accounts that are temporarily malfunctioning'''. This is to prevent additional damage until the bot-owner can address the problem.</span> * [[Special:MyLanguage/WF:Username policy#INAPPR|'''Nieodpowiednie nazwy użytkowników''']]. * <span lang="en" dir="ltr" class="mw-content-ltr">'''Evasion of blocks'''. An administrator may reset the block of a user who intentionally evades a block (and revert their contributions), and may extend the duration of the block if the user engages in further blockable behaviour while evading the block. User accounts or IP addresses used to evade a block may and should also be blocked.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Abusing multiple accounts''' to mislead, deceive, disrupt, distort consensus or to evade blocks or other sanctions. Secondary accounts are typically blocked indefinitely. The primary account may or may not be subject to new or extended blocks depending on the circumstances.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Open or anonymizing proxies''' are typically blocked upon detection in accordance with [[m:Special:MyLanguage/No open proxies|Wikimedia-wide policy]]. The normal duration of such blocks is one year.</span> <span id="Instructions_for_administrators"></span> == Instrukcje dla administratorów == <span id="Before_blocking"></span> === Przed zablokowaniem === * <span lang="en" dir="ltr" class="mw-content-ltr">For blocks based on disruptive behaviour, such as vandalism, repeated copyright violations and manual promotional activities, ensure that the user has been appropriately '''warned,''' preferably using a [[:Category:Block warning templates|block warning template]]. No warning is necessary when blocking open proxies and users with inappropriate or abusive usernames. Accounts and IP addresses used solely for severely disruptive purposes such as automated spamming, serious vandalism or harassment may also be blocked without prior warning.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Controversial blocks''' may be discussed at the [[WF:Administrators' noticeboard|blocks and protections noticeboard]], preferably before they are applied if at all possible. As a rule of thumb, when in doubt, do not block.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''[[:mw:Special:MyLanguage/Help:Range blocks|Range blocks]]''' are especially powerful tools, and discussion of these is particularly encouraged. Range blocks with a duration longer than 24 hours should be discussed with a {{pg|WF:Checkusers|checkuser}} to assess the likely impact.</span> <div lang="en" dir="ltr" class="mw-content-ltr"> === When blocking === </div> * Blokady mogą być nakładane na '''zarejestrowanych użytkowników, adresy IP oraz zakresy adresów IP.''' * Ponieważ blokady mają charakter zapobiegawczy, a nie karny, należy ustalić '''czas trwania''' blokady proporcjonalny do okresu, którego użytkownik prawdopodobnie potrzebuje, aby zapoznać się z odpowiednimi zasadami i zmienić swoje postępowanie. Należy również uwzględnić wcześniejsze zachowanie użytkownika oraz wagę spowodowanych zakłóceń. Przy blokowaniu adresów IP trzeba pamiętać, że blokada może dotknąć niewinne osoby trzecie korzystające z tych samych adresów. * Należy podać '''powód''' blokady. Uzasadnienie powinno w miarę możliwości zawierać odnośniki do odpowiednich zasad, aby pomóc zablokowanemu użytkownikowi zrozumieć przyczynę blokady. W stosownych przypadkach pomocne są również porównania wersji lub [[w:Help:Permanent link|stałe linki]] dokumentujące przyczynę blokady. * Możliwość '''tworzenia kont''' powinna być w większości przypadków wyłączona. Można ją jednak pozostawić włączoną w przypadku blokady za nieodpowiednią nazwę użytkownika, aby umożliwić utworzenie konta pod inną nazwą. * <span lang="en" dir="ltr" class="mw-content-ltr">'''Autoblocking''' of IP addresses used by the blocked user should typically be enabled for users who were blocked for disruptive behavior. It should be disabled in most other cases, like blocking malfunctioning bots and usernames that don't follow the {{pg|WF:Username policy|username policy}}.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">Only prevent the blocked user from using their '''talk page''' or sending '''e-mail''' if they are likely to abuse these privileges.</span> <span id="After_blocking"></span> === Po zablokowaniu === * Należy '''powiadomić''' zablokowanego użytkownika, najlepiej za pomocą [[:Category:User block templates|szablonu informacji o blokadzie]]. * Należy '''obserwować''' stronę dyskusji zablokowanego użytkownika i dopilnować, aby '''[[:Category:Requests for unblock|wnioski o odblokowanie]]''' były rozpatrywane. * Blokady nałożone z powodu destrukcyjnego zachowania powinny zostać '''zniesione''', jeśli istnieją podstawy, by sądzić, że zachowanie to się nie powtórzy. * '''Kontrowersyjne blokady''' można omawiać na [[Wikifunctions:Administrators' noticeboard|tablicy ogłoszeń dotyczącej blokad i zabezpieczeń]] również po ich nałożeniu. Aby uniknąć „wojny administratorów”, inny administrator powinien znieść blokadę tylko wtedy, gdy istnieje co do tego konsensus, nawet jeżeli nie ma wyraźnego konsensusu popierającego pierwotną blokadę. <span id="Appealing_a_block"></span> == Odwołanie od blokady == <div lang="en" dir="ltr" class="mw-content-ltr"> Blocked users are [[MediaWiki:Blockedtext|informed]] that they may '''request unblocking.''' They may do this by adding {{tld|unblock|''reason for the request''}} to their '''[[Special:MyTalk|own user talk page]].''' Alternatively, they may request unblocking with an appropriate reason via '''[[Special:EmailUser|e-mail]]''' to the blocking administrator or another administrator. </div> '''Odpowiednie uzasadnienie''' niemal zawsze zawiera jeden z następujących elementów: * '''Przyznanie się''', że blokada była uzasadniona, oraz '''wiarygodne zapewnienie''', że zachowanie, które do niej doprowadziło, nie powtórzy się * Wyjaśnienie, dlaczego blokada jest '''nieuzasadniona''' w świetle niniejszych oraz innych odpowiednich zasad i wytycznych albo dlaczego '''prawdopodobnie nałożono ją omyłkowo lub stanowi ona niezamierzony skutek uboczny'''. <div class="mw-translate-fuzzy"> Wniosek o odblokowanie może zostać '''[[Template:Unblock granted|zaakceptowany]]''' albo '''[[Template:Unblock declined|odrzucony]]]'''. Przed zaakceptowaniem wniosku dotyczącego blokady nałożonej przez innego administratora administrator rozpatrujący wniosek powinien '''skonsultować się z administratorem, który nałożył blokadę''', z wyjątkiem oczywistych i niebudzących kontrowersji przypadków. [[:Category:Requests for unblock|Wnioski składane na stronach dyskusji]] mogą być odrzucane wyłącznie przez '''administratora niezaangażowanego w sprawę'''. </div> Wielokrotne składanie wniosków o odblokowanie bez odpowiedniego uzasadnienia może zostać uznane za nadużycie. Jak wskazano powyżej, użytkownikom, którzy nadużywają lub prawdopodobnie będą nadużywać możliwości edytowania własnej strony dyskusji bądź wysyłania wiadomości e-mail, można odebrać jedno albo oba te uprawnienia. Uniemożliwi to również korzystanie z nich w celu składania kolejnych wniosków o odblokowanie. <span id="See_also"></span> == Zobacz też == <!-- * [[:Category:Block warning templates]] * [[:Category:User block templates]]--> * <span lang="en" dir="ltr" class="mw-content-ltr">[[m:Special:MyLanguage/Global locks|Global locks]], [[m:Special:MyLanguage/Global blocks|global blocks]], and [[m:Special:MyLanguage/Global bans|global bans]]: similar concepts spanning all Wikimedia projects</span> [[Category:Policy{{#translation:}}]] cbf4ypdwzrep9dqt89gpumcnngre6wl 334243 334241 2026-10-28T23:19:11Z Chrumps 3889 Created page with "'''Automatyczne blokowanie''' adresów IP używanych przez zablokowanego użytkownika powinno być zazwyczaj włączone w przypadku użytkowników zablokowanych za destrukcyjne zachowanie. W większości pozostałych przypadków należy je wyłączyć, na przykład podczas blokowania nieprawidłowo działających botów oraz nazw użytkowników niezgodnych z {{pg|WF:Username policy|zasadami dotyczącymi nazw użytkowników}}." 334243 wikitext text/x-wiki {{draft}} <languages/> <div lang="en" dir="ltr" class="mw-content-ltr"> [[Special:MyLanguage/WF:Administrators|Administrators]] are given the ability to administer '''blocks''' to users when appropriate. A blocked user is usually restricted from editing, among other things. In a general sense, blocks are a last resort for behaviour that has the potential to damage Wikifunctions or disrupt its collegial atmosphere. Blocks may be sitewide or partial (affecting only certain actions). In this way, blocking is designed to be a ''preventative'' measure and not a ''punitive'' one; "cool-down" blocks are not condoned. </div> <span id="Use"></span> == Użycie == <div lang="en" dir="ltr" class="mw-content-ltr"> Blocks may be applied for a number of reasons. The more common of these are detailed below: </div> * <span lang="en" dir="ltr" class="mw-content-ltr">'''[[Special:MyLanguage/WF:Vandalism|Vandalism]]'''. Disruptive editing may result in a block. For example:</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Insertion of gratuitous vulgarity</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Gibberish text</span> ** Usuwanie treści ze stron * '''Spam'''. * '''[[m:Special:MyLanguage/Copyright|Naruszenia praw autorskich]]'''. * '''[[m:Special:MyLanguage/Edit war|Wojna edycyjna]]'''. * <span lang="en" dir="ltr" class="mw-content-ltr">'''Personal attacks''' or '''harassment'''. Accounts and IP addresses which are used primarily to create a hostile environment for another user may be blocked. Good faith disputes between users, however, should be brought to [[WF:Project chat|project chat]] for outside input. Tracking a user's contributions for policy violations is not harassment.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Unauthorized or non-responsive [[Special:MyLanguage/WF:Bots|bot]] accounts'''. Bot accounts must be authorized by the Wikifunctions community. Questionable bot-like editing that cannot be explained by the user should be blocked until discussion takes place. Bot proposals can be discussed at [[WF:Bots]] or [[WF:Project chat|project chat]]. Bot approval can be sought at [[WF:Bots/Requests]].</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Approved bot accounts that are temporarily malfunctioning'''. This is to prevent additional damage until the bot-owner can address the problem.</span> * [[Special:MyLanguage/WF:Username policy#INAPPR|'''Nieodpowiednie nazwy użytkowników''']]. * <span lang="en" dir="ltr" class="mw-content-ltr">'''Evasion of blocks'''. An administrator may reset the block of a user who intentionally evades a block (and revert their contributions), and may extend the duration of the block if the user engages in further blockable behaviour while evading the block. User accounts or IP addresses used to evade a block may and should also be blocked.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Abusing multiple accounts''' to mislead, deceive, disrupt, distort consensus or to evade blocks or other sanctions. Secondary accounts are typically blocked indefinitely. The primary account may or may not be subject to new or extended blocks depending on the circumstances.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Open or anonymizing proxies''' are typically blocked upon detection in accordance with [[m:Special:MyLanguage/No open proxies|Wikimedia-wide policy]]. The normal duration of such blocks is one year.</span> <span id="Instructions_for_administrators"></span> == Instrukcje dla administratorów == <span id="Before_blocking"></span> === Przed zablokowaniem === * <span lang="en" dir="ltr" class="mw-content-ltr">For blocks based on disruptive behaviour, such as vandalism, repeated copyright violations and manual promotional activities, ensure that the user has been appropriately '''warned,''' preferably using a [[:Category:Block warning templates|block warning template]]. No warning is necessary when blocking open proxies and users with inappropriate or abusive usernames. Accounts and IP addresses used solely for severely disruptive purposes such as automated spamming, serious vandalism or harassment may also be blocked without prior warning.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Controversial blocks''' may be discussed at the [[WF:Administrators' noticeboard|blocks and protections noticeboard]], preferably before they are applied if at all possible. As a rule of thumb, when in doubt, do not block.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''[[:mw:Special:MyLanguage/Help:Range blocks|Range blocks]]''' are especially powerful tools, and discussion of these is particularly encouraged. Range blocks with a duration longer than 24 hours should be discussed with a {{pg|WF:Checkusers|checkuser}} to assess the likely impact.</span> <div lang="en" dir="ltr" class="mw-content-ltr"> === When blocking === </div> * Blokady mogą być nakładane na '''zarejestrowanych użytkowników, adresy IP oraz zakresy adresów IP.''' * Ponieważ blokady mają charakter zapobiegawczy, a nie karny, należy ustalić '''czas trwania''' blokady proporcjonalny do okresu, którego użytkownik prawdopodobnie potrzebuje, aby zapoznać się z odpowiednimi zasadami i zmienić swoje postępowanie. Należy również uwzględnić wcześniejsze zachowanie użytkownika oraz wagę spowodowanych zakłóceń. Przy blokowaniu adresów IP trzeba pamiętać, że blokada może dotknąć niewinne osoby trzecie korzystające z tych samych adresów. * Należy podać '''powód''' blokady. Uzasadnienie powinno w miarę możliwości zawierać odnośniki do odpowiednich zasad, aby pomóc zablokowanemu użytkownikowi zrozumieć przyczynę blokady. W stosownych przypadkach pomocne są również porównania wersji lub [[w:Help:Permanent link|stałe linki]] dokumentujące przyczynę blokady. * Możliwość '''tworzenia kont''' powinna być w większości przypadków wyłączona. Można ją jednak pozostawić włączoną w przypadku blokady za nieodpowiednią nazwę użytkownika, aby umożliwić utworzenie konta pod inną nazwą. * '''Automatyczne blokowanie''' adresów IP używanych przez zablokowanego użytkownika powinno być zazwyczaj włączone w przypadku użytkowników zablokowanych za destrukcyjne zachowanie. W większości pozostałych przypadków należy je wyłączyć, na przykład podczas blokowania nieprawidłowo działających botów oraz nazw użytkowników niezgodnych z {{pg|WF:Username policy|zasadami dotyczącymi nazw użytkowników}}. * <span lang="en" dir="ltr" class="mw-content-ltr">Only prevent the blocked user from using their '''talk page''' or sending '''e-mail''' if they are likely to abuse these privileges.</span> <span id="After_blocking"></span> === Po zablokowaniu === * Należy '''powiadomić''' zablokowanego użytkownika, najlepiej za pomocą [[:Category:User block templates|szablonu informacji o blokadzie]]. * Należy '''obserwować''' stronę dyskusji zablokowanego użytkownika i dopilnować, aby '''[[:Category:Requests for unblock|wnioski o odblokowanie]]''' były rozpatrywane. * Blokady nałożone z powodu destrukcyjnego zachowania powinny zostać '''zniesione''', jeśli istnieją podstawy, by sądzić, że zachowanie to się nie powtórzy. * '''Kontrowersyjne blokady''' można omawiać na [[Wikifunctions:Administrators' noticeboard|tablicy ogłoszeń dotyczącej blokad i zabezpieczeń]] również po ich nałożeniu. Aby uniknąć „wojny administratorów”, inny administrator powinien znieść blokadę tylko wtedy, gdy istnieje co do tego konsensus, nawet jeżeli nie ma wyraźnego konsensusu popierającego pierwotną blokadę. <span id="Appealing_a_block"></span> == Odwołanie od blokady == <div lang="en" dir="ltr" class="mw-content-ltr"> Blocked users are [[MediaWiki:Blockedtext|informed]] that they may '''request unblocking.''' They may do this by adding {{tld|unblock|''reason for the request''}} to their '''[[Special:MyTalk|own user talk page]].''' Alternatively, they may request unblocking with an appropriate reason via '''[[Special:EmailUser|e-mail]]''' to the blocking administrator or another administrator. </div> '''Odpowiednie uzasadnienie''' niemal zawsze zawiera jeden z następujących elementów: * '''Przyznanie się''', że blokada była uzasadniona, oraz '''wiarygodne zapewnienie''', że zachowanie, które do niej doprowadziło, nie powtórzy się * Wyjaśnienie, dlaczego blokada jest '''nieuzasadniona''' w świetle niniejszych oraz innych odpowiednich zasad i wytycznych albo dlaczego '''prawdopodobnie nałożono ją omyłkowo lub stanowi ona niezamierzony skutek uboczny'''. <div class="mw-translate-fuzzy"> Wniosek o odblokowanie może zostać '''[[Template:Unblock granted|zaakceptowany]]''' albo '''[[Template:Unblock declined|odrzucony]]]'''. Przed zaakceptowaniem wniosku dotyczącego blokady nałożonej przez innego administratora administrator rozpatrujący wniosek powinien '''skonsultować się z administratorem, który nałożył blokadę''', z wyjątkiem oczywistych i niebudzących kontrowersji przypadków. [[:Category:Requests for unblock|Wnioski składane na stronach dyskusji]] mogą być odrzucane wyłącznie przez '''administratora niezaangażowanego w sprawę'''. </div> Wielokrotne składanie wniosków o odblokowanie bez odpowiedniego uzasadnienia może zostać uznane za nadużycie. Jak wskazano powyżej, użytkownikom, którzy nadużywają lub prawdopodobnie będą nadużywać możliwości edytowania własnej strony dyskusji bądź wysyłania wiadomości e-mail, można odebrać jedno albo oba te uprawnienia. Uniemożliwi to również korzystanie z nich w celu składania kolejnych wniosków o odblokowanie. <span id="See_also"></span> == Zobacz też == <!-- * [[:Category:Block warning templates]] * [[:Category:User block templates]]--> * <span lang="en" dir="ltr" class="mw-content-ltr">[[m:Special:MyLanguage/Global locks|Global locks]], [[m:Special:MyLanguage/Global blocks|global blocks]], and [[m:Special:MyLanguage/Global bans|global bans]]: similar concepts spanning all Wikimedia projects</span> [[Category:Policy{{#translation:}}]] 208t74vfxbqhyk7rps8iom9xnu0bzxw 334245 334243 2026-10-28T23:20:05Z Chrumps 3889 Created page with "Możliwość korzystania ze strony '''dyskusji użytkownika'' lub wysyłania '''wiadomości e-mail''' należy zablokować tylko wtedy, gdy istnieje prawdopodobieństwo nadużywania tych uprawnień." 334245 wikitext text/x-wiki {{draft}} <languages/> <div lang="en" dir="ltr" class="mw-content-ltr"> [[Special:MyLanguage/WF:Administrators|Administrators]] are given the ability to administer '''blocks''' to users when appropriate. A blocked user is usually restricted from editing, among other things. In a general sense, blocks are a last resort for behaviour that has the potential to damage Wikifunctions or disrupt its collegial atmosphere. Blocks may be sitewide or partial (affecting only certain actions). In this way, blocking is designed to be a ''preventative'' measure and not a ''punitive'' one; "cool-down" blocks are not condoned. </div> <span id="Use"></span> == Użycie == <div lang="en" dir="ltr" class="mw-content-ltr"> Blocks may be applied for a number of reasons. The more common of these are detailed below: </div> * <span lang="en" dir="ltr" class="mw-content-ltr">'''[[Special:MyLanguage/WF:Vandalism|Vandalism]]'''. Disruptive editing may result in a block. For example:</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Insertion of gratuitous vulgarity</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Gibberish text</span> ** Usuwanie treści ze stron * '''Spam'''. * '''[[m:Special:MyLanguage/Copyright|Naruszenia praw autorskich]]'''. * '''[[m:Special:MyLanguage/Edit war|Wojna edycyjna]]'''. * <span lang="en" dir="ltr" class="mw-content-ltr">'''Personal attacks''' or '''harassment'''. Accounts and IP addresses which are used primarily to create a hostile environment for another user may be blocked. Good faith disputes between users, however, should be brought to [[WF:Project chat|project chat]] for outside input. Tracking a user's contributions for policy violations is not harassment.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Unauthorized or non-responsive [[Special:MyLanguage/WF:Bots|bot]] accounts'''. Bot accounts must be authorized by the Wikifunctions community. Questionable bot-like editing that cannot be explained by the user should be blocked until discussion takes place. Bot proposals can be discussed at [[WF:Bots]] or [[WF:Project chat|project chat]]. Bot approval can be sought at [[WF:Bots/Requests]].</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Approved bot accounts that are temporarily malfunctioning'''. This is to prevent additional damage until the bot-owner can address the problem.</span> * [[Special:MyLanguage/WF:Username policy#INAPPR|'''Nieodpowiednie nazwy użytkowników''']]. * <span lang="en" dir="ltr" class="mw-content-ltr">'''Evasion of blocks'''. An administrator may reset the block of a user who intentionally evades a block (and revert their contributions), and may extend the duration of the block if the user engages in further blockable behaviour while evading the block. User accounts or IP addresses used to evade a block may and should also be blocked.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Abusing multiple accounts''' to mislead, deceive, disrupt, distort consensus or to evade blocks or other sanctions. Secondary accounts are typically blocked indefinitely. The primary account may or may not be subject to new or extended blocks depending on the circumstances.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Open or anonymizing proxies''' are typically blocked upon detection in accordance with [[m:Special:MyLanguage/No open proxies|Wikimedia-wide policy]]. The normal duration of such blocks is one year.</span> <span id="Instructions_for_administrators"></span> == Instrukcje dla administratorów == <span id="Before_blocking"></span> === Przed zablokowaniem === * <span lang="en" dir="ltr" class="mw-content-ltr">For blocks based on disruptive behaviour, such as vandalism, repeated copyright violations and manual promotional activities, ensure that the user has been appropriately '''warned,''' preferably using a [[:Category:Block warning templates|block warning template]]. No warning is necessary when blocking open proxies and users with inappropriate or abusive usernames. Accounts and IP addresses used solely for severely disruptive purposes such as automated spamming, serious vandalism or harassment may also be blocked without prior warning.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Controversial blocks''' may be discussed at the [[WF:Administrators' noticeboard|blocks and protections noticeboard]], preferably before they are applied if at all possible. As a rule of thumb, when in doubt, do not block.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''[[:mw:Special:MyLanguage/Help:Range blocks|Range blocks]]''' are especially powerful tools, and discussion of these is particularly encouraged. Range blocks with a duration longer than 24 hours should be discussed with a {{pg|WF:Checkusers|checkuser}} to assess the likely impact.</span> <div lang="en" dir="ltr" class="mw-content-ltr"> === When blocking === </div> * Blokady mogą być nakładane na '''zarejestrowanych użytkowników, adresy IP oraz zakresy adresów IP.''' * Ponieważ blokady mają charakter zapobiegawczy, a nie karny, należy ustalić '''czas trwania''' blokady proporcjonalny do okresu, którego użytkownik prawdopodobnie potrzebuje, aby zapoznać się z odpowiednimi zasadami i zmienić swoje postępowanie. Należy również uwzględnić wcześniejsze zachowanie użytkownika oraz wagę spowodowanych zakłóceń. Przy blokowaniu adresów IP trzeba pamiętać, że blokada może dotknąć niewinne osoby trzecie korzystające z tych samych adresów. * Należy podać '''powód''' blokady. Uzasadnienie powinno w miarę możliwości zawierać odnośniki do odpowiednich zasad, aby pomóc zablokowanemu użytkownikowi zrozumieć przyczynę blokady. W stosownych przypadkach pomocne są również porównania wersji lub [[w:Help:Permanent link|stałe linki]] dokumentujące przyczynę blokady. * Możliwość '''tworzenia kont''' powinna być w większości przypadków wyłączona. Można ją jednak pozostawić włączoną w przypadku blokady za nieodpowiednią nazwę użytkownika, aby umożliwić utworzenie konta pod inną nazwą. * '''Automatyczne blokowanie''' adresów IP używanych przez zablokowanego użytkownika powinno być zazwyczaj włączone w przypadku użytkowników zablokowanych za destrukcyjne zachowanie. W większości pozostałych przypadków należy je wyłączyć, na przykład podczas blokowania nieprawidłowo działających botów oraz nazw użytkowników niezgodnych z {{pg|WF:Username policy|zasadami dotyczącymi nazw użytkowników}}. * Możliwość korzystania ze strony '''dyskusji użytkownika'' lub wysyłania '''wiadomości e-mail''' należy zablokować tylko wtedy, gdy istnieje prawdopodobieństwo nadużywania tych uprawnień. <span id="After_blocking"></span> === Po zablokowaniu === * Należy '''powiadomić''' zablokowanego użytkownika, najlepiej za pomocą [[:Category:User block templates|szablonu informacji o blokadzie]]. * Należy '''obserwować''' stronę dyskusji zablokowanego użytkownika i dopilnować, aby '''[[:Category:Requests for unblock|wnioski o odblokowanie]]''' były rozpatrywane. * Blokady nałożone z powodu destrukcyjnego zachowania powinny zostać '''zniesione''', jeśli istnieją podstawy, by sądzić, że zachowanie to się nie powtórzy. * '''Kontrowersyjne blokady''' można omawiać na [[Wikifunctions:Administrators' noticeboard|tablicy ogłoszeń dotyczącej blokad i zabezpieczeń]] również po ich nałożeniu. Aby uniknąć „wojny administratorów”, inny administrator powinien znieść blokadę tylko wtedy, gdy istnieje co do tego konsensus, nawet jeżeli nie ma wyraźnego konsensusu popierającego pierwotną blokadę. <span id="Appealing_a_block"></span> == Odwołanie od blokady == <div lang="en" dir="ltr" class="mw-content-ltr"> Blocked users are [[MediaWiki:Blockedtext|informed]] that they may '''request unblocking.''' They may do this by adding {{tld|unblock|''reason for the request''}} to their '''[[Special:MyTalk|own user talk page]].''' Alternatively, they may request unblocking with an appropriate reason via '''[[Special:EmailUser|e-mail]]''' to the blocking administrator or another administrator. </div> '''Odpowiednie uzasadnienie''' niemal zawsze zawiera jeden z następujących elementów: * '''Przyznanie się''', że blokada była uzasadniona, oraz '''wiarygodne zapewnienie''', że zachowanie, które do niej doprowadziło, nie powtórzy się * Wyjaśnienie, dlaczego blokada jest '''nieuzasadniona''' w świetle niniejszych oraz innych odpowiednich zasad i wytycznych albo dlaczego '''prawdopodobnie nałożono ją omyłkowo lub stanowi ona niezamierzony skutek uboczny'''. <div class="mw-translate-fuzzy"> Wniosek o odblokowanie może zostać '''[[Template:Unblock granted|zaakceptowany]]''' albo '''[[Template:Unblock declined|odrzucony]]]'''. Przed zaakceptowaniem wniosku dotyczącego blokady nałożonej przez innego administratora administrator rozpatrujący wniosek powinien '''skonsultować się z administratorem, który nałożył blokadę''', z wyjątkiem oczywistych i niebudzących kontrowersji przypadków. [[:Category:Requests for unblock|Wnioski składane na stronach dyskusji]] mogą być odrzucane wyłącznie przez '''administratora niezaangażowanego w sprawę'''. </div> Wielokrotne składanie wniosków o odblokowanie bez odpowiedniego uzasadnienia może zostać uznane za nadużycie. Jak wskazano powyżej, użytkownikom, którzy nadużywają lub prawdopodobnie będą nadużywać możliwości edytowania własnej strony dyskusji bądź wysyłania wiadomości e-mail, można odebrać jedno albo oba te uprawnienia. Uniemożliwi to również korzystanie z nich w celu składania kolejnych wniosków o odblokowanie. <span id="See_also"></span> == Zobacz też == <!-- * [[:Category:Block warning templates]] * [[:Category:User block templates]]--> * <span lang="en" dir="ltr" class="mw-content-ltr">[[m:Special:MyLanguage/Global locks|Global locks]], [[m:Special:MyLanguage/Global blocks|global blocks]], and [[m:Special:MyLanguage/Global bans|global bans]]: similar concepts spanning all Wikimedia projects</span> [[Category:Policy{{#translation:}}]] 9z6wcofgm1fozwmrxdmy01il7zhgtys 334247 334245 2026-10-28T23:20:14Z Chrumps 3889 334247 wikitext text/x-wiki {{draft}} <languages/> <div lang="en" dir="ltr" class="mw-content-ltr"> [[Special:MyLanguage/WF:Administrators|Administrators]] are given the ability to administer '''blocks''' to users when appropriate. A blocked user is usually restricted from editing, among other things. In a general sense, blocks are a last resort for behaviour that has the potential to damage Wikifunctions or disrupt its collegial atmosphere. Blocks may be sitewide or partial (affecting only certain actions). In this way, blocking is designed to be a ''preventative'' measure and not a ''punitive'' one; "cool-down" blocks are not condoned. </div> <span id="Use"></span> == Użycie == <div lang="en" dir="ltr" class="mw-content-ltr"> Blocks may be applied for a number of reasons. The more common of these are detailed below: </div> * <span lang="en" dir="ltr" class="mw-content-ltr">'''[[Special:MyLanguage/WF:Vandalism|Vandalism]]'''. Disruptive editing may result in a block. For example:</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Insertion of gratuitous vulgarity</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Gibberish text</span> ** Usuwanie treści ze stron * '''Spam'''. * '''[[m:Special:MyLanguage/Copyright|Naruszenia praw autorskich]]'''. * '''[[m:Special:MyLanguage/Edit war|Wojna edycyjna]]'''. * <span lang="en" dir="ltr" class="mw-content-ltr">'''Personal attacks''' or '''harassment'''. Accounts and IP addresses which are used primarily to create a hostile environment for another user may be blocked. Good faith disputes between users, however, should be brought to [[WF:Project chat|project chat]] for outside input. Tracking a user's contributions for policy violations is not harassment.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Unauthorized or non-responsive [[Special:MyLanguage/WF:Bots|bot]] accounts'''. Bot accounts must be authorized by the Wikifunctions community. Questionable bot-like editing that cannot be explained by the user should be blocked until discussion takes place. Bot proposals can be discussed at [[WF:Bots]] or [[WF:Project chat|project chat]]. Bot approval can be sought at [[WF:Bots/Requests]].</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Approved bot accounts that are temporarily malfunctioning'''. This is to prevent additional damage until the bot-owner can address the problem.</span> * [[Special:MyLanguage/WF:Username policy#INAPPR|'''Nieodpowiednie nazwy użytkowników''']]. * <span lang="en" dir="ltr" class="mw-content-ltr">'''Evasion of blocks'''. An administrator may reset the block of a user who intentionally evades a block (and revert their contributions), and may extend the duration of the block if the user engages in further blockable behaviour while evading the block. User accounts or IP addresses used to evade a block may and should also be blocked.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Abusing multiple accounts''' to mislead, deceive, disrupt, distort consensus or to evade blocks or other sanctions. Secondary accounts are typically blocked indefinitely. The primary account may or may not be subject to new or extended blocks depending on the circumstances.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Open or anonymizing proxies''' are typically blocked upon detection in accordance with [[m:Special:MyLanguage/No open proxies|Wikimedia-wide policy]]. The normal duration of such blocks is one year.</span> <span id="Instructions_for_administrators"></span> == Instrukcje dla administratorów == <span id="Before_blocking"></span> === Przed zablokowaniem === * <span lang="en" dir="ltr" class="mw-content-ltr">For blocks based on disruptive behaviour, such as vandalism, repeated copyright violations and manual promotional activities, ensure that the user has been appropriately '''warned,''' preferably using a [[:Category:Block warning templates|block warning template]]. No warning is necessary when blocking open proxies and users with inappropriate or abusive usernames. Accounts and IP addresses used solely for severely disruptive purposes such as automated spamming, serious vandalism or harassment may also be blocked without prior warning.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Controversial blocks''' may be discussed at the [[WF:Administrators' noticeboard|blocks and protections noticeboard]], preferably before they are applied if at all possible. As a rule of thumb, when in doubt, do not block.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''[[:mw:Special:MyLanguage/Help:Range blocks|Range blocks]]''' are especially powerful tools, and discussion of these is particularly encouraged. Range blocks with a duration longer than 24 hours should be discussed with a {{pg|WF:Checkusers|checkuser}} to assess the likely impact.</span> <div lang="en" dir="ltr" class="mw-content-ltr"> === When blocking === </div> * Blokady mogą być nakładane na '''zarejestrowanych użytkowników, adresy IP oraz zakresy adresów IP.''' * Ponieważ blokady mają charakter zapobiegawczy, a nie karny, należy ustalić '''czas trwania''' blokady proporcjonalny do okresu, którego użytkownik prawdopodobnie potrzebuje, aby zapoznać się z odpowiednimi zasadami i zmienić swoje postępowanie. Należy również uwzględnić wcześniejsze zachowanie użytkownika oraz wagę spowodowanych zakłóceń. Przy blokowaniu adresów IP trzeba pamiętać, że blokada może dotknąć niewinne osoby trzecie korzystające z tych samych adresów. * Należy podać '''powód''' blokady. Uzasadnienie powinno w miarę możliwości zawierać odnośniki do odpowiednich zasad, aby pomóc zablokowanemu użytkownikowi zrozumieć przyczynę blokady. W stosownych przypadkach pomocne są również porównania wersji lub [[w:Help:Permanent link|stałe linki]] dokumentujące przyczynę blokady. * Możliwość '''tworzenia kont''' powinna być w większości przypadków wyłączona. Można ją jednak pozostawić włączoną w przypadku blokady za nieodpowiednią nazwę użytkownika, aby umożliwić utworzenie konta pod inną nazwą. * '''Automatyczne blokowanie''' adresów IP używanych przez zablokowanego użytkownika powinno być zazwyczaj włączone w przypadku użytkowników zablokowanych za destrukcyjne zachowanie. W większości pozostałych przypadków należy je wyłączyć, na przykład podczas blokowania nieprawidłowo działających botów oraz nazw użytkowników niezgodnych z {{pg|WF:Username policy|zasadami dotyczącymi nazw użytkowników}}. * Możliwość korzystania ze strony '''dyskusji użytkownika''' lub wysyłania '''wiadomości e-mail''' należy zablokować tylko wtedy, gdy istnieje prawdopodobieństwo nadużywania tych uprawnień. <span id="After_blocking"></span> === Po zablokowaniu === * Należy '''powiadomić''' zablokowanego użytkownika, najlepiej za pomocą [[:Category:User block templates|szablonu informacji o blokadzie]]. * Należy '''obserwować''' stronę dyskusji zablokowanego użytkownika i dopilnować, aby '''[[:Category:Requests for unblock|wnioski o odblokowanie]]''' były rozpatrywane. * Blokady nałożone z powodu destrukcyjnego zachowania powinny zostać '''zniesione''', jeśli istnieją podstawy, by sądzić, że zachowanie to się nie powtórzy. * '''Kontrowersyjne blokady''' można omawiać na [[Wikifunctions:Administrators' noticeboard|tablicy ogłoszeń dotyczącej blokad i zabezpieczeń]] również po ich nałożeniu. Aby uniknąć „wojny administratorów”, inny administrator powinien znieść blokadę tylko wtedy, gdy istnieje co do tego konsensus, nawet jeżeli nie ma wyraźnego konsensusu popierającego pierwotną blokadę. <span id="Appealing_a_block"></span> == Odwołanie od blokady == <div lang="en" dir="ltr" class="mw-content-ltr"> Blocked users are [[MediaWiki:Blockedtext|informed]] that they may '''request unblocking.''' They may do this by adding {{tld|unblock|''reason for the request''}} to their '''[[Special:MyTalk|own user talk page]].''' Alternatively, they may request unblocking with an appropriate reason via '''[[Special:EmailUser|e-mail]]''' to the blocking administrator or another administrator. </div> '''Odpowiednie uzasadnienie''' niemal zawsze zawiera jeden z następujących elementów: * '''Przyznanie się''', że blokada była uzasadniona, oraz '''wiarygodne zapewnienie''', że zachowanie, które do niej doprowadziło, nie powtórzy się * Wyjaśnienie, dlaczego blokada jest '''nieuzasadniona''' w świetle niniejszych oraz innych odpowiednich zasad i wytycznych albo dlaczego '''prawdopodobnie nałożono ją omyłkowo lub stanowi ona niezamierzony skutek uboczny'''. <div class="mw-translate-fuzzy"> Wniosek o odblokowanie może zostać '''[[Template:Unblock granted|zaakceptowany]]''' albo '''[[Template:Unblock declined|odrzucony]]]'''. Przed zaakceptowaniem wniosku dotyczącego blokady nałożonej przez innego administratora administrator rozpatrujący wniosek powinien '''skonsultować się z administratorem, który nałożył blokadę''', z wyjątkiem oczywistych i niebudzących kontrowersji przypadków. [[:Category:Requests for unblock|Wnioski składane na stronach dyskusji]] mogą być odrzucane wyłącznie przez '''administratora niezaangażowanego w sprawę'''. </div> Wielokrotne składanie wniosków o odblokowanie bez odpowiedniego uzasadnienia może zostać uznane za nadużycie. Jak wskazano powyżej, użytkownikom, którzy nadużywają lub prawdopodobnie będą nadużywać możliwości edytowania własnej strony dyskusji bądź wysyłania wiadomości e-mail, można odebrać jedno albo oba te uprawnienia. Uniemożliwi to również korzystanie z nich w celu składania kolejnych wniosków o odblokowanie. <span id="See_also"></span> == Zobacz też == <!-- * [[:Category:Block warning templates]] * [[:Category:User block templates]]--> * <span lang="en" dir="ltr" class="mw-content-ltr">[[m:Special:MyLanguage/Global locks|Global locks]], [[m:Special:MyLanguage/Global blocks|global blocks]], and [[m:Special:MyLanguage/Global bans|global bans]]: similar concepts spanning all Wikimedia projects</span> [[Category:Policy{{#translation:}}]] pr65u919dd102u7xumjgug5wv438ffl 334249 334247 2026-10-28T23:21:40Z Chrumps 3889 Created page with "Blokady mogą być nakładane z wielu powodów. Najczęstsze z nich opisano poniżej:" 334249 wikitext text/x-wiki {{draft}} <languages/> <div lang="en" dir="ltr" class="mw-content-ltr"> [[Special:MyLanguage/WF:Administrators|Administrators]] are given the ability to administer '''blocks''' to users when appropriate. A blocked user is usually restricted from editing, among other things. In a general sense, blocks are a last resort for behaviour that has the potential to damage Wikifunctions or disrupt its collegial atmosphere. Blocks may be sitewide or partial (affecting only certain actions). In this way, blocking is designed to be a ''preventative'' measure and not a ''punitive'' one; "cool-down" blocks are not condoned. </div> <span id="Use"></span> == Użycie == Blokady mogą być nakładane z wielu powodów. Najczęstsze z nich opisano poniżej: * <span lang="en" dir="ltr" class="mw-content-ltr">'''[[Special:MyLanguage/WF:Vandalism|Vandalism]]'''. Disruptive editing may result in a block. For example:</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Insertion of gratuitous vulgarity</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Gibberish text</span> ** Usuwanie treści ze stron * '''Spam'''. * '''[[m:Special:MyLanguage/Copyright|Naruszenia praw autorskich]]'''. * '''[[m:Special:MyLanguage/Edit war|Wojna edycyjna]]'''. * <span lang="en" dir="ltr" class="mw-content-ltr">'''Personal attacks''' or '''harassment'''. Accounts and IP addresses which are used primarily to create a hostile environment for another user may be blocked. Good faith disputes between users, however, should be brought to [[WF:Project chat|project chat]] for outside input. Tracking a user's contributions for policy violations is not harassment.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Unauthorized or non-responsive [[Special:MyLanguage/WF:Bots|bot]] accounts'''. Bot accounts must be authorized by the Wikifunctions community. Questionable bot-like editing that cannot be explained by the user should be blocked until discussion takes place. Bot proposals can be discussed at [[WF:Bots]] or [[WF:Project chat|project chat]]. Bot approval can be sought at [[WF:Bots/Requests]].</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Approved bot accounts that are temporarily malfunctioning'''. This is to prevent additional damage until the bot-owner can address the problem.</span> * [[Special:MyLanguage/WF:Username policy#INAPPR|'''Nieodpowiednie nazwy użytkowników''']]. * <span lang="en" dir="ltr" class="mw-content-ltr">'''Evasion of blocks'''. An administrator may reset the block of a user who intentionally evades a block (and revert their contributions), and may extend the duration of the block if the user engages in further blockable behaviour while evading the block. User accounts or IP addresses used to evade a block may and should also be blocked.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Abusing multiple accounts''' to mislead, deceive, disrupt, distort consensus or to evade blocks or other sanctions. Secondary accounts are typically blocked indefinitely. The primary account may or may not be subject to new or extended blocks depending on the circumstances.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Open or anonymizing proxies''' are typically blocked upon detection in accordance with [[m:Special:MyLanguage/No open proxies|Wikimedia-wide policy]]. The normal duration of such blocks is one year.</span> <span id="Instructions_for_administrators"></span> == Instrukcje dla administratorów == <span id="Before_blocking"></span> === Przed zablokowaniem === * <span lang="en" dir="ltr" class="mw-content-ltr">For blocks based on disruptive behaviour, such as vandalism, repeated copyright violations and manual promotional activities, ensure that the user has been appropriately '''warned,''' preferably using a [[:Category:Block warning templates|block warning template]]. No warning is necessary when blocking open proxies and users with inappropriate or abusive usernames. Accounts and IP addresses used solely for severely disruptive purposes such as automated spamming, serious vandalism or harassment may also be blocked without prior warning.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Controversial blocks''' may be discussed at the [[WF:Administrators' noticeboard|blocks and protections noticeboard]], preferably before they are applied if at all possible. As a rule of thumb, when in doubt, do not block.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''[[:mw:Special:MyLanguage/Help:Range blocks|Range blocks]]''' are especially powerful tools, and discussion of these is particularly encouraged. Range blocks with a duration longer than 24 hours should be discussed with a {{pg|WF:Checkusers|checkuser}} to assess the likely impact.</span> <div lang="en" dir="ltr" class="mw-content-ltr"> === When blocking === </div> * Blokady mogą być nakładane na '''zarejestrowanych użytkowników, adresy IP oraz zakresy adresów IP.''' * Ponieważ blokady mają charakter zapobiegawczy, a nie karny, należy ustalić '''czas trwania''' blokady proporcjonalny do okresu, którego użytkownik prawdopodobnie potrzebuje, aby zapoznać się z odpowiednimi zasadami i zmienić swoje postępowanie. Należy również uwzględnić wcześniejsze zachowanie użytkownika oraz wagę spowodowanych zakłóceń. Przy blokowaniu adresów IP trzeba pamiętać, że blokada może dotknąć niewinne osoby trzecie korzystające z tych samych adresów. * Należy podać '''powód''' blokady. Uzasadnienie powinno w miarę możliwości zawierać odnośniki do odpowiednich zasad, aby pomóc zablokowanemu użytkownikowi zrozumieć przyczynę blokady. W stosownych przypadkach pomocne są również porównania wersji lub [[w:Help:Permanent link|stałe linki]] dokumentujące przyczynę blokady. * Możliwość '''tworzenia kont''' powinna być w większości przypadków wyłączona. Można ją jednak pozostawić włączoną w przypadku blokady za nieodpowiednią nazwę użytkownika, aby umożliwić utworzenie konta pod inną nazwą. * '''Automatyczne blokowanie''' adresów IP używanych przez zablokowanego użytkownika powinno być zazwyczaj włączone w przypadku użytkowników zablokowanych za destrukcyjne zachowanie. W większości pozostałych przypadków należy je wyłączyć, na przykład podczas blokowania nieprawidłowo działających botów oraz nazw użytkowników niezgodnych z {{pg|WF:Username policy|zasadami dotyczącymi nazw użytkowników}}. * Możliwość korzystania ze strony '''dyskusji użytkownika''' lub wysyłania '''wiadomości e-mail''' należy zablokować tylko wtedy, gdy istnieje prawdopodobieństwo nadużywania tych uprawnień. <span id="After_blocking"></span> === Po zablokowaniu === * Należy '''powiadomić''' zablokowanego użytkownika, najlepiej za pomocą [[:Category:User block templates|szablonu informacji o blokadzie]]. * Należy '''obserwować''' stronę dyskusji zablokowanego użytkownika i dopilnować, aby '''[[:Category:Requests for unblock|wnioski o odblokowanie]]''' były rozpatrywane. * Blokady nałożone z powodu destrukcyjnego zachowania powinny zostać '''zniesione''', jeśli istnieją podstawy, by sądzić, że zachowanie to się nie powtórzy. * '''Kontrowersyjne blokady''' można omawiać na [[Wikifunctions:Administrators' noticeboard|tablicy ogłoszeń dotyczącej blokad i zabezpieczeń]] również po ich nałożeniu. Aby uniknąć „wojny administratorów”, inny administrator powinien znieść blokadę tylko wtedy, gdy istnieje co do tego konsensus, nawet jeżeli nie ma wyraźnego konsensusu popierającego pierwotną blokadę. <span id="Appealing_a_block"></span> == Odwołanie od blokady == <div lang="en" dir="ltr" class="mw-content-ltr"> Blocked users are [[MediaWiki:Blockedtext|informed]] that they may '''request unblocking.''' They may do this by adding {{tld|unblock|''reason for the request''}} to their '''[[Special:MyTalk|own user talk page]].''' Alternatively, they may request unblocking with an appropriate reason via '''[[Special:EmailUser|e-mail]]''' to the blocking administrator or another administrator. </div> '''Odpowiednie uzasadnienie''' niemal zawsze zawiera jeden z następujących elementów: * '''Przyznanie się''', że blokada była uzasadniona, oraz '''wiarygodne zapewnienie''', że zachowanie, które do niej doprowadziło, nie powtórzy się * Wyjaśnienie, dlaczego blokada jest '''nieuzasadniona''' w świetle niniejszych oraz innych odpowiednich zasad i wytycznych albo dlaczego '''prawdopodobnie nałożono ją omyłkowo lub stanowi ona niezamierzony skutek uboczny'''. <div class="mw-translate-fuzzy"> Wniosek o odblokowanie może zostać '''[[Template:Unblock granted|zaakceptowany]]''' albo '''[[Template:Unblock declined|odrzucony]]]'''. Przed zaakceptowaniem wniosku dotyczącego blokady nałożonej przez innego administratora administrator rozpatrujący wniosek powinien '''skonsultować się z administratorem, który nałożył blokadę''', z wyjątkiem oczywistych i niebudzących kontrowersji przypadków. [[:Category:Requests for unblock|Wnioski składane na stronach dyskusji]] mogą być odrzucane wyłącznie przez '''administratora niezaangażowanego w sprawę'''. </div> Wielokrotne składanie wniosków o odblokowanie bez odpowiedniego uzasadnienia może zostać uznane za nadużycie. Jak wskazano powyżej, użytkownikom, którzy nadużywają lub prawdopodobnie będą nadużywać możliwości edytowania własnej strony dyskusji bądź wysyłania wiadomości e-mail, można odebrać jedno albo oba te uprawnienia. Uniemożliwi to również korzystanie z nich w celu składania kolejnych wniosków o odblokowanie. <span id="See_also"></span> == Zobacz też == <!-- * [[:Category:Block warning templates]] * [[:Category:User block templates]]--> * <span lang="en" dir="ltr" class="mw-content-ltr">[[m:Special:MyLanguage/Global locks|Global locks]], [[m:Special:MyLanguage/Global blocks|global blocks]], and [[m:Special:MyLanguage/Global bans|global bans]]: similar concepts spanning all Wikimedia projects</span> [[Category:Policy{{#translation:}}]] 9pbwvltynifncuhq5bwnlnuq4ax1tc3 334251 334249 2026-10-28T23:22:08Z Chrumps 3889 Created page with "'''[[$1|Wandalizm]]]'''. Destrukcyjne edycje mogą skutkować blokadą. Przykłady:" 334251 wikitext text/x-wiki {{draft}} <languages/> <div lang="en" dir="ltr" class="mw-content-ltr"> [[Special:MyLanguage/WF:Administrators|Administrators]] are given the ability to administer '''blocks''' to users when appropriate. A blocked user is usually restricted from editing, among other things. In a general sense, blocks are a last resort for behaviour that has the potential to damage Wikifunctions or disrupt its collegial atmosphere. Blocks may be sitewide or partial (affecting only certain actions). In this way, blocking is designed to be a ''preventative'' measure and not a ''punitive'' one; "cool-down" blocks are not condoned. </div> <span id="Use"></span> == Użycie == Blokady mogą być nakładane z wielu powodów. Najczęstsze z nich opisano poniżej: * <span class="mw-translate-fuzzy">'''[[Special:MyLanguage/WF:Vandalism|Wandalizm]]]'''. Destrukcyjne edycje mogą skutkować blokadą. Przykłady:</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Insertion of gratuitous vulgarity</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Gibberish text</span> ** Usuwanie treści ze stron * '''Spam'''. * '''[[m:Special:MyLanguage/Copyright|Naruszenia praw autorskich]]'''. * '''[[m:Special:MyLanguage/Edit war|Wojna edycyjna]]'''. * <span lang="en" dir="ltr" class="mw-content-ltr">'''Personal attacks''' or '''harassment'''. Accounts and IP addresses which are used primarily to create a hostile environment for another user may be blocked. Good faith disputes between users, however, should be brought to [[WF:Project chat|project chat]] for outside input. Tracking a user's contributions for policy violations is not harassment.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Unauthorized or non-responsive [[Special:MyLanguage/WF:Bots|bot]] accounts'''. Bot accounts must be authorized by the Wikifunctions community. Questionable bot-like editing that cannot be explained by the user should be blocked until discussion takes place. Bot proposals can be discussed at [[WF:Bots]] or [[WF:Project chat|project chat]]. Bot approval can be sought at [[WF:Bots/Requests]].</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Approved bot accounts that are temporarily malfunctioning'''. This is to prevent additional damage until the bot-owner can address the problem.</span> * [[Special:MyLanguage/WF:Username policy#INAPPR|'''Nieodpowiednie nazwy użytkowników''']]. * <span lang="en" dir="ltr" class="mw-content-ltr">'''Evasion of blocks'''. An administrator may reset the block of a user who intentionally evades a block (and revert their contributions), and may extend the duration of the block if the user engages in further blockable behaviour while evading the block. User accounts or IP addresses used to evade a block may and should also be blocked.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Abusing multiple accounts''' to mislead, deceive, disrupt, distort consensus or to evade blocks or other sanctions. Secondary accounts are typically blocked indefinitely. The primary account may or may not be subject to new or extended blocks depending on the circumstances.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Open or anonymizing proxies''' are typically blocked upon detection in accordance with [[m:Special:MyLanguage/No open proxies|Wikimedia-wide policy]]. The normal duration of such blocks is one year.</span> <span id="Instructions_for_administrators"></span> == Instrukcje dla administratorów == <span id="Before_blocking"></span> === Przed zablokowaniem === * <span lang="en" dir="ltr" class="mw-content-ltr">For blocks based on disruptive behaviour, such as vandalism, repeated copyright violations and manual promotional activities, ensure that the user has been appropriately '''warned,''' preferably using a [[:Category:Block warning templates|block warning template]]. No warning is necessary when blocking open proxies and users with inappropriate or abusive usernames. Accounts and IP addresses used solely for severely disruptive purposes such as automated spamming, serious vandalism or harassment may also be blocked without prior warning.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Controversial blocks''' may be discussed at the [[WF:Administrators' noticeboard|blocks and protections noticeboard]], preferably before they are applied if at all possible. As a rule of thumb, when in doubt, do not block.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''[[:mw:Special:MyLanguage/Help:Range blocks|Range blocks]]''' are especially powerful tools, and discussion of these is particularly encouraged. Range blocks with a duration longer than 24 hours should be discussed with a {{pg|WF:Checkusers|checkuser}} to assess the likely impact.</span> <div lang="en" dir="ltr" class="mw-content-ltr"> === When blocking === </div> * Blokady mogą być nakładane na '''zarejestrowanych użytkowników, adresy IP oraz zakresy adresów IP.''' * Ponieważ blokady mają charakter zapobiegawczy, a nie karny, należy ustalić '''czas trwania''' blokady proporcjonalny do okresu, którego użytkownik prawdopodobnie potrzebuje, aby zapoznać się z odpowiednimi zasadami i zmienić swoje postępowanie. Należy również uwzględnić wcześniejsze zachowanie użytkownika oraz wagę spowodowanych zakłóceń. Przy blokowaniu adresów IP trzeba pamiętać, że blokada może dotknąć niewinne osoby trzecie korzystające z tych samych adresów. * Należy podać '''powód''' blokady. Uzasadnienie powinno w miarę możliwości zawierać odnośniki do odpowiednich zasad, aby pomóc zablokowanemu użytkownikowi zrozumieć przyczynę blokady. W stosownych przypadkach pomocne są również porównania wersji lub [[w:Help:Permanent link|stałe linki]] dokumentujące przyczynę blokady. * Możliwość '''tworzenia kont''' powinna być w większości przypadków wyłączona. Można ją jednak pozostawić włączoną w przypadku blokady za nieodpowiednią nazwę użytkownika, aby umożliwić utworzenie konta pod inną nazwą. * '''Automatyczne blokowanie''' adresów IP używanych przez zablokowanego użytkownika powinno być zazwyczaj włączone w przypadku użytkowników zablokowanych za destrukcyjne zachowanie. W większości pozostałych przypadków należy je wyłączyć, na przykład podczas blokowania nieprawidłowo działających botów oraz nazw użytkowników niezgodnych z {{pg|WF:Username policy|zasadami dotyczącymi nazw użytkowników}}. * Możliwość korzystania ze strony '''dyskusji użytkownika''' lub wysyłania '''wiadomości e-mail''' należy zablokować tylko wtedy, gdy istnieje prawdopodobieństwo nadużywania tych uprawnień. <span id="After_blocking"></span> === Po zablokowaniu === * Należy '''powiadomić''' zablokowanego użytkownika, najlepiej za pomocą [[:Category:User block templates|szablonu informacji o blokadzie]]. * Należy '''obserwować''' stronę dyskusji zablokowanego użytkownika i dopilnować, aby '''[[:Category:Requests for unblock|wnioski o odblokowanie]]''' były rozpatrywane. * Blokady nałożone z powodu destrukcyjnego zachowania powinny zostać '''zniesione''', jeśli istnieją podstawy, by sądzić, że zachowanie to się nie powtórzy. * '''Kontrowersyjne blokady''' można omawiać na [[Wikifunctions:Administrators' noticeboard|tablicy ogłoszeń dotyczącej blokad i zabezpieczeń]] również po ich nałożeniu. Aby uniknąć „wojny administratorów”, inny administrator powinien znieść blokadę tylko wtedy, gdy istnieje co do tego konsensus, nawet jeżeli nie ma wyraźnego konsensusu popierającego pierwotną blokadę. <span id="Appealing_a_block"></span> == Odwołanie od blokady == <div lang="en" dir="ltr" class="mw-content-ltr"> Blocked users are [[MediaWiki:Blockedtext|informed]] that they may '''request unblocking.''' They may do this by adding {{tld|unblock|''reason for the request''}} to their '''[[Special:MyTalk|own user talk page]].''' Alternatively, they may request unblocking with an appropriate reason via '''[[Special:EmailUser|e-mail]]''' to the blocking administrator or another administrator. </div> '''Odpowiednie uzasadnienie''' niemal zawsze zawiera jeden z następujących elementów: * '''Przyznanie się''', że blokada była uzasadniona, oraz '''wiarygodne zapewnienie''', że zachowanie, które do niej doprowadziło, nie powtórzy się * Wyjaśnienie, dlaczego blokada jest '''nieuzasadniona''' w świetle niniejszych oraz innych odpowiednich zasad i wytycznych albo dlaczego '''prawdopodobnie nałożono ją omyłkowo lub stanowi ona niezamierzony skutek uboczny'''. <div class="mw-translate-fuzzy"> Wniosek o odblokowanie może zostać '''[[Template:Unblock granted|zaakceptowany]]''' albo '''[[Template:Unblock declined|odrzucony]]]'''. Przed zaakceptowaniem wniosku dotyczącego blokady nałożonej przez innego administratora administrator rozpatrujący wniosek powinien '''skonsultować się z administratorem, który nałożył blokadę''', z wyjątkiem oczywistych i niebudzących kontrowersji przypadków. [[:Category:Requests for unblock|Wnioski składane na stronach dyskusji]] mogą być odrzucane wyłącznie przez '''administratora niezaangażowanego w sprawę'''. </div> Wielokrotne składanie wniosków o odblokowanie bez odpowiedniego uzasadnienia może zostać uznane za nadużycie. Jak wskazano powyżej, użytkownikom, którzy nadużywają lub prawdopodobnie będą nadużywać możliwości edytowania własnej strony dyskusji bądź wysyłania wiadomości e-mail, można odebrać jedno albo oba te uprawnienia. Uniemożliwi to również korzystanie z nich w celu składania kolejnych wniosków o odblokowanie. <span id="See_also"></span> == Zobacz też == <!-- * [[:Category:Block warning templates]] * [[:Category:User block templates]]--> * <span lang="en" dir="ltr" class="mw-content-ltr">[[m:Special:MyLanguage/Global locks|Global locks]], [[m:Special:MyLanguage/Global blocks|global blocks]], and [[m:Special:MyLanguage/Global bans|global bans]]: similar concepts spanning all Wikimedia projects</span> [[Category:Policy{{#translation:}}]] 0c7ieijs4ag7rzzvc9i5nzi5e77foqf 334253 334251 2026-10-28T23:22:22Z Chrumps 3889 Created page with "Wprowadzanie nieuzasadnionych wulgaryzmów" 334253 wikitext text/x-wiki {{draft}} <languages/> <div lang="en" dir="ltr" class="mw-content-ltr"> [[Special:MyLanguage/WF:Administrators|Administrators]] are given the ability to administer '''blocks''' to users when appropriate. A blocked user is usually restricted from editing, among other things. In a general sense, blocks are a last resort for behaviour that has the potential to damage Wikifunctions or disrupt its collegial atmosphere. Blocks may be sitewide or partial (affecting only certain actions). In this way, blocking is designed to be a ''preventative'' measure and not a ''punitive'' one; "cool-down" blocks are not condoned. </div> <span id="Use"></span> == Użycie == Blokady mogą być nakładane z wielu powodów. Najczęstsze z nich opisano poniżej: * <span class="mw-translate-fuzzy">'''[[Special:MyLanguage/WF:Vandalism|Wandalizm]]]'''. Destrukcyjne edycje mogą skutkować blokadą. Przykłady:</span> ** Wprowadzanie nieuzasadnionych wulgaryzmów ** <span lang="en" dir="ltr" class="mw-content-ltr">Gibberish text</span> ** Usuwanie treści ze stron * '''Spam'''. * '''[[m:Special:MyLanguage/Copyright|Naruszenia praw autorskich]]'''. * '''[[m:Special:MyLanguage/Edit war|Wojna edycyjna]]'''. * <span lang="en" dir="ltr" class="mw-content-ltr">'''Personal attacks''' or '''harassment'''. Accounts and IP addresses which are used primarily to create a hostile environment for another user may be blocked. Good faith disputes between users, however, should be brought to [[WF:Project chat|project chat]] for outside input. Tracking a user's contributions for policy violations is not harassment.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Unauthorized or non-responsive [[Special:MyLanguage/WF:Bots|bot]] accounts'''. Bot accounts must be authorized by the Wikifunctions community. Questionable bot-like editing that cannot be explained by the user should be blocked until discussion takes place. Bot proposals can be discussed at [[WF:Bots]] or [[WF:Project chat|project chat]]. Bot approval can be sought at [[WF:Bots/Requests]].</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Approved bot accounts that are temporarily malfunctioning'''. This is to prevent additional damage until the bot-owner can address the problem.</span> * [[Special:MyLanguage/WF:Username policy#INAPPR|'''Nieodpowiednie nazwy użytkowników''']]. * <span lang="en" dir="ltr" class="mw-content-ltr">'''Evasion of blocks'''. An administrator may reset the block of a user who intentionally evades a block (and revert their contributions), and may extend the duration of the block if the user engages in further blockable behaviour while evading the block. User accounts or IP addresses used to evade a block may and should also be blocked.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Abusing multiple accounts''' to mislead, deceive, disrupt, distort consensus or to evade blocks or other sanctions. Secondary accounts are typically blocked indefinitely. The primary account may or may not be subject to new or extended blocks depending on the circumstances.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Open or anonymizing proxies''' are typically blocked upon detection in accordance with [[m:Special:MyLanguage/No open proxies|Wikimedia-wide policy]]. The normal duration of such blocks is one year.</span> <span id="Instructions_for_administrators"></span> == Instrukcje dla administratorów == <span id="Before_blocking"></span> === Przed zablokowaniem === * <span lang="en" dir="ltr" class="mw-content-ltr">For blocks based on disruptive behaviour, such as vandalism, repeated copyright violations and manual promotional activities, ensure that the user has been appropriately '''warned,''' preferably using a [[:Category:Block warning templates|block warning template]]. No warning is necessary when blocking open proxies and users with inappropriate or abusive usernames. Accounts and IP addresses used solely for severely disruptive purposes such as automated spamming, serious vandalism or harassment may also be blocked without prior warning.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Controversial blocks''' may be discussed at the [[WF:Administrators' noticeboard|blocks and protections noticeboard]], preferably before they are applied if at all possible. As a rule of thumb, when in doubt, do not block.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''[[:mw:Special:MyLanguage/Help:Range blocks|Range blocks]]''' are especially powerful tools, and discussion of these is particularly encouraged. Range blocks with a duration longer than 24 hours should be discussed with a {{pg|WF:Checkusers|checkuser}} to assess the likely impact.</span> <div lang="en" dir="ltr" class="mw-content-ltr"> === When blocking === </div> * Blokady mogą być nakładane na '''zarejestrowanych użytkowników, adresy IP oraz zakresy adresów IP.''' * Ponieważ blokady mają charakter zapobiegawczy, a nie karny, należy ustalić '''czas trwania''' blokady proporcjonalny do okresu, którego użytkownik prawdopodobnie potrzebuje, aby zapoznać się z odpowiednimi zasadami i zmienić swoje postępowanie. Należy również uwzględnić wcześniejsze zachowanie użytkownika oraz wagę spowodowanych zakłóceń. Przy blokowaniu adresów IP trzeba pamiętać, że blokada może dotknąć niewinne osoby trzecie korzystające z tych samych adresów. * Należy podać '''powód''' blokady. Uzasadnienie powinno w miarę możliwości zawierać odnośniki do odpowiednich zasad, aby pomóc zablokowanemu użytkownikowi zrozumieć przyczynę blokady. W stosownych przypadkach pomocne są również porównania wersji lub [[w:Help:Permanent link|stałe linki]] dokumentujące przyczynę blokady. * Możliwość '''tworzenia kont''' powinna być w większości przypadków wyłączona. Można ją jednak pozostawić włączoną w przypadku blokady za nieodpowiednią nazwę użytkownika, aby umożliwić utworzenie konta pod inną nazwą. * '''Automatyczne blokowanie''' adresów IP używanych przez zablokowanego użytkownika powinno być zazwyczaj włączone w przypadku użytkowników zablokowanych za destrukcyjne zachowanie. W większości pozostałych przypadków należy je wyłączyć, na przykład podczas blokowania nieprawidłowo działających botów oraz nazw użytkowników niezgodnych z {{pg|WF:Username policy|zasadami dotyczącymi nazw użytkowników}}. * Możliwość korzystania ze strony '''dyskusji użytkownika''' lub wysyłania '''wiadomości e-mail''' należy zablokować tylko wtedy, gdy istnieje prawdopodobieństwo nadużywania tych uprawnień. <span id="After_blocking"></span> === Po zablokowaniu === * Należy '''powiadomić''' zablokowanego użytkownika, najlepiej za pomocą [[:Category:User block templates|szablonu informacji o blokadzie]]. * Należy '''obserwować''' stronę dyskusji zablokowanego użytkownika i dopilnować, aby '''[[:Category:Requests for unblock|wnioski o odblokowanie]]''' były rozpatrywane. * Blokady nałożone z powodu destrukcyjnego zachowania powinny zostać '''zniesione''', jeśli istnieją podstawy, by sądzić, że zachowanie to się nie powtórzy. * '''Kontrowersyjne blokady''' można omawiać na [[Wikifunctions:Administrators' noticeboard|tablicy ogłoszeń dotyczącej blokad i zabezpieczeń]] również po ich nałożeniu. Aby uniknąć „wojny administratorów”, inny administrator powinien znieść blokadę tylko wtedy, gdy istnieje co do tego konsensus, nawet jeżeli nie ma wyraźnego konsensusu popierającego pierwotną blokadę. <span id="Appealing_a_block"></span> == Odwołanie od blokady == <div lang="en" dir="ltr" class="mw-content-ltr"> Blocked users are [[MediaWiki:Blockedtext|informed]] that they may '''request unblocking.''' They may do this by adding {{tld|unblock|''reason for the request''}} to their '''[[Special:MyTalk|own user talk page]].''' Alternatively, they may request unblocking with an appropriate reason via '''[[Special:EmailUser|e-mail]]''' to the blocking administrator or another administrator. </div> '''Odpowiednie uzasadnienie''' niemal zawsze zawiera jeden z następujących elementów: * '''Przyznanie się''', że blokada była uzasadniona, oraz '''wiarygodne zapewnienie''', że zachowanie, które do niej doprowadziło, nie powtórzy się * Wyjaśnienie, dlaczego blokada jest '''nieuzasadniona''' w świetle niniejszych oraz innych odpowiednich zasad i wytycznych albo dlaczego '''prawdopodobnie nałożono ją omyłkowo lub stanowi ona niezamierzony skutek uboczny'''. <div class="mw-translate-fuzzy"> Wniosek o odblokowanie może zostać '''[[Template:Unblock granted|zaakceptowany]]''' albo '''[[Template:Unblock declined|odrzucony]]]'''. Przed zaakceptowaniem wniosku dotyczącego blokady nałożonej przez innego administratora administrator rozpatrujący wniosek powinien '''skonsultować się z administratorem, który nałożył blokadę''', z wyjątkiem oczywistych i niebudzących kontrowersji przypadków. [[:Category:Requests for unblock|Wnioski składane na stronach dyskusji]] mogą być odrzucane wyłącznie przez '''administratora niezaangażowanego w sprawę'''. </div> Wielokrotne składanie wniosków o odblokowanie bez odpowiedniego uzasadnienia może zostać uznane za nadużycie. Jak wskazano powyżej, użytkownikom, którzy nadużywają lub prawdopodobnie będą nadużywać możliwości edytowania własnej strony dyskusji bądź wysyłania wiadomości e-mail, można odebrać jedno albo oba te uprawnienia. Uniemożliwi to również korzystanie z nich w celu składania kolejnych wniosków o odblokowanie. <span id="See_also"></span> == Zobacz też == <!-- * [[:Category:Block warning templates]] * [[:Category:User block templates]]--> * <span lang="en" dir="ltr" class="mw-content-ltr">[[m:Special:MyLanguage/Global locks|Global locks]], [[m:Special:MyLanguage/Global blocks|global blocks]], and [[m:Special:MyLanguage/Global bans|global bans]]: similar concepts spanning all Wikimedia projects</span> [[Category:Policy{{#translation:}}]] 5op7mpgdt5fzmqlrorkpi7fhvwq70o1 334255 334253 2026-10-28T23:22:31Z Chrumps 3889 Created page with "Dodawanie bezsensownego tekstu" 334255 wikitext text/x-wiki {{draft}} <languages/> <div lang="en" dir="ltr" class="mw-content-ltr"> [[Special:MyLanguage/WF:Administrators|Administrators]] are given the ability to administer '''blocks''' to users when appropriate. A blocked user is usually restricted from editing, among other things. In a general sense, blocks are a last resort for behaviour that has the potential to damage Wikifunctions or disrupt its collegial atmosphere. Blocks may be sitewide or partial (affecting only certain actions). In this way, blocking is designed to be a ''preventative'' measure and not a ''punitive'' one; "cool-down" blocks are not condoned. </div> <span id="Use"></span> == Użycie == Blokady mogą być nakładane z wielu powodów. Najczęstsze z nich opisano poniżej: * <span class="mw-translate-fuzzy">'''[[Special:MyLanguage/WF:Vandalism|Wandalizm]]]'''. Destrukcyjne edycje mogą skutkować blokadą. Przykłady:</span> ** Wprowadzanie nieuzasadnionych wulgaryzmów ** Dodawanie bezsensownego tekstu ** Usuwanie treści ze stron * '''Spam'''. * '''[[m:Special:MyLanguage/Copyright|Naruszenia praw autorskich]]'''. * '''[[m:Special:MyLanguage/Edit war|Wojna edycyjna]]'''. * <span lang="en" dir="ltr" class="mw-content-ltr">'''Personal attacks''' or '''harassment'''. Accounts and IP addresses which are used primarily to create a hostile environment for another user may be blocked. Good faith disputes between users, however, should be brought to [[WF:Project chat|project chat]] for outside input. Tracking a user's contributions for policy violations is not harassment.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Unauthorized or non-responsive [[Special:MyLanguage/WF:Bots|bot]] accounts'''. Bot accounts must be authorized by the Wikifunctions community. Questionable bot-like editing that cannot be explained by the user should be blocked until discussion takes place. Bot proposals can be discussed at [[WF:Bots]] or [[WF:Project chat|project chat]]. Bot approval can be sought at [[WF:Bots/Requests]].</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Approved bot accounts that are temporarily malfunctioning'''. This is to prevent additional damage until the bot-owner can address the problem.</span> * [[Special:MyLanguage/WF:Username policy#INAPPR|'''Nieodpowiednie nazwy użytkowników''']]. * <span lang="en" dir="ltr" class="mw-content-ltr">'''Evasion of blocks'''. An administrator may reset the block of a user who intentionally evades a block (and revert their contributions), and may extend the duration of the block if the user engages in further blockable behaviour while evading the block. User accounts or IP addresses used to evade a block may and should also be blocked.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Abusing multiple accounts''' to mislead, deceive, disrupt, distort consensus or to evade blocks or other sanctions. Secondary accounts are typically blocked indefinitely. The primary account may or may not be subject to new or extended blocks depending on the circumstances.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Open or anonymizing proxies''' are typically blocked upon detection in accordance with [[m:Special:MyLanguage/No open proxies|Wikimedia-wide policy]]. The normal duration of such blocks is one year.</span> <span id="Instructions_for_administrators"></span> == Instrukcje dla administratorów == <span id="Before_blocking"></span> === Przed zablokowaniem === * <span lang="en" dir="ltr" class="mw-content-ltr">For blocks based on disruptive behaviour, such as vandalism, repeated copyright violations and manual promotional activities, ensure that the user has been appropriately '''warned,''' preferably using a [[:Category:Block warning templates|block warning template]]. No warning is necessary when blocking open proxies and users with inappropriate or abusive usernames. Accounts and IP addresses used solely for severely disruptive purposes such as automated spamming, serious vandalism or harassment may also be blocked without prior warning.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Controversial blocks''' may be discussed at the [[WF:Administrators' noticeboard|blocks and protections noticeboard]], preferably before they are applied if at all possible. As a rule of thumb, when in doubt, do not block.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''[[:mw:Special:MyLanguage/Help:Range blocks|Range blocks]]''' are especially powerful tools, and discussion of these is particularly encouraged. Range blocks with a duration longer than 24 hours should be discussed with a {{pg|WF:Checkusers|checkuser}} to assess the likely impact.</span> <div lang="en" dir="ltr" class="mw-content-ltr"> === When blocking === </div> * Blokady mogą być nakładane na '''zarejestrowanych użytkowników, adresy IP oraz zakresy adresów IP.''' * Ponieważ blokady mają charakter zapobiegawczy, a nie karny, należy ustalić '''czas trwania''' blokady proporcjonalny do okresu, którego użytkownik prawdopodobnie potrzebuje, aby zapoznać się z odpowiednimi zasadami i zmienić swoje postępowanie. Należy również uwzględnić wcześniejsze zachowanie użytkownika oraz wagę spowodowanych zakłóceń. Przy blokowaniu adresów IP trzeba pamiętać, że blokada może dotknąć niewinne osoby trzecie korzystające z tych samych adresów. * Należy podać '''powód''' blokady. Uzasadnienie powinno w miarę możliwości zawierać odnośniki do odpowiednich zasad, aby pomóc zablokowanemu użytkownikowi zrozumieć przyczynę blokady. W stosownych przypadkach pomocne są również porównania wersji lub [[w:Help:Permanent link|stałe linki]] dokumentujące przyczynę blokady. * Możliwość '''tworzenia kont''' powinna być w większości przypadków wyłączona. Można ją jednak pozostawić włączoną w przypadku blokady za nieodpowiednią nazwę użytkownika, aby umożliwić utworzenie konta pod inną nazwą. * '''Automatyczne blokowanie''' adresów IP używanych przez zablokowanego użytkownika powinno być zazwyczaj włączone w przypadku użytkowników zablokowanych za destrukcyjne zachowanie. W większości pozostałych przypadków należy je wyłączyć, na przykład podczas blokowania nieprawidłowo działających botów oraz nazw użytkowników niezgodnych z {{pg|WF:Username policy|zasadami dotyczącymi nazw użytkowników}}. * Możliwość korzystania ze strony '''dyskusji użytkownika''' lub wysyłania '''wiadomości e-mail''' należy zablokować tylko wtedy, gdy istnieje prawdopodobieństwo nadużywania tych uprawnień. <span id="After_blocking"></span> === Po zablokowaniu === * Należy '''powiadomić''' zablokowanego użytkownika, najlepiej za pomocą [[:Category:User block templates|szablonu informacji o blokadzie]]. * Należy '''obserwować''' stronę dyskusji zablokowanego użytkownika i dopilnować, aby '''[[:Category:Requests for unblock|wnioski o odblokowanie]]''' były rozpatrywane. * Blokady nałożone z powodu destrukcyjnego zachowania powinny zostać '''zniesione''', jeśli istnieją podstawy, by sądzić, że zachowanie to się nie powtórzy. * '''Kontrowersyjne blokady''' można omawiać na [[Wikifunctions:Administrators' noticeboard|tablicy ogłoszeń dotyczącej blokad i zabezpieczeń]] również po ich nałożeniu. Aby uniknąć „wojny administratorów”, inny administrator powinien znieść blokadę tylko wtedy, gdy istnieje co do tego konsensus, nawet jeżeli nie ma wyraźnego konsensusu popierającego pierwotną blokadę. <span id="Appealing_a_block"></span> == Odwołanie od blokady == <div lang="en" dir="ltr" class="mw-content-ltr"> Blocked users are [[MediaWiki:Blockedtext|informed]] that they may '''request unblocking.''' They may do this by adding {{tld|unblock|''reason for the request''}} to their '''[[Special:MyTalk|own user talk page]].''' Alternatively, they may request unblocking with an appropriate reason via '''[[Special:EmailUser|e-mail]]''' to the blocking administrator or another administrator. </div> '''Odpowiednie uzasadnienie''' niemal zawsze zawiera jeden z następujących elementów: * '''Przyznanie się''', że blokada była uzasadniona, oraz '''wiarygodne zapewnienie''', że zachowanie, które do niej doprowadziło, nie powtórzy się * Wyjaśnienie, dlaczego blokada jest '''nieuzasadniona''' w świetle niniejszych oraz innych odpowiednich zasad i wytycznych albo dlaczego '''prawdopodobnie nałożono ją omyłkowo lub stanowi ona niezamierzony skutek uboczny'''. <div class="mw-translate-fuzzy"> Wniosek o odblokowanie może zostać '''[[Template:Unblock granted|zaakceptowany]]''' albo '''[[Template:Unblock declined|odrzucony]]]'''. Przed zaakceptowaniem wniosku dotyczącego blokady nałożonej przez innego administratora administrator rozpatrujący wniosek powinien '''skonsultować się z administratorem, który nałożył blokadę''', z wyjątkiem oczywistych i niebudzących kontrowersji przypadków. [[:Category:Requests for unblock|Wnioski składane na stronach dyskusji]] mogą być odrzucane wyłącznie przez '''administratora niezaangażowanego w sprawę'''. </div> Wielokrotne składanie wniosków o odblokowanie bez odpowiedniego uzasadnienia może zostać uznane za nadużycie. Jak wskazano powyżej, użytkownikom, którzy nadużywają lub prawdopodobnie będą nadużywać możliwości edytowania własnej strony dyskusji bądź wysyłania wiadomości e-mail, można odebrać jedno albo oba te uprawnienia. Uniemożliwi to również korzystanie z nich w celu składania kolejnych wniosków o odblokowanie. <span id="See_also"></span> == Zobacz też == <!-- * [[:Category:Block warning templates]] * [[:Category:User block templates]]--> * <span lang="en" dir="ltr" class="mw-content-ltr">[[m:Special:MyLanguage/Global locks|Global locks]], [[m:Special:MyLanguage/Global blocks|global blocks]], and [[m:Special:MyLanguage/Global bans|global bans]]: similar concepts spanning all Wikimedia projects</span> [[Category:Policy{{#translation:}}]] kn1pvs4oe3c49mu231tydj3ni6ef7j9 334257 334255 2026-10-28T23:23:34Z Chrumps 3889 Created page with "'''Ataki osobiste''' lub '''nękanie'''. Konta i adresy IP wykorzystywane przede wszystkim do tworzenia wrogiej atmosfery wobec innego użytkownika mogą zostać zablokowane. Spory prowadzone w dobrej wierze należy jednak przedstawiać w [[WF:Project chat|dyskusji projektu]], aby umożliwić udział osobom postronnym. Monitorowanie wkładu użytkownika pod kątem naruszeń zasad nie jest nękaniem." 334257 wikitext text/x-wiki {{draft}} <languages/> <div lang="en" dir="ltr" class="mw-content-ltr"> [[Special:MyLanguage/WF:Administrators|Administrators]] are given the ability to administer '''blocks''' to users when appropriate. A blocked user is usually restricted from editing, among other things. In a general sense, blocks are a last resort for behaviour that has the potential to damage Wikifunctions or disrupt its collegial atmosphere. Blocks may be sitewide or partial (affecting only certain actions). In this way, blocking is designed to be a ''preventative'' measure and not a ''punitive'' one; "cool-down" blocks are not condoned. </div> <span id="Use"></span> == Użycie == Blokady mogą być nakładane z wielu powodów. Najczęstsze z nich opisano poniżej: * <span class="mw-translate-fuzzy">'''[[Special:MyLanguage/WF:Vandalism|Wandalizm]]]'''. Destrukcyjne edycje mogą skutkować blokadą. Przykłady:</span> ** Wprowadzanie nieuzasadnionych wulgaryzmów ** Dodawanie bezsensownego tekstu ** Usuwanie treści ze stron * '''Spam'''. * '''[[m:Special:MyLanguage/Copyright|Naruszenia praw autorskich]]'''. * '''[[m:Special:MyLanguage/Edit war|Wojna edycyjna]]'''. * '''Ataki osobiste''' lub '''nękanie'''. Konta i adresy IP wykorzystywane przede wszystkim do tworzenia wrogiej atmosfery wobec innego użytkownika mogą zostać zablokowane. Spory prowadzone w dobrej wierze należy jednak przedstawiać w [[WF:Project chat|dyskusji projektu]], aby umożliwić udział osobom postronnym. Monitorowanie wkładu użytkownika pod kątem naruszeń zasad nie jest nękaniem. * <span lang="en" dir="ltr" class="mw-content-ltr">'''Unauthorized or non-responsive [[Special:MyLanguage/WF:Bots|bot]] accounts'''. Bot accounts must be authorized by the Wikifunctions community. Questionable bot-like editing that cannot be explained by the user should be blocked until discussion takes place. Bot proposals can be discussed at [[WF:Bots]] or [[WF:Project chat|project chat]]. Bot approval can be sought at [[WF:Bots/Requests]].</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Approved bot accounts that are temporarily malfunctioning'''. This is to prevent additional damage until the bot-owner can address the problem.</span> * [[Special:MyLanguage/WF:Username policy#INAPPR|'''Nieodpowiednie nazwy użytkowników''']]. * <span lang="en" dir="ltr" class="mw-content-ltr">'''Evasion of blocks'''. An administrator may reset the block of a user who intentionally evades a block (and revert their contributions), and may extend the duration of the block if the user engages in further blockable behaviour while evading the block. User accounts or IP addresses used to evade a block may and should also be blocked.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Abusing multiple accounts''' to mislead, deceive, disrupt, distort consensus or to evade blocks or other sanctions. Secondary accounts are typically blocked indefinitely. The primary account may or may not be subject to new or extended blocks depending on the circumstances.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Open or anonymizing proxies''' are typically blocked upon detection in accordance with [[m:Special:MyLanguage/No open proxies|Wikimedia-wide policy]]. The normal duration of such blocks is one year.</span> <span id="Instructions_for_administrators"></span> == Instrukcje dla administratorów == <span id="Before_blocking"></span> === Przed zablokowaniem === * <span lang="en" dir="ltr" class="mw-content-ltr">For blocks based on disruptive behaviour, such as vandalism, repeated copyright violations and manual promotional activities, ensure that the user has been appropriately '''warned,''' preferably using a [[:Category:Block warning templates|block warning template]]. No warning is necessary when blocking open proxies and users with inappropriate or abusive usernames. Accounts and IP addresses used solely for severely disruptive purposes such as automated spamming, serious vandalism or harassment may also be blocked without prior warning.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Controversial blocks''' may be discussed at the [[WF:Administrators' noticeboard|blocks and protections noticeboard]], preferably before they are applied if at all possible. As a rule of thumb, when in doubt, do not block.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''[[:mw:Special:MyLanguage/Help:Range blocks|Range blocks]]''' are especially powerful tools, and discussion of these is particularly encouraged. Range blocks with a duration longer than 24 hours should be discussed with a {{pg|WF:Checkusers|checkuser}} to assess the likely impact.</span> <div lang="en" dir="ltr" class="mw-content-ltr"> === When blocking === </div> * Blokady mogą być nakładane na '''zarejestrowanych użytkowników, adresy IP oraz zakresy adresów IP.''' * Ponieważ blokady mają charakter zapobiegawczy, a nie karny, należy ustalić '''czas trwania''' blokady proporcjonalny do okresu, którego użytkownik prawdopodobnie potrzebuje, aby zapoznać się z odpowiednimi zasadami i zmienić swoje postępowanie. Należy również uwzględnić wcześniejsze zachowanie użytkownika oraz wagę spowodowanych zakłóceń. Przy blokowaniu adresów IP trzeba pamiętać, że blokada może dotknąć niewinne osoby trzecie korzystające z tych samych adresów. * Należy podać '''powód''' blokady. Uzasadnienie powinno w miarę możliwości zawierać odnośniki do odpowiednich zasad, aby pomóc zablokowanemu użytkownikowi zrozumieć przyczynę blokady. W stosownych przypadkach pomocne są również porównania wersji lub [[w:Help:Permanent link|stałe linki]] dokumentujące przyczynę blokady. * Możliwość '''tworzenia kont''' powinna być w większości przypadków wyłączona. Można ją jednak pozostawić włączoną w przypadku blokady za nieodpowiednią nazwę użytkownika, aby umożliwić utworzenie konta pod inną nazwą. * '''Automatyczne blokowanie''' adresów IP używanych przez zablokowanego użytkownika powinno być zazwyczaj włączone w przypadku użytkowników zablokowanych za destrukcyjne zachowanie. W większości pozostałych przypadków należy je wyłączyć, na przykład podczas blokowania nieprawidłowo działających botów oraz nazw użytkowników niezgodnych z {{pg|WF:Username policy|zasadami dotyczącymi nazw użytkowników}}. * Możliwość korzystania ze strony '''dyskusji użytkownika''' lub wysyłania '''wiadomości e-mail''' należy zablokować tylko wtedy, gdy istnieje prawdopodobieństwo nadużywania tych uprawnień. <span id="After_blocking"></span> === Po zablokowaniu === * Należy '''powiadomić''' zablokowanego użytkownika, najlepiej za pomocą [[:Category:User block templates|szablonu informacji o blokadzie]]. * Należy '''obserwować''' stronę dyskusji zablokowanego użytkownika i dopilnować, aby '''[[:Category:Requests for unblock|wnioski o odblokowanie]]''' były rozpatrywane. * Blokady nałożone z powodu destrukcyjnego zachowania powinny zostać '''zniesione''', jeśli istnieją podstawy, by sądzić, że zachowanie to się nie powtórzy. * '''Kontrowersyjne blokady''' można omawiać na [[Wikifunctions:Administrators' noticeboard|tablicy ogłoszeń dotyczącej blokad i zabezpieczeń]] również po ich nałożeniu. Aby uniknąć „wojny administratorów”, inny administrator powinien znieść blokadę tylko wtedy, gdy istnieje co do tego konsensus, nawet jeżeli nie ma wyraźnego konsensusu popierającego pierwotną blokadę. <span id="Appealing_a_block"></span> == Odwołanie od blokady == <div lang="en" dir="ltr" class="mw-content-ltr"> Blocked users are [[MediaWiki:Blockedtext|informed]] that they may '''request unblocking.''' They may do this by adding {{tld|unblock|''reason for the request''}} to their '''[[Special:MyTalk|own user talk page]].''' Alternatively, they may request unblocking with an appropriate reason via '''[[Special:EmailUser|e-mail]]''' to the blocking administrator or another administrator. </div> '''Odpowiednie uzasadnienie''' niemal zawsze zawiera jeden z następujących elementów: * '''Przyznanie się''', że blokada była uzasadniona, oraz '''wiarygodne zapewnienie''', że zachowanie, które do niej doprowadziło, nie powtórzy się * Wyjaśnienie, dlaczego blokada jest '''nieuzasadniona''' w świetle niniejszych oraz innych odpowiednich zasad i wytycznych albo dlaczego '''prawdopodobnie nałożono ją omyłkowo lub stanowi ona niezamierzony skutek uboczny'''. <div class="mw-translate-fuzzy"> Wniosek o odblokowanie może zostać '''[[Template:Unblock granted|zaakceptowany]]''' albo '''[[Template:Unblock declined|odrzucony]]]'''. Przed zaakceptowaniem wniosku dotyczącego blokady nałożonej przez innego administratora administrator rozpatrujący wniosek powinien '''skonsultować się z administratorem, który nałożył blokadę''', z wyjątkiem oczywistych i niebudzących kontrowersji przypadków. [[:Category:Requests for unblock|Wnioski składane na stronach dyskusji]] mogą być odrzucane wyłącznie przez '''administratora niezaangażowanego w sprawę'''. </div> Wielokrotne składanie wniosków o odblokowanie bez odpowiedniego uzasadnienia może zostać uznane za nadużycie. Jak wskazano powyżej, użytkownikom, którzy nadużywają lub prawdopodobnie będą nadużywać możliwości edytowania własnej strony dyskusji bądź wysyłania wiadomości e-mail, można odebrać jedno albo oba te uprawnienia. Uniemożliwi to również korzystanie z nich w celu składania kolejnych wniosków o odblokowanie. <span id="See_also"></span> == Zobacz też == <!-- * [[:Category:Block warning templates]] * [[:Category:User block templates]]--> * <span lang="en" dir="ltr" class="mw-content-ltr">[[m:Special:MyLanguage/Global locks|Global locks]], [[m:Special:MyLanguage/Global blocks|global blocks]], and [[m:Special:MyLanguage/Global bans|global bans]]: similar concepts spanning all Wikimedia projects</span> [[Category:Policy{{#translation:}}]] 0ent3b9rx6t49k7vf1b2q3gjjy1mgq0 334259 334257 2026-10-28T23:24:46Z Chrumps 3889 Created page with "'''Nieautoryzowane lub niereagujące konta [[$1|botów]]. Konta botów muszą zostać zatwierdzone przez społeczność Wikifunkcji. Budzące wątpliwości edycje przypominające działanie bota, których użytkownik nie potrafi wyjaśnić, powinny skutkować blokadą do czasu przeprowadzenia dyskusji. Propozycje dotyczące botów można omawiać na stronie [[WF:Bots]] albo w [[WF:Project chat|dyskusji projektu]]. O zatwierdzenie bota można wystąpić na stronie WF:Bo..." 334259 wikitext text/x-wiki {{draft}} <languages/> <div lang="en" dir="ltr" class="mw-content-ltr"> [[Special:MyLanguage/WF:Administrators|Administrators]] are given the ability to administer '''blocks''' to users when appropriate. A blocked user is usually restricted from editing, among other things. In a general sense, blocks are a last resort for behaviour that has the potential to damage Wikifunctions or disrupt its collegial atmosphere. Blocks may be sitewide or partial (affecting only certain actions). In this way, blocking is designed to be a ''preventative'' measure and not a ''punitive'' one; "cool-down" blocks are not condoned. </div> <span id="Use"></span> == Użycie == Blokady mogą być nakładane z wielu powodów. Najczęstsze z nich opisano poniżej: * <span class="mw-translate-fuzzy">'''[[Special:MyLanguage/WF:Vandalism|Wandalizm]]]'''. Destrukcyjne edycje mogą skutkować blokadą. Przykłady:</span> ** Wprowadzanie nieuzasadnionych wulgaryzmów ** Dodawanie bezsensownego tekstu ** Usuwanie treści ze stron * '''Spam'''. * '''[[m:Special:MyLanguage/Copyright|Naruszenia praw autorskich]]'''. * '''[[m:Special:MyLanguage/Edit war|Wojna edycyjna]]'''. * '''Ataki osobiste''' lub '''nękanie'''. Konta i adresy IP wykorzystywane przede wszystkim do tworzenia wrogiej atmosfery wobec innego użytkownika mogą zostać zablokowane. Spory prowadzone w dobrej wierze należy jednak przedstawiać w [[WF:Project chat|dyskusji projektu]], aby umożliwić udział osobom postronnym. Monitorowanie wkładu użytkownika pod kątem naruszeń zasad nie jest nękaniem. * '''Nieautoryzowane lub niereagujące konta [[Special:MyLanguage/WF:Bots|botów]]. Konta botów muszą zostać zatwierdzone przez społeczność Wikifunkcji. Budzące wątpliwości edycje przypominające działanie bota, których użytkownik nie potrafi wyjaśnić, powinny skutkować blokadą do czasu przeprowadzenia dyskusji. Propozycje dotyczące botów można omawiać na stronie [[WF:Bots]] albo w [[WF:Project chat|dyskusji projektu]]. O zatwierdzenie bota można wystąpić na stronie [[WF:Bots/Requests]]. * <span lang="en" dir="ltr" class="mw-content-ltr">'''Approved bot accounts that are temporarily malfunctioning'''. This is to prevent additional damage until the bot-owner can address the problem.</span> * [[Special:MyLanguage/WF:Username policy#INAPPR|'''Nieodpowiednie nazwy użytkowników''']]. * <span lang="en" dir="ltr" class="mw-content-ltr">'''Evasion of blocks'''. An administrator may reset the block of a user who intentionally evades a block (and revert their contributions), and may extend the duration of the block if the user engages in further blockable behaviour while evading the block. User accounts or IP addresses used to evade a block may and should also be blocked.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Abusing multiple accounts''' to mislead, deceive, disrupt, distort consensus or to evade blocks or other sanctions. Secondary accounts are typically blocked indefinitely. The primary account may or may not be subject to new or extended blocks depending on the circumstances.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Open or anonymizing proxies''' are typically blocked upon detection in accordance with [[m:Special:MyLanguage/No open proxies|Wikimedia-wide policy]]. The normal duration of such blocks is one year.</span> <span id="Instructions_for_administrators"></span> == Instrukcje dla administratorów == <span id="Before_blocking"></span> === Przed zablokowaniem === * <span lang="en" dir="ltr" class="mw-content-ltr">For blocks based on disruptive behaviour, such as vandalism, repeated copyright violations and manual promotional activities, ensure that the user has been appropriately '''warned,''' preferably using a [[:Category:Block warning templates|block warning template]]. No warning is necessary when blocking open proxies and users with inappropriate or abusive usernames. Accounts and IP addresses used solely for severely disruptive purposes such as automated spamming, serious vandalism or harassment may also be blocked without prior warning.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Controversial blocks''' may be discussed at the [[WF:Administrators' noticeboard|blocks and protections noticeboard]], preferably before they are applied if at all possible. As a rule of thumb, when in doubt, do not block.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''[[:mw:Special:MyLanguage/Help:Range blocks|Range blocks]]''' are especially powerful tools, and discussion of these is particularly encouraged. Range blocks with a duration longer than 24 hours should be discussed with a {{pg|WF:Checkusers|checkuser}} to assess the likely impact.</span> <div lang="en" dir="ltr" class="mw-content-ltr"> === When blocking === </div> * Blokady mogą być nakładane na '''zarejestrowanych użytkowników, adresy IP oraz zakresy adresów IP.''' * Ponieważ blokady mają charakter zapobiegawczy, a nie karny, należy ustalić '''czas trwania''' blokady proporcjonalny do okresu, którego użytkownik prawdopodobnie potrzebuje, aby zapoznać się z odpowiednimi zasadami i zmienić swoje postępowanie. Należy również uwzględnić wcześniejsze zachowanie użytkownika oraz wagę spowodowanych zakłóceń. Przy blokowaniu adresów IP trzeba pamiętać, że blokada może dotknąć niewinne osoby trzecie korzystające z tych samych adresów. * Należy podać '''powód''' blokady. Uzasadnienie powinno w miarę możliwości zawierać odnośniki do odpowiednich zasad, aby pomóc zablokowanemu użytkownikowi zrozumieć przyczynę blokady. W stosownych przypadkach pomocne są również porównania wersji lub [[w:Help:Permanent link|stałe linki]] dokumentujące przyczynę blokady. * Możliwość '''tworzenia kont''' powinna być w większości przypadków wyłączona. Można ją jednak pozostawić włączoną w przypadku blokady za nieodpowiednią nazwę użytkownika, aby umożliwić utworzenie konta pod inną nazwą. * '''Automatyczne blokowanie''' adresów IP używanych przez zablokowanego użytkownika powinno być zazwyczaj włączone w przypadku użytkowników zablokowanych za destrukcyjne zachowanie. W większości pozostałych przypadków należy je wyłączyć, na przykład podczas blokowania nieprawidłowo działających botów oraz nazw użytkowników niezgodnych z {{pg|WF:Username policy|zasadami dotyczącymi nazw użytkowników}}. * Możliwość korzystania ze strony '''dyskusji użytkownika''' lub wysyłania '''wiadomości e-mail''' należy zablokować tylko wtedy, gdy istnieje prawdopodobieństwo nadużywania tych uprawnień. <span id="After_blocking"></span> === Po zablokowaniu === * Należy '''powiadomić''' zablokowanego użytkownika, najlepiej za pomocą [[:Category:User block templates|szablonu informacji o blokadzie]]. * Należy '''obserwować''' stronę dyskusji zablokowanego użytkownika i dopilnować, aby '''[[:Category:Requests for unblock|wnioski o odblokowanie]]''' były rozpatrywane. * Blokady nałożone z powodu destrukcyjnego zachowania powinny zostać '''zniesione''', jeśli istnieją podstawy, by sądzić, że zachowanie to się nie powtórzy. * '''Kontrowersyjne blokady''' można omawiać na [[Wikifunctions:Administrators' noticeboard|tablicy ogłoszeń dotyczącej blokad i zabezpieczeń]] również po ich nałożeniu. Aby uniknąć „wojny administratorów”, inny administrator powinien znieść blokadę tylko wtedy, gdy istnieje co do tego konsensus, nawet jeżeli nie ma wyraźnego konsensusu popierającego pierwotną blokadę. <span id="Appealing_a_block"></span> == Odwołanie od blokady == <div lang="en" dir="ltr" class="mw-content-ltr"> Blocked users are [[MediaWiki:Blockedtext|informed]] that they may '''request unblocking.''' They may do this by adding {{tld|unblock|''reason for the request''}} to their '''[[Special:MyTalk|own user talk page]].''' Alternatively, they may request unblocking with an appropriate reason via '''[[Special:EmailUser|e-mail]]''' to the blocking administrator or another administrator. </div> '''Odpowiednie uzasadnienie''' niemal zawsze zawiera jeden z następujących elementów: * '''Przyznanie się''', że blokada była uzasadniona, oraz '''wiarygodne zapewnienie''', że zachowanie, które do niej doprowadziło, nie powtórzy się * Wyjaśnienie, dlaczego blokada jest '''nieuzasadniona''' w świetle niniejszych oraz innych odpowiednich zasad i wytycznych albo dlaczego '''prawdopodobnie nałożono ją omyłkowo lub stanowi ona niezamierzony skutek uboczny'''. <div class="mw-translate-fuzzy"> Wniosek o odblokowanie może zostać '''[[Template:Unblock granted|zaakceptowany]]''' albo '''[[Template:Unblock declined|odrzucony]]]'''. Przed zaakceptowaniem wniosku dotyczącego blokady nałożonej przez innego administratora administrator rozpatrujący wniosek powinien '''skonsultować się z administratorem, który nałożył blokadę''', z wyjątkiem oczywistych i niebudzących kontrowersji przypadków. [[:Category:Requests for unblock|Wnioski składane na stronach dyskusji]] mogą być odrzucane wyłącznie przez '''administratora niezaangażowanego w sprawę'''. </div> Wielokrotne składanie wniosków o odblokowanie bez odpowiedniego uzasadnienia może zostać uznane za nadużycie. Jak wskazano powyżej, użytkownikom, którzy nadużywają lub prawdopodobnie będą nadużywać możliwości edytowania własnej strony dyskusji bądź wysyłania wiadomości e-mail, można odebrać jedno albo oba te uprawnienia. Uniemożliwi to również korzystanie z nich w celu składania kolejnych wniosków o odblokowanie. <span id="See_also"></span> == Zobacz też == <!-- * [[:Category:Block warning templates]] * [[:Category:User block templates]]--> * <span lang="en" dir="ltr" class="mw-content-ltr">[[m:Special:MyLanguage/Global locks|Global locks]], [[m:Special:MyLanguage/Global blocks|global blocks]], and [[m:Special:MyLanguage/Global bans|global bans]]: similar concepts spanning all Wikimedia projects</span> [[Category:Policy{{#translation:}}]] jrksw94yy0489394zu6rg5ttxu8idqg 334262 334259 2026-10-28T23:25:37Z Chrumps 3889 334262 wikitext text/x-wiki {{draft}} <languages/> <div lang="en" dir="ltr" class="mw-content-ltr"> [[Special:MyLanguage/WF:Administrators|Administrators]] are given the ability to administer '''blocks''' to users when appropriate. A blocked user is usually restricted from editing, among other things. In a general sense, blocks are a last resort for behaviour that has the potential to damage Wikifunctions or disrupt its collegial atmosphere. Blocks may be sitewide or partial (affecting only certain actions). In this way, blocking is designed to be a ''preventative'' measure and not a ''punitive'' one; "cool-down" blocks are not condoned. </div> <span id="Use"></span> == Użycie == Blokady mogą być nakładane z wielu powodów. Najczęstsze z nich opisano poniżej: * <span class="mw-translate-fuzzy">'''[[Special:MyLanguage/WF:Vandalism|Wandalizm]]]'''. Destrukcyjne edycje mogą skutkować blokadą. Przykłady:</span> ** Wprowadzanie nieuzasadnionych wulgaryzmów ** Dodawanie bezsensownego tekstu ** Usuwanie treści ze stron * '''Spam'''. * '''[[m:Special:MyLanguage/Copyright|Naruszenia praw autorskich]]'''. * '''[[m:Special:MyLanguage/Edit war|Wojna edycyjna]]'''. * '''Ataki osobiste''' lub '''nękanie'''. Konta i adresy IP wykorzystywane przede wszystkim do tworzenia wrogiej atmosfery wobec innego użytkownika mogą zostać zablokowane. Spory prowadzone w dobrej wierze należy jednak przedstawiać w [[WF:Project chat|dyskusji projektu]], aby umożliwić udział osobom postronnym. Monitorowanie wkładu użytkownika pod kątem naruszeń zasad nie jest nękaniem. * '''Nieautoryzowane lub niereagujące konta [[Special:MyLanguage/WF:Bots|botów]]. Konta botów muszą zostać zatwierdzone przez społeczność Wikifunkcji. Budzące wątpliwości edycje przypominające działanie bota, których użytkownik nie potrafi wyjaśnić, powinny skutkować blokadą do czasu przeprowadzenia dyskusji. Propozycje dotyczące botów można omawiać na stronie [[WF:Bots]] albo w [[WF:Project chat|dyskusji projektu]]. O zatwierdzenie bota można wystąpić na stronie [[WF:Bots]]. * <span lang="en" dir="ltr" class="mw-content-ltr">'''Approved bot accounts that are temporarily malfunctioning'''. This is to prevent additional damage until the bot-owner can address the problem.</span> * [[Special:MyLanguage/WF:Username policy#INAPPR|'''Nieodpowiednie nazwy użytkowników''']]. * <span lang="en" dir="ltr" class="mw-content-ltr">'''Evasion of blocks'''. An administrator may reset the block of a user who intentionally evades a block (and revert their contributions), and may extend the duration of the block if the user engages in further blockable behaviour while evading the block. User accounts or IP addresses used to evade a block may and should also be blocked.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Abusing multiple accounts''' to mislead, deceive, disrupt, distort consensus or to evade blocks or other sanctions. Secondary accounts are typically blocked indefinitely. The primary account may or may not be subject to new or extended blocks depending on the circumstances.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Open or anonymizing proxies''' are typically blocked upon detection in accordance with [[m:Special:MyLanguage/No open proxies|Wikimedia-wide policy]]. The normal duration of such blocks is one year.</span> <span id="Instructions_for_administrators"></span> == Instrukcje dla administratorów == <span id="Before_blocking"></span> === Przed zablokowaniem === * <span lang="en" dir="ltr" class="mw-content-ltr">For blocks based on disruptive behaviour, such as vandalism, repeated copyright violations and manual promotional activities, ensure that the user has been appropriately '''warned,''' preferably using a [[:Category:Block warning templates|block warning template]]. No warning is necessary when blocking open proxies and users with inappropriate or abusive usernames. Accounts and IP addresses used solely for severely disruptive purposes such as automated spamming, serious vandalism or harassment may also be blocked without prior warning.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Controversial blocks''' may be discussed at the [[WF:Administrators' noticeboard|blocks and protections noticeboard]], preferably before they are applied if at all possible. As a rule of thumb, when in doubt, do not block.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''[[:mw:Special:MyLanguage/Help:Range blocks|Range blocks]]''' are especially powerful tools, and discussion of these is particularly encouraged. Range blocks with a duration longer than 24 hours should be discussed with a {{pg|WF:Checkusers|checkuser}} to assess the likely impact.</span> <div lang="en" dir="ltr" class="mw-content-ltr"> === When blocking === </div> * Blokady mogą być nakładane na '''zarejestrowanych użytkowników, adresy IP oraz zakresy adresów IP.''' * Ponieważ blokady mają charakter zapobiegawczy, a nie karny, należy ustalić '''czas trwania''' blokady proporcjonalny do okresu, którego użytkownik prawdopodobnie potrzebuje, aby zapoznać się z odpowiednimi zasadami i zmienić swoje postępowanie. Należy również uwzględnić wcześniejsze zachowanie użytkownika oraz wagę spowodowanych zakłóceń. Przy blokowaniu adresów IP trzeba pamiętać, że blokada może dotknąć niewinne osoby trzecie korzystające z tych samych adresów. * Należy podać '''powód''' blokady. Uzasadnienie powinno w miarę możliwości zawierać odnośniki do odpowiednich zasad, aby pomóc zablokowanemu użytkownikowi zrozumieć przyczynę blokady. W stosownych przypadkach pomocne są również porównania wersji lub [[w:Help:Permanent link|stałe linki]] dokumentujące przyczynę blokady. * Możliwość '''tworzenia kont''' powinna być w większości przypadków wyłączona. Można ją jednak pozostawić włączoną w przypadku blokady za nieodpowiednią nazwę użytkownika, aby umożliwić utworzenie konta pod inną nazwą. * '''Automatyczne blokowanie''' adresów IP używanych przez zablokowanego użytkownika powinno być zazwyczaj włączone w przypadku użytkowników zablokowanych za destrukcyjne zachowanie. W większości pozostałych przypadków należy je wyłączyć, na przykład podczas blokowania nieprawidłowo działających botów oraz nazw użytkowników niezgodnych z {{pg|WF:Username policy|zasadami dotyczącymi nazw użytkowników}}. * Możliwość korzystania ze strony '''dyskusji użytkownika''' lub wysyłania '''wiadomości e-mail''' należy zablokować tylko wtedy, gdy istnieje prawdopodobieństwo nadużywania tych uprawnień. <span id="After_blocking"></span> === Po zablokowaniu === * Należy '''powiadomić''' zablokowanego użytkownika, najlepiej za pomocą [[:Category:User block templates|szablonu informacji o blokadzie]]. * Należy '''obserwować''' stronę dyskusji zablokowanego użytkownika i dopilnować, aby '''[[:Category:Requests for unblock|wnioski o odblokowanie]]''' były rozpatrywane. * Blokady nałożone z powodu destrukcyjnego zachowania powinny zostać '''zniesione''', jeśli istnieją podstawy, by sądzić, że zachowanie to się nie powtórzy. * '''Kontrowersyjne blokady''' można omawiać na [[Wikifunctions:Administrators' noticeboard|tablicy ogłoszeń dotyczącej blokad i zabezpieczeń]] również po ich nałożeniu. Aby uniknąć „wojny administratorów”, inny administrator powinien znieść blokadę tylko wtedy, gdy istnieje co do tego konsensus, nawet jeżeli nie ma wyraźnego konsensusu popierającego pierwotną blokadę. <span id="Appealing_a_block"></span> == Odwołanie od blokady == <div lang="en" dir="ltr" class="mw-content-ltr"> Blocked users are [[MediaWiki:Blockedtext|informed]] that they may '''request unblocking.''' They may do this by adding {{tld|unblock|''reason for the request''}} to their '''[[Special:MyTalk|own user talk page]].''' Alternatively, they may request unblocking with an appropriate reason via '''[[Special:EmailUser|e-mail]]''' to the blocking administrator or another administrator. </div> '''Odpowiednie uzasadnienie''' niemal zawsze zawiera jeden z następujących elementów: * '''Przyznanie się''', że blokada była uzasadniona, oraz '''wiarygodne zapewnienie''', że zachowanie, które do niej doprowadziło, nie powtórzy się * Wyjaśnienie, dlaczego blokada jest '''nieuzasadniona''' w świetle niniejszych oraz innych odpowiednich zasad i wytycznych albo dlaczego '''prawdopodobnie nałożono ją omyłkowo lub stanowi ona niezamierzony skutek uboczny'''. <div class="mw-translate-fuzzy"> Wniosek o odblokowanie może zostać '''[[Template:Unblock granted|zaakceptowany]]''' albo '''[[Template:Unblock declined|odrzucony]]]'''. Przed zaakceptowaniem wniosku dotyczącego blokady nałożonej przez innego administratora administrator rozpatrujący wniosek powinien '''skonsultować się z administratorem, który nałożył blokadę''', z wyjątkiem oczywistych i niebudzących kontrowersji przypadków. [[:Category:Requests for unblock|Wnioski składane na stronach dyskusji]] mogą być odrzucane wyłącznie przez '''administratora niezaangażowanego w sprawę'''. </div> Wielokrotne składanie wniosków o odblokowanie bez odpowiedniego uzasadnienia może zostać uznane za nadużycie. Jak wskazano powyżej, użytkownikom, którzy nadużywają lub prawdopodobnie będą nadużywać możliwości edytowania własnej strony dyskusji bądź wysyłania wiadomości e-mail, można odebrać jedno albo oba te uprawnienia. Uniemożliwi to również korzystanie z nich w celu składania kolejnych wniosków o odblokowanie. <span id="See_also"></span> == Zobacz też == <!-- * [[:Category:Block warning templates]] * [[:Category:User block templates]]--> * <span lang="en" dir="ltr" class="mw-content-ltr">[[m:Special:MyLanguage/Global locks|Global locks]], [[m:Special:MyLanguage/Global blocks|global blocks]], and [[m:Special:MyLanguage/Global bans|global bans]]: similar concepts spanning all Wikimedia projects</span> [[Category:Policy{{#translation:}}]] 1ef8212aba0bc4z0zm4r2kg6e63kwb8 334264 334262 2026-10-28T23:26:09Z Chrumps 3889 Created page with "'''Zatwierdzone konta botów, które czasowo działają nieprawidłowo'''. Blokada ma zapobiec dalszym szkodom do czasu rozwiązania problemu przez właściciela bota." 334264 wikitext text/x-wiki {{draft}} <languages/> <div lang="en" dir="ltr" class="mw-content-ltr"> [[Special:MyLanguage/WF:Administrators|Administrators]] are given the ability to administer '''blocks''' to users when appropriate. A blocked user is usually restricted from editing, among other things. In a general sense, blocks are a last resort for behaviour that has the potential to damage Wikifunctions or disrupt its collegial atmosphere. Blocks may be sitewide or partial (affecting only certain actions). In this way, blocking is designed to be a ''preventative'' measure and not a ''punitive'' one; "cool-down" blocks are not condoned. </div> <span id="Use"></span> == Użycie == Blokady mogą być nakładane z wielu powodów. Najczęstsze z nich opisano poniżej: * <span class="mw-translate-fuzzy">'''[[Special:MyLanguage/WF:Vandalism|Wandalizm]]]'''. Destrukcyjne edycje mogą skutkować blokadą. Przykłady:</span> ** Wprowadzanie nieuzasadnionych wulgaryzmów ** Dodawanie bezsensownego tekstu ** Usuwanie treści ze stron * '''Spam'''. * '''[[m:Special:MyLanguage/Copyright|Naruszenia praw autorskich]]'''. * '''[[m:Special:MyLanguage/Edit war|Wojna edycyjna]]'''. * '''Ataki osobiste''' lub '''nękanie'''. Konta i adresy IP wykorzystywane przede wszystkim do tworzenia wrogiej atmosfery wobec innego użytkownika mogą zostać zablokowane. Spory prowadzone w dobrej wierze należy jednak przedstawiać w [[WF:Project chat|dyskusji projektu]], aby umożliwić udział osobom postronnym. Monitorowanie wkładu użytkownika pod kątem naruszeń zasad nie jest nękaniem. * '''Nieautoryzowane lub niereagujące konta [[Special:MyLanguage/WF:Bots|botów]]. Konta botów muszą zostać zatwierdzone przez społeczność Wikifunkcji. Budzące wątpliwości edycje przypominające działanie bota, których użytkownik nie potrafi wyjaśnić, powinny skutkować blokadą do czasu przeprowadzenia dyskusji. Propozycje dotyczące botów można omawiać na stronie [[WF:Bots]] albo w [[WF:Project chat|dyskusji projektu]]. O zatwierdzenie bota można wystąpić na stronie [[WF:Bots]]. * '''Zatwierdzone konta botów, które czasowo działają nieprawidłowo'''. Blokada ma zapobiec dalszym szkodom do czasu rozwiązania problemu przez właściciela bota. * [[Special:MyLanguage/WF:Username policy#INAPPR|'''Nieodpowiednie nazwy użytkowników''']]. * <span lang="en" dir="ltr" class="mw-content-ltr">'''Evasion of blocks'''. An administrator may reset the block of a user who intentionally evades a block (and revert their contributions), and may extend the duration of the block if the user engages in further blockable behaviour while evading the block. User accounts or IP addresses used to evade a block may and should also be blocked.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Abusing multiple accounts''' to mislead, deceive, disrupt, distort consensus or to evade blocks or other sanctions. Secondary accounts are typically blocked indefinitely. The primary account may or may not be subject to new or extended blocks depending on the circumstances.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Open or anonymizing proxies''' are typically blocked upon detection in accordance with [[m:Special:MyLanguage/No open proxies|Wikimedia-wide policy]]. The normal duration of such blocks is one year.</span> <span id="Instructions_for_administrators"></span> == Instrukcje dla administratorów == <span id="Before_blocking"></span> === Przed zablokowaniem === * <span lang="en" dir="ltr" class="mw-content-ltr">For blocks based on disruptive behaviour, such as vandalism, repeated copyright violations and manual promotional activities, ensure that the user has been appropriately '''warned,''' preferably using a [[:Category:Block warning templates|block warning template]]. No warning is necessary when blocking open proxies and users with inappropriate or abusive usernames. Accounts and IP addresses used solely for severely disruptive purposes such as automated spamming, serious vandalism or harassment may also be blocked without prior warning.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Controversial blocks''' may be discussed at the [[WF:Administrators' noticeboard|blocks and protections noticeboard]], preferably before they are applied if at all possible. As a rule of thumb, when in doubt, do not block.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''[[:mw:Special:MyLanguage/Help:Range blocks|Range blocks]]''' are especially powerful tools, and discussion of these is particularly encouraged. Range blocks with a duration longer than 24 hours should be discussed with a {{pg|WF:Checkusers|checkuser}} to assess the likely impact.</span> <div lang="en" dir="ltr" class="mw-content-ltr"> === When blocking === </div> * Blokady mogą być nakładane na '''zarejestrowanych użytkowników, adresy IP oraz zakresy adresów IP.''' * Ponieważ blokady mają charakter zapobiegawczy, a nie karny, należy ustalić '''czas trwania''' blokady proporcjonalny do okresu, którego użytkownik prawdopodobnie potrzebuje, aby zapoznać się z odpowiednimi zasadami i zmienić swoje postępowanie. Należy również uwzględnić wcześniejsze zachowanie użytkownika oraz wagę spowodowanych zakłóceń. Przy blokowaniu adresów IP trzeba pamiętać, że blokada może dotknąć niewinne osoby trzecie korzystające z tych samych adresów. * Należy podać '''powód''' blokady. Uzasadnienie powinno w miarę możliwości zawierać odnośniki do odpowiednich zasad, aby pomóc zablokowanemu użytkownikowi zrozumieć przyczynę blokady. W stosownych przypadkach pomocne są również porównania wersji lub [[w:Help:Permanent link|stałe linki]] dokumentujące przyczynę blokady. * Możliwość '''tworzenia kont''' powinna być w większości przypadków wyłączona. Można ją jednak pozostawić włączoną w przypadku blokady za nieodpowiednią nazwę użytkownika, aby umożliwić utworzenie konta pod inną nazwą. * '''Automatyczne blokowanie''' adresów IP używanych przez zablokowanego użytkownika powinno być zazwyczaj włączone w przypadku użytkowników zablokowanych za destrukcyjne zachowanie. W większości pozostałych przypadków należy je wyłączyć, na przykład podczas blokowania nieprawidłowo działających botów oraz nazw użytkowników niezgodnych z {{pg|WF:Username policy|zasadami dotyczącymi nazw użytkowników}}. * Możliwość korzystania ze strony '''dyskusji użytkownika''' lub wysyłania '''wiadomości e-mail''' należy zablokować tylko wtedy, gdy istnieje prawdopodobieństwo nadużywania tych uprawnień. <span id="After_blocking"></span> === Po zablokowaniu === * Należy '''powiadomić''' zablokowanego użytkownika, najlepiej za pomocą [[:Category:User block templates|szablonu informacji o blokadzie]]. * Należy '''obserwować''' stronę dyskusji zablokowanego użytkownika i dopilnować, aby '''[[:Category:Requests for unblock|wnioski o odblokowanie]]''' były rozpatrywane. * Blokady nałożone z powodu destrukcyjnego zachowania powinny zostać '''zniesione''', jeśli istnieją podstawy, by sądzić, że zachowanie to się nie powtórzy. * '''Kontrowersyjne blokady''' można omawiać na [[Wikifunctions:Administrators' noticeboard|tablicy ogłoszeń dotyczącej blokad i zabezpieczeń]] również po ich nałożeniu. Aby uniknąć „wojny administratorów”, inny administrator powinien znieść blokadę tylko wtedy, gdy istnieje co do tego konsensus, nawet jeżeli nie ma wyraźnego konsensusu popierającego pierwotną blokadę. <span id="Appealing_a_block"></span> == Odwołanie od blokady == <div lang="en" dir="ltr" class="mw-content-ltr"> Blocked users are [[MediaWiki:Blockedtext|informed]] that they may '''request unblocking.''' They may do this by adding {{tld|unblock|''reason for the request''}} to their '''[[Special:MyTalk|own user talk page]].''' Alternatively, they may request unblocking with an appropriate reason via '''[[Special:EmailUser|e-mail]]''' to the blocking administrator or another administrator. </div> '''Odpowiednie uzasadnienie''' niemal zawsze zawiera jeden z następujących elementów: * '''Przyznanie się''', że blokada była uzasadniona, oraz '''wiarygodne zapewnienie''', że zachowanie, które do niej doprowadziło, nie powtórzy się * Wyjaśnienie, dlaczego blokada jest '''nieuzasadniona''' w świetle niniejszych oraz innych odpowiednich zasad i wytycznych albo dlaczego '''prawdopodobnie nałożono ją omyłkowo lub stanowi ona niezamierzony skutek uboczny'''. <div class="mw-translate-fuzzy"> Wniosek o odblokowanie może zostać '''[[Template:Unblock granted|zaakceptowany]]''' albo '''[[Template:Unblock declined|odrzucony]]]'''. Przed zaakceptowaniem wniosku dotyczącego blokady nałożonej przez innego administratora administrator rozpatrujący wniosek powinien '''skonsultować się z administratorem, który nałożył blokadę''', z wyjątkiem oczywistych i niebudzących kontrowersji przypadków. [[:Category:Requests for unblock|Wnioski składane na stronach dyskusji]] mogą być odrzucane wyłącznie przez '''administratora niezaangażowanego w sprawę'''. </div> Wielokrotne składanie wniosków o odblokowanie bez odpowiedniego uzasadnienia może zostać uznane za nadużycie. Jak wskazano powyżej, użytkownikom, którzy nadużywają lub prawdopodobnie będą nadużywać możliwości edytowania własnej strony dyskusji bądź wysyłania wiadomości e-mail, można odebrać jedno albo oba te uprawnienia. Uniemożliwi to również korzystanie z nich w celu składania kolejnych wniosków o odblokowanie. <span id="See_also"></span> == Zobacz też == <!-- * [[:Category:Block warning templates]] * [[:Category:User block templates]]--> * <span lang="en" dir="ltr" class="mw-content-ltr">[[m:Special:MyLanguage/Global locks|Global locks]], [[m:Special:MyLanguage/Global blocks|global blocks]], and [[m:Special:MyLanguage/Global bans|global bans]]: similar concepts spanning all Wikimedia projects</span> [[Category:Policy{{#translation:}}]] 820o8f2hpns97ozpejue4piuf7k3gd1 334266 334264 2026-10-28T23:27:03Z Chrumps 3889 Created page with "'''Obchodzenie blokad'''. Administrator może ponownie nałożyć blokadę na użytkownika, który umyślnie ją omija (oraz wycofać jego edycje). Może również przedłużyć czas trwania blokady, jeżeli podczas jej obchodzenia użytkownik dopuszcza się kolejnych zachowań uzasadniających blokadę. Konta użytkowników i adresy IP wykorzystywane do obchodzenia blokady również mogą i powinny zostać zablokowane." 334266 wikitext text/x-wiki {{draft}} <languages/> <div lang="en" dir="ltr" class="mw-content-ltr"> [[Special:MyLanguage/WF:Administrators|Administrators]] are given the ability to administer '''blocks''' to users when appropriate. A blocked user is usually restricted from editing, among other things. In a general sense, blocks are a last resort for behaviour that has the potential to damage Wikifunctions or disrupt its collegial atmosphere. Blocks may be sitewide or partial (affecting only certain actions). In this way, blocking is designed to be a ''preventative'' measure and not a ''punitive'' one; "cool-down" blocks are not condoned. </div> <span id="Use"></span> == Użycie == Blokady mogą być nakładane z wielu powodów. Najczęstsze z nich opisano poniżej: * <span class="mw-translate-fuzzy">'''[[Special:MyLanguage/WF:Vandalism|Wandalizm]]]'''. Destrukcyjne edycje mogą skutkować blokadą. Przykłady:</span> ** Wprowadzanie nieuzasadnionych wulgaryzmów ** Dodawanie bezsensownego tekstu ** Usuwanie treści ze stron * '''Spam'''. * '''[[m:Special:MyLanguage/Copyright|Naruszenia praw autorskich]]'''. * '''[[m:Special:MyLanguage/Edit war|Wojna edycyjna]]'''. * '''Ataki osobiste''' lub '''nękanie'''. Konta i adresy IP wykorzystywane przede wszystkim do tworzenia wrogiej atmosfery wobec innego użytkownika mogą zostać zablokowane. Spory prowadzone w dobrej wierze należy jednak przedstawiać w [[WF:Project chat|dyskusji projektu]], aby umożliwić udział osobom postronnym. Monitorowanie wkładu użytkownika pod kątem naruszeń zasad nie jest nękaniem. * '''Nieautoryzowane lub niereagujące konta [[Special:MyLanguage/WF:Bots|botów]]. Konta botów muszą zostać zatwierdzone przez społeczność Wikifunkcji. Budzące wątpliwości edycje przypominające działanie bota, których użytkownik nie potrafi wyjaśnić, powinny skutkować blokadą do czasu przeprowadzenia dyskusji. Propozycje dotyczące botów można omawiać na stronie [[WF:Bots]] albo w [[WF:Project chat|dyskusji projektu]]. O zatwierdzenie bota można wystąpić na stronie [[WF:Bots]]. * '''Zatwierdzone konta botów, które czasowo działają nieprawidłowo'''. Blokada ma zapobiec dalszym szkodom do czasu rozwiązania problemu przez właściciela bota. * [[Special:MyLanguage/WF:Username policy#INAPPR|'''Nieodpowiednie nazwy użytkowników''']]. * '''Obchodzenie blokad'''. Administrator może ponownie nałożyć blokadę na użytkownika, który umyślnie ją omija (oraz wycofać jego edycje). Może również przedłużyć czas trwania blokady, jeżeli podczas jej obchodzenia użytkownik dopuszcza się kolejnych zachowań uzasadniających blokadę. Konta użytkowników i adresy IP wykorzystywane do obchodzenia blokady również mogą i powinny zostać zablokowane. * <span lang="en" dir="ltr" class="mw-content-ltr">'''Abusing multiple accounts''' to mislead, deceive, disrupt, distort consensus or to evade blocks or other sanctions. Secondary accounts are typically blocked indefinitely. The primary account may or may not be subject to new or extended blocks depending on the circumstances.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Open or anonymizing proxies''' are typically blocked upon detection in accordance with [[m:Special:MyLanguage/No open proxies|Wikimedia-wide policy]]. The normal duration of such blocks is one year.</span> <span id="Instructions_for_administrators"></span> == Instrukcje dla administratorów == <span id="Before_blocking"></span> === Przed zablokowaniem === * <span lang="en" dir="ltr" class="mw-content-ltr">For blocks based on disruptive behaviour, such as vandalism, repeated copyright violations and manual promotional activities, ensure that the user has been appropriately '''warned,''' preferably using a [[:Category:Block warning templates|block warning template]]. No warning is necessary when blocking open proxies and users with inappropriate or abusive usernames. Accounts and IP addresses used solely for severely disruptive purposes such as automated spamming, serious vandalism or harassment may also be blocked without prior warning.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Controversial blocks''' may be discussed at the [[WF:Administrators' noticeboard|blocks and protections noticeboard]], preferably before they are applied if at all possible. As a rule of thumb, when in doubt, do not block.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''[[:mw:Special:MyLanguage/Help:Range blocks|Range blocks]]''' are especially powerful tools, and discussion of these is particularly encouraged. Range blocks with a duration longer than 24 hours should be discussed with a {{pg|WF:Checkusers|checkuser}} to assess the likely impact.</span> <div lang="en" dir="ltr" class="mw-content-ltr"> === When blocking === </div> * Blokady mogą być nakładane na '''zarejestrowanych użytkowników, adresy IP oraz zakresy adresów IP.''' * Ponieważ blokady mają charakter zapobiegawczy, a nie karny, należy ustalić '''czas trwania''' blokady proporcjonalny do okresu, którego użytkownik prawdopodobnie potrzebuje, aby zapoznać się z odpowiednimi zasadami i zmienić swoje postępowanie. Należy również uwzględnić wcześniejsze zachowanie użytkownika oraz wagę spowodowanych zakłóceń. Przy blokowaniu adresów IP trzeba pamiętać, że blokada może dotknąć niewinne osoby trzecie korzystające z tych samych adresów. * Należy podać '''powód''' blokady. Uzasadnienie powinno w miarę możliwości zawierać odnośniki do odpowiednich zasad, aby pomóc zablokowanemu użytkownikowi zrozumieć przyczynę blokady. W stosownych przypadkach pomocne są również porównania wersji lub [[w:Help:Permanent link|stałe linki]] dokumentujące przyczynę blokady. * Możliwość '''tworzenia kont''' powinna być w większości przypadków wyłączona. Można ją jednak pozostawić włączoną w przypadku blokady za nieodpowiednią nazwę użytkownika, aby umożliwić utworzenie konta pod inną nazwą. * '''Automatyczne blokowanie''' adresów IP używanych przez zablokowanego użytkownika powinno być zazwyczaj włączone w przypadku użytkowników zablokowanych za destrukcyjne zachowanie. W większości pozostałych przypadków należy je wyłączyć, na przykład podczas blokowania nieprawidłowo działających botów oraz nazw użytkowników niezgodnych z {{pg|WF:Username policy|zasadami dotyczącymi nazw użytkowników}}. * Możliwość korzystania ze strony '''dyskusji użytkownika''' lub wysyłania '''wiadomości e-mail''' należy zablokować tylko wtedy, gdy istnieje prawdopodobieństwo nadużywania tych uprawnień. <span id="After_blocking"></span> === Po zablokowaniu === * Należy '''powiadomić''' zablokowanego użytkownika, najlepiej za pomocą [[:Category:User block templates|szablonu informacji o blokadzie]]. * Należy '''obserwować''' stronę dyskusji zablokowanego użytkownika i dopilnować, aby '''[[:Category:Requests for unblock|wnioski o odblokowanie]]''' były rozpatrywane. * Blokady nałożone z powodu destrukcyjnego zachowania powinny zostać '''zniesione''', jeśli istnieją podstawy, by sądzić, że zachowanie to się nie powtórzy. * '''Kontrowersyjne blokady''' można omawiać na [[Wikifunctions:Administrators' noticeboard|tablicy ogłoszeń dotyczącej blokad i zabezpieczeń]] również po ich nałożeniu. Aby uniknąć „wojny administratorów”, inny administrator powinien znieść blokadę tylko wtedy, gdy istnieje co do tego konsensus, nawet jeżeli nie ma wyraźnego konsensusu popierającego pierwotną blokadę. <span id="Appealing_a_block"></span> == Odwołanie od blokady == <div lang="en" dir="ltr" class="mw-content-ltr"> Blocked users are [[MediaWiki:Blockedtext|informed]] that they may '''request unblocking.''' They may do this by adding {{tld|unblock|''reason for the request''}} to their '''[[Special:MyTalk|own user talk page]].''' Alternatively, they may request unblocking with an appropriate reason via '''[[Special:EmailUser|e-mail]]''' to the blocking administrator or another administrator. </div> '''Odpowiednie uzasadnienie''' niemal zawsze zawiera jeden z następujących elementów: * '''Przyznanie się''', że blokada była uzasadniona, oraz '''wiarygodne zapewnienie''', że zachowanie, które do niej doprowadziło, nie powtórzy się * Wyjaśnienie, dlaczego blokada jest '''nieuzasadniona''' w świetle niniejszych oraz innych odpowiednich zasad i wytycznych albo dlaczego '''prawdopodobnie nałożono ją omyłkowo lub stanowi ona niezamierzony skutek uboczny'''. <div class="mw-translate-fuzzy"> Wniosek o odblokowanie może zostać '''[[Template:Unblock granted|zaakceptowany]]''' albo '''[[Template:Unblock declined|odrzucony]]]'''. Przed zaakceptowaniem wniosku dotyczącego blokady nałożonej przez innego administratora administrator rozpatrujący wniosek powinien '''skonsultować się z administratorem, który nałożył blokadę''', z wyjątkiem oczywistych i niebudzących kontrowersji przypadków. [[:Category:Requests for unblock|Wnioski składane na stronach dyskusji]] mogą być odrzucane wyłącznie przez '''administratora niezaangażowanego w sprawę'''. </div> Wielokrotne składanie wniosków o odblokowanie bez odpowiedniego uzasadnienia może zostać uznane za nadużycie. Jak wskazano powyżej, użytkownikom, którzy nadużywają lub prawdopodobnie będą nadużywać możliwości edytowania własnej strony dyskusji bądź wysyłania wiadomości e-mail, można odebrać jedno albo oba te uprawnienia. Uniemożliwi to również korzystanie z nich w celu składania kolejnych wniosków o odblokowanie. <span id="See_also"></span> == Zobacz też == <!-- * [[:Category:Block warning templates]] * [[:Category:User block templates]]--> * <span lang="en" dir="ltr" class="mw-content-ltr">[[m:Special:MyLanguage/Global locks|Global locks]], [[m:Special:MyLanguage/Global blocks|global blocks]], and [[m:Special:MyLanguage/Global bans|global bans]]: similar concepts spanning all Wikimedia projects</span> [[Category:Policy{{#translation:}}]] f5kzsag7p9a8cqfhf3w4rbp4d7crsru 334268 334266 2026-10-28T23:27:33Z Chrumps 3889 Created page with "'''Nadużywanie wielu kont''' w celu wprowadzania w błąd, oszukiwania, zakłócania działania projektu, zniekształcania konsensusu albo obchodzenia blokad lub innych sankcji. Konta dodatkowe są zazwyczaj blokowane bezterminowo. W zależności od okoliczności na konto główne może zostać nałożona nowa blokada albo dotychczasowa blokada może zostać przedłużona." 334268 wikitext text/x-wiki {{draft}} <languages/> <div lang="en" dir="ltr" class="mw-content-ltr"> [[Special:MyLanguage/WF:Administrators|Administrators]] are given the ability to administer '''blocks''' to users when appropriate. A blocked user is usually restricted from editing, among other things. In a general sense, blocks are a last resort for behaviour that has the potential to damage Wikifunctions or disrupt its collegial atmosphere. Blocks may be sitewide or partial (affecting only certain actions). In this way, blocking is designed to be a ''preventative'' measure and not a ''punitive'' one; "cool-down" blocks are not condoned. </div> <span id="Use"></span> == Użycie == Blokady mogą być nakładane z wielu powodów. Najczęstsze z nich opisano poniżej: * <span class="mw-translate-fuzzy">'''[[Special:MyLanguage/WF:Vandalism|Wandalizm]]]'''. Destrukcyjne edycje mogą skutkować blokadą. Przykłady:</span> ** Wprowadzanie nieuzasadnionych wulgaryzmów ** Dodawanie bezsensownego tekstu ** Usuwanie treści ze stron * '''Spam'''. * '''[[m:Special:MyLanguage/Copyright|Naruszenia praw autorskich]]'''. * '''[[m:Special:MyLanguage/Edit war|Wojna edycyjna]]'''. * '''Ataki osobiste''' lub '''nękanie'''. Konta i adresy IP wykorzystywane przede wszystkim do tworzenia wrogiej atmosfery wobec innego użytkownika mogą zostać zablokowane. Spory prowadzone w dobrej wierze należy jednak przedstawiać w [[WF:Project chat|dyskusji projektu]], aby umożliwić udział osobom postronnym. Monitorowanie wkładu użytkownika pod kątem naruszeń zasad nie jest nękaniem. * '''Nieautoryzowane lub niereagujące konta [[Special:MyLanguage/WF:Bots|botów]]. Konta botów muszą zostać zatwierdzone przez społeczność Wikifunkcji. Budzące wątpliwości edycje przypominające działanie bota, których użytkownik nie potrafi wyjaśnić, powinny skutkować blokadą do czasu przeprowadzenia dyskusji. Propozycje dotyczące botów można omawiać na stronie [[WF:Bots]] albo w [[WF:Project chat|dyskusji projektu]]. O zatwierdzenie bota można wystąpić na stronie [[WF:Bots]]. * '''Zatwierdzone konta botów, które czasowo działają nieprawidłowo'''. Blokada ma zapobiec dalszym szkodom do czasu rozwiązania problemu przez właściciela bota. * [[Special:MyLanguage/WF:Username policy#INAPPR|'''Nieodpowiednie nazwy użytkowników''']]. * '''Obchodzenie blokad'''. Administrator może ponownie nałożyć blokadę na użytkownika, który umyślnie ją omija (oraz wycofać jego edycje). Może również przedłużyć czas trwania blokady, jeżeli podczas jej obchodzenia użytkownik dopuszcza się kolejnych zachowań uzasadniających blokadę. Konta użytkowników i adresy IP wykorzystywane do obchodzenia blokady również mogą i powinny zostać zablokowane. * '''Nadużywanie wielu kont''' w celu wprowadzania w błąd, oszukiwania, zakłócania działania projektu, zniekształcania konsensusu albo obchodzenia blokad lub innych sankcji. Konta dodatkowe są zazwyczaj blokowane bezterminowo. W zależności od okoliczności na konto główne może zostać nałożona nowa blokada albo dotychczasowa blokada może zostać przedłużona. * <span lang="en" dir="ltr" class="mw-content-ltr">'''Open or anonymizing proxies''' are typically blocked upon detection in accordance with [[m:Special:MyLanguage/No open proxies|Wikimedia-wide policy]]. The normal duration of such blocks is one year.</span> <span id="Instructions_for_administrators"></span> == Instrukcje dla administratorów == <span id="Before_blocking"></span> === Przed zablokowaniem === * <span lang="en" dir="ltr" class="mw-content-ltr">For blocks based on disruptive behaviour, such as vandalism, repeated copyright violations and manual promotional activities, ensure that the user has been appropriately '''warned,''' preferably using a [[:Category:Block warning templates|block warning template]]. No warning is necessary when blocking open proxies and users with inappropriate or abusive usernames. Accounts and IP addresses used solely for severely disruptive purposes such as automated spamming, serious vandalism or harassment may also be blocked without prior warning.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Controversial blocks''' may be discussed at the [[WF:Administrators' noticeboard|blocks and protections noticeboard]], preferably before they are applied if at all possible. As a rule of thumb, when in doubt, do not block.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''[[:mw:Special:MyLanguage/Help:Range blocks|Range blocks]]''' are especially powerful tools, and discussion of these is particularly encouraged. Range blocks with a duration longer than 24 hours should be discussed with a {{pg|WF:Checkusers|checkuser}} to assess the likely impact.</span> <div lang="en" dir="ltr" class="mw-content-ltr"> === When blocking === </div> * Blokady mogą być nakładane na '''zarejestrowanych użytkowników, adresy IP oraz zakresy adresów IP.''' * Ponieważ blokady mają charakter zapobiegawczy, a nie karny, należy ustalić '''czas trwania''' blokady proporcjonalny do okresu, którego użytkownik prawdopodobnie potrzebuje, aby zapoznać się z odpowiednimi zasadami i zmienić swoje postępowanie. Należy również uwzględnić wcześniejsze zachowanie użytkownika oraz wagę spowodowanych zakłóceń. Przy blokowaniu adresów IP trzeba pamiętać, że blokada może dotknąć niewinne osoby trzecie korzystające z tych samych adresów. * Należy podać '''powód''' blokady. Uzasadnienie powinno w miarę możliwości zawierać odnośniki do odpowiednich zasad, aby pomóc zablokowanemu użytkownikowi zrozumieć przyczynę blokady. W stosownych przypadkach pomocne są również porównania wersji lub [[w:Help:Permanent link|stałe linki]] dokumentujące przyczynę blokady. * Możliwość '''tworzenia kont''' powinna być w większości przypadków wyłączona. Można ją jednak pozostawić włączoną w przypadku blokady za nieodpowiednią nazwę użytkownika, aby umożliwić utworzenie konta pod inną nazwą. * '''Automatyczne blokowanie''' adresów IP używanych przez zablokowanego użytkownika powinno być zazwyczaj włączone w przypadku użytkowników zablokowanych za destrukcyjne zachowanie. W większości pozostałych przypadków należy je wyłączyć, na przykład podczas blokowania nieprawidłowo działających botów oraz nazw użytkowników niezgodnych z {{pg|WF:Username policy|zasadami dotyczącymi nazw użytkowników}}. * Możliwość korzystania ze strony '''dyskusji użytkownika''' lub wysyłania '''wiadomości e-mail''' należy zablokować tylko wtedy, gdy istnieje prawdopodobieństwo nadużywania tych uprawnień. <span id="After_blocking"></span> === Po zablokowaniu === * Należy '''powiadomić''' zablokowanego użytkownika, najlepiej za pomocą [[:Category:User block templates|szablonu informacji o blokadzie]]. * Należy '''obserwować''' stronę dyskusji zablokowanego użytkownika i dopilnować, aby '''[[:Category:Requests for unblock|wnioski o odblokowanie]]''' były rozpatrywane. * Blokady nałożone z powodu destrukcyjnego zachowania powinny zostać '''zniesione''', jeśli istnieją podstawy, by sądzić, że zachowanie to się nie powtórzy. * '''Kontrowersyjne blokady''' można omawiać na [[Wikifunctions:Administrators' noticeboard|tablicy ogłoszeń dotyczącej blokad i zabezpieczeń]] również po ich nałożeniu. Aby uniknąć „wojny administratorów”, inny administrator powinien znieść blokadę tylko wtedy, gdy istnieje co do tego konsensus, nawet jeżeli nie ma wyraźnego konsensusu popierającego pierwotną blokadę. <span id="Appealing_a_block"></span> == Odwołanie od blokady == <div lang="en" dir="ltr" class="mw-content-ltr"> Blocked users are [[MediaWiki:Blockedtext|informed]] that they may '''request unblocking.''' They may do this by adding {{tld|unblock|''reason for the request''}} to their '''[[Special:MyTalk|own user talk page]].''' Alternatively, they may request unblocking with an appropriate reason via '''[[Special:EmailUser|e-mail]]''' to the blocking administrator or another administrator. </div> '''Odpowiednie uzasadnienie''' niemal zawsze zawiera jeden z następujących elementów: * '''Przyznanie się''', że blokada była uzasadniona, oraz '''wiarygodne zapewnienie''', że zachowanie, które do niej doprowadziło, nie powtórzy się * Wyjaśnienie, dlaczego blokada jest '''nieuzasadniona''' w świetle niniejszych oraz innych odpowiednich zasad i wytycznych albo dlaczego '''prawdopodobnie nałożono ją omyłkowo lub stanowi ona niezamierzony skutek uboczny'''. <div class="mw-translate-fuzzy"> Wniosek o odblokowanie może zostać '''[[Template:Unblock granted|zaakceptowany]]''' albo '''[[Template:Unblock declined|odrzucony]]]'''. Przed zaakceptowaniem wniosku dotyczącego blokady nałożonej przez innego administratora administrator rozpatrujący wniosek powinien '''skonsultować się z administratorem, który nałożył blokadę''', z wyjątkiem oczywistych i niebudzących kontrowersji przypadków. [[:Category:Requests for unblock|Wnioski składane na stronach dyskusji]] mogą być odrzucane wyłącznie przez '''administratora niezaangażowanego w sprawę'''. </div> Wielokrotne składanie wniosków o odblokowanie bez odpowiedniego uzasadnienia może zostać uznane za nadużycie. Jak wskazano powyżej, użytkownikom, którzy nadużywają lub prawdopodobnie będą nadużywać możliwości edytowania własnej strony dyskusji bądź wysyłania wiadomości e-mail, można odebrać jedno albo oba te uprawnienia. Uniemożliwi to również korzystanie z nich w celu składania kolejnych wniosków o odblokowanie. <span id="See_also"></span> == Zobacz też == <!-- * [[:Category:Block warning templates]] * [[:Category:User block templates]]--> * <span lang="en" dir="ltr" class="mw-content-ltr">[[m:Special:MyLanguage/Global locks|Global locks]], [[m:Special:MyLanguage/Global blocks|global blocks]], and [[m:Special:MyLanguage/Global bans|global bans]]: similar concepts spanning all Wikimedia projects</span> [[Category:Policy{{#translation:}}]] p5pk3kio7rbox5tgg9p311vogfryhws 334270 334268 2026-10-28T23:28:12Z Chrumps 3889 Created page with "'''Otwarte lub anonimizujące serwery proxy''' są zazwyczaj blokowane po wykryciu, zgodnie z [[$2|ogólnymi zasadami Wikimedia]]. Standardowy czas trwania takiej blokady wynosi jeden rok." 334270 wikitext text/x-wiki {{draft}} <languages/> <div lang="en" dir="ltr" class="mw-content-ltr"> [[Special:MyLanguage/WF:Administrators|Administrators]] are given the ability to administer '''blocks''' to users when appropriate. A blocked user is usually restricted from editing, among other things. In a general sense, blocks are a last resort for behaviour that has the potential to damage Wikifunctions or disrupt its collegial atmosphere. Blocks may be sitewide or partial (affecting only certain actions). In this way, blocking is designed to be a ''preventative'' measure and not a ''punitive'' one; "cool-down" blocks are not condoned. </div> <span id="Use"></span> == Użycie == Blokady mogą być nakładane z wielu powodów. Najczęstsze z nich opisano poniżej: * <span class="mw-translate-fuzzy">'''[[Special:MyLanguage/WF:Vandalism|Wandalizm]]]'''. Destrukcyjne edycje mogą skutkować blokadą. Przykłady:</span> ** Wprowadzanie nieuzasadnionych wulgaryzmów ** Dodawanie bezsensownego tekstu ** Usuwanie treści ze stron * '''Spam'''. * '''[[m:Special:MyLanguage/Copyright|Naruszenia praw autorskich]]'''. * '''[[m:Special:MyLanguage/Edit war|Wojna edycyjna]]'''. * '''Ataki osobiste''' lub '''nękanie'''. Konta i adresy IP wykorzystywane przede wszystkim do tworzenia wrogiej atmosfery wobec innego użytkownika mogą zostać zablokowane. Spory prowadzone w dobrej wierze należy jednak przedstawiać w [[WF:Project chat|dyskusji projektu]], aby umożliwić udział osobom postronnym. Monitorowanie wkładu użytkownika pod kątem naruszeń zasad nie jest nękaniem. * '''Nieautoryzowane lub niereagujące konta [[Special:MyLanguage/WF:Bots|botów]]. Konta botów muszą zostać zatwierdzone przez społeczność Wikifunkcji. Budzące wątpliwości edycje przypominające działanie bota, których użytkownik nie potrafi wyjaśnić, powinny skutkować blokadą do czasu przeprowadzenia dyskusji. Propozycje dotyczące botów można omawiać na stronie [[WF:Bots]] albo w [[WF:Project chat|dyskusji projektu]]. O zatwierdzenie bota można wystąpić na stronie [[WF:Bots]]. * '''Zatwierdzone konta botów, które czasowo działają nieprawidłowo'''. Blokada ma zapobiec dalszym szkodom do czasu rozwiązania problemu przez właściciela bota. * [[Special:MyLanguage/WF:Username policy#INAPPR|'''Nieodpowiednie nazwy użytkowników''']]. * '''Obchodzenie blokad'''. Administrator może ponownie nałożyć blokadę na użytkownika, który umyślnie ją omija (oraz wycofać jego edycje). Może również przedłużyć czas trwania blokady, jeżeli podczas jej obchodzenia użytkownik dopuszcza się kolejnych zachowań uzasadniających blokadę. Konta użytkowników i adresy IP wykorzystywane do obchodzenia blokady również mogą i powinny zostać zablokowane. * '''Nadużywanie wielu kont''' w celu wprowadzania w błąd, oszukiwania, zakłócania działania projektu, zniekształcania konsensusu albo obchodzenia blokad lub innych sankcji. Konta dodatkowe są zazwyczaj blokowane bezterminowo. W zależności od okoliczności na konto główne może zostać nałożona nowa blokada albo dotychczasowa blokada może zostać przedłużona. * '''Otwarte lub anonimizujące serwery proxy''' są zazwyczaj blokowane po wykryciu, zgodnie z [[m:Special:MyLanguage/No open proxies|ogólnymi zasadami Wikimedia]]. Standardowy czas trwania takiej blokady wynosi jeden rok. <span id="Instructions_for_administrators"></span> == Instrukcje dla administratorów == <span id="Before_blocking"></span> === Przed zablokowaniem === * <span lang="en" dir="ltr" class="mw-content-ltr">For blocks based on disruptive behaviour, such as vandalism, repeated copyright violations and manual promotional activities, ensure that the user has been appropriately '''warned,''' preferably using a [[:Category:Block warning templates|block warning template]]. No warning is necessary when blocking open proxies and users with inappropriate or abusive usernames. Accounts and IP addresses used solely for severely disruptive purposes such as automated spamming, serious vandalism or harassment may also be blocked without prior warning.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''Controversial blocks''' may be discussed at the [[WF:Administrators' noticeboard|blocks and protections noticeboard]], preferably before they are applied if at all possible. As a rule of thumb, when in doubt, do not block.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''[[:mw:Special:MyLanguage/Help:Range blocks|Range blocks]]''' are especially powerful tools, and discussion of these is particularly encouraged. Range blocks with a duration longer than 24 hours should be discussed with a {{pg|WF:Checkusers|checkuser}} to assess the likely impact.</span> <div lang="en" dir="ltr" class="mw-content-ltr"> === When blocking === </div> * Blokady mogą być nakładane na '''zarejestrowanych użytkowników, adresy IP oraz zakresy adresów IP.''' * Ponieważ blokady mają charakter zapobiegawczy, a nie karny, należy ustalić '''czas trwania''' blokady proporcjonalny do okresu, którego użytkownik prawdopodobnie potrzebuje, aby zapoznać się z odpowiednimi zasadami i zmienić swoje postępowanie. Należy również uwzględnić wcześniejsze zachowanie użytkownika oraz wagę spowodowanych zakłóceń. Przy blokowaniu adresów IP trzeba pamiętać, że blokada może dotknąć niewinne osoby trzecie korzystające z tych samych adresów. * Należy podać '''powód''' blokady. Uzasadnienie powinno w miarę możliwości zawierać odnośniki do odpowiednich zasad, aby pomóc zablokowanemu użytkownikowi zrozumieć przyczynę blokady. W stosownych przypadkach pomocne są również porównania wersji lub [[w:Help:Permanent link|stałe linki]] dokumentujące przyczynę blokady. * Możliwość '''tworzenia kont''' powinna być w większości przypadków wyłączona. Można ją jednak pozostawić włączoną w przypadku blokady za nieodpowiednią nazwę użytkownika, aby umożliwić utworzenie konta pod inną nazwą. * '''Automatyczne blokowanie''' adresów IP używanych przez zablokowanego użytkownika powinno być zazwyczaj włączone w przypadku użytkowników zablokowanych za destrukcyjne zachowanie. W większości pozostałych przypadków należy je wyłączyć, na przykład podczas blokowania nieprawidłowo działających botów oraz nazw użytkowników niezgodnych z {{pg|WF:Username policy|zasadami dotyczącymi nazw użytkowników}}. * Możliwość korzystania ze strony '''dyskusji użytkownika''' lub wysyłania '''wiadomości e-mail''' należy zablokować tylko wtedy, gdy istnieje prawdopodobieństwo nadużywania tych uprawnień. <span id="After_blocking"></span> === Po zablokowaniu === * Należy '''powiadomić''' zablokowanego użytkownika, najlepiej za pomocą [[:Category:User block templates|szablonu informacji o blokadzie]]. * Należy '''obserwować''' stronę dyskusji zablokowanego użytkownika i dopilnować, aby '''[[:Category:Requests for unblock|wnioski o odblokowanie]]''' były rozpatrywane. * Blokady nałożone z powodu destrukcyjnego zachowania powinny zostać '''zniesione''', jeśli istnieją podstawy, by sądzić, że zachowanie to się nie powtórzy. * '''Kontrowersyjne blokady''' można omawiać na [[Wikifunctions:Administrators' noticeboard|tablicy ogłoszeń dotyczącej blokad i zabezpieczeń]] również po ich nałożeniu. Aby uniknąć „wojny administratorów”, inny administrator powinien znieść blokadę tylko wtedy, gdy istnieje co do tego konsensus, nawet jeżeli nie ma wyraźnego konsensusu popierającego pierwotną blokadę. <span id="Appealing_a_block"></span> == Odwołanie od blokady == <div lang="en" dir="ltr" class="mw-content-ltr"> Blocked users are [[MediaWiki:Blockedtext|informed]] that they may '''request unblocking.''' They may do this by adding {{tld|unblock|''reason for the request''}} to their '''[[Special:MyTalk|own user talk page]].''' Alternatively, they may request unblocking with an appropriate reason via '''[[Special:EmailUser|e-mail]]''' to the blocking administrator or another administrator. </div> '''Odpowiednie uzasadnienie''' niemal zawsze zawiera jeden z następujących elementów: * '''Przyznanie się''', że blokada była uzasadniona, oraz '''wiarygodne zapewnienie''', że zachowanie, które do niej doprowadziło, nie powtórzy się * Wyjaśnienie, dlaczego blokada jest '''nieuzasadniona''' w świetle niniejszych oraz innych odpowiednich zasad i wytycznych albo dlaczego '''prawdopodobnie nałożono ją omyłkowo lub stanowi ona niezamierzony skutek uboczny'''. <div class="mw-translate-fuzzy"> Wniosek o odblokowanie może zostać '''[[Template:Unblock granted|zaakceptowany]]''' albo '''[[Template:Unblock declined|odrzucony]]]'''. Przed zaakceptowaniem wniosku dotyczącego blokady nałożonej przez innego administratora administrator rozpatrujący wniosek powinien '''skonsultować się z administratorem, który nałożył blokadę''', z wyjątkiem oczywistych i niebudzących kontrowersji przypadków. [[:Category:Requests for unblock|Wnioski składane na stronach dyskusji]] mogą być odrzucane wyłącznie przez '''administratora niezaangażowanego w sprawę'''. </div> Wielokrotne składanie wniosków o odblokowanie bez odpowiedniego uzasadnienia może zostać uznane za nadużycie. Jak wskazano powyżej, użytkownikom, którzy nadużywają lub prawdopodobnie będą nadużywać możliwości edytowania własnej strony dyskusji bądź wysyłania wiadomości e-mail, można odebrać jedno albo oba te uprawnienia. Uniemożliwi to również korzystanie z nich w celu składania kolejnych wniosków o odblokowanie. <span id="See_also"></span> == Zobacz też == <!-- * [[:Category:Block warning templates]] * [[:Category:User block templates]]--> * <span lang="en" dir="ltr" class="mw-content-ltr">[[m:Special:MyLanguage/Global locks|Global locks]], [[m:Special:MyLanguage/Global blocks|global blocks]], and [[m:Special:MyLanguage/Global bans|global bans]]: similar concepts spanning all Wikimedia projects</span> [[Category:Policy{{#translation:}}]] frj01zy7rpr4b20ijc12w29phh0e06c 334272 334270 2026-10-28T23:29:21Z Chrumps 3889 Created page with "W przypadku blokad związanych z destrukcyjnym zachowaniem, takim jak wandalizm, powtarzające się naruszenia praw autorskich lub ręcznie prowadzone działania promocyjne, należy upewnić się, że użytkownik został odpowiednio '''ostrzeżony''', najlepiej za pomocą [[$1|szablonu ostrzeżenia o blokadzie]]. Ostrzeżenie nie jest konieczne w przypadku blokowania otwartych serwerów proxy oraz użytkowników posługujących się nieodpowiednimi lub obraźliwymi nazwa..." 334272 wikitext text/x-wiki {{draft}} <languages/> <div lang="en" dir="ltr" class="mw-content-ltr"> [[Special:MyLanguage/WF:Administrators|Administrators]] are given the ability to administer '''blocks''' to users when appropriate. A blocked user is usually restricted from editing, among other things. In a general sense, blocks are a last resort for behaviour that has the potential to damage Wikifunctions or disrupt its collegial atmosphere. Blocks may be sitewide or partial (affecting only certain actions). In this way, blocking is designed to be a ''preventative'' measure and not a ''punitive'' one; "cool-down" blocks are not condoned. </div> <span id="Use"></span> == Użycie == Blokady mogą być nakładane z wielu powodów. Najczęstsze z nich opisano poniżej: * <span class="mw-translate-fuzzy">'''[[Special:MyLanguage/WF:Vandalism|Wandalizm]]]'''. Destrukcyjne edycje mogą skutkować blokadą. Przykłady:</span> ** Wprowadzanie nieuzasadnionych wulgaryzmów ** Dodawanie bezsensownego tekstu ** Usuwanie treści ze stron * '''Spam'''. * '''[[m:Special:MyLanguage/Copyright|Naruszenia praw autorskich]]'''. * '''[[m:Special:MyLanguage/Edit war|Wojna edycyjna]]'''. * '''Ataki osobiste''' lub '''nękanie'''. Konta i adresy IP wykorzystywane przede wszystkim do tworzenia wrogiej atmosfery wobec innego użytkownika mogą zostać zablokowane. Spory prowadzone w dobrej wierze należy jednak przedstawiać w [[WF:Project chat|dyskusji projektu]], aby umożliwić udział osobom postronnym. Monitorowanie wkładu użytkownika pod kątem naruszeń zasad nie jest nękaniem. * '''Nieautoryzowane lub niereagujące konta [[Special:MyLanguage/WF:Bots|botów]]. Konta botów muszą zostać zatwierdzone przez społeczność Wikifunkcji. Budzące wątpliwości edycje przypominające działanie bota, których użytkownik nie potrafi wyjaśnić, powinny skutkować blokadą do czasu przeprowadzenia dyskusji. Propozycje dotyczące botów można omawiać na stronie [[WF:Bots]] albo w [[WF:Project chat|dyskusji projektu]]. O zatwierdzenie bota można wystąpić na stronie [[WF:Bots]]. * '''Zatwierdzone konta botów, które czasowo działają nieprawidłowo'''. Blokada ma zapobiec dalszym szkodom do czasu rozwiązania problemu przez właściciela bota. * [[Special:MyLanguage/WF:Username policy#INAPPR|'''Nieodpowiednie nazwy użytkowników''']]. * '''Obchodzenie blokad'''. Administrator może ponownie nałożyć blokadę na użytkownika, który umyślnie ją omija (oraz wycofać jego edycje). Może również przedłużyć czas trwania blokady, jeżeli podczas jej obchodzenia użytkownik dopuszcza się kolejnych zachowań uzasadniających blokadę. Konta użytkowników i adresy IP wykorzystywane do obchodzenia blokady również mogą i powinny zostać zablokowane. * '''Nadużywanie wielu kont''' w celu wprowadzania w błąd, oszukiwania, zakłócania działania projektu, zniekształcania konsensusu albo obchodzenia blokad lub innych sankcji. Konta dodatkowe są zazwyczaj blokowane bezterminowo. W zależności od okoliczności na konto główne może zostać nałożona nowa blokada albo dotychczasowa blokada może zostać przedłużona. * '''Otwarte lub anonimizujące serwery proxy''' są zazwyczaj blokowane po wykryciu, zgodnie z [[m:Special:MyLanguage/No open proxies|ogólnymi zasadami Wikimedia]]. Standardowy czas trwania takiej blokady wynosi jeden rok. <span id="Instructions_for_administrators"></span> == Instrukcje dla administratorów == <span id="Before_blocking"></span> === Przed zablokowaniem === * W przypadku blokad związanych z destrukcyjnym zachowaniem, takim jak wandalizm, powtarzające się naruszenia praw autorskich lub ręcznie prowadzone działania promocyjne, należy upewnić się, że użytkownik został odpowiednio '''ostrzeżony''', najlepiej za pomocą [[:Category:Block warning templates|szablonu ostrzeżenia o blokadzie]]. Ostrzeżenie nie jest konieczne w przypadku blokowania otwartych serwerów proxy oraz użytkowników posługujących się nieodpowiednimi lub obraźliwymi nazwami. Konta i adresy IP wykorzystywane wyłącznie do szczególnie destrukcyjnych działań, takich jak automatyczne spamowanie, poważny wandalizm lub nękanie, również mogą zostać zablokowane bez wcześniejszego ostrzeżenia. * <span lang="en" dir="ltr" class="mw-content-ltr">'''Controversial blocks''' may be discussed at the [[WF:Administrators' noticeboard|blocks and protections noticeboard]], preferably before they are applied if at all possible. As a rule of thumb, when in doubt, do not block.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">'''[[:mw:Special:MyLanguage/Help:Range blocks|Range blocks]]''' are especially powerful tools, and discussion of these is particularly encouraged. Range blocks with a duration longer than 24 hours should be discussed with a {{pg|WF:Checkusers|checkuser}} to assess the likely impact.</span> <div lang="en" dir="ltr" class="mw-content-ltr"> === When blocking === </div> * Blokady mogą być nakładane na '''zarejestrowanych użytkowników, adresy IP oraz zakresy adresów IP.''' * Ponieważ blokady mają charakter zapobiegawczy, a nie karny, należy ustalić '''czas trwania''' blokady proporcjonalny do okresu, którego użytkownik prawdopodobnie potrzebuje, aby zapoznać się z odpowiednimi zasadami i zmienić swoje postępowanie. Należy również uwzględnić wcześniejsze zachowanie użytkownika oraz wagę spowodowanych zakłóceń. Przy blokowaniu adresów IP trzeba pamiętać, że blokada może dotknąć niewinne osoby trzecie korzystające z tych samych adresów. * Należy podać '''powód''' blokady. Uzasadnienie powinno w miarę możliwości zawierać odnośniki do odpowiednich zasad, aby pomóc zablokowanemu użytkownikowi zrozumieć przyczynę blokady. W stosownych przypadkach pomocne są również porównania wersji lub [[w:Help:Permanent link|stałe linki]] dokumentujące przyczynę blokady. * Możliwość '''tworzenia kont''' powinna być w większości przypadków wyłączona. Można ją jednak pozostawić włączoną w przypadku blokady za nieodpowiednią nazwę użytkownika, aby umożliwić utworzenie konta pod inną nazwą. * '''Automatyczne blokowanie''' adresów IP używanych przez zablokowanego użytkownika powinno być zazwyczaj włączone w przypadku użytkowników zablokowanych za destrukcyjne zachowanie. W większości pozostałych przypadków należy je wyłączyć, na przykład podczas blokowania nieprawidłowo działających botów oraz nazw użytkowników niezgodnych z {{pg|WF:Username policy|zasadami dotyczącymi nazw użytkowników}}. * Możliwość korzystania ze strony '''dyskusji użytkownika''' lub wysyłania '''wiadomości e-mail''' należy zablokować tylko wtedy, gdy istnieje prawdopodobieństwo nadużywania tych uprawnień. <span id="After_blocking"></span> === Po zablokowaniu === * Należy '''powiadomić''' zablokowanego użytkownika, najlepiej za pomocą [[:Category:User block templates|szablonu informacji o blokadzie]]. * Należy '''obserwować''' stronę dyskusji zablokowanego użytkownika i dopilnować, aby '''[[:Category:Requests for unblock|wnioski o odblokowanie]]''' były rozpatrywane. * Blokady nałożone z powodu destrukcyjnego zachowania powinny zostać '''zniesione''', jeśli istnieją podstawy, by sądzić, że zachowanie to się nie powtórzy. * '''Kontrowersyjne blokady''' można omawiać na [[Wikifunctions:Administrators' noticeboard|tablicy ogłoszeń dotyczącej blokad i zabezpieczeń]] również po ich nałożeniu. Aby uniknąć „wojny administratorów”, inny administrator powinien znieść blokadę tylko wtedy, gdy istnieje co do tego konsensus, nawet jeżeli nie ma wyraźnego konsensusu popierającego pierwotną blokadę. <span id="Appealing_a_block"></span> == Odwołanie od blokady == <div lang="en" dir="ltr" class="mw-content-ltr"> Blocked users are [[MediaWiki:Blockedtext|informed]] that they may '''request unblocking.''' They may do this by adding {{tld|unblock|''reason for the request''}} to their '''[[Special:MyTalk|own user talk page]].''' Alternatively, they may request unblocking with an appropriate reason via '''[[Special:EmailUser|e-mail]]''' to the blocking administrator or another administrator. </div> '''Odpowiednie uzasadnienie''' niemal zawsze zawiera jeden z następujących elementów: * '''Przyznanie się''', że blokada była uzasadniona, oraz '''wiarygodne zapewnienie''', że zachowanie, które do niej doprowadziło, nie powtórzy się * Wyjaśnienie, dlaczego blokada jest '''nieuzasadniona''' w świetle niniejszych oraz innych odpowiednich zasad i wytycznych albo dlaczego '''prawdopodobnie nałożono ją omyłkowo lub stanowi ona niezamierzony skutek uboczny'''. <div class="mw-translate-fuzzy"> Wniosek o odblokowanie może zostać '''[[Template:Unblock granted|zaakceptowany]]''' albo '''[[Template:Unblock declined|odrzucony]]]'''. Przed zaakceptowaniem wniosku dotyczącego blokady nałożonej przez innego administratora administrator rozpatrujący wniosek powinien '''skonsultować się z administratorem, który nałożył blokadę''', z wyjątkiem oczywistych i niebudzących kontrowersji przypadków. [[:Category:Requests for unblock|Wnioski składane na stronach dyskusji]] mogą być odrzucane wyłącznie przez '''administratora niezaangażowanego w sprawę'''. </div> Wielokrotne składanie wniosków o odblokowanie bez odpowiedniego uzasadnienia może zostać uznane za nadużycie. Jak wskazano powyżej, użytkownikom, którzy nadużywają lub prawdopodobnie będą nadużywać możliwości edytowania własnej strony dyskusji bądź wysyłania wiadomości e-mail, można odebrać jedno albo oba te uprawnienia. Uniemożliwi to również korzystanie z nich w celu składania kolejnych wniosków o odblokowanie. <span id="See_also"></span> == Zobacz też == <!-- * [[:Category:Block warning templates]] * [[:Category:User block templates]]--> * <span lang="en" dir="ltr" class="mw-content-ltr">[[m:Special:MyLanguage/Global locks|Global locks]], [[m:Special:MyLanguage/Global blocks|global blocks]], and [[m:Special:MyLanguage/Global bans|global bans]]: similar concepts spanning all Wikimedia projects</span> [[Category:Policy{{#translation:}}]] 0gfrll0tmqlx8s1uk0hacbuhjrme33e 334274 334272 2026-10-28T23:29:52Z Chrumps 3889 Created page with "'''Kontrowersyjne blokady''' można omawiać na [[$1|tablicy ogłoszeń dotyczącej blokad i zabezpieczeń]], najlepiej przed ich nałożeniem, o ile jest to możliwe. Ogólna zasada brzmi: w razie wątpliwości nie należy blokować." 334274 wikitext text/x-wiki {{draft}} <languages/> <div lang="en" dir="ltr" class="mw-content-ltr"> [[Special:MyLanguage/WF:Administrators|Administrators]] are given the ability to administer '''blocks''' to users when appropriate. A blocked user is usually restricted from editing, among other things. In a general sense, blocks are a last resort for behaviour that has the potential to damage Wikifunctions or disrupt its collegial atmosphere. Blocks may be sitewide or partial (affecting only certain actions). In this way, blocking is designed to be a ''preventative'' measure and not a ''punitive'' one; "cool-down" blocks are not condoned. </div> <span id="Use"></span> == Użycie == Blokady mogą być nakładane z wielu powodów. Najczęstsze z nich opisano poniżej: * <span class="mw-translate-fuzzy">'''[[Special:MyLanguage/WF:Vandalism|Wandalizm]]]'''. Destrukcyjne edycje mogą skutkować blokadą. Przykłady:</span> ** Wprowadzanie nieuzasadnionych wulgaryzmów ** Dodawanie bezsensownego tekstu ** Usuwanie treści ze stron * '''Spam'''. * '''[[m:Special:MyLanguage/Copyright|Naruszenia praw autorskich]]'''. * '''[[m:Special:MyLanguage/Edit war|Wojna edycyjna]]'''. * '''Ataki osobiste''' lub '''nękanie'''. Konta i adresy IP wykorzystywane przede wszystkim do tworzenia wrogiej atmosfery wobec innego użytkownika mogą zostać zablokowane. Spory prowadzone w dobrej wierze należy jednak przedstawiać w [[WF:Project chat|dyskusji projektu]], aby umożliwić udział osobom postronnym. Monitorowanie wkładu użytkownika pod kątem naruszeń zasad nie jest nękaniem. * '''Nieautoryzowane lub niereagujące konta [[Special:MyLanguage/WF:Bots|botów]]. Konta botów muszą zostać zatwierdzone przez społeczność Wikifunkcji. Budzące wątpliwości edycje przypominające działanie bota, których użytkownik nie potrafi wyjaśnić, powinny skutkować blokadą do czasu przeprowadzenia dyskusji. Propozycje dotyczące botów można omawiać na stronie [[WF:Bots]] albo w [[WF:Project chat|dyskusji projektu]]. O zatwierdzenie bota można wystąpić na stronie [[WF:Bots]]. * '''Zatwierdzone konta botów, które czasowo działają nieprawidłowo'''. Blokada ma zapobiec dalszym szkodom do czasu rozwiązania problemu przez właściciela bota. * [[Special:MyLanguage/WF:Username policy#INAPPR|'''Nieodpowiednie nazwy użytkowników''']]. * '''Obchodzenie blokad'''. Administrator może ponownie nałożyć blokadę na użytkownika, który umyślnie ją omija (oraz wycofać jego edycje). Może również przedłużyć czas trwania blokady, jeżeli podczas jej obchodzenia użytkownik dopuszcza się kolejnych zachowań uzasadniających blokadę. Konta użytkowników i adresy IP wykorzystywane do obchodzenia blokady również mogą i powinny zostać zablokowane. * '''Nadużywanie wielu kont''' w celu wprowadzania w błąd, oszukiwania, zakłócania działania projektu, zniekształcania konsensusu albo obchodzenia blokad lub innych sankcji. Konta dodatkowe są zazwyczaj blokowane bezterminowo. W zależności od okoliczności na konto główne może zostać nałożona nowa blokada albo dotychczasowa blokada może zostać przedłużona. * '''Otwarte lub anonimizujące serwery proxy''' są zazwyczaj blokowane po wykryciu, zgodnie z [[m:Special:MyLanguage/No open proxies|ogólnymi zasadami Wikimedia]]. Standardowy czas trwania takiej blokady wynosi jeden rok. <span id="Instructions_for_administrators"></span> == Instrukcje dla administratorów == <span id="Before_blocking"></span> === Przed zablokowaniem === * W przypadku blokad związanych z destrukcyjnym zachowaniem, takim jak wandalizm, powtarzające się naruszenia praw autorskich lub ręcznie prowadzone działania promocyjne, należy upewnić się, że użytkownik został odpowiednio '''ostrzeżony''', najlepiej za pomocą [[:Category:Block warning templates|szablonu ostrzeżenia o blokadzie]]. Ostrzeżenie nie jest konieczne w przypadku blokowania otwartych serwerów proxy oraz użytkowników posługujących się nieodpowiednimi lub obraźliwymi nazwami. Konta i adresy IP wykorzystywane wyłącznie do szczególnie destrukcyjnych działań, takich jak automatyczne spamowanie, poważny wandalizm lub nękanie, również mogą zostać zablokowane bez wcześniejszego ostrzeżenia. * '''Kontrowersyjne blokady''' można omawiać na [[WF:Administrators' noticeboard|tablicy ogłoszeń dotyczącej blokad i zabezpieczeń]], najlepiej przed ich nałożeniem, o ile jest to możliwe. Ogólna zasada brzmi: w razie wątpliwości nie należy blokować. * <span lang="en" dir="ltr" class="mw-content-ltr">'''[[:mw:Special:MyLanguage/Help:Range blocks|Range blocks]]''' are especially powerful tools, and discussion of these is particularly encouraged. Range blocks with a duration longer than 24 hours should be discussed with a {{pg|WF:Checkusers|checkuser}} to assess the likely impact.</span> <div lang="en" dir="ltr" class="mw-content-ltr"> === When blocking === </div> * Blokady mogą być nakładane na '''zarejestrowanych użytkowników, adresy IP oraz zakresy adresów IP.''' * Ponieważ blokady mają charakter zapobiegawczy, a nie karny, należy ustalić '''czas trwania''' blokady proporcjonalny do okresu, którego użytkownik prawdopodobnie potrzebuje, aby zapoznać się z odpowiednimi zasadami i zmienić swoje postępowanie. Należy również uwzględnić wcześniejsze zachowanie użytkownika oraz wagę spowodowanych zakłóceń. Przy blokowaniu adresów IP trzeba pamiętać, że blokada może dotknąć niewinne osoby trzecie korzystające z tych samych adresów. * Należy podać '''powód''' blokady. Uzasadnienie powinno w miarę możliwości zawierać odnośniki do odpowiednich zasad, aby pomóc zablokowanemu użytkownikowi zrozumieć przyczynę blokady. W stosownych przypadkach pomocne są również porównania wersji lub [[w:Help:Permanent link|stałe linki]] dokumentujące przyczynę blokady. * Możliwość '''tworzenia kont''' powinna być w większości przypadków wyłączona. Można ją jednak pozostawić włączoną w przypadku blokady za nieodpowiednią nazwę użytkownika, aby umożliwić utworzenie konta pod inną nazwą. * '''Automatyczne blokowanie''' adresów IP używanych przez zablokowanego użytkownika powinno być zazwyczaj włączone w przypadku użytkowników zablokowanych za destrukcyjne zachowanie. W większości pozostałych przypadków należy je wyłączyć, na przykład podczas blokowania nieprawidłowo działających botów oraz nazw użytkowników niezgodnych z {{pg|WF:Username policy|zasadami dotyczącymi nazw użytkowników}}. * Możliwość korzystania ze strony '''dyskusji użytkownika''' lub wysyłania '''wiadomości e-mail''' należy zablokować tylko wtedy, gdy istnieje prawdopodobieństwo nadużywania tych uprawnień. <span id="After_blocking"></span> === Po zablokowaniu === * Należy '''powiadomić''' zablokowanego użytkownika, najlepiej za pomocą [[:Category:User block templates|szablonu informacji o blokadzie]]. * Należy '''obserwować''' stronę dyskusji zablokowanego użytkownika i dopilnować, aby '''[[:Category:Requests for unblock|wnioski o odblokowanie]]''' były rozpatrywane. * Blokady nałożone z powodu destrukcyjnego zachowania powinny zostać '''zniesione''', jeśli istnieją podstawy, by sądzić, że zachowanie to się nie powtórzy. * '''Kontrowersyjne blokady''' można omawiać na [[Wikifunctions:Administrators' noticeboard|tablicy ogłoszeń dotyczącej blokad i zabezpieczeń]] również po ich nałożeniu. Aby uniknąć „wojny administratorów”, inny administrator powinien znieść blokadę tylko wtedy, gdy istnieje co do tego konsensus, nawet jeżeli nie ma wyraźnego konsensusu popierającego pierwotną blokadę. <span id="Appealing_a_block"></span> == Odwołanie od blokady == <div lang="en" dir="ltr" class="mw-content-ltr"> Blocked users are [[MediaWiki:Blockedtext|informed]] that they may '''request unblocking.''' They may do this by adding {{tld|unblock|''reason for the request''}} to their '''[[Special:MyTalk|own user talk page]].''' Alternatively, they may request unblocking with an appropriate reason via '''[[Special:EmailUser|e-mail]]''' to the blocking administrator or another administrator. </div> '''Odpowiednie uzasadnienie''' niemal zawsze zawiera jeden z następujących elementów: * '''Przyznanie się''', że blokada była uzasadniona, oraz '''wiarygodne zapewnienie''', że zachowanie, które do niej doprowadziło, nie powtórzy się * Wyjaśnienie, dlaczego blokada jest '''nieuzasadniona''' w świetle niniejszych oraz innych odpowiednich zasad i wytycznych albo dlaczego '''prawdopodobnie nałożono ją omyłkowo lub stanowi ona niezamierzony skutek uboczny'''. <div class="mw-translate-fuzzy"> Wniosek o odblokowanie może zostać '''[[Template:Unblock granted|zaakceptowany]]''' albo '''[[Template:Unblock declined|odrzucony]]]'''. Przed zaakceptowaniem wniosku dotyczącego blokady nałożonej przez innego administratora administrator rozpatrujący wniosek powinien '''skonsultować się z administratorem, który nałożył blokadę''', z wyjątkiem oczywistych i niebudzących kontrowersji przypadków. [[:Category:Requests for unblock|Wnioski składane na stronach dyskusji]] mogą być odrzucane wyłącznie przez '''administratora niezaangażowanego w sprawę'''. </div> Wielokrotne składanie wniosków o odblokowanie bez odpowiedniego uzasadnienia może zostać uznane za nadużycie. Jak wskazano powyżej, użytkownikom, którzy nadużywają lub prawdopodobnie będą nadużywać możliwości edytowania własnej strony dyskusji bądź wysyłania wiadomości e-mail, można odebrać jedno albo oba te uprawnienia. Uniemożliwi to również korzystanie z nich w celu składania kolejnych wniosków o odblokowanie. <span id="See_also"></span> == Zobacz też == <!-- * [[:Category:Block warning templates]] * [[:Category:User block templates]]--> * <span lang="en" dir="ltr" class="mw-content-ltr">[[m:Special:MyLanguage/Global locks|Global locks]], [[m:Special:MyLanguage/Global blocks|global blocks]], and [[m:Special:MyLanguage/Global bans|global bans]]: similar concepts spanning all Wikimedia projects</span> [[Category:Policy{{#translation:}}]] bgm3tsiyj3sabyi67ye9z9ya3xfk2f8 334276 334274 2026-10-28T23:30:45Z Chrumps 3889 Created page with "'''[[$1|Blokady zakresów adresów IP]]''' są szczególnie rozległym narzędziem, dlatego zdecydowanie zaleca się ich wcześniejsze omówienie. Blokady zakresów trwające dłużej niż 24 godziny powinny zostać omówione z użytkownikiem posiadającym uprawnienia {{pg|$2|CheckUsera}}, aby ocenić ich prawdopodobne skutki." 334276 wikitext text/x-wiki {{draft}} <languages/> <div lang="en" dir="ltr" class="mw-content-ltr"> [[Special:MyLanguage/WF:Administrators|Administrators]] are given the ability to administer '''blocks''' to users when appropriate. A blocked user is usually restricted from editing, among other things. In a general sense, blocks are a last resort for behaviour that has the potential to damage Wikifunctions or disrupt its collegial atmosphere. Blocks may be sitewide or partial (affecting only certain actions). In this way, blocking is designed to be a ''preventative'' measure and not a ''punitive'' one; "cool-down" blocks are not condoned. </div> <span id="Use"></span> == Użycie == Blokady mogą być nakładane z wielu powodów. Najczęstsze z nich opisano poniżej: * <span class="mw-translate-fuzzy">'''[[Special:MyLanguage/WF:Vandalism|Wandalizm]]]'''. Destrukcyjne edycje mogą skutkować blokadą. Przykłady:</span> ** Wprowadzanie nieuzasadnionych wulgaryzmów ** Dodawanie bezsensownego tekstu ** Usuwanie treści ze stron * '''Spam'''. * '''[[m:Special:MyLanguage/Copyright|Naruszenia praw autorskich]]'''. * '''[[m:Special:MyLanguage/Edit war|Wojna edycyjna]]'''. * '''Ataki osobiste''' lub '''nękanie'''. Konta i adresy IP wykorzystywane przede wszystkim do tworzenia wrogiej atmosfery wobec innego użytkownika mogą zostać zablokowane. Spory prowadzone w dobrej wierze należy jednak przedstawiać w [[WF:Project chat|dyskusji projektu]], aby umożliwić udział osobom postronnym. Monitorowanie wkładu użytkownika pod kątem naruszeń zasad nie jest nękaniem. * '''Nieautoryzowane lub niereagujące konta [[Special:MyLanguage/WF:Bots|botów]]. Konta botów muszą zostać zatwierdzone przez społeczność Wikifunkcji. Budzące wątpliwości edycje przypominające działanie bota, których użytkownik nie potrafi wyjaśnić, powinny skutkować blokadą do czasu przeprowadzenia dyskusji. Propozycje dotyczące botów można omawiać na stronie [[WF:Bots]] albo w [[WF:Project chat|dyskusji projektu]]. O zatwierdzenie bota można wystąpić na stronie [[WF:Bots]]. * '''Zatwierdzone konta botów, które czasowo działają nieprawidłowo'''. Blokada ma zapobiec dalszym szkodom do czasu rozwiązania problemu przez właściciela bota. * [[Special:MyLanguage/WF:Username policy#INAPPR|'''Nieodpowiednie nazwy użytkowników''']]. * '''Obchodzenie blokad'''. Administrator może ponownie nałożyć blokadę na użytkownika, który umyślnie ją omija (oraz wycofać jego edycje). Może również przedłużyć czas trwania blokady, jeżeli podczas jej obchodzenia użytkownik dopuszcza się kolejnych zachowań uzasadniających blokadę. Konta użytkowników i adresy IP wykorzystywane do obchodzenia blokady również mogą i powinny zostać zablokowane. * '''Nadużywanie wielu kont''' w celu wprowadzania w błąd, oszukiwania, zakłócania działania projektu, zniekształcania konsensusu albo obchodzenia blokad lub innych sankcji. Konta dodatkowe są zazwyczaj blokowane bezterminowo. W zależności od okoliczności na konto główne może zostać nałożona nowa blokada albo dotychczasowa blokada może zostać przedłużona. * '''Otwarte lub anonimizujące serwery proxy''' są zazwyczaj blokowane po wykryciu, zgodnie z [[m:Special:MyLanguage/No open proxies|ogólnymi zasadami Wikimedia]]. Standardowy czas trwania takiej blokady wynosi jeden rok. <span id="Instructions_for_administrators"></span> == Instrukcje dla administratorów == <span id="Before_blocking"></span> === Przed zablokowaniem === * W przypadku blokad związanych z destrukcyjnym zachowaniem, takim jak wandalizm, powtarzające się naruszenia praw autorskich lub ręcznie prowadzone działania promocyjne, należy upewnić się, że użytkownik został odpowiednio '''ostrzeżony''', najlepiej za pomocą [[:Category:Block warning templates|szablonu ostrzeżenia o blokadzie]]. Ostrzeżenie nie jest konieczne w przypadku blokowania otwartych serwerów proxy oraz użytkowników posługujących się nieodpowiednimi lub obraźliwymi nazwami. Konta i adresy IP wykorzystywane wyłącznie do szczególnie destrukcyjnych działań, takich jak automatyczne spamowanie, poważny wandalizm lub nękanie, również mogą zostać zablokowane bez wcześniejszego ostrzeżenia. * '''Kontrowersyjne blokady''' można omawiać na [[WF:Administrators' noticeboard|tablicy ogłoszeń dotyczącej blokad i zabezpieczeń]], najlepiej przed ich nałożeniem, o ile jest to możliwe. Ogólna zasada brzmi: w razie wątpliwości nie należy blokować. * '''[[:mw:Special:MyLanguage/Help:Range blocks|Blokady zakresów adresów IP]]''' są szczególnie rozległym narzędziem, dlatego zdecydowanie zaleca się ich wcześniejsze omówienie. Blokady zakresów trwające dłużej niż 24 godziny powinny zostać omówione z użytkownikiem posiadającym uprawnienia {{pg|WF:Checkusers|CheckUsera}}, aby ocenić ich prawdopodobne skutki. <div lang="en" dir="ltr" class="mw-content-ltr"> === When blocking === </div> * Blokady mogą być nakładane na '''zarejestrowanych użytkowników, adresy IP oraz zakresy adresów IP.''' * Ponieważ blokady mają charakter zapobiegawczy, a nie karny, należy ustalić '''czas trwania''' blokady proporcjonalny do okresu, którego użytkownik prawdopodobnie potrzebuje, aby zapoznać się z odpowiednimi zasadami i zmienić swoje postępowanie. Należy również uwzględnić wcześniejsze zachowanie użytkownika oraz wagę spowodowanych zakłóceń. Przy blokowaniu adresów IP trzeba pamiętać, że blokada może dotknąć niewinne osoby trzecie korzystające z tych samych adresów. * Należy podać '''powód''' blokady. Uzasadnienie powinno w miarę możliwości zawierać odnośniki do odpowiednich zasad, aby pomóc zablokowanemu użytkownikowi zrozumieć przyczynę blokady. W stosownych przypadkach pomocne są również porównania wersji lub [[w:Help:Permanent link|stałe linki]] dokumentujące przyczynę blokady. * Możliwość '''tworzenia kont''' powinna być w większości przypadków wyłączona. Można ją jednak pozostawić włączoną w przypadku blokady za nieodpowiednią nazwę użytkownika, aby umożliwić utworzenie konta pod inną nazwą. * '''Automatyczne blokowanie''' adresów IP używanych przez zablokowanego użytkownika powinno być zazwyczaj włączone w przypadku użytkowników zablokowanych za destrukcyjne zachowanie. W większości pozostałych przypadków należy je wyłączyć, na przykład podczas blokowania nieprawidłowo działających botów oraz nazw użytkowników niezgodnych z {{pg|WF:Username policy|zasadami dotyczącymi nazw użytkowników}}. * Możliwość korzystania ze strony '''dyskusji użytkownika''' lub wysyłania '''wiadomości e-mail''' należy zablokować tylko wtedy, gdy istnieje prawdopodobieństwo nadużywania tych uprawnień. <span id="After_blocking"></span> === Po zablokowaniu === * Należy '''powiadomić''' zablokowanego użytkownika, najlepiej za pomocą [[:Category:User block templates|szablonu informacji o blokadzie]]. * Należy '''obserwować''' stronę dyskusji zablokowanego użytkownika i dopilnować, aby '''[[:Category:Requests for unblock|wnioski o odblokowanie]]''' były rozpatrywane. * Blokady nałożone z powodu destrukcyjnego zachowania powinny zostać '''zniesione''', jeśli istnieją podstawy, by sądzić, że zachowanie to się nie powtórzy. * '''Kontrowersyjne blokady''' można omawiać na [[Wikifunctions:Administrators' noticeboard|tablicy ogłoszeń dotyczącej blokad i zabezpieczeń]] również po ich nałożeniu. Aby uniknąć „wojny administratorów”, inny administrator powinien znieść blokadę tylko wtedy, gdy istnieje co do tego konsensus, nawet jeżeli nie ma wyraźnego konsensusu popierającego pierwotną blokadę. <span id="Appealing_a_block"></span> == Odwołanie od blokady == <div lang="en" dir="ltr" class="mw-content-ltr"> Blocked users are [[MediaWiki:Blockedtext|informed]] that they may '''request unblocking.''' They may do this by adding {{tld|unblock|''reason for the request''}} to their '''[[Special:MyTalk|own user talk page]].''' Alternatively, they may request unblocking with an appropriate reason via '''[[Special:EmailUser|e-mail]]''' to the blocking administrator or another administrator. </div> '''Odpowiednie uzasadnienie''' niemal zawsze zawiera jeden z następujących elementów: * '''Przyznanie się''', że blokada była uzasadniona, oraz '''wiarygodne zapewnienie''', że zachowanie, które do niej doprowadziło, nie powtórzy się * Wyjaśnienie, dlaczego blokada jest '''nieuzasadniona''' w świetle niniejszych oraz innych odpowiednich zasad i wytycznych albo dlaczego '''prawdopodobnie nałożono ją omyłkowo lub stanowi ona niezamierzony skutek uboczny'''. <div class="mw-translate-fuzzy"> Wniosek o odblokowanie może zostać '''[[Template:Unblock granted|zaakceptowany]]''' albo '''[[Template:Unblock declined|odrzucony]]]'''. Przed zaakceptowaniem wniosku dotyczącego blokady nałożonej przez innego administratora administrator rozpatrujący wniosek powinien '''skonsultować się z administratorem, który nałożył blokadę''', z wyjątkiem oczywistych i niebudzących kontrowersji przypadków. [[:Category:Requests for unblock|Wnioski składane na stronach dyskusji]] mogą być odrzucane wyłącznie przez '''administratora niezaangażowanego w sprawę'''. </div> Wielokrotne składanie wniosków o odblokowanie bez odpowiedniego uzasadnienia może zostać uznane za nadużycie. Jak wskazano powyżej, użytkownikom, którzy nadużywają lub prawdopodobnie będą nadużywać możliwości edytowania własnej strony dyskusji bądź wysyłania wiadomości e-mail, można odebrać jedno albo oba te uprawnienia. Uniemożliwi to również korzystanie z nich w celu składania kolejnych wniosków o odblokowanie. <span id="See_also"></span> == Zobacz też == <!-- * [[:Category:Block warning templates]] * [[:Category:User block templates]]--> * <span lang="en" dir="ltr" class="mw-content-ltr">[[m:Special:MyLanguage/Global locks|Global locks]], [[m:Special:MyLanguage/Global blocks|global blocks]], and [[m:Special:MyLanguage/Global bans|global bans]]: similar concepts spanning all Wikimedia projects</span> [[Category:Policy{{#translation:}}]] gfv0sq21uppw3y66pny97s6xnr1n6pb 334278 334276 2026-10-28T23:32:04Z Chrumps 3889 334278 wikitext text/x-wiki {{draft}} <languages/> <div lang="en" dir="ltr" class="mw-content-ltr"> [[Special:MyLanguage/WF:Administrators|Administrators]] are given the ability to administer '''blocks''' to users when appropriate. A blocked user is usually restricted from editing, among other things. In a general sense, blocks are a last resort for behaviour that has the potential to damage Wikifunctions or disrupt its collegial atmosphere. Blocks may be sitewide or partial (affecting only certain actions). In this way, blocking is designed to be a ''preventative'' measure and not a ''punitive'' one; "cool-down" blocks are not condoned. </div> <span id="Use"></span> == Użycie == Blokady mogą być nakładane z wielu powodów. Najczęstsze z nich opisano poniżej: * '''[[Special:MyLanguage/WF:Vandalism|Wandalizm]]'''. Destrukcyjne edycje mogą skutkować blokadą. Przykłady: ** Wprowadzanie nieuzasadnionych wulgaryzmów ** Dodawanie bezsensownego tekstu ** Usuwanie treści ze stron * '''Spam'''. * '''[[m:Special:MyLanguage/Copyright|Naruszenia praw autorskich]]'''. * '''[[m:Special:MyLanguage/Edit war|Wojna edycyjna]]'''. * '''Ataki osobiste''' lub '''nękanie'''. Konta i adresy IP wykorzystywane przede wszystkim do tworzenia wrogiej atmosfery wobec innego użytkownika mogą zostać zablokowane. Spory prowadzone w dobrej wierze należy jednak przedstawiać w [[WF:Project chat|dyskusji projektu]], aby umożliwić udział osobom postronnym. Monitorowanie wkładu użytkownika pod kątem naruszeń zasad nie jest nękaniem. * '''Nieautoryzowane lub niereagujące konta [[Special:MyLanguage/WF:Bots|botów]]. Konta botów muszą zostać zatwierdzone przez społeczność Wikifunkcji. Budzące wątpliwości edycje przypominające działanie bota, których użytkownik nie potrafi wyjaśnić, powinny skutkować blokadą do czasu przeprowadzenia dyskusji. Propozycje dotyczące botów można omawiać na stronie [[WF:Bots]] albo w [[WF:Project chat|dyskusji projektu]]. O zatwierdzenie bota można wystąpić na stronie [[WF:Bots]]. * '''Zatwierdzone konta botów, które czasowo działają nieprawidłowo'''. Blokada ma zapobiec dalszym szkodom do czasu rozwiązania problemu przez właściciela bota. * [[Special:MyLanguage/WF:Username policy#INAPPR|'''Nieodpowiednie nazwy użytkowników''']]. * '''Obchodzenie blokad'''. Administrator może ponownie nałożyć blokadę na użytkownika, który umyślnie ją omija (oraz wycofać jego edycje). Może również przedłużyć czas trwania blokady, jeżeli podczas jej obchodzenia użytkownik dopuszcza się kolejnych zachowań uzasadniających blokadę. Konta użytkowników i adresy IP wykorzystywane do obchodzenia blokady również mogą i powinny zostać zablokowane. * '''Nadużywanie wielu kont''' w celu wprowadzania w błąd, oszukiwania, zakłócania działania projektu, zniekształcania konsensusu albo obchodzenia blokad lub innych sankcji. Konta dodatkowe są zazwyczaj blokowane bezterminowo. W zależności od okoliczności na konto główne może zostać nałożona nowa blokada albo dotychczasowa blokada może zostać przedłużona. * '''Otwarte lub anonimizujące serwery proxy''' są zazwyczaj blokowane po wykryciu, zgodnie z [[m:Special:MyLanguage/No open proxies|ogólnymi zasadami Wikimedia]]. Standardowy czas trwania takiej blokady wynosi jeden rok. <span id="Instructions_for_administrators"></span> == Instrukcje dla administratorów == <span id="Before_blocking"></span> === Przed zablokowaniem === * W przypadku blokad związanych z destrukcyjnym zachowaniem, takim jak wandalizm, powtarzające się naruszenia praw autorskich lub ręcznie prowadzone działania promocyjne, należy upewnić się, że użytkownik został odpowiednio '''ostrzeżony''', najlepiej za pomocą [[:Category:Block warning templates|szablonu ostrzeżenia o blokadzie]]. Ostrzeżenie nie jest konieczne w przypadku blokowania otwartych serwerów proxy oraz użytkowników posługujących się nieodpowiednimi lub obraźliwymi nazwami. Konta i adresy IP wykorzystywane wyłącznie do szczególnie destrukcyjnych działań, takich jak automatyczne spamowanie, poważny wandalizm lub nękanie, również mogą zostać zablokowane bez wcześniejszego ostrzeżenia. * '''Kontrowersyjne blokady''' można omawiać na [[WF:Administrators' noticeboard|tablicy ogłoszeń dotyczącej blokad i zabezpieczeń]], najlepiej przed ich nałożeniem, o ile jest to możliwe. Ogólna zasada brzmi: w razie wątpliwości nie należy blokować. * '''[[:mw:Special:MyLanguage/Help:Range blocks|Blokady zakresów adresów IP]]''' są szczególnie rozległym narzędziem, dlatego zdecydowanie zaleca się ich wcześniejsze omówienie. Blokady zakresów trwające dłużej niż 24 godziny powinny zostać omówione z użytkownikiem posiadającym uprawnienia {{pg|WF:Checkusers|CheckUsera}}, aby ocenić ich prawdopodobne skutki. <div lang="en" dir="ltr" class="mw-content-ltr"> === When blocking === </div> * Blokady mogą być nakładane na '''zarejestrowanych użytkowników, adresy IP oraz zakresy adresów IP.''' * Ponieważ blokady mają charakter zapobiegawczy, a nie karny, należy ustalić '''czas trwania''' blokady proporcjonalny do okresu, którego użytkownik prawdopodobnie potrzebuje, aby zapoznać się z odpowiednimi zasadami i zmienić swoje postępowanie. Należy również uwzględnić wcześniejsze zachowanie użytkownika oraz wagę spowodowanych zakłóceń. Przy blokowaniu adresów IP trzeba pamiętać, że blokada może dotknąć niewinne osoby trzecie korzystające z tych samych adresów. * Należy podać '''powód''' blokady. Uzasadnienie powinno w miarę możliwości zawierać odnośniki do odpowiednich zasad, aby pomóc zablokowanemu użytkownikowi zrozumieć przyczynę blokady. W stosownych przypadkach pomocne są również porównania wersji lub [[w:Help:Permanent link|stałe linki]] dokumentujące przyczynę blokady. * Możliwość '''tworzenia kont''' powinna być w większości przypadków wyłączona. Można ją jednak pozostawić włączoną w przypadku blokady za nieodpowiednią nazwę użytkownika, aby umożliwić utworzenie konta pod inną nazwą. * '''Automatyczne blokowanie''' adresów IP używanych przez zablokowanego użytkownika powinno być zazwyczaj włączone w przypadku użytkowników zablokowanych za destrukcyjne zachowanie. W większości pozostałych przypadków należy je wyłączyć, na przykład podczas blokowania nieprawidłowo działających botów oraz nazw użytkowników niezgodnych z {{pg|WF:Username policy|zasadami dotyczącymi nazw użytkowników}}. * Możliwość korzystania ze strony '''dyskusji użytkownika''' lub wysyłania '''wiadomości e-mail''' należy zablokować tylko wtedy, gdy istnieje prawdopodobieństwo nadużywania tych uprawnień. <span id="After_blocking"></span> === Po zablokowaniu === * Należy '''powiadomić''' zablokowanego użytkownika, najlepiej za pomocą [[:Category:User block templates|szablonu informacji o blokadzie]]. * Należy '''obserwować''' stronę dyskusji zablokowanego użytkownika i dopilnować, aby '''[[:Category:Requests for unblock|wnioski o odblokowanie]]''' były rozpatrywane. * Blokady nałożone z powodu destrukcyjnego zachowania powinny zostać '''zniesione''', jeśli istnieją podstawy, by sądzić, że zachowanie to się nie powtórzy. * '''Kontrowersyjne blokady''' można omawiać na [[Wikifunctions:Administrators' noticeboard|tablicy ogłoszeń dotyczącej blokad i zabezpieczeń]] również po ich nałożeniu. Aby uniknąć „wojny administratorów”, inny administrator powinien znieść blokadę tylko wtedy, gdy istnieje co do tego konsensus, nawet jeżeli nie ma wyraźnego konsensusu popierającego pierwotną blokadę. <span id="Appealing_a_block"></span> == Odwołanie od blokady == <div lang="en" dir="ltr" class="mw-content-ltr"> Blocked users are [[MediaWiki:Blockedtext|informed]] that they may '''request unblocking.''' They may do this by adding {{tld|unblock|''reason for the request''}} to their '''[[Special:MyTalk|own user talk page]].''' Alternatively, they may request unblocking with an appropriate reason via '''[[Special:EmailUser|e-mail]]''' to the blocking administrator or another administrator. </div> '''Odpowiednie uzasadnienie''' niemal zawsze zawiera jeden z następujących elementów: * '''Przyznanie się''', że blokada była uzasadniona, oraz '''wiarygodne zapewnienie''', że zachowanie, które do niej doprowadziło, nie powtórzy się * Wyjaśnienie, dlaczego blokada jest '''nieuzasadniona''' w świetle niniejszych oraz innych odpowiednich zasad i wytycznych albo dlaczego '''prawdopodobnie nałożono ją omyłkowo lub stanowi ona niezamierzony skutek uboczny'''. <div class="mw-translate-fuzzy"> Wniosek o odblokowanie może zostać '''[[Template:Unblock granted|zaakceptowany]]''' albo '''[[Template:Unblock declined|odrzucony]]]'''. Przed zaakceptowaniem wniosku dotyczącego blokady nałożonej przez innego administratora administrator rozpatrujący wniosek powinien '''skonsultować się z administratorem, który nałożył blokadę''', z wyjątkiem oczywistych i niebudzących kontrowersji przypadków. [[:Category:Requests for unblock|Wnioski składane na stronach dyskusji]] mogą być odrzucane wyłącznie przez '''administratora niezaangażowanego w sprawę'''. </div> Wielokrotne składanie wniosków o odblokowanie bez odpowiedniego uzasadnienia może zostać uznane za nadużycie. Jak wskazano powyżej, użytkownikom, którzy nadużywają lub prawdopodobnie będą nadużywać możliwości edytowania własnej strony dyskusji bądź wysyłania wiadomości e-mail, można odebrać jedno albo oba te uprawnienia. Uniemożliwi to również korzystanie z nich w celu składania kolejnych wniosków o odblokowanie. <span id="See_also"></span> == Zobacz też == <!-- * [[:Category:Block warning templates]] * [[:Category:User block templates]]--> * <span lang="en" dir="ltr" class="mw-content-ltr">[[m:Special:MyLanguage/Global locks|Global locks]], [[m:Special:MyLanguage/Global blocks|global blocks]], and [[m:Special:MyLanguage/Global bans|global bans]]: similar concepts spanning all Wikimedia projects</span> [[Category:Policy{{#translation:}}]] 1q1si2j83tli05c5y63fg6giasj85xt 334280 334278 2026-10-28T23:33:37Z Chrumps 3889 334280 wikitext text/x-wiki {{draft}} <languages/> <div lang="en" dir="ltr" class="mw-content-ltr"> [[Special:MyLanguage/WF:Administrators|Administrators]] are given the ability to administer '''blocks''' to users when appropriate. A blocked user is usually restricted from editing, among other things. In a general sense, blocks are a last resort for behaviour that has the potential to damage Wikifunctions or disrupt its collegial atmosphere. Blocks may be sitewide or partial (affecting only certain actions). In this way, blocking is designed to be a ''preventative'' measure and not a ''punitive'' one; "cool-down" blocks are not condoned. </div> <span id="Use"></span> == Użycie == Blokady mogą być nakładane z wielu powodów. Najczęstsze z nich opisano poniżej: * '''[[Special:MyLanguage/WF:Vandalism|Wandalizm]]'''. Destrukcyjne edycje mogą skutkować blokadą. Przykłady: ** Wprowadzanie nieuzasadnionych wulgaryzmów ** Dodawanie bezsensownego tekstu ** Usuwanie treści ze stron * '''Spam'''. * '''[[m:Special:MyLanguage/Copyright|Naruszenia praw autorskich]]'''. * '''[[m:Special:MyLanguage/Edit war|Wojna edycyjna]]'''. * '''Ataki osobiste''' lub '''nękanie'''. Konta i adresy IP wykorzystywane przede wszystkim do tworzenia wrogiej atmosfery wobec innego użytkownika mogą zostać zablokowane. Spory prowadzone w dobrej wierze należy jednak przedstawiać w [[WF:Project chat|dyskusji projektu]], aby umożliwić udział osobom postronnym. Monitorowanie wkładu użytkownika pod kątem naruszeń zasad nie jest nękaniem. * '''Nieautoryzowane lub niereagujące konta [[Special:MyLanguage/WF:Bots|botów]]'''. Konta botów muszą zostać zatwierdzone przez społeczność Wikifunkcji. Budzące wątpliwości edycje przypominające działanie bota, których użytkownik nie potrafi wyjaśnić, powinny skutkować blokadą do czasu przeprowadzenia dyskusji. Propozycje dotyczące botów można omawiać na stronie [[WF:Bots]] albo w [[WF:Project chat|dyskusji projektu]]. O zatwierdzenie bota można wystąpić na stronie [[WF:Bots]]. * '''Zatwierdzone konta botów, które czasowo działają nieprawidłowo'''. Blokada ma zapobiec dalszym szkodom do czasu rozwiązania problemu przez właściciela bota. * [[Special:MyLanguage/WF:Username policy#INAPPR|'''Nieodpowiednie nazwy użytkowników''']]. * '''Obchodzenie blokad'''. Administrator może ponownie nałożyć blokadę na użytkownika, który umyślnie ją omija (oraz wycofać jego edycje). Może również przedłużyć czas trwania blokady, jeżeli podczas jej obchodzenia użytkownik dopuszcza się kolejnych zachowań uzasadniających blokadę. Konta użytkowników i adresy IP wykorzystywane do obchodzenia blokady również mogą i powinny zostać zablokowane. * '''Nadużywanie wielu kont''' w celu wprowadzania w błąd, oszukiwania, zakłócania działania projektu, zniekształcania konsensusu albo obchodzenia blokad lub innych sankcji. Konta dodatkowe są zazwyczaj blokowane bezterminowo. W zależności od okoliczności na konto główne może zostać nałożona nowa blokada albo dotychczasowa blokada może zostać przedłużona. * '''Otwarte lub anonimizujące serwery proxy''' są zazwyczaj blokowane po wykryciu, zgodnie z [[m:Special:MyLanguage/No open proxies|ogólnymi zasadami Wikimedia]]. Standardowy czas trwania takiej blokady wynosi jeden rok. <span id="Instructions_for_administrators"></span> == Instrukcje dla administratorów == <span id="Before_blocking"></span> === Przed zablokowaniem === * W przypadku blokad związanych z destrukcyjnym zachowaniem, takim jak wandalizm, powtarzające się naruszenia praw autorskich lub ręcznie prowadzone działania promocyjne, należy upewnić się, że użytkownik został odpowiednio '''ostrzeżony''', najlepiej za pomocą [[:Category:Block warning templates|szablonu ostrzeżenia o blokadzie]]. Ostrzeżenie nie jest konieczne w przypadku blokowania otwartych serwerów proxy oraz użytkowników posługujących się nieodpowiednimi lub obraźliwymi nazwami. Konta i adresy IP wykorzystywane wyłącznie do szczególnie destrukcyjnych działań, takich jak automatyczne spamowanie, poważny wandalizm lub nękanie, również mogą zostać zablokowane bez wcześniejszego ostrzeżenia. * '''Kontrowersyjne blokady''' można omawiać na [[WF:Administrators' noticeboard|tablicy ogłoszeń dotyczącej blokad i zabezpieczeń]], najlepiej przed ich nałożeniem, o ile jest to możliwe. Ogólna zasada brzmi: w razie wątpliwości nie należy blokować. * '''[[:mw:Special:MyLanguage/Help:Range blocks|Blokady zakresów adresów IP]]''' są szczególnie rozległym narzędziem, dlatego zdecydowanie zaleca się ich wcześniejsze omówienie. Blokady zakresów trwające dłużej niż 24 godziny powinny zostać omówione z użytkownikiem posiadającym uprawnienia {{pg|WF:Checkusers|CheckUsera}}, aby ocenić ich prawdopodobne skutki. <div lang="en" dir="ltr" class="mw-content-ltr"> === When blocking === </div> * Blokady mogą być nakładane na '''zarejestrowanych użytkowników, adresy IP oraz zakresy adresów IP.''' * Ponieważ blokady mają charakter zapobiegawczy, a nie karny, należy ustalić '''czas trwania''' blokady proporcjonalny do okresu, którego użytkownik prawdopodobnie potrzebuje, aby zapoznać się z odpowiednimi zasadami i zmienić swoje postępowanie. Należy również uwzględnić wcześniejsze zachowanie użytkownika oraz wagę spowodowanych zakłóceń. Przy blokowaniu adresów IP trzeba pamiętać, że blokada może dotknąć niewinne osoby trzecie korzystające z tych samych adresów. * Należy podać '''powód''' blokady. Uzasadnienie powinno w miarę możliwości zawierać odnośniki do odpowiednich zasad, aby pomóc zablokowanemu użytkownikowi zrozumieć przyczynę blokady. W stosownych przypadkach pomocne są również porównania wersji lub [[w:Help:Permanent link|stałe linki]] dokumentujące przyczynę blokady. * Możliwość '''tworzenia kont''' powinna być w większości przypadków wyłączona. Można ją jednak pozostawić włączoną w przypadku blokady za nieodpowiednią nazwę użytkownika, aby umożliwić utworzenie konta pod inną nazwą. * '''Automatyczne blokowanie''' adresów IP używanych przez zablokowanego użytkownika powinno być zazwyczaj włączone w przypadku użytkowników zablokowanych za destrukcyjne zachowanie. W większości pozostałych przypadków należy je wyłączyć, na przykład podczas blokowania nieprawidłowo działających botów oraz nazw użytkowników niezgodnych z {{pg|WF:Username policy|zasadami dotyczącymi nazw użytkowników}}. * Możliwość korzystania ze strony '''dyskusji użytkownika''' lub wysyłania '''wiadomości e-mail''' należy zablokować tylko wtedy, gdy istnieje prawdopodobieństwo nadużywania tych uprawnień. <span id="After_blocking"></span> === Po zablokowaniu === * Należy '''powiadomić''' zablokowanego użytkownika, najlepiej za pomocą [[:Category:User block templates|szablonu informacji o blokadzie]]. * Należy '''obserwować''' stronę dyskusji zablokowanego użytkownika i dopilnować, aby '''[[:Category:Requests for unblock|wnioski o odblokowanie]]''' były rozpatrywane. * Blokady nałożone z powodu destrukcyjnego zachowania powinny zostać '''zniesione''', jeśli istnieją podstawy, by sądzić, że zachowanie to się nie powtórzy. * '''Kontrowersyjne blokady''' można omawiać na [[Wikifunctions:Administrators' noticeboard|tablicy ogłoszeń dotyczącej blokad i zabezpieczeń]] również po ich nałożeniu. Aby uniknąć „wojny administratorów”, inny administrator powinien znieść blokadę tylko wtedy, gdy istnieje co do tego konsensus, nawet jeżeli nie ma wyraźnego konsensusu popierającego pierwotną blokadę. <span id="Appealing_a_block"></span> == Odwołanie od blokady == <div lang="en" dir="ltr" class="mw-content-ltr"> Blocked users are [[MediaWiki:Blockedtext|informed]] that they may '''request unblocking.''' They may do this by adding {{tld|unblock|''reason for the request''}} to their '''[[Special:MyTalk|own user talk page]].''' Alternatively, they may request unblocking with an appropriate reason via '''[[Special:EmailUser|e-mail]]''' to the blocking administrator or another administrator. </div> '''Odpowiednie uzasadnienie''' niemal zawsze zawiera jeden z następujących elementów: * '''Przyznanie się''', że blokada była uzasadniona, oraz '''wiarygodne zapewnienie''', że zachowanie, które do niej doprowadziło, nie powtórzy się * Wyjaśnienie, dlaczego blokada jest '''nieuzasadniona''' w świetle niniejszych oraz innych odpowiednich zasad i wytycznych albo dlaczego '''prawdopodobnie nałożono ją omyłkowo lub stanowi ona niezamierzony skutek uboczny'''. <div class="mw-translate-fuzzy"> Wniosek o odblokowanie może zostać '''[[Template:Unblock granted|zaakceptowany]]''' albo '''[[Template:Unblock declined|odrzucony]]]'''. Przed zaakceptowaniem wniosku dotyczącego blokady nałożonej przez innego administratora administrator rozpatrujący wniosek powinien '''skonsultować się z administratorem, który nałożył blokadę''', z wyjątkiem oczywistych i niebudzących kontrowersji przypadków. [[:Category:Requests for unblock|Wnioski składane na stronach dyskusji]] mogą być odrzucane wyłącznie przez '''administratora niezaangażowanego w sprawę'''. </div> Wielokrotne składanie wniosków o odblokowanie bez odpowiedniego uzasadnienia może zostać uznane za nadużycie. Jak wskazano powyżej, użytkownikom, którzy nadużywają lub prawdopodobnie będą nadużywać możliwości edytowania własnej strony dyskusji bądź wysyłania wiadomości e-mail, można odebrać jedno albo oba te uprawnienia. Uniemożliwi to również korzystanie z nich w celu składania kolejnych wniosków o odblokowanie. <span id="See_also"></span> == Zobacz też == <!-- * [[:Category:Block warning templates]] * [[:Category:User block templates]]--> * <span lang="en" dir="ltr" class="mw-content-ltr">[[m:Special:MyLanguage/Global locks|Global locks]], [[m:Special:MyLanguage/Global blocks|global blocks]], and [[m:Special:MyLanguage/Global bans|global bans]]: similar concepts spanning all Wikimedia projects</span> [[Category:Policy{{#translation:}}]] bi8k7mceowlj3kjt28js86q7zi8rtfn Translations:Wikifunctions:Translation administrators/23/pl 1198 20209 334293 70170 2026-10-28T23:43:47Z Chrumps 3889 334293 wikitext text/x-wiki Przedstawić przykładową edycję potwierdzającą praktyczne doświadczenie w posługiwaniu się składnią tłumaczeń. ja24b87hgl3ybvcsk8kj3rpiau2xlz4 Z13036 0 23026 334198 303838 2026-10-28T22:28:17Z WikiLambda system 3 Updated the implementation list (see [[Help:Wikifunctions/Implementation_ordering_and_choosing|About implementation selection]]) 334198 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z13036" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z8", "Z17K2": "Z13036K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "function" }, { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "fonction" }, { "Z1K1": "Z11", "Z11K1": "Z1014", "Z11K2": "ọrụ" }, { "Z1K1": "Z11", "Z11K1": "Z1430", "Z11K2": "Funktion" }, { "Z1K1": "Z11", "Z11K1": "Z1787", "Z11K2": "funzione" }, { "Z1K1": "Z11", "Z11K1": "Z1078", "Z11K2": "fungsi" }, { "Z1K1": "Z11", "Z11K1": "Z1830", "Z11K2": "適用する関数" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z1", "Z17K2": "Z13036K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "value" }, { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "valeur" }, { "Z1K1": "Z11", "Z11K1": "Z1014", "Z11K2": " uru" }, { "Z1K1": "Z11", "Z11K1": "Z1430", "Z11K2": "Wert" }, { "Z1K1": "Z11", "Z11K1": "Z1787", "Z11K2": "valore" }, { "Z1K1": "Z11", "Z11K1": "Z1078", "Z11K2": "nilai" }, { "Z1K1": "Z11", "Z11K1": "Z1830", "Z11K2": "値" } ] } } ], "Z8K2": "Z1", "Z8K3": [ "Z20", "Z13047", "Z13049", "Z13347", "Z14355", "Z14411" ], "Z8K4": [ "Z14", "Z29349", "Z13048", "Z33928", "Z14353" ], "Z8K5": "Z13036" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "apply" }, { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "application" }, { "Z1K1": "Z11", "Z11K1": "Z1014", "Z11K2": "Itinye " }, { "Z1K1": "Z11", "Z11K1": "Z1013", "Z11K2": "nema" }, { "Z1K1": "Z11", "Z11K1": "Z1430", "Z11K2": "anwenden" }, { "Z1K1": "Z11", "Z11K1": "Z1787", "Z11K2": "applica" }, { "Z1K1": "Z11", "Z11K1": "Z1078", "Z11K2": "terapkan" }, { "Z1K1": "Z11", "Z11K1": "Z1830", "Z11K2": "関数を適用" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31", { "Z1K1": "Z31", "Z31K1": "Z1002", "Z31K2": [ "Z6", "evaluate function", "function apply", "apply1" ] }, { "Z1K1": "Z31", "Z31K1": "Z1787", "Z31K2": [ "Z6", "valuta funzione", "esegui funzione con un parametro" ] }, { "Z1K1": "Z31", "Z31K1": "Z1078", "Z31K2": [ "Z6", "fungsi evaluasi", "fungsi terapan" ] }, { "Z1K1": "Z31", "Z31K1": "Z1830", "Z31K2": [ "Z6", "1引数関数を適用" ] } ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "a function that applies another (single argument) function to a value" }, { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "appliquer une fonction à un paramètre" }, { "Z1K1": "Z11", "Z11K1": "Z1013", "Z11K2": "aikin da ya shafi wani aiki (hujja ɗaya) zuwa ƙima" }, { "Z1K1": "Z11", "Z11K1": "Z1014", "Z11K2": " ọrụ nke na-emetụta ọrụ ọzọ (otu arụmụka) na uru" }, { "Z1K1": "Z11", "Z11K1": "Z1430", "Z11K2": "eine Funktion, die eine andere Funktion auf einen Wert anwendet" }, { "Z1K1": "Z11", "Z11K1": "Z1787", "Z11K2": "Applica una funzione (a un parametro) a un valore" }, { "Z1K1": "Z11", "Z11K1": "Z1078", "Z11K2": "fungsi yang menerapkan fungsi (dengan satu argumen) ke suatu nilai" }, { "Z1K1": "Z11", "Z11K1": "Z1830", "Z11K2": "値に対して別の(単一引数の)関数を適用する関数" } ] } } m447nr4wd625ym0jcjmk02fd7qlmfqw Z16273 0 30355 334184 271243 2026-10-28T21:48:53Z Jdforrester (WMF) 4 Added Z48066 to the approved list of implementations 334184 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z16273" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z12", "Z17K2": "Z16273K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "multilingual text" }, { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "texte multilingue" }, { "Z1K1": "Z11", "Z11K1": "Z1430", "Z11K2": "mehrsprachiger Text" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z60", "Z17K2": "Z16273K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "language" }, { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "langue" }, { "Z1K1": "Z11", "Z11K1": "Z1430", "Z11K2": "Sprache" } ] } } ], "Z8K2": "Z11", "Z8K3": [ "Z20", "Z16274", "Z16284", "Z22414", "Z30680", "Z30682", "Z30681" ], "Z8K4": [ "Z14", "Z16282", "Z48066" ], "Z8K5": "Z16273" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "monolingual text in specified language from multilingual text" }, { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "texte monol. dans une langue donnée via multiling." }, { "Z1K1": "Z11", "Z11K1": "Z1430", "Z11K2": "einsprachiger Text in angegebener Sprache" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31", { "Z1K1": "Z31", "Z31K1": "Z1002", "Z31K2": [ "Z6", "get monolingual text in specified language from multilingual text" ] } ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "renvoie un texte monolingue dans une langue donnée à partir d'un texte multilingue" } ] } } ffnldzst839persmi9za3qex1ps9ejj 334185 334184 2026-10-28T21:49:09Z WikiLambda system 3 Updated the implementation list (see [[Help:Wikifunctions/Implementation_ordering_and_choosing|About implementation selection]]) 334185 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z16273" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z12", "Z17K2": "Z16273K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "multilingual text" }, { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "texte multilingue" }, { "Z1K1": "Z11", "Z11K1": "Z1430", "Z11K2": "mehrsprachiger Text" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z60", "Z17K2": "Z16273K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "language" }, { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "langue" }, { "Z1K1": "Z11", "Z11K1": "Z1430", "Z11K2": "Sprache" } ] } } ], "Z8K2": "Z11", "Z8K3": [ "Z20", "Z16274", "Z16284", "Z22414", "Z30680", "Z30682", "Z30681" ], "Z8K4": [ "Z14", "Z48066", "Z16282" ], "Z8K5": "Z16273" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "monolingual text in specified language from multilingual text" }, { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "texte monol. dans une langue donnée via multiling." }, { "Z1K1": "Z11", "Z11K1": "Z1430", "Z11K2": "einsprachiger Text in angegebener Sprache" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31", { "Z1K1": "Z31", "Z31K1": "Z1002", "Z31K2": [ "Z6", "get monolingual text in specified language from multilingual text" ] } ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "renvoie un texte monolingue dans une langue donnée à partir d'un texte multilingue" } ] } } axe9k5wogm1hbsk9t8gslilpb0p4dkx 334194 334185 2026-10-28T22:08:07Z Jdforrester (WMF) 4 Added Z48070 to the approved list of test cases 334194 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z16273" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z12", "Z17K2": "Z16273K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "multilingual text" }, { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "texte multilingue" }, { "Z1K1": "Z11", "Z11K1": "Z1430", "Z11K2": "mehrsprachiger Text" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z60", "Z17K2": "Z16273K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "language" }, { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "langue" }, { "Z1K1": "Z11", "Z11K1": "Z1430", "Z11K2": "Sprache" } ] } } ], "Z8K2": "Z11", "Z8K3": [ "Z20", "Z16274", "Z16284", "Z22414", "Z30680", "Z30682", "Z30681", "Z48070" ], "Z8K4": [ "Z14", "Z48066", "Z16282" ], "Z8K5": "Z16273" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "monolingual text in specified language from multilingual text" }, { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "texte monol. dans une langue donnée via multiling." }, { "Z1K1": "Z11", "Z11K1": "Z1430", "Z11K2": "einsprachiger Text in angegebener Sprache" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31", { "Z1K1": "Z31", "Z31K1": "Z1002", "Z31K2": [ "Z6", "get monolingual text in specified language from multilingual text" ] } ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "renvoie un texte monolingue dans une langue donnée à partir d'un texte multilingue" } ] } } 8zm09xape4pbgdj794hfaodpxvzni46 Z20371 0 43723 334149 221481 2026-10-28T20:29:47Z Ameisenigel 44 de 334149 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z20371" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z20342", "Z17K2": "Z20371K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Date" }, { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "date" }, { "Z1K1": "Z11", "Z11K1": "Z1430", "Z11K2": "Datum" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z20159", "Z17K2": "Z20371K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Year" }, { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "année" }, { "Z1K1": "Z11", "Z11K1": "Z1430", "Z11K2": "Jahr" } ] } } ], "Z8K2": "Z17402", "Z8K3": [ "Z20", "Z28618" ], "Z8K4": [ "Z14", "Z28619", "Z20374" ], "Z8K5": "Z20371" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Day from Date + Year" }, { "Z1K1": "Z11", "Z11K1": "Z1430", "Z11K2": "Tag aus Datum und Jahr" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 3lrv0xp81zhinwvwa05kp2i28uyjcmj Z20372 0 43724 334150 140954 2026-10-28T20:30:28Z Ameisenigel 44 de 334150 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z20372" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z20367", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z20367", "Z20367K1": { "Z1K1": "Z20342", "Z20342K1": "Z16101", "Z20342K2": { "Z1K1": "Z13518", "Z13518K1": "1" } }, "Z20367K2": { "Z1K1": "Z16683", "Z16683K1": { "Z1K1": "Z16659", "Z16659K1": "Z16662" }, "Z16683K2": { "Z1K1": "Z13518", "Z13518K1": "2" } }, "Z20367K3": "Z42" }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z20348", "Z20348K2": { "Z1K1": "Z20342", "Z20342K1": "Z16112", "Z20342K2": { "Z1K1": "Z13518", "Z13518K1": "30" } } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "1 January - 2 = 30 December" }, { "Z1K1": "Z11", "Z11K1": "Z1430", "Z11K2": "1. Januar - 2 = 30. Dezember" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } fuvcieqdo6eukfjkv8i0rueu7jqcd0b Z20373 0 43725 334151 140945 2026-10-28T20:30:59Z Ameisenigel 44 de 334151 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z20373" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z20367", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z20367", "Z20367K1": { "Z1K1": "Z20342", "Z20342K1": "Z16102", "Z20342K2": { "Z1K1": "Z13518", "Z13518K1": "10" } }, "Z20367K2": { "Z1K1": "Z16683", "Z16683K1": { "Z1K1": "Z16659", "Z16659K1": "Z16660" }, "Z16683K2": { "Z1K1": "Z13518", "Z13518K1": "18" } }, "Z20367K3": { "Z1K1": "Z40", "Z40K1": "Z41" } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z20348", "Z20348K2": { "Z1K1": "Z20342", "Z20342K1": "Z16102", "Z20342K2": { "Z1K1": "Z13518", "Z13518K1": "28" } } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "10 Feb + 18 = 28 Feb" }, { "Z1K1": "Z11", "Z11K1": "Z1430", "Z11K2": "10. Februar + 18 = 28. Februar" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } if3k643qflsqgv7erp2mue67hn1r9iu Z20374 0 43726 334152 221470 2026-10-28T20:31:25Z Ameisenigel 44 de 334152 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z20374" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z20371", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z17517", "Z17517K1": { "Z1K1": "Z7", "Z7K1": "Z20290", "Z20290K1": { "Z1K1": "Z18", "Z18K1": "Z20371K2" } }, "Z17517K2": { "Z1K1": "Z7", "Z7K1": "Z17111", "Z17111K1": { "Z1K1": "Z7", "Z7K1": "Z17101", "Z17101K1": { "Z1K1": "Z7", "Z7K1": "Z20357", "Z20357K1": { "Z1K1": "Z18", "Z18K1": "Z20371K1" }, "Z20357K2": { "Z1K1": "Z7", "Z7K1": "Z20181", "Z20181K1": { "Z1K1": "Z18", "Z18K1": "Z20371K2" } } } }, "Z17111K2": { "Z1K1": "Z16683", "Z16683K1": { "Z1K1": "Z16659", "Z16659K1": "Z16660" }, "Z16683K2": { "Z1K1": "Z13518", "Z13518K1": "1" } } } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "day from date \u0026 year, composition" }, { "Z1K1": "Z11", "Z11K1": "Z1430", "Z11K2": "Tag aus Datum und Jahr als Komposition" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } hba6lgh3zkwaefyjmbmemhqoppurer4 Z20375 0 43727 334153 140948 2026-10-28T20:32:05Z Ameisenigel 44 de 334153 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z20375" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z20367", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z20367", "Z20367K1": { "Z1K1": "Z20342", "Z20342K1": "Z16102", "Z20342K2": { "Z1K1": "Z13518", "Z13518K1": "10" } }, "Z20367K2": { "Z1K1": "Z16683", "Z16683K1": { "Z1K1": "Z16659", "Z16659K1": "Z16660" }, "Z16683K2": { "Z1K1": "Z13518", "Z13518K1": "19" } }, "Z20367K3": { "Z1K1": "Z40", "Z40K1": "Z41" } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z20348", "Z20348K2": { "Z1K1": "Z20342", "Z20342K1": "Z16102", "Z20342K2": { "Z1K1": "Z13518", "Z13518K1": "29" } } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "10 Feb + 19 = 29 Feb (leap year)" }, { "Z1K1": "Z11", "Z11K1": "Z1430", "Z11K2": "10. Februar + 19 = 29. Februar" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ourjc5rmn8chp0ju1c2ihyw5f36s0rp Z20376 0 43728 334154 140950 2026-10-28T20:32:38Z Ameisenigel 44 de 334154 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z20376" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z20367", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z20367", "Z20367K1": { "Z1K1": "Z20342", "Z20342K1": "Z16102", "Z20342K2": { "Z1K1": "Z13518", "Z13518K1": "10" } }, "Z20367K2": { "Z1K1": "Z16683", "Z16683K1": { "Z1K1": "Z16659", "Z16659K1": "Z16660" }, "Z16683K2": { "Z1K1": "Z13518", "Z13518K1": "19" } }, "Z20367K3": { "Z1K1": "Z40", "Z40K1": "Z42" } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z20348", "Z20348K2": { "Z1K1": "Z20342", "Z20342K1": "Z16103", "Z20342K2": { "Z1K1": "Z13518", "Z13518K1": "1" } } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "10 Feb + 19 = 1 Mar (non leap year)" }, { "Z1K1": "Z11", "Z11K1": "Z1430", "Z11K2": "10. Februar + 19 = 1. März" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } sihhfnsigggzmhgj00sonuke9xgj6h2 Z20377 0 43755 334155 141014 2026-10-28T20:33:13Z Ameisenigel 44 de 334155 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z20377" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z20367", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z20367", "Z20367K1": { "Z1K1": "Z20342", "Z20342K1": "Z16112", "Z20342K2": { "Z1K1": "Z13518", "Z13518K1": "31" } }, "Z20367K2": { "Z1K1": "Z16683", "Z16683K1": { "Z1K1": "Z16659", "Z16659K1": "Z16660" }, "Z16683K2": { "Z1K1": "Z13518", "Z13518K1": "1" } }, "Z20367K3": { "Z1K1": "Z40", "Z40K1": "Z41" } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z20348", "Z20348K2": { "Z1K1": "Z20342", "Z20342K1": "Z16101", "Z20342K2": { "Z1K1": "Z13518", "Z13518K1": "1" } } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "31 Dec + 1 = 1 Jan" }, { "Z1K1": "Z11", "Z11K1": "Z1430", "Z11K2": "31. Dezember + 1 = 1. Januar" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } qptoe3f7c5cc115jjhv9xno28881mtl Z20378 0 43756 334156 202282 2026-10-28T20:34:17Z Ameisenigel 44 de 334156 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z20378" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z20348", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z20348", "Z20348K1": { "Z1K1": "Z20342", "Z20342K1": "Z16102", "Z20342K2": { "Z1K1": "Z13518", "Z13518K1": "0" } }, "Z20348K2": { "Z1K1": "Z20342", "Z20342K1": "Z16101", "Z20342K2": { "Z1K1": "Z13518", "Z13518K1": "31" } } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z844", "Z844K2": { "Z1K1": "Z40", "Z40K1": "Z42" } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "0 Feb != 31 Jan" }, { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "le 0 février est différent du 31 janvier" }, { "Z1K1": "Z11", "Z11K1": "Z1430", "Z11K2": "0. Februar ≠ 31. Januar" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 9vru612jk9l0k59q4cyr1ov5o3shp8j Z20379 0 43757 334157 142826 2026-10-28T20:34:47Z Ameisenigel 44 de 334157 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z20379" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z20348", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z20348", "Z20348K1": { "Z1K1": "Z20342", "Z20342K1": "Z16102", "Z20342K2": { "Z1K1": "Z13518", "Z13518K1": "29" } }, "Z20348K2": { "Z1K1": "Z20342", "Z20342K1": "Z16103", "Z20342K2": { "Z1K1": "Z13518", "Z13518K1": "1" } } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z844", "Z844K2": { "Z1K1": "Z40", "Z40K1": "Z42" } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "29 February != 1 March" }, { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "le 29 février est différent du 1er mars" }, { "Z1K1": "Z11", "Z11K1": "Z1430", "Z11K2": "29. Februar ≠ 1. März" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 10peicr75hi9415ucrlk6e9lbgfddjo Z20380 0 43758 334158 141023 2026-10-28T20:35:14Z Ameisenigel 44 de 334158 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z20380" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z10996", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z20181", "Z20181K1": { "Z1K1": "Z20159", "Z20159K1": "Z17814", "Z20159K2": { "Z1K1": "Z18", "Z18K1": "Z10996K1" } } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "is leap year, Gregorian Year composition" }, { "Z1K1": "Z11", "Z11K1": "Z1430", "Z11K2": "ist Schaltjahr im gregorianischen Kalender, Komp." } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } swhttta5navcxoxcspe8jc18dolgrzs Z26882 0 62423 334200 297704 2026-10-28T22:35:43Z Jdforrester (WMF) 4 Added Z48071 to the approved list of implementations 334200 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z26882" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z1", "Z17K2": "Z26882K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1787", "Z11K2": "istanza di enumerazione Wikidata" }, { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "instance of Wikidata enumeration" } ] } } ], "Z8K2": "Z13518", "Z8K3": [ "Z20", "Z26883", "Z26884", "Z31823" ], "Z8K4": [ "Z14", "Z26885", "Z48071" ], "Z8K5": "Z26882" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1787", "Z11K2": "istanza di enumerazione Wikidata in numero" }, { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "instance of Wikidata enum to number" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31", { "Z1K1": "Z31", "Z31K1": "Z1787", "Z31K2": [ "Z6", "posizione di istanza di enumerazione Wikidata" ] }, { "Z1K1": "Z31", "Z31K1": "Z1002", "Z31K2": [ "Z6", "number of enumerated item" ] } ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1787", "Z11K2": "Restituisce la posizione dell'istanza di enumerazione Wikidata nell'elenco di tutti i possibili valori." }, { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Returns the position of the instance of Wikidata enumeration within the list of all possible values of the enumeration." } ] } } pydubihz1x97p91ufe4i2crh9phi15m 334201 334200 2026-10-28T22:36:35Z WikiLambda system 3 Updated the implementation list (see [[Help:Wikifunctions/Implementation_ordering_and_choosing|About implementation selection]]) 334201 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z26882" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z1", "Z17K2": "Z26882K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1787", "Z11K2": "istanza di enumerazione Wikidata" }, { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "instance of Wikidata enumeration" } ] } } ], "Z8K2": "Z13518", "Z8K3": [ "Z20", "Z26883", "Z26884", "Z31823" ], "Z8K4": [ "Z14", "Z48071", "Z26885" ], "Z8K5": "Z26882" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1787", "Z11K2": "istanza di enumerazione Wikidata in numero" }, { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "instance of Wikidata enum to number" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31", { "Z1K1": "Z31", "Z31K1": "Z1787", "Z31K2": [ "Z6", "posizione di istanza di enumerazione Wikidata" ] }, { "Z1K1": "Z31", "Z31K1": "Z1002", "Z31K2": [ "Z6", "number of enumerated item" ] } ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1787", "Z11K2": "Restituisce la posizione dell'istanza di enumerazione Wikidata nell'elenco di tutti i possibili valori." }, { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Returns the position of the instance of Wikidata enumeration within the list of all possible values of the enumeration." } ] } } fhtq2vbgere1hms8oshoa6rxzxnqveh Z29166 0 67817 334356 327556 2026-10-29T06:55:39Z WikiLambda system 3 Updated the implementation list (see [[Help:Wikifunctions/Implementation_ordering_and_choosing|About implementation selection]]) 334356 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z29166" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z99", "Z17K2": "Z29166K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "this Quote" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z99", "Z17K2": "Z29166K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "that Quote" } ] } } ], "Z8K2": "Z40", "Z8K3": [ "Z20", "Z29168", "Z29298", "Z29300" ], "Z8K4": [ "Z14", "Z45490", "Z29167", "Z29299" ], "Z8K5": "Z29166" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "same Quote" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31", { "Z1K1": "Z31", "Z31K1": "Z1002", "Z31K2": [ "Z6", "equality of Quotes", "==Z99" ] } ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "returns True if the two objects are both Quote objects enclosing an equivalent object" } ] } } 0ppuxo4p2esx4wqvfhs0kidz0qx79tn 334376 334356 2026-10-29T07:36:37Z WikiLambda system 3 Updated the implementation list (see [[Help:Wikifunctions/Implementation_ordering_and_choosing|About implementation selection]]) 334376 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z29166" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z99", "Z17K2": "Z29166K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "this Quote" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z99", "Z17K2": "Z29166K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "that Quote" } ] } } ], "Z8K2": "Z40", "Z8K3": [ "Z20", "Z29168", "Z29298", "Z29300" ], "Z8K4": [ "Z14", "Z29299", "Z29167", "Z45490" ], "Z8K5": "Z29166" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "same Quote" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31", { "Z1K1": "Z31", "Z31K1": "Z1002", "Z31K2": [ "Z6", "equality of Quotes", "==Z99" ] } ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "returns True if the two objects are both Quote objects enclosing an equivalent object" } ] } } 4f3e46vnz7c77hglon0emek2t52z32x Z29349 0 68447 334197 228291 2026-10-28T22:28:09Z Virinas-code 2884 edit via [[User:Feeglgeef/wikilambda_editsource.js|raw-JSON edit tool]] 334197 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z29349" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z13036", "Z14K2": { "Z1K1": "Z7", "Z7K1": { "Z1K1": "Z18", "Z18K1": "Z13036K1" }, "K1": { "Z1K1": "Z18", "Z18K1": "Z13036K2" } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "apply, Composition: call by reference " } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } dsardd5f6sv5jijtuccy80b1eftb9fw Z31512 0 75754 334312 284002 2026-10-29T06:20:38Z Mirani Pramitasari 38679 334312 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z31512" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z13518", "Z17K2": "Z31512K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "n" } ] } } ], "Z8K2": "Z13518", "Z8K3": [ "Z20", "Z31513", "Z31514", "Z31515", "Z31561" ], "Z8K4": [ "Z14", "Z31516", "Z31517" ], "Z8K5": "Z31512" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "(floor of) base-2 logarithm of Natural number" }, { "Z1K1": "Z11", "Z11K1": "Z1078", "Z11K2": "(pembulatan ke bawah) log basis 2 bilangan asli" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31", { "Z1K1": "Z31", "Z31K1": "Z1002", "Z31K2": [ "Z6", "floor(log2(n))" ] } ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } lfng2qcowkqw7diuge9vfregedyup0r Wikifunctions:OpenFunctions/pl 4 77373 334209 255306 2026-10-28T22:54:37Z Chrumps 3889 Created page with "=== baza danych ===" 334209 wikitext text/x-wiki <languages/> <span id="documentation"></span> == Dokumentacja == * https://docs.oasis-open.org/office/OpenDocument/v1.3/os/part4-formula/OpenDocument-v1.3-os-part4-formula.html * https://wiki.documentfoundation.org/module:calc_fn_name/data * https://github.com/LibreOffice/core/tree/master/formula * https://gitlab.com/search?project_id=13209615&group_id=5586175&search=formula&search_code=true&repository_ref=master * https://gitlab.gnome.org/search?project_id=1547&group_id=8search=openformula&&search_code=true&repository_ref=master ** http://tandfonline.com/doi/abs/10.1198/tas.2011.09076 ** http://pages.drexel.edu/~bdm25/gnumeric.pdf ** http://phusewiki.org/docs/2009%20PAPERS/SP06.pdf * https://community.kde.org/Calligra/Formula_Shape <!--https://github.com/search?q=repo%3AAbiWord%2Fabiword+formula--> <!--https://github.com/search?q=org%3ACollaboraOnline%20formula&type=repositories--> <!--https://github.com/search?q=repo%3ACollaboraOnline%2Fonline+formula&type=code--> <!--https://github.com/search?q=repo%3AUlricE%2FSiagOffice%20formula&type=issues--> <div lang="en" dir="ltr" class="mw-content-ltr"> == types == </div> * <span lang="en" dir="ltr" class="mw-content-ltr">Text (String)</span> * <span lang="en" dir="ltr" class="mw-content-ltr">Number</span> ** Czas ** Data ** <span lang="en" dir="ltr" class="mw-content-ltr">DateTime</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Percentage</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Currency</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Logical (Number)</span> * <span lang="en" dir="ltr" class="mw-content-ltr">Complex Number</span> * <span lang="en" dir="ltr" class="mw-content-ltr">Logical (Boolean)</span> * Błąd * <span lang="en" dir="ltr" class="mw-content-ltr">Empty Cell</span> * <span lang="en" dir="ltr" class="mw-content-ltr">Reference</span> * <span lang="en" dir="ltr" class="mw-content-ltr">ReferenceList</span> * <span lang="en" dir="ltr" class="mw-content-ltr">Array</span> * <span lang="en" dir="ltr" class="mw-content-ltr">Pseudotypes</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Scalar</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">DateParam</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">TimeParam</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Integer</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">TextOrNumber</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Basis</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Criterion</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Database</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Field</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Criteria</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Sequences</span> *** <span lang="en" dir="ltr" class="mw-content-ltr">NumberSequence</span> *** <span lang="en" dir="ltr" class="mw-content-ltr">NumberSequenceList</span> *** <span lang="en" dir="ltr" class="mw-content-ltr">DateSequence</span> *** <span lang="en" dir="ltr" class="mw-content-ltr">LogicalSequence</span> *** <span lang="en" dir="ltr" class="mw-content-ltr">ComplexSequence</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Any</span> <div lang="en" dir="ltr" class="mw-content-ltr"> == conversion == </div> * <span lang="en" dir="ltr" class="mw-content-ltr">to Scalar</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Implied intersection</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Force to array context (ForceArray)</span> * <span lang="en" dir="ltr" class="mw-content-ltr">to Number</span> * <span lang="en" dir="ltr" class="mw-content-ltr">to Integer</span> * <span lang="en" dir="ltr" class="mw-content-ltr">to NumberSequence</span> * <span lang="en" dir="ltr" class="mw-content-ltr">to NumberSequenceList</span> * <span lang="en" dir="ltr" class="mw-content-ltr">to DateSequence</span> * <span lang="en" dir="ltr" class="mw-content-ltr">to Complex Number</span> * <span lang="en" dir="ltr" class="mw-content-ltr">to ComplexSequence</span> * <span lang="en" dir="ltr" class="mw-content-ltr">to Logical</span> * <span lang="en" dir="ltr" class="mw-content-ltr">to LogicalSequence</span> * <span lang="en" dir="ltr" class="mw-content-ltr">to Text</span> * <span lang="en" dir="ltr" class="mw-content-ltr">to DateParam</span> * <span lang="en" dir="ltr" class="mw-content-ltr">to TimeParam</span> <div lang="en" dir="ltr" class="mw-content-ltr"> == functions == </div> <div lang="en" dir="ltr" class="mw-content-ltr"> === operators === </div> <div lang="en" dir="ltr" class="mw-content-ltr"> ==== prefix ==== </div> * + (<span lang="en" dir="ltr" class="mw-content-ltr">positive</span>) * - (<span lang="en" dir="ltr" class="mw-content-ltr">negative</span>) <div lang="en" dir="ltr" class="mw-content-ltr"> ==== infix ==== </div> * + (<span lang="en" dir="ltr" class="mw-content-ltr">add</span>) * - (<span lang="en" dir="ltr" class="mw-content-ltr">subtract</span>) * * (<span lang="en" dir="ltr" class="mw-content-ltr">multiply</span>) * / (<span lang="en" dir="ltr" class="mw-content-ltr">divide</span>) * <span lang="en" dir="ltr" class="mw-content-ltr">unordered comparisons</span> ** = (<span lang="en" dir="ltr" class="mw-content-ltr">equal to</span>) ** <> (<span lang="en" dir="ltr" class="mw-content-ltr">not equal to</span>) * <span lang="en" dir="ltr" class="mw-content-ltr">ordered comparisons</span> ** < (<span lang="en" dir="ltr" class="mw-content-ltr">less than</span>) ** <= (<span lang="en" dir="ltr" class="mw-content-ltr">less than or equal to</span>) ** > (<span lang="en" dir="ltr" class="mw-content-ltr">greater than</span>) ** >= (<span lang="en" dir="ltr" class="mw-content-ltr">greater than or equal to</span>) * & * : (<span lang="en" dir="ltr" class="mw-content-ltr">reference range</span>) * <span lang="en" dir="ltr" class="mw-content-ltr">null string</span> * ! (<span lang="en" dir="ltr" class="mw-content-ltr">reference intersection</span>) * ~ (<span lang="en" dir="ltr" class="mw-content-ltr">concatenation/union</span>) <div lang="en" dir="ltr" class="mw-content-ltr"> ==== postfix ==== </div> * % (<span lang="en" dir="ltr" class="mw-content-ltr">percent</span>) <div lang="en" dir="ltr" class="mw-content-ltr"> === matrix === </div> * MDETERM * MINVERSE * MMULT * MUNIT * TRANSPOSE <div lang="en" dir="ltr" class="mw-content-ltr"> === bit operations === </div> * BITAND * BITLSHIFT * BITOR * BITRSHIFT * BITXOR <div lang="en" dir="ltr" class="mw-content-ltr"> === byte-position (text) === </div> * FINDB * LEFTB * LENB * MIDB * REPLACEB * RIGHTB * SEARCHB <div lang="en" dir="ltr" class="mw-content-ltr"> === complex numbers === </div> * COMPLEX * IMABS * IMAGINARY * IMARGUMENT * IMCONJUGATE * IMCOS * IMCOSH * IMCOT * IMCSC * IMCSCH * IMDIV * IMEXP * IMLN * IMLOG10 * IMLOG2 * IMPOWER * IMPRODUCT * IMREAL * IMSIN * IMSINH * IMSEC * IMSECH * IMSQRT * IMSUB * IMSUM * IMTAN <span id="database"></span> === baza danych === * DAVERAGE * DCOUNT * DCOUNTA * DGET * DMAX * DMIN * DPRODUCT * DSTDEV * DSTDEVP * DSUM * DVAR * DVARP <div lang="en" dir="ltr" class="mw-content-ltr"> === date and time === </div> * DATE * DATEDIF * DATEVALUE * DAY * DAYS * DAYS360 * EDATE * EOMONTH * HOUR * ISOWEEKNUM * MINUTE * MONTH * NETWORKDAYS * NOW * SECOND * TIME * TIMEVALUE * TODAY * WEEKDAY * WEEKNUM * WORKDAY * YEAR * YEARFRAC <div lang="en" dir="ltr" class="mw-content-ltr"> === external access === </div> * DDE * HYPERLINK <div lang="en" dir="ltr" class="mw-content-ltr"> === financial === </div> * ACCRINT * ACCRINTM * AMORLINC * COUPDAYBS * COUPDAYS * COUPDAYSNC * COUPNCD * COUPNUM * COUPPCD * CUMIPMT * CUMPRINC * DB * DDB * DISC * DOLLARDE * DOLLARFR * DURATION * EFFECT * FV * FVSCHEDULE * INTRATE * IPMT * IRR * ISPMT * MDURATION * MIRR * NOMINAL * NPER * NPV * ODDFPRICE * ODDFYIELD * ODDLPRICE * ODDLYIELD * PDURATION * PMT * PPMT * PRICE * PRICEDISC * PRICEMAT * PV * RATE * RECEIVED * RRI * SLN * SYD * TBILLEQ * TBILLPRICE * TBILLYIELD * VDB * XIRR * XNPV * YIELD * YIELDDISC * YIELDMAT <div lang="en" dir="ltr" class="mw-content-ltr"> === information === </div> * AREAS * CELL * COLUMN * COLUMNS * COUNT * COUNTA * COUNTBLANK * COUNTIF * COUNTIFS * ERROR.TYPE * FORMULA * INFO * ISBLANK * ISERR * ISERROR * ISEVEN * ISFORMULA * ISLOGICAL * ISNA * ISNONTEXT * ISNUMBER * ISODD * ISREF * ISTEXT * N * NA * NUMBERVALUE * ROW * ROWS * SHEET * SHEETS * TYPE * VALUE <div lang="en" dir="ltr" class="mw-content-ltr"> === lookup === </div> * ADDRESS * CHOOSE * GETPIVOTDATA * HLOOKUP * INDEX * INDIRECT * LOOKUP * MATCH * MULTIPLE.OPERATIONS * OFFSET * VLOOKUP <div lang="en" dir="ltr" class="mw-content-ltr"> === logical === </div> * AND * FALSE * IF * IFERROR * IFNA * NOT * OR * TRUE * XOR <div lang="en" dir="ltr" class="mw-content-ltr"> === mathematical === </div> * 6.16.2 ABS * ACOS * ACOSH * ACOT * ACOTH * ASIN * ASINH * ATAN * ATAN2 * ATANH * BESSELI * BESSELJ * BESSELK * BESSELY * COMBIN * COMBINA * CONVERT * COS * COSH * COT * COTH * CSC * CSCH * DEGREES * DELTA * ERF * ERFC * EUROCONVERT * EVEN * EXP * FACT * FACTDOUBLE * GAMMA * GAMMALN * GCD * GESTEP * LCM * LN * LOG * LOG10 * MOD * MULTINOMIAL * ODD * PI * POWER * PRODUCT * QUOTIENT * RADIANS * RAND * RANDBETWEEN * SEC * SERIESSUM * SIGN * SIN * SINH * SECH * SQRT * SQRTPI * SUBTOTAL * SUM * SUMIF * SUMIFS * SUMPRODUCT * SUMSQ * SUMX2MY2 * SUMX2PY2 * SUMXMY2 * TAN * TANH <div lang="en" dir="ltr" class="mw-content-ltr"> === rounding === </div> * CEILING * INT * FLOOR * MROUND * ROUND * ROUNDDOWN * ROUNDUP * TRUNC <div lang="en" dir="ltr" class="mw-content-ltr"> === statistical === </div> * AVEDEV * AVERAGE * AVERAGEA * AVERAGEIF * AVERAGEIFS * BETADIST * BETAINV * BINOM.DIST.RANGE * BINOMDIST * LEGACY.CHIDIST * CHISQDIST * LEGACY.CHIINV * CHISQINV * LEGACY.CHITEST * CONFIDENCE * CORREL * COVAR * CRITBINOM * DEVSQ * EXPONDIST * FDIST * LEGACY.FDIST * FINV * LEGACY.FINV * FISHER * FISHERINV * FORECAST * FREQUENCY * FTEST * GAMMADIST * GAMMAINV * GAUSS * GEOMEAN * GROWTH * HARMEAN * HYPGEOMDIST * INTERCEPT * KURT * LARGE * LINEST * LOGEST * LOGINV * LOGNORMDIST * MAX * MAXA * MEDIAN * MIN * MINA * MODE * NEGBINOMDIST * NORMDIST * NORMINV * LEGACY.NORMSDIST * LEGACY.NORMSINV * PEARSON * PERCENTILE * PERCENTRANK * PERMUT * PERMUTATIONA * PHI * POISSON * PROB * QUARTILE * RANK * RSQ * SKEW * SKEWP * SLOPE * SMALL * STANDARDIZE * STDEV * STDEVA * STDEVP * STDEVPA * STEYX * LEGACY.TDIST * TINV * TREND * TRIMMEAN * TTEST * VAR * VARA * VARP * VARPA * WEIBULL * ZTEST <div lang="en" dir="ltr" class="mw-content-ltr"> === number representation conversion === </div> * ARABIC * BASE * BIN2DEC * BIN2HEX * BIN2OCT * DEC2BIN * DEC2HEX * DEC2OCT * DECIMAL * HEX2BIN * HEX2DEC * HEX2OCT * OCT2BIN * OCT2DEC * OCT2HEX * ROMAN <div lang="en" dir="ltr" class="mw-content-ltr"> === text === </div> * ASC * CHAR * CLEAN * CODE * CONCATENATE * DOLLAR * EXACT * FIND * FIXED * JIS * LEFT * LEN * LOWER * MID * PROPER * REPLACE * REPT * RIGHT * SEARCH * SUBSTITUTE * T * TEXT * TRIM * UNICHAR * UNICODE * UPPER ---- [[category:lists of functions]] drq4k1a06bx5b27hdkafpi2byre14sk 334211 334209 2026-10-28T22:54:53Z Chrumps 3889 Created page with "=== informacje ===" 334211 wikitext text/x-wiki <languages/> <span id="documentation"></span> == Dokumentacja == * https://docs.oasis-open.org/office/OpenDocument/v1.3/os/part4-formula/OpenDocument-v1.3-os-part4-formula.html * https://wiki.documentfoundation.org/module:calc_fn_name/data * https://github.com/LibreOffice/core/tree/master/formula * https://gitlab.com/search?project_id=13209615&group_id=5586175&search=formula&search_code=true&repository_ref=master * https://gitlab.gnome.org/search?project_id=1547&group_id=8search=openformula&&search_code=true&repository_ref=master ** http://tandfonline.com/doi/abs/10.1198/tas.2011.09076 ** http://pages.drexel.edu/~bdm25/gnumeric.pdf ** http://phusewiki.org/docs/2009%20PAPERS/SP06.pdf * https://community.kde.org/Calligra/Formula_Shape <!--https://github.com/search?q=repo%3AAbiWord%2Fabiword+formula--> <!--https://github.com/search?q=org%3ACollaboraOnline%20formula&type=repositories--> <!--https://github.com/search?q=repo%3ACollaboraOnline%2Fonline+formula&type=code--> <!--https://github.com/search?q=repo%3AUlricE%2FSiagOffice%20formula&type=issues--> <div lang="en" dir="ltr" class="mw-content-ltr"> == types == </div> * <span lang="en" dir="ltr" class="mw-content-ltr">Text (String)</span> * <span lang="en" dir="ltr" class="mw-content-ltr">Number</span> ** Czas ** Data ** <span lang="en" dir="ltr" class="mw-content-ltr">DateTime</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Percentage</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Currency</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Logical (Number)</span> * <span lang="en" dir="ltr" class="mw-content-ltr">Complex Number</span> * <span lang="en" dir="ltr" class="mw-content-ltr">Logical (Boolean)</span> * Błąd * <span lang="en" dir="ltr" class="mw-content-ltr">Empty Cell</span> * <span lang="en" dir="ltr" class="mw-content-ltr">Reference</span> * <span lang="en" dir="ltr" class="mw-content-ltr">ReferenceList</span> * <span lang="en" dir="ltr" class="mw-content-ltr">Array</span> * <span lang="en" dir="ltr" class="mw-content-ltr">Pseudotypes</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Scalar</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">DateParam</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">TimeParam</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Integer</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">TextOrNumber</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Basis</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Criterion</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Database</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Field</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Criteria</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Sequences</span> *** <span lang="en" dir="ltr" class="mw-content-ltr">NumberSequence</span> *** <span lang="en" dir="ltr" class="mw-content-ltr">NumberSequenceList</span> *** <span lang="en" dir="ltr" class="mw-content-ltr">DateSequence</span> *** <span lang="en" dir="ltr" class="mw-content-ltr">LogicalSequence</span> *** <span lang="en" dir="ltr" class="mw-content-ltr">ComplexSequence</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Any</span> <div lang="en" dir="ltr" class="mw-content-ltr"> == conversion == </div> * <span lang="en" dir="ltr" class="mw-content-ltr">to Scalar</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Implied intersection</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Force to array context (ForceArray)</span> * <span lang="en" dir="ltr" class="mw-content-ltr">to Number</span> * <span lang="en" dir="ltr" class="mw-content-ltr">to Integer</span> * <span lang="en" dir="ltr" class="mw-content-ltr">to NumberSequence</span> * <span lang="en" dir="ltr" class="mw-content-ltr">to NumberSequenceList</span> * <span lang="en" dir="ltr" class="mw-content-ltr">to DateSequence</span> * <span lang="en" dir="ltr" class="mw-content-ltr">to Complex Number</span> * <span lang="en" dir="ltr" class="mw-content-ltr">to ComplexSequence</span> * <span lang="en" dir="ltr" class="mw-content-ltr">to Logical</span> * <span lang="en" dir="ltr" class="mw-content-ltr">to LogicalSequence</span> * <span lang="en" dir="ltr" class="mw-content-ltr">to Text</span> * <span lang="en" dir="ltr" class="mw-content-ltr">to DateParam</span> * <span lang="en" dir="ltr" class="mw-content-ltr">to TimeParam</span> <div lang="en" dir="ltr" class="mw-content-ltr"> == functions == </div> <div lang="en" dir="ltr" class="mw-content-ltr"> === operators === </div> <div lang="en" dir="ltr" class="mw-content-ltr"> ==== prefix ==== </div> * + (<span lang="en" dir="ltr" class="mw-content-ltr">positive</span>) * - (<span lang="en" dir="ltr" class="mw-content-ltr">negative</span>) <div lang="en" dir="ltr" class="mw-content-ltr"> ==== infix ==== </div> * + (<span lang="en" dir="ltr" class="mw-content-ltr">add</span>) * - (<span lang="en" dir="ltr" class="mw-content-ltr">subtract</span>) * * (<span lang="en" dir="ltr" class="mw-content-ltr">multiply</span>) * / (<span lang="en" dir="ltr" class="mw-content-ltr">divide</span>) * <span lang="en" dir="ltr" class="mw-content-ltr">unordered comparisons</span> ** = (<span lang="en" dir="ltr" class="mw-content-ltr">equal to</span>) ** <> (<span lang="en" dir="ltr" class="mw-content-ltr">not equal to</span>) * <span lang="en" dir="ltr" class="mw-content-ltr">ordered comparisons</span> ** < (<span lang="en" dir="ltr" class="mw-content-ltr">less than</span>) ** <= (<span lang="en" dir="ltr" class="mw-content-ltr">less than or equal to</span>) ** > (<span lang="en" dir="ltr" class="mw-content-ltr">greater than</span>) ** >= (<span lang="en" dir="ltr" class="mw-content-ltr">greater than or equal to</span>) * & * : (<span lang="en" dir="ltr" class="mw-content-ltr">reference range</span>) * <span lang="en" dir="ltr" class="mw-content-ltr">null string</span> * ! (<span lang="en" dir="ltr" class="mw-content-ltr">reference intersection</span>) * ~ (<span lang="en" dir="ltr" class="mw-content-ltr">concatenation/union</span>) <div lang="en" dir="ltr" class="mw-content-ltr"> ==== postfix ==== </div> * % (<span lang="en" dir="ltr" class="mw-content-ltr">percent</span>) <div lang="en" dir="ltr" class="mw-content-ltr"> === matrix === </div> * MDETERM * MINVERSE * MMULT * MUNIT * TRANSPOSE <div lang="en" dir="ltr" class="mw-content-ltr"> === bit operations === </div> * BITAND * BITLSHIFT * BITOR * BITRSHIFT * BITXOR <div lang="en" dir="ltr" class="mw-content-ltr"> === byte-position (text) === </div> * FINDB * LEFTB * LENB * MIDB * REPLACEB * RIGHTB * SEARCHB <div lang="en" dir="ltr" class="mw-content-ltr"> === complex numbers === </div> * COMPLEX * IMABS * IMAGINARY * IMARGUMENT * IMCONJUGATE * IMCOS * IMCOSH * IMCOT * IMCSC * IMCSCH * IMDIV * IMEXP * IMLN * IMLOG10 * IMLOG2 * IMPOWER * IMPRODUCT * IMREAL * IMSIN * IMSINH * IMSEC * IMSECH * IMSQRT * IMSUB * IMSUM * IMTAN <span id="database"></span> === baza danych === * DAVERAGE * DCOUNT * DCOUNTA * DGET * DMAX * DMIN * DPRODUCT * DSTDEV * DSTDEVP * DSUM * DVAR * DVARP <div lang="en" dir="ltr" class="mw-content-ltr"> === date and time === </div> * DATE * DATEDIF * DATEVALUE * DAY * DAYS * DAYS360 * EDATE * EOMONTH * HOUR * ISOWEEKNUM * MINUTE * MONTH * NETWORKDAYS * NOW * SECOND * TIME * TIMEVALUE * TODAY * WEEKDAY * WEEKNUM * WORKDAY * YEAR * YEARFRAC <div lang="en" dir="ltr" class="mw-content-ltr"> === external access === </div> * DDE * HYPERLINK <div lang="en" dir="ltr" class="mw-content-ltr"> === financial === </div> * ACCRINT * ACCRINTM * AMORLINC * COUPDAYBS * COUPDAYS * COUPDAYSNC * COUPNCD * COUPNUM * COUPPCD * CUMIPMT * CUMPRINC * DB * DDB * DISC * DOLLARDE * DOLLARFR * DURATION * EFFECT * FV * FVSCHEDULE * INTRATE * IPMT * IRR * ISPMT * MDURATION * MIRR * NOMINAL * NPER * NPV * ODDFPRICE * ODDFYIELD * ODDLPRICE * ODDLYIELD * PDURATION * PMT * PPMT * PRICE * PRICEDISC * PRICEMAT * PV * RATE * RECEIVED * RRI * SLN * SYD * TBILLEQ * TBILLPRICE * TBILLYIELD * VDB * XIRR * XNPV * YIELD * YIELDDISC * YIELDMAT <span id="information"></span> === informacje === * AREAS * CELL * COLUMN * COLUMNS * COUNT * COUNTA * COUNTBLANK * COUNTIF * COUNTIFS * ERROR.TYPE * FORMULA * INFO * ISBLANK * ISERR * ISERROR * ISEVEN * ISFORMULA * ISLOGICAL * ISNA * ISNONTEXT * ISNUMBER * ISODD * ISREF * ISTEXT * N * NA * NUMBERVALUE * ROW * ROWS * SHEET * SHEETS * TYPE * VALUE <div lang="en" dir="ltr" class="mw-content-ltr"> === lookup === </div> * ADDRESS * CHOOSE * GETPIVOTDATA * HLOOKUP * INDEX * INDIRECT * LOOKUP * MATCH * MULTIPLE.OPERATIONS * OFFSET * VLOOKUP <div lang="en" dir="ltr" class="mw-content-ltr"> === logical === </div> * AND * FALSE * IF * IFERROR * IFNA * NOT * OR * TRUE * XOR <div lang="en" dir="ltr" class="mw-content-ltr"> === mathematical === </div> * 6.16.2 ABS * ACOS * ACOSH * ACOT * ACOTH * ASIN * ASINH * ATAN * ATAN2 * ATANH * BESSELI * BESSELJ * BESSELK * BESSELY * COMBIN * COMBINA * CONVERT * COS * COSH * COT * COTH * CSC * CSCH * DEGREES * DELTA * ERF * ERFC * EUROCONVERT * EVEN * EXP * FACT * FACTDOUBLE * GAMMA * GAMMALN * GCD * GESTEP * LCM * LN * LOG * LOG10 * MOD * MULTINOMIAL * ODD * PI * POWER * PRODUCT * QUOTIENT * RADIANS * RAND * RANDBETWEEN * SEC * SERIESSUM * SIGN * SIN * SINH * SECH * SQRT * SQRTPI * SUBTOTAL * SUM * SUMIF * SUMIFS * SUMPRODUCT * SUMSQ * SUMX2MY2 * SUMX2PY2 * SUMXMY2 * TAN * TANH <div lang="en" dir="ltr" class="mw-content-ltr"> === rounding === </div> * CEILING * INT * FLOOR * MROUND * ROUND * ROUNDDOWN * ROUNDUP * TRUNC <div lang="en" dir="ltr" class="mw-content-ltr"> === statistical === </div> * AVEDEV * AVERAGE * AVERAGEA * AVERAGEIF * AVERAGEIFS * BETADIST * BETAINV * BINOM.DIST.RANGE * BINOMDIST * LEGACY.CHIDIST * CHISQDIST * LEGACY.CHIINV * CHISQINV * LEGACY.CHITEST * CONFIDENCE * CORREL * COVAR * CRITBINOM * DEVSQ * EXPONDIST * FDIST * LEGACY.FDIST * FINV * LEGACY.FINV * FISHER * FISHERINV * FORECAST * FREQUENCY * FTEST * GAMMADIST * GAMMAINV * GAUSS * GEOMEAN * GROWTH * HARMEAN * HYPGEOMDIST * INTERCEPT * KURT * LARGE * LINEST * LOGEST * LOGINV * LOGNORMDIST * MAX * MAXA * MEDIAN * MIN * MINA * MODE * NEGBINOMDIST * NORMDIST * NORMINV * LEGACY.NORMSDIST * LEGACY.NORMSINV * PEARSON * PERCENTILE * PERCENTRANK * PERMUT * PERMUTATIONA * PHI * POISSON * PROB * QUARTILE * RANK * RSQ * SKEW * SKEWP * SLOPE * SMALL * STANDARDIZE * STDEV * STDEVA * STDEVP * STDEVPA * STEYX * LEGACY.TDIST * TINV * TREND * TRIMMEAN * TTEST * VAR * VARA * VARP * VARPA * WEIBULL * ZTEST <div lang="en" dir="ltr" class="mw-content-ltr"> === number representation conversion === </div> * ARABIC * BASE * BIN2DEC * BIN2HEX * BIN2OCT * DEC2BIN * DEC2HEX * DEC2OCT * DECIMAL * HEX2BIN * HEX2DEC * HEX2OCT * OCT2BIN * OCT2DEC * OCT2HEX * ROMAN <div lang="en" dir="ltr" class="mw-content-ltr"> === text === </div> * ASC * CHAR * CLEAN * CODE * CONCATENATE * DOLLAR * EXACT * FIND * FIXED * JIS * LEFT * LEN * LOWER * MID * PROPER * REPLACE * REPT * RIGHT * SEARCH * SUBSTITUTE * T * TEXT * TRIM * UNICHAR * UNICODE * UPPER ---- [[category:lists of functions]] gzpvlxl2cb38h0ezguw56cz87ive39q 334213 334211 2026-10-28T22:55:03Z Chrumps 3889 Created page with "=== tekst ===" 334213 wikitext text/x-wiki <languages/> <span id="documentation"></span> == Dokumentacja == * https://docs.oasis-open.org/office/OpenDocument/v1.3/os/part4-formula/OpenDocument-v1.3-os-part4-formula.html * https://wiki.documentfoundation.org/module:calc_fn_name/data * https://github.com/LibreOffice/core/tree/master/formula * https://gitlab.com/search?project_id=13209615&group_id=5586175&search=formula&search_code=true&repository_ref=master * https://gitlab.gnome.org/search?project_id=1547&group_id=8search=openformula&&search_code=true&repository_ref=master ** http://tandfonline.com/doi/abs/10.1198/tas.2011.09076 ** http://pages.drexel.edu/~bdm25/gnumeric.pdf ** http://phusewiki.org/docs/2009%20PAPERS/SP06.pdf * https://community.kde.org/Calligra/Formula_Shape <!--https://github.com/search?q=repo%3AAbiWord%2Fabiword+formula--> <!--https://github.com/search?q=org%3ACollaboraOnline%20formula&type=repositories--> <!--https://github.com/search?q=repo%3ACollaboraOnline%2Fonline+formula&type=code--> <!--https://github.com/search?q=repo%3AUlricE%2FSiagOffice%20formula&type=issues--> <div lang="en" dir="ltr" class="mw-content-ltr"> == types == </div> * <span lang="en" dir="ltr" class="mw-content-ltr">Text (String)</span> * <span lang="en" dir="ltr" class="mw-content-ltr">Number</span> ** Czas ** Data ** <span lang="en" dir="ltr" class="mw-content-ltr">DateTime</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Percentage</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Currency</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Logical (Number)</span> * <span lang="en" dir="ltr" class="mw-content-ltr">Complex Number</span> * <span lang="en" dir="ltr" class="mw-content-ltr">Logical (Boolean)</span> * Błąd * <span lang="en" dir="ltr" class="mw-content-ltr">Empty Cell</span> * <span lang="en" dir="ltr" class="mw-content-ltr">Reference</span> * <span lang="en" dir="ltr" class="mw-content-ltr">ReferenceList</span> * <span lang="en" dir="ltr" class="mw-content-ltr">Array</span> * <span lang="en" dir="ltr" class="mw-content-ltr">Pseudotypes</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Scalar</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">DateParam</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">TimeParam</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Integer</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">TextOrNumber</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Basis</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Criterion</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Database</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Field</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Criteria</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Sequences</span> *** <span lang="en" dir="ltr" class="mw-content-ltr">NumberSequence</span> *** <span lang="en" dir="ltr" class="mw-content-ltr">NumberSequenceList</span> *** <span lang="en" dir="ltr" class="mw-content-ltr">DateSequence</span> *** <span lang="en" dir="ltr" class="mw-content-ltr">LogicalSequence</span> *** <span lang="en" dir="ltr" class="mw-content-ltr">ComplexSequence</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Any</span> <div lang="en" dir="ltr" class="mw-content-ltr"> == conversion == </div> * <span lang="en" dir="ltr" class="mw-content-ltr">to Scalar</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Implied intersection</span> ** <span lang="en" dir="ltr" class="mw-content-ltr">Force to array context (ForceArray)</span> * <span lang="en" dir="ltr" class="mw-content-ltr">to Number</span> * <span lang="en" dir="ltr" class="mw-content-ltr">to Integer</span> * <span lang="en" dir="ltr" class="mw-content-ltr">to NumberSequence</span> * <span lang="en" dir="ltr" class="mw-content-ltr">to NumberSequenceList</span> * <span lang="en" dir="ltr" class="mw-content-ltr">to DateSequence</span> * <span lang="en" dir="ltr" class="mw-content-ltr">to Complex Number</span> * <span lang="en" dir="ltr" class="mw-content-ltr">to ComplexSequence</span> * <span lang="en" dir="ltr" class="mw-content-ltr">to Logical</span> * <span lang="en" dir="ltr" class="mw-content-ltr">to LogicalSequence</span> * <span lang="en" dir="ltr" class="mw-content-ltr">to Text</span> * <span lang="en" dir="ltr" class="mw-content-ltr">to DateParam</span> * <span lang="en" dir="ltr" class="mw-content-ltr">to TimeParam</span> <div lang="en" dir="ltr" class="mw-content-ltr"> == functions == </div> <div lang="en" dir="ltr" class="mw-content-ltr"> === operators === </div> <div lang="en" dir="ltr" class="mw-content-ltr"> ==== prefix ==== </div> * + (<span lang="en" dir="ltr" class="mw-content-ltr">positive</span>) * - (<span lang="en" dir="ltr" class="mw-content-ltr">negative</span>) <div lang="en" dir="ltr" class="mw-content-ltr"> ==== infix ==== </div> * + (<span lang="en" dir="ltr" class="mw-content-ltr">add</span>) * - (<span lang="en" dir="ltr" class="mw-content-ltr">subtract</span>) * * (<span lang="en" dir="ltr" class="mw-content-ltr">multiply</span>) * / (<span lang="en" dir="ltr" class="mw-content-ltr">divide</span>) * <span lang="en" dir="ltr" class="mw-content-ltr">unordered comparisons</span> ** = (<span lang="en" dir="ltr" class="mw-content-ltr">equal to</span>) ** <> (<span lang="en" dir="ltr" class="mw-content-ltr">not equal to</span>) * <span lang="en" dir="ltr" class="mw-content-ltr">ordered comparisons</span> ** < (<span lang="en" dir="ltr" class="mw-content-ltr">less than</span>) ** <= (<span lang="en" dir="ltr" class="mw-content-ltr">less than or equal to</span>) ** > (<span lang="en" dir="ltr" class="mw-content-ltr">greater than</span>) ** >= (<span lang="en" dir="ltr" class="mw-content-ltr">greater than or equal to</span>) * & * : (<span lang="en" dir="ltr" class="mw-content-ltr">reference range</span>) * <span lang="en" dir="ltr" class="mw-content-ltr">null string</span> * ! (<span lang="en" dir="ltr" class="mw-content-ltr">reference intersection</span>) * ~ (<span lang="en" dir="ltr" class="mw-content-ltr">concatenation/union</span>) <div lang="en" dir="ltr" class="mw-content-ltr"> ==== postfix ==== </div> * % (<span lang="en" dir="ltr" class="mw-content-ltr">percent</span>) <div lang="en" dir="ltr" class="mw-content-ltr"> === matrix === </div> * MDETERM * MINVERSE * MMULT * MUNIT * TRANSPOSE <div lang="en" dir="ltr" class="mw-content-ltr"> === bit operations === </div> * BITAND * BITLSHIFT * BITOR * BITRSHIFT * BITXOR <div lang="en" dir="ltr" class="mw-content-ltr"> === byte-position (text) === </div> * FINDB * LEFTB * LENB * MIDB * REPLACEB * RIGHTB * SEARCHB <div lang="en" dir="ltr" class="mw-content-ltr"> === complex numbers === </div> * COMPLEX * IMABS * IMAGINARY * IMARGUMENT * IMCONJUGATE * IMCOS * IMCOSH * IMCOT * IMCSC * IMCSCH * IMDIV * IMEXP * IMLN * IMLOG10 * IMLOG2 * IMPOWER * IMPRODUCT * IMREAL * IMSIN * IMSINH * IMSEC * IMSECH * IMSQRT * IMSUB * IMSUM * IMTAN <span id="database"></span> === baza danych === * DAVERAGE * DCOUNT * DCOUNTA * DGET * DMAX * DMIN * DPRODUCT * DSTDEV * DSTDEVP * DSUM * DVAR * DVARP <div lang="en" dir="ltr" class="mw-content-ltr"> === date and time === </div> * DATE * DATEDIF * DATEVALUE * DAY * DAYS * DAYS360 * EDATE * EOMONTH * HOUR * ISOWEEKNUM * MINUTE * MONTH * NETWORKDAYS * NOW * SECOND * TIME * TIMEVALUE * TODAY * WEEKDAY * WEEKNUM * WORKDAY * YEAR * YEARFRAC <div lang="en" dir="ltr" class="mw-content-ltr"> === external access === </div> * DDE * HYPERLINK <div lang="en" dir="ltr" class="mw-content-ltr"> === financial === </div> * ACCRINT * ACCRINTM * AMORLINC * COUPDAYBS * COUPDAYS * COUPDAYSNC * COUPNCD * COUPNUM * COUPPCD * CUMIPMT * CUMPRINC * DB * DDB * DISC * DOLLARDE * DOLLARFR * DURATION * EFFECT * FV * FVSCHEDULE * INTRATE * IPMT * IRR * ISPMT * MDURATION * MIRR * NOMINAL * NPER * NPV * ODDFPRICE * ODDFYIELD * ODDLPRICE * ODDLYIELD * PDURATION * PMT * PPMT * PRICE * PRICEDISC * PRICEMAT * PV * RATE * RECEIVED * RRI * SLN * SYD * TBILLEQ * TBILLPRICE * TBILLYIELD * VDB * XIRR * XNPV * YIELD * YIELDDISC * YIELDMAT <span id="information"></span> === informacje === * AREAS * CELL * COLUMN * COLUMNS * COUNT * COUNTA * COUNTBLANK * COUNTIF * COUNTIFS * ERROR.TYPE * FORMULA * INFO * ISBLANK * ISERR * ISERROR * ISEVEN * ISFORMULA * ISLOGICAL * ISNA * ISNONTEXT * ISNUMBER * ISODD * ISREF * ISTEXT * N * NA * NUMBERVALUE * ROW * ROWS * SHEET * SHEETS * TYPE * VALUE <div lang="en" dir="ltr" class="mw-content-ltr"> === lookup === </div> * ADDRESS * CHOOSE * GETPIVOTDATA * HLOOKUP * INDEX * INDIRECT * LOOKUP * MATCH * MULTIPLE.OPERATIONS * OFFSET * VLOOKUP <div lang="en" dir="ltr" class="mw-content-ltr"> === logical === </div> * AND * FALSE * IF * IFERROR * IFNA * NOT * OR * TRUE * XOR <div lang="en" dir="ltr" class="mw-content-ltr"> === mathematical === </div> * 6.16.2 ABS * ACOS * ACOSH * ACOT * ACOTH * ASIN * ASINH * ATAN * ATAN2 * ATANH * BESSELI * BESSELJ * BESSELK * BESSELY * COMBIN * COMBINA * CONVERT * COS * COSH * COT * COTH * CSC * CSCH * DEGREES * DELTA * ERF * ERFC * EUROCONVERT * EVEN * EXP * FACT * FACTDOUBLE * GAMMA * GAMMALN * GCD * GESTEP * LCM * LN * LOG * LOG10 * MOD * MULTINOMIAL * ODD * PI * POWER * PRODUCT * QUOTIENT * RADIANS * RAND * RANDBETWEEN * SEC * SERIESSUM * SIGN * SIN * SINH * SECH * SQRT * SQRTPI * SUBTOTAL * SUM * SUMIF * SUMIFS * SUMPRODUCT * SUMSQ * SUMX2MY2 * SUMX2PY2 * SUMXMY2 * TAN * TANH <div lang="en" dir="ltr" class="mw-content-ltr"> === rounding === </div> * CEILING * INT * FLOOR * MROUND * ROUND * ROUNDDOWN * ROUNDUP * TRUNC <div lang="en" dir="ltr" class="mw-content-ltr"> === statistical === </div> * AVEDEV * AVERAGE * AVERAGEA * AVERAGEIF * AVERAGEIFS * BETADIST * BETAINV * BINOM.DIST.RANGE * BINOMDIST * LEGACY.CHIDIST * CHISQDIST * LEGACY.CHIINV * CHISQINV * LEGACY.CHITEST * CONFIDENCE * CORREL * COVAR * CRITBINOM * DEVSQ * EXPONDIST * FDIST * LEGACY.FDIST * FINV * LEGACY.FINV * FISHER * FISHERINV * FORECAST * FREQUENCY * FTEST * GAMMADIST * GAMMAINV * GAUSS * GEOMEAN * GROWTH * HARMEAN * HYPGEOMDIST * INTERCEPT * KURT * LARGE * LINEST * LOGEST * LOGINV * LOGNORMDIST * MAX * MAXA * MEDIAN * MIN * MINA * MODE * NEGBINOMDIST * NORMDIST * NORMINV * LEGACY.NORMSDIST * LEGACY.NORMSINV * PEARSON * PERCENTILE * PERCENTRANK * PERMUT * PERMUTATIONA * PHI * POISSON * PROB * QUARTILE * RANK * RSQ * SKEW * SKEWP * SLOPE * SMALL * STANDARDIZE * STDEV * STDEVA * STDEVP * STDEVPA * STEYX * LEGACY.TDIST * TINV * TREND * TRIMMEAN * TTEST * VAR * VARA * VARP * VARPA * WEIBULL * ZTEST <div lang="en" dir="ltr" class="mw-content-ltr"> === number representation conversion === </div> * ARABIC * BASE * BIN2DEC * BIN2HEX * BIN2OCT * DEC2BIN * DEC2HEX * DEC2OCT * DECIMAL * HEX2BIN * HEX2DEC * HEX2OCT * OCT2BIN * OCT2DEC * OCT2HEX * ROMAN <span id="text"></span> === tekst === * ASC * CHAR * CLEAN * CODE * CONCATENATE * DOLLAR * EXACT * FIND * FIXED * JIS * LEFT * LEN * LOWER * MID * PROPER * REPLACE * REPT * RIGHT * SEARCH * SUBSTITUTE * T * TEXT * TRIM * UNICHAR * UNICODE * UPPER ---- [[category:lists of functions]] pbzi7qz8zoxgq7iwu51c7itkanbpm1t Z32757 0 79154 334187 262324 2026-10-28T21:51:00Z Jdforrester (WMF) 4 Added Z48067 to the approved list of implementations 334187 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z32757" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z31" }, "Z17K2": "Z32757K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "list of monolingual stringsets" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z60", "Z17K2": "Z32757K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "language" } ] } } ], "Z8K2": "Z31", "Z8K3": [ "Z20", "Z32764", "Z32765" ], "Z8K4": [ "Z14", "Z32769", "Z48067" ], "Z8K5": "Z32757" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "first monolingual stringset in language from list" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31", { "Z1K1": "Z31", "Z31K1": "Z1002", "Z31K2": [ "Z6", "filter list of monolingual stringsets for language", "get stringset for language" ] } ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "get the first monolingual stringset matching the specified language from a list of monolingual stringsets, otherwise return a blank text in that language" } ] } } srns74179bwhp2ao2livlqipxtyjemt 334188 334187 2026-10-28T21:52:31Z WikiLambda system 3 Updated the implementation list (see [[Help:Wikifunctions/Implementation_ordering_and_choosing|About implementation selection]]) 334188 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z32757" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z31" }, "Z17K2": "Z32757K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "list of monolingual stringsets" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z60", "Z17K2": "Z32757K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "language" } ] } } ], "Z8K2": "Z31", "Z8K3": [ "Z20", "Z32764", "Z32765" ], "Z8K4": [ "Z14", "Z48067", "Z32769" ], "Z8K5": "Z32757" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "first monolingual stringset in language from list" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31", { "Z1K1": "Z31", "Z31K1": "Z1002", "Z31K2": [ "Z6", "filter list of monolingual stringsets for language", "get stringset for language" ] } ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "get the first monolingual stringset matching the specified language from a list of monolingual stringsets, otherwise return a blank text in that language" } ] } } rcs457xofqh5mma9p0umwlwtnrgjcbn 334190 334188 2026-10-28T21:53:54Z Jdforrester (WMF) 4 Added Z48068 to the approved list of test cases 334190 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z32757" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z31" }, "Z17K2": "Z32757K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "list of monolingual stringsets" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z60", "Z17K2": "Z32757K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "language" } ] } } ], "Z8K2": "Z31", "Z8K3": [ "Z20", "Z32764", "Z32765", "Z48068" ], "Z8K4": [ "Z14", "Z48067", "Z32769" ], "Z8K5": "Z32757" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "first monolingual stringset in language from list" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31", { "Z1K1": "Z31", "Z31K1": "Z1002", "Z31K2": [ "Z6", "filter list of monolingual stringsets for language", "get stringset for language" ] } ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "get the first monolingual stringset matching the specified language from a list of monolingual stringsets, otherwise return a blank text in that language" } ] } } fvix2s9xsjngezitexo6y08qdm9cux0 334192 334190 2026-10-28T22:02:38Z Jdforrester (WMF) 4 Added Z48069 to the approved list of test cases 334192 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z32757" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z31" }, "Z17K2": "Z32757K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "list of monolingual stringsets" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z60", "Z17K2": "Z32757K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "language" } ] } } ], "Z8K2": "Z31", "Z8K3": [ "Z20", "Z32764", "Z32765", "Z48068", "Z48069" ], "Z8K4": [ "Z14", "Z48067", "Z32769" ], "Z8K5": "Z32757" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "first monolingual stringset in language from list" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31", { "Z1K1": "Z31", "Z31K1": "Z1002", "Z31K2": [ "Z6", "filter list of monolingual stringsets for language", "get stringset for language" ] } ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "get the first monolingual stringset matching the specified language from a list of monolingual stringsets, otherwise return a blank text in that language" } ] } } pcq9if7eeprlen79suyfc9rrplw46m6 User talk:Rachmat04 3 79351 334303 333400 2026-10-29T03:08:09Z SpBot 978 archive 1 section: 1 to [[User talk:Rachmat04/Archives/2026]] (after section [[User talk:Rachmat04/Archives/2026#Wikifunctions_&_Abstract_Wikipedia_Newsletter_#266:_Memoization_arriving|Wikifunctions_&_Abstract_Wikipedia_Newsletter_#266:_Memoization_arriving]]) - previous edit: [[:User:MediaWiki message delivery|MediaWiki message delivery]], 2026-10-26 14:28 334303 wikitext text/x-wiki {{Autoarchive resolved section |age=3 |timeout=30 |show=yes |archive='((FULLPAGENAME))/Archives/((year))' |overview= |latest archive=[[{{FULLPAGENAME}}/Archives/{{CURRENTYEAR}}|Archives/{{CURRENTYEAR}}]] }} == Wikifunctions & Abstract Wikipedia Newsletter #267: Refreshing results == There is [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-10-02|a new update]] for Abstract Wikipedia and Wikifunctions. Please, come and read it! In this issue, we talk about two new capabilities addressing the issues of caching and freshness of function call results, we introduce our groundwork to support the first pilot communities for Abstract Wikipedia, we discuss news in Types, 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:31, 2 October 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=31099195 --> == Wikifunctions & Abstract Wikipedia Newsletter #268: Quarterly planning == There is [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-10-09|a new update]] for Abstract Wikipedia and Wikifunctions. Please, come and read it! In this issue, we discuss the work we have planned for this quarter (October-December 2026), we introduce news in Types, 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/1791826200 October 12, 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]]) 15:42, 10 October 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=31143368 --> == Wikifunctions & Abstract Wikipedia Newsletter #269: Changes in evaluator representations == There is [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-10-17|a new update]] for Abstract Wikipedia and Wikifunctions. Please, come and read it! In this issue, we introduce our latest changes in evaluator representations, 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]]) 10:46, 17 October 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=31162541 --> == Wikifunctions & Abstract Wikipedia Newsletter #270: Wikiabstrak app == There is [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-10-25|a new update]] for Abstract Wikipedia and Wikifunctions. Please, come and read it! In this issue, we introduce the latest app created by a Wikimedia volunteer about Abstract Wikipedia, and we take a look at the latest functions created by the community. 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]]) 14:28, 26 October 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=31162541 --> 1mwxveg6w1lwrvzc9s8yvz6534tjzew User talk:Rachmat04/Archives/2026 3 82370 334302 330183 2026-10-29T03:08:06Z SpBot 978 archiving 1 section from [[User talk:Rachmat04]] (after section [[User talk:Rachmat04/Archives/2026#Wikifunctions_&_Abstract_Wikipedia_Newsletter_#266:_Memoization_arriving|Wikifunctions_&_Abstract_Wikipedia_Newsletter_#266:_Memoization_arriving]]) 334302 wikitext text/x-wiki {{Talkarchive}} == Wikifunctions & Abstract Wikipedia Newsletter #242 is out: Request for Discussion: Syntactic tables == There is [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-04-02|a new update]] for Abstract Wikipedia and Wikifunctions. Please, come and read it! In this issue, we introduce a proposal for Natural Language Generation, we introduce a page for function suggestions from Abstract Wikipedia, we inform you that there will be a presentation about Abstract Wikipedia at WikiCon Australia, 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/1776101400 April 13, 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]]) 13:37, 3 April 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=30325620 --> == Wikifunctions & Abstract Wikipedia Newsletter #243 is out: Community proposals for capturing meaning == There is [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-04-10|a new update]] for Abstract Wikipedia and Wikifunctions. Please, come and read it! In this issue, we report on three community proposals on syntactic approaches, we introduce a new Type (Complex numbers), we report on current hiccups on Abstract Wikipedia, we share more information about a presentation about Abstract Wikipedia at WikiCon Australia, 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/1776101400 April 13, 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]]) 15:35, 10 April 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=30325620 --> == Wikifunctions & Abstract Wikipedia Newsletter #244 is out: Milestones; Some major issues hopefully resolved == There is [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-04-16|a new update]] for Abstract Wikipedia and Wikifunctions. Please, come and read it! In this issue, we celebrate 4000 functions on Wikifunctions and 1000 abstract articles on Abstract Wikipedia, we announce that we should have fixed some major issues with the websites, we inform you on our latest outreach activities, 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]]) 10:22, 17 April 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=30325620 --> == Wikifunctions & Abstract Wikipedia Newsletter #245 is out: The Foundation's search for the perfect language == There is [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-04-25|a new update]] for Abstract Wikipedia and Wikifunctions. Please, come and read it! In this issue, we present an academic paper about Abstract Wikipedia, we discuss our latest Type created, and we take a look at the newest created functions. 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:54, 25 April 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=30325620 --> == Wikifunctions & Abstract Wikipedia Newsletter #246 is out: Request for input: what should we count for Abstract Wikipedia == There is [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-05-02|a new update]] for Abstract Wikipedia and Wikifunctions. Please, come and read it! In this issue, we ask you what would be the relevant metrics for Abstract Wikipedia, we discuss our latest news on Composition Language v2, 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]]) 12:21, 2 May 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=30325620 --> == Wikifunctions & Abstract Wikipedia Newsletter #247 is out: References from Wikidata now available == There is [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-05-08|a new update]] for Abstract Wikipedia and Wikifunctions. Please, come and read it! In this issue, we announce that is now possible to pass references in Wikidata statements, we introduce the [https://abstract-data.toolforge.org/ Abstract Data dashboard], we report you on the presentation about Abstract Wikipedia at WikiCon Australia, 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/1778520600 May 11, 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]]) 11:16, 8 May 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=30325620 --> == Wikifunctions & Abstract Wikipedia Newsletter #248 is out: A higher meaning == There is [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-05-15|a new update]] for Abstract Wikipedia and Wikifunctions. Please, come and read it! In this issue, we discuss functions creating language fragments, we present our latest news in Types, 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]]) 14:36, 15 May 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=30536976 --> == Wikifunctions & Abstract Wikipedia Newsletter #249 is out: Annual plan 2026-2027 == There is [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-05-23|a new update]] for Abstract Wikipedia and Wikifunctions. Please, come and read it! In this issue, we present you the current draft of objectives for Wikifunctions and Abstract Wikipedia in the WMF Annual Plan 2026-2027, 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:48, 25 May 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=30536976 --> == Wikifunctions & Abstract Wikipedia Newsletter #250 is out: Looking back and forward == There is [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-05-30|a new update]] for Abstract Wikipedia and Wikifunctions. Please, come and read it! In this issue, we present you a recollection of our work so far, now that we celebrate our 250th newsletter, we share with you a summary of our latest outreach activities, 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]]) 10:04, 1 June 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=30606821 --> == Wikifunctions & Abstract Wikipedia Newsletter #251 is out: The illustrated encyclopaedia == There is [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-06-05|a new update]] for Abstract Wikipedia and Wikifunctions. Please, come and read it! In this issue, we introduce our first function to import images on Abstract Wikipedia, we present our Functions of the Week, 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/1780939800 June 8, 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]]) 14:14, 5 June 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=30606821 --> == Wikifunctions & Abstract Wikipedia Newsletter #252 is out: Improved loading and display of Test results == There is [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-06-12|a new update]] for Abstract Wikipedia and Wikifunctions. Please, come and read it! In this issue, we present you an improvement in loading and display of Test results, we talk about our next events, 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 Denny will lead a discussion on the [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-05-15#News in Types: way forward for natural language generation types|new NLG types]] in the next '''Natural Language Generation Special Interest Group meeting''', that will be held on '''[https://zonestamp.toolforge.org/1781625600 June 16, at 16:00 UTC]''' ([https://meet.google.com/xzn-kqer-mah link to the meeting]). Enjoy the reading! -- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 15:29, 12 June 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=30606821 --> == Wikifunctions & Abstract Wikipedia Newsletter #253 is out: The or not the, this is (the?) question == There is [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-06-19|a new update]] for Abstract Wikipedia and Wikifunctions. Please, come and read it! In this issue, we present you a delicate question regarding grammatical framework, we talk about our next events and about the results of our latest online meetings, we discuss news about Types, 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]]) 12:34, 19 June 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=30701693 --> == Wikifunctions & Abstract Wikipedia Newsletter #254: Working on Functions, together == There is [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-06-26|a new update]] for Abstract Wikipedia and Wikifunctions. Please, come and read it! In this issue, we report on new collaborative patterns emerging in our community, we discuss news in Types, we share some events that relate to Wikifunctions and Abstract Wikipedia 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]]) 09:58, 27 June 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=30724999 --> == 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 --> == 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 --> == 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 --> == 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 --> == 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 --> == 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 --> == Wikifunctions & Abstract Wikipedia Newsletter #261: Mayors and the North == There is [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-08-20|a new update]] for Abstract Wikipedia and Wikifunctions. Please, come and read it! In this issue, we have an essay from Denny about accidental gaps in languages, 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:41, 21 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=30928401 --> == Wikifunctions & Abstract Wikipedia Newsletter #262: Wikifunctions Object Reference == There is [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-08-28|a new update]] for Abstract Wikipedia and Wikifunctions. Please, come and read it! In this issue, we discuss a new Type implemented after a community request, 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]]) 12:32, 28 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=30951652 --> == Wikifunctions & Abstract Wikipedia Newsletter #263: 5,000 Functions, passing Z40000 == There is [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-09-03|a new update]] for Abstract Wikipedia and Wikifunctions. Please, come and read it! In this issue, we mark the 5,000th function on Wikifunction, we explore a new Type for functions, 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/1788802200 September 7, 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]]) 11:00, 4 September 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=30951652 --> == Wikifunctions & Abstract Wikipedia Newsletter #264: Your code can now call back to the Wikidata fetch functions == There is [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-09-10|a new update]] for Abstract Wikipedia and Wikifunctions. Please, come and read it! In this issue, we introduce the possibility of calling Wikidata fetch functions, we present a new Type, we celebrate more than 200 new functions this week, 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]]) 13:13, 11 September 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=30951652 --> == The next Natural Language Generation Special Interest Group meeting is tomorrow! == Hi all! A quick message to inform you that Denny will lead a quick first introduction to syntactic phrase functions in the next '''Natural Language Generation Special Interest Group meeting''', that will be held tomorrow, '''[https://zonestamp.toolforge.org/1789488000 September 15, at 16:00 UTC]''' ([https://meet.google.com/xzn-kqer-mah link to the meeting]). See you at the meeting! In case you can't join, the meeting will be recorded and made available on Commons. -- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 13:27, 14 September 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=30951652 --> == Wikifunctions & Abstract Wikipedia Newsletter #265: More engaging error messages == There is [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-09-18|a new update]] for Abstract Wikipedia and Wikifunctions. Please, come and read it! In this issue, we explain how we reworked error messaging, we talk about our recent and upcoming meetings, 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]]) 12:59, 18 September 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=30951652 --> == Wikifunctions & Abstract Wikipedia Newsletter #266: Memoization arriving == There is [[:f:Special:MyLanguage/Wikifunctions:Status updates/2026-09-25|a new update]] for Abstract Wikipedia and Wikifunctions. Please, come and read it! In this issue, we talk about storing a function call's result in a cache for easier recalling, we analyse how quickly one particular fact propagates through different Wikipedia language editions, 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:54, 28 September 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=30951652 --> hsonvn19fnu9gqnal8iumat4lsm8jnv Z35213 0 83605 334289 296469 2026-10-28T23:40:19Z NowInHD 65249 replaced item reference with item value 334289 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z35213" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z35212", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z813", "Z813K1": { "Z1K1": "Z7", "Z7K1": "Z22220", "Z22220K1": { "Z1K1": "Z7", "Z7K1": "Z30120", "Z30120K1": { "Z1K1": "Z18", "Z18K1": "Z35212K1" }, "Z30120K2": [ "Z6030", "Z6036" ], "Z30120K3": [ "Z60" ], "Z30120K4": [ "Z6092", { "Z1K1": "Z6092", "Z6092K1": "P1448" } ] } } }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z23753", "Z23753K1": { "Z1K1": "Z18", "Z18K1": "Z35212K1" }, "Z23753K2": "Z1002" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z21394", "Z21394K1": [ "Z6", { "Z1K1": "Z7", "Z7K1": "Z21449", "Z21449K1": { "Z1K1": "Z6092", "Z6092K1": "P1448" }, "Z21449K2": { "Z1K1": "Z7", "Z7K1": "Z30120", "Z30120K1": { "Z1K1": "Z18", "Z18K1": "Z35212K1" }, "Z30120K2": [ "Z6030", "Z6036" ], "Z30120K3": [ "Z60" ], "Z30120K4": [ "Z6092", { "Z1K1": "Z6092", "Z6092K1": "P1448" } ] } }, ", commonly known as ", { "Z1K1": "Z7", "Z7K1": "Z23753", "Z23753K1": { "Z1K1": "Z18", "Z18K1": "Z35212K1" }, "Z23753K2": "Z1002" } ] } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "official and common name, english Composition" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } n5pn46mjsa9wg00pfcnr25kxm11wo5i 334295 334289 2026-10-28T23:45:34Z NowInHD 65249 Will now output official name as text 334295 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z35213" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z35212", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z813", "Z813K1": { "Z1K1": "Z7", "Z7K1": "Z22220", "Z22220K1": { "Z1K1": "Z7", "Z7K1": "Z30120", "Z30120K1": { "Z1K1": "Z18", "Z18K1": "Z35212K1" }, "Z30120K2": [ "Z6030", "Z6036" ], "Z30120K3": [ "Z60" ], "Z30120K4": [ "Z6092", { "Z1K1": "Z6092", "Z6092K1": "P1448" } ] } } }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z23753", "Z23753K1": { "Z1K1": "Z18", "Z18K1": "Z35212K1" }, "Z23753K2": "Z1002" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z21394", "Z21394K1": [ "Z6", { "Z1K1": "Z7", "Z7K1": "Z31041", "Z31041K1": { "Z1K1": "Z7", "Z7K1": "Z21449", "Z21449K1": { "Z1K1": "Z6092", "Z6092K1": "P1448" }, "Z21449K2": { "Z1K1": "Z7", "Z7K1": "Z30120", "Z30120K1": { "Z1K1": "Z18", "Z18K1": "Z35212K1" }, "Z30120K2": [ "Z6030", "Z6036" ], "Z30120K3": [ "Z60" ], "Z30120K4": [ "Z6092", { "Z1K1": "Z6092", "Z6092K1": "P1448" } ] } }, "Z31041K2": "Z1002" }, ", commonly known as ", { "Z1K1": "Z7", "Z7K1": "Z23753", "Z23753K1": { "Z1K1": "Z18", "Z18K1": "Z35212K1" }, "Z23753K2": "Z1002" } ] } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "official and common name, english Composition" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } e4800mir6qqkgr05d28730ujvmw78d0 334298 334295 2026-10-28T23:53:59Z NowInHD 65249 Switched text from monolingual text to correct function 334298 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z35213" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z35212", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z813", "Z813K1": { "Z1K1": "Z7", "Z7K1": "Z22220", "Z22220K1": { "Z1K1": "Z7", "Z7K1": "Z30120", "Z30120K1": { "Z1K1": "Z18", "Z18K1": "Z35212K1" }, "Z30120K2": [ "Z6030", "Z6036" ], "Z30120K3": [ "Z60" ], "Z30120K4": [ "Z6092", { "Z1K1": "Z6092", "Z6092K1": "P1448" } ] } } }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z23753", "Z23753K1": { "Z1K1": "Z18", "Z18K1": "Z35212K1" }, "Z23753K2": "Z1002" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z21394", "Z21394K1": [ "Z6", { "Z1K1": "Z7", "Z7K1": "Z14396", "Z14396K1": { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": { "Z1K1": "Z7", "Z7K1": "Z21449", "Z21449K1": { "Z1K1": "Z6092", "Z6092K1": "P1448" }, "Z21449K2": { "Z1K1": "Z7", "Z7K1": "Z30120", "Z30120K1": { "Z1K1": "Z18", "Z18K1": "Z35212K1" }, "Z30120K2": [ "Z6030", "Z6036" ], "Z30120K3": [ "Z60" ], "Z30120K4": [ "Z6092", { "Z1K1": "Z6092", "Z6092K1": "P1448" } ] } } } }, ", commonly known as ", { "Z1K1": "Z7", "Z7K1": "Z23753", "Z23753K1": { "Z1K1": "Z18", "Z18K1": "Z35212K1" }, "Z23753K2": "Z1002" } ] } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "official and common name, english Composition" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } plukj45ieqb0qes7ixiujuf2zbpum0q 334300 334298 2026-10-29T00:27:25Z NowInHD 65249 Fixed unintentional wrapper of monolingual text 334300 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z35213" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z35212", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z813", "Z813K1": { "Z1K1": "Z7", "Z7K1": "Z22220", "Z22220K1": { "Z1K1": "Z7", "Z7K1": "Z30120", "Z30120K1": { "Z1K1": "Z18", "Z18K1": "Z35212K1" }, "Z30120K2": [ "Z6030", "Z6036" ], "Z30120K3": [ "Z60" ], "Z30120K4": [ "Z6092", { "Z1K1": "Z6092", "Z6092K1": "P1448" } ] } } }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z23753", "Z23753K1": { "Z1K1": "Z18", "Z18K1": "Z35212K1" }, "Z23753K2": "Z1002" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z21394", "Z21394K1": [ "Z6", { "Z1K1": "Z7", "Z7K1": "Z14396", "Z14396K1": { "Z1K1": "Z7", "Z7K1": "Z21449", "Z21449K1": { "Z1K1": "Z6092", "Z6092K1": "P1448" }, "Z21449K2": { "Z1K1": "Z7", "Z7K1": "Z30120", "Z30120K1": { "Z1K1": "Z18", "Z18K1": "Z35212K1" }, "Z30120K2": [ "Z6030", "Z6036" ], "Z30120K3": [ "Z60" ], "Z30120K4": [ "Z6092", { "Z1K1": "Z6092", "Z6092K1": "P1448" } ] } } }, ", commonly known as ", { "Z1K1": "Z7", "Z7K1": "Z23753", "Z23753K1": { "Z1K1": "Z18", "Z18K1": "Z35212K1" }, "Z23753K2": "Z1002" } ] } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "official and common name, english Composition" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 0w51e68cal69e77yv3ggzdkwy09t09t Z35214 0 83606 334301 275319 2026-10-29T00:29:02Z NowInHD 65249 Fixed test case to use correct official name value 334301 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z35214" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z35212", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z35212", "Z35212K1": { "Z1K1": "Z6091", "Z6091K1": "Q30" } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K2": "the United States of America, commonly known as United States" } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } avst0ebzckdbe4j551xdn5xoiq9m95h Z39623 0 90336 334195 300333 2026-10-28T22:12:31Z Virinas-code 2884 edit via [[User:Feeglgeef/wikilambda_editsource.js|raw-JSON edit tool]] 334195 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z39623" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z39619", "Z20K2": { "Z1K1": "Z7", "Z7K1": { "Z1K1": "Z7", "Z7K1": "Z39619", "Z39619K1": { "Z1K1": "Z13518", "Z13518K1": "4" }, "Z39619K2": { "Z1K1": "Z13518", "Z13518K1": "2" } }, "Z39619K1": { "Z1K1": "Z40", "Z40K1": "Z42" }, "Z39619K2": { "Z1K1": "Z40", "Z40K1": "Z41" }, "Z39619K3": { "Z1K1": "Z40", "Z40K1": "Z42" }, "Z39619K4": { "Z1K1": "Z40", "Z40K1": "Z42" } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z844", "Z844K2": { "Z1K1": "Z40", "Z40K1": "Z41" } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Projection function (4, 2) (F, T, F, F) = T" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 7jxgooviup6wcq13potdzkaflm79fs5 334196 334195 2026-10-28T22:17:39Z Virinas-code 2884 edit via [[User:Feeglgeef/wikilambda_editsource.js|raw-JSON edit tool]] 334196 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z39623" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z39619", "Z20K2": { "Z1K1": "Z7", "Z7K1": { "Z1K1": "Z7", "Z7K1": "Z39619", "Z39619K1": { "Z1K1": "Z13518", "Z13518K1": "4" }, "Z39619K2": { "Z1K1": "Z13518", "Z13518K1": "2" } }, "K1": { "Z1K1": "Z40", "Z40K1": "Z42" }, "K2": { "Z1K1": "Z40", "Z40K1": "Z41" }, "K3": { "Z1K1": "Z40", "Z40K1": "Z42" }, "K4": { "Z1K1": "Z40", "Z40K1": "Z42" } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z844", "Z844K2": { "Z1K1": "Z40", "Z40K1": "Z41" } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Projection function (4, 2) (F, T, F, F) = T" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 22ae58vtdbvw7am1j3mg31qh6ll0iou Z42536 0 95183 334111 327804 2026-10-28T13:55:07Z Artsiom91 2118 add ru 334111 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z42536" }, "Z2K2": { "Z1K1": "Z14294", "Z14294K1": [ "Z14293", { "Z1K1": "Z14293", "Z14293K1": "Z42519", "Z14293K2": "Z33034" }, { "Z1K1": "Z14293", "Z14293K1": "Z42479", "Z14293K2": "Z34003" }, { "Z1K1": "Z14293", "Z14293K1": "Z47788", "Z14293K2": [ "Z60", "Z1005" ] } ], "Z14294K2": "Z45588" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1830", "Z11K2": "複数のプロパティ値を述べる文章の言語別設定" }, { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "config for multiple property values-sentence" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 1zrf0qsnobfq4b5ub0h9t2u6yu7bohy Z43184 0 95967 334109 318356 2026-10-28T13:50:32Z 鈴音雨 101019 Articles too; connect testers Z48041 and Z48042 334109 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z43184" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z89", "Z17K2": "Z43184K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "English sentence" }, { "Z1K1": "Z11", "Z11K1": "Z1830", "Z11K2": "英語の文章" } ] } } ], "Z8K2": "Z89", "Z8K3": [ "Z20", "Z43193", "Z43194", "Z43195", "Z43196", "Z48041", "Z48042" ], "Z8K4": [ "Z14", "Z43206" ], "Z8K5": "Z43184" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "lowercase a leading pronoun or article in HTML" }, { "Z1K1": "Z11", "Z11K1": "Z1830", "Z11K2": "HTMLの先頭の英語の代名詞・冠詞を小文字にする" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Lowercases the first word of an English sentence only when it is a pronoun such as It or There, or an article such as The, so a sentence opening with a name keeps its capital." }, { "Z1K1": "Z11", "Z11K1": "Z1830", "Z11K2": "英語の文章が It、There などの代名詞や The などの冠詞で始まる場合だけ、その語を小文字にします。固有名詞で始まる文章はそのままです。" } ] } } q7ujpb6ladq20dej66pv1hscaw0ccfw Z43206 0 95989 334108 318344 2026-10-28T13:50:20Z 鈴音雨 101019 Lowercase a leading article as well (Additionally, the Japanese archipelago ...) 334108 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z43206" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z43184", "Z14K3": { "Z1K1": "Z16", "Z16K1": "Z600", "Z16K2": "function Z43184( Z43184K1 ) {\r\n\t// Only a pronoun or an article is safe to lowercase; a name opening the sentence keeps its capital\r\n\tconst html = Z43184K1.Z89K1;\r\n\tconst lead = html.match( /^(?:\u003C(?!a[\\s\u003E])[^\u003E]*\u003E)*/ )[ 0 ];\r\n\tconst rest = html.slice( lead.length ).replace( /^(?:It|Its|They|Their|This|These|That|Those|There|The|A|An)\\b/, ( w ) =\u003E w.toLowerCase() );\r\n\treturn { Z1K1: { Z1K1: 'Z9', Z9K1: 'Z89' }, Z89K1: lead + rest };\r\n}" } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "lowercase a leading English pronoun in HTML, JS" }, { "Z1K1": "Z11", "Z11K1": "Z1830", "Z11K2": "HTMLの先頭の英語の代名詞を小文字にする、JavaScript" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } nvgt8n6iocaf29bl9fphh8e3l3s7gu0 Z44300 0 97379 334089 323453 2026-10-28T13:29:26Z 鈴音雨 101019 The passive keeps its agent: by people since prehistory 334089 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z44300" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z44299", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z44299", "Z44299K1": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q141639475" }, { "Z1K1": "Z6091", "Z6091K1": "Q140402518" }, { "Z1K1": "Z6091", "Z6091K1": "Q140402519" } ], "Z44299K2": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q141639475" }, { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, { "Z1K1": "Z6091", "Z6091K1": "Q2990574" } ], "Z44299K3": [ "Z6", "prehistory", "people", "the Japanese archipelago" ], "Z44299K4": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "since" }, { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "" }, { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "" } ], "Z44299K5": { "Z1K1": "Z6091", "Z6091K1": "Q140402519" }, "Z44299K6": { "Z1K1": "Z6091", "Z6091K1": "Q140402519" }, "Z44299K7": { "Z1K1": "Z40", "Z40K1": "Z41" } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K2": "by people since prehistory" } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "passive: the agent is left out" }, { "Z1K1": "Z11", "Z11K1": "Z1830", "Z11K2": "受動態: 動作主を省く" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Rerun after a transient evaluator error." }, { "Z1K1": "Z11", "Z11K1": "Z1830", "Z11K2": "Rerun after a transient evaluator error." } ] } } ster1362ultoz4zld3zvbyczqasyj1e Z44302 0 97381 334087 331249 2026-10-28T13:29:15Z 鈴音雨 101019 Keep the agent of a passive as a by-phrase instead of dropping it 334087 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z44302" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z44299", "Z14K3": { "Z1K1": "Z16", "Z16K1": "Z600", "Z16K2": "function Z44299( Z44299K1, Z44299K2, Z44299K3, Z44299K4, Z44299K5, Z44299K6, Z44299K7 ) {\n\tconst truthy = ( v ) =\u003E v === true || v?.Z40K1 === 'Z41' || v?.Z40K1?.Z9K1 === 'Z41';\n\tconst roles = [ ...Z44299K1 ].map( ( r ) =\u003E r.Z6091K1 );\n\tconst grammar = [ ...Z44299K2 ].map( ( g ) =\u003E g.Z6091K1 );\n\tconst names = [ ...Z44299K3 ];\n\tconst markers = [ ...Z44299K4 ].map( ( m ) =\u003E m?.Z11K2 ?? m ?? '' );\n\tconst subject = Z44299K5.Z6091K1;\n\tconst topic = Z44299K6.Z6091K1;\n\tconst passive = truthy( Z44299K7 );\n\t// consecutive values of the same role form one phrase: \"A and B\", \"A, B, and C\"\n\tconst groups = [];\n\troles.forEach( ( role, i ) =\u003E {\n\t\tconst last = groups[ groups.length - 1 ];\n\t\tif ( last \u0026\u0026 last.role === role ) {\n\t\t\tlast.names.push( names[ i ] );\n\t\t} else {\n\t\t\tgroups.push( { role, names: [ names[ i ] ], grammar: grammar[ i ], marker: markers[ i ] } );\n\t\t}\n\t} );\n\tconst join = ( xs ) =\u003E ( xs.length \u003C 3 ? xs.join( ' and ' ) : xs.slice( 0, -1 ).join( ', ' ) + ', and ' + xs[ xs.length - 1 ] );\n\tconst isObject = ( g ) =\u003E g.grammar === 'Q2990574' \u0026\u0026 !passive;\n\tconst isAgent = ( g ) =\u003E g.grammar === 'Q164573' \u0026\u0026 passive;\n\tconst phrase = ( g ) =\u003E {\n\t\tif ( isAgent( g ) ) {\n\t\t\treturn 'by ' + join( g.names );\n\t\t}\n\t\tif ( isObject( g ) ) {\n\t\t\treturn join( g.names );\n\t\t}\n\t\tconst text = join( g.names );\n\t\tif ( !g.marker ) {\n\t\t\treturn text;\n\t\t}\n\t\t// a marker that brings its own article (\"due to the\") must not double the name's own (\"the Pacific Ocean\")\n\t\treturn /(^|\\s)the$/.test( g.marker ) \u0026\u0026 text.startsWith( 'the ' ) ? g.marker + ' ' + text.slice( 4 ) : g.marker + ' ' + text;\n\t};\n\tconst kept = groups.filter( ( g ) =\u003E g.role !== subject \u0026\u0026 g.role !== topic );\n\t// the agent of a passive comes right after the verb: \"inhabited by people since prehistory\"\n\tconst rest = [ ...kept.filter( isAgent ), ...kept.filter( ( g ) =\u003E !isAgent( g ) ) ];\n\t// roles that come back in turn pair their values, the object first in each pair:\n\t// \"the Pacific Ocean to the east, the Sea of Japan to the west, and ...\"\n\tconst count = {};\n\trest.forEach( ( g ) =\u003E {\n\t\tcount[ g.role ] = ( count[ g.role ] || 0 ) + 1;\n\t} );\n\tconst out = [];\n\tfor ( let i = 0; i \u003C rest.length; ) {\n\t\tif ( count[ rest[ i ].role ] \u003C 2 ) {\n\t\t\tout.push( phrase( rest[ i ] ) );\n\t\t\ti++;\n\t\t\tcontinue;\n\t\t}\n\t\tlet j = i;\n\t\twhile ( j \u003C rest.length \u0026\u0026 count[ rest[ j ].role ] \u003E 1 ) {\n\t\t\tj++;\n\t\t}\n\t\tconst run = rest.slice( i, j );\n\t\tconst size = new Set( run.map( ( g ) =\u003E g.role ) ).size;\n\t\tconst pairs = [];\n\t\tfor ( let k = 0; k \u003C run.length; k += size ) {\n\t\t\tconst block = run.slice( k, k + size );\n\t\t\tpairs.push( [ ...block.filter( isObject ), ...block.filter( ( g ) =\u003E !isObject( g ) ) ].map( phrase ).filter( Boolean ).join( ' ' ) );\n\t\t}\n\t\tout.push( join( pairs ) );\n\t\ti = j;\n\t}\n\t// a topic that is not the subject, such as a time, closes the clause\n\tconst t = groups.find( ( g ) =\u003E g.role === topic );\n\tif ( topic !== subject \u0026\u0026 t ) {\n\t\tout.push( phrase( t ) );\n\t}\n\treturn out.filter( Boolean ).join( ' ' );\n}\n" } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "English phrases for the other roles, JS" }, { "Z1K1": "Z11", "Z11K1": "Z1830", "Z11K2": "節の主語以外の句 (英語)、JS" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 5you5getgi1mpeh6zfscv8ra2pu8qid Z44312 0 97391 334091 331223 2026-10-28T13:29:50Z 鈴音雨 101019 Connect tester Z48036 334091 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z44312" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6005", "Z17K2": "Z44312K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "noun lexeme" }, { "Z1K1": "Z11", "Z11K1": "Z1830", "Z11K2": "名詞の語彙素" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6091", "Z17K2": "Z44312K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "item the noun stands for" }, { "Z1K1": "Z11", "Z11K1": "Z1830", "Z11K2": "名詞が表す項目" } ] } } ], "Z8K2": "Z6", "Z8K3": [ "Z20", "Z44313", "Z44362", "Z46882", "Z46883", "Z48036" ], "Z8K4": [ "Z14", "Z44314" ], "Z8K5": "Z44312" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "plural of an English countable noun for an item" }, { "Z1K1": "Z11", "Z11K1": "Z1830", "Z11K2": "項目を表す可算名詞の複数形 (英語)" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Gives the plural of an English noun in its sense for an item, or nothing when that sense is a mass noun or there is no plural. E.g. snow as precipitation gives nothing; as a flake, snows." }, { "Z1K1": "Z11", "Z11K1": "Z1830", "Z11K2": "項目を表す語義での英語の名詞の複数形を返します。その語義が不可算か、複数形がなければ何も返しません。例: 降水の snow → (なし)、雪片の snow → snows" } ] } } qwgurqf56063e51nrryrxtvm9wzng91 Z44314 0 97393 334086 331218 2026-10-28T13:29:03Z 鈴音雨 101019 A plurale tantum sense (people for persons) is its own plural 334086 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z44314" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z44312", "Z14K3": { "Z1K1": "Z16", "Z16K1": "Z600", "Z16K2": "function Z44312( Z44312K1, Z44312K2 ) {\n\t// the plural of a countable noun; nothing for a noun marked as a mass noun (Q489168) or without a plural form.\n\t// The mark can sit on a form, on the lexeme, or on the sense for the item: snow is a mass noun\n\t// as precipitation but countable as a flake.\n\tconst item = Z44312K2.Z6091K1;\n\tconst forms = [ ...( Z44312K1.Z6005K7 ?? [] ) ];\n\tconst has = ( form, feature ) =\u003E [ ...( form.Z6004K4 ?? [] ) ].some( ( g ) =\u003E ( g.Z6091K1 ?? g ) === feature );\n\tconst states = ( claims, property, value ) =\u003E [ ...( claims ?? [] ) ].some(\n\t\t( claim ) =\u003E claim.Z6003K2.Z6092K1 === property \u0026\u0026 claim.Z6003K3?.Z6091K1 === value );\n\tconst senses = [ ...( Z44312K1.Z6005K6 ?? [] ) ].filter( ( sense ) =\u003E states( sense.Z6006K3, 'P5137', item ) );\n\tif ( forms.some( ( form ) =\u003E has( form, 'Q489168' ) ) || states( Z44312K1.Z6005K5, 'P31', 'Q489168' ) ||\n\t\tsenses.some( ( sense ) =\u003E states( sense.Z6006K3, 'P31', 'Q489168' ) ) ) {\n\t\treturn '';\n\t}\n\tconst english = ( form ) =\u003E {\n\t\tconst reps = [ ...( form?.Z6004K3?.Z12K1 ?? [] ) ];\n\t\tconst rep = reps.find( ( r ) =\u003E ( r.Z11K1?.Z60K1 ?? r.Z11K1 ) === 'en' ) ?? reps[ 0 ];\n\t\treturn rep?.Z11K2 ?? '';\n\t};\n\t// a plurale tantum (Q138246) such as people meaning persons is already plural; peoples is another sense\n\tif ( senses.some( ( sense ) =\u003E states( sense.Z6006K3, 'P31', 'Q138246' ) ) ) {\n\t\treturn english( forms.find( ( form ) =\u003E has( form, 'Q110786' ) ) ?? forms[ 0 ] );\n\t}\n\tconst plural = forms.find( ( form ) =\u003E has( form, 'Q146786' ) );\n\treturn plural ? english( plural ) : '';\n}" } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "plural of a countable English noun lexeme, JS" }, { "Z1K1": "Z11", "Z11K1": "Z1830", "Z11K2": "可算名詞の語彙素の複数形 (英語)、JS" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } fpxwvotkccii512a60z8c0tzm0rerup Z44337 0 97416 334093 333321 2026-10-28T13:30:14Z 鈴音雨 101019 Connect tester Z48038 334093 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z44337" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6091", "Z17K2": "Z44337K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "relation" }, { "Z1K1": "Z11", "Z11K1": "Z1830", "Z11K2": "関係" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6091", "Z17K2": "Z44337K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "topic role" }, { "Z1K1": "Z11", "Z11K1": "Z1830", "Z11K2": "主題の役割" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6091" }, "Z17K2": "Z44337K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "roles" }, { "Z1K1": "Z11", "Z11K1": "Z1830", "Z11K2": "役割" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z1" }, "Z17K2": "Z44337K4", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "values (in the order of the roles)" }, { "Z1K1": "Z11", "Z11K1": "Z1830", "Z11K2": "値 (役割と同じ順)" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6091", "Z17K2": "Z44337K5", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "tense" }, { "Z1K1": "Z11", "Z11K1": "Z1830", "Z11K2": "時制" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z40", "Z17K2": "Z44337K6", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "perfect?" }, { "Z1K1": "Z11", "Z11K1": "Z1830", "Z11K2": "完了・継続?" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z40", "Z17K2": "Z44337K7", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "starts the sentence?" }, { "Z1K1": "Z11", "Z11K1": "Z1830", "Z11K2": "文頭?" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z40", "Z17K2": "Z44337K8", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "ends the sentence?" }, { "Z1K1": "Z11", "Z11K1": "Z1830", "Z11K2": "文末?" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6091" }, "Z17K2": "Z44337K9", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1830", "Z11K2": "副詞" }, { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "adverbs" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6091" }, "Z17K2": "Z44337K10", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "mood/aspect (empty = indicative)" }, { "Z1K1": "Z11", "Z11K1": "Z1830", "Z11K2": "法・相 (空なら直説法)" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z60", "Z17K2": "Z44337K11", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "language" }, { "Z1K1": "Z11", "Z11K1": "Z1830", "Z11K2": "言語" } ] } } ], "Z8K2": "Z11", "Z8K3": [ "Z20", "Z20", "Z44338", "Z44339", "Z44340", "Z44384", "Z44401", "Z44451", "Z44468", "Z44912", "Z44913", "Z44914", "Z46729", "Z46878", "Z47112", "Z47113", "Z47778", "Z48038" ], "Z8K4": [ "Z14", "Z44342" ], "Z8K5": "Z44337" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "clause stating a relation, Japanese" }, { "Z1K1": "Z11", "Z11K1": "Z1830", "Z11K2": "関係を述べる文章の節 (日本語)" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Writes one clause stating a relation in a Japanese sentence, from the relation and the values of its roles; it ends with 。 or continues with 、. E.g. 日本列島には先史時代から人々が居住し、" }, { "Z1K1": "Z11", "Z11K1": "Z1830", "Z11K2": "関係と役割の値から、関係を述べる日本語の文章の節を1つ作ります。文末なら「。」で終え、続くなら連用形と「、」で終えます。例: 日本列島には先史時代から人々が居住し、" } ] } } df468rufm75cwnnhepe3jl5k69zh76f Z44346 0 97425 334092 333322 2026-10-28T13:30:02Z 鈴音雨 101019 Connect tester Z48037 334092 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z44346" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6091", "Z17K2": "Z44346K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "relation" }, { "Z1K1": "Z11", "Z11K1": "Z1830", "Z11K2": "関係" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6091", "Z17K2": "Z44346K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "topic role" }, { "Z1K1": "Z11", "Z11K1": "Z1830", "Z11K2": "主題の役割" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6091" }, "Z17K2": "Z44346K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "roles" }, { "Z1K1": "Z11", "Z11K1": "Z1830", "Z11K2": "役割" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z1" }, "Z17K2": "Z44346K4", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "values (in the order of the roles)" }, { "Z1K1": "Z11", "Z11K1": "Z1830", "Z11K2": "値 (役割と同じ順)" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6091", "Z17K2": "Z44346K5", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "tense" }, { "Z1K1": "Z11", "Z11K1": "Z1830", "Z11K2": "時制" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z40", "Z17K2": "Z44346K6", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "perfect?" }, { "Z1K1": "Z11", "Z11K1": "Z1830", "Z11K2": "完了・継続?" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z40", "Z17K2": "Z44346K7", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "starts the sentence?" }, { "Z1K1": "Z11", "Z11K1": "Z1830", "Z11K2": "文頭?" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z40", "Z17K2": "Z44346K8", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "ends the sentence?" }, { "Z1K1": "Z11", "Z11K1": "Z1830", "Z11K2": "文末?" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6091" }, "Z17K2": "Z44346K9", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1830", "Z11K2": "副詞" }, { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "adverbs" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6091" }, "Z17K2": "Z44346K10", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "mood/aspect (empty = indicative)" }, { "Z1K1": "Z11", "Z11K1": "Z1830", "Z11K2": "法・相 (空なら直説法)" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z60", "Z17K2": "Z44346K11", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "language" }, { "Z1K1": "Z11", "Z11K1": "Z1830", "Z11K2": "言語" } ] } } ], "Z8K2": "Z11", "Z8K3": [ "Z20", "Z20", "Z44347", "Z44348", "Z44358", "Z44385", "Z44402", "Z44452", "Z44469", "Z44915", "Z44916", "Z46877", "Z47114", "Z47115", "Z47779", "Z48037" ], "Z8K4": [ "Z14", "Z44349" ], "Z8K5": "Z44346" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "clause stating a relation, English" }, { "Z1K1": "Z11", "Z11K1": "Z1830", "Z11K2": "関係を述べる文章の節 (英語)" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Writes one clause stating a relation in an English sentence: capitalised if it starts the sentence, with \"and\" before the last clause, ending in a full stop or a comma." }, { "Z1K1": "Z11", "Z11K1": "Z1830", "Z11K2": "関係と役割の値から、関係を述べる英語の文章の節を1つ作ります。文頭なら大文字で始め、最後の節の前に and を置き、句点かコンマで終えます。例: The Japanese archipelago has been inhabited since prehistory," } ] } } 28ekz044w8lzf0a32uii80d0uy287qb Z44347 0 97426 334101 330398 2026-10-28T13:42:01Z 鈴音雨 101019 The passive now keeps its agent: inhabited by people since prehistory 334101 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z44347" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z44346", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z44346", "Z44346K1": { "Z1K1": "Z6091", "Z6091K1": "Q99472070" }, "Z44346K2": { "Z1K1": "Z6091", "Z6091K1": "Q140402519" }, "Z44346K3": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q141639475" }, { "Z1K1": "Z6091", "Z6091K1": "Q140402518" }, { "Z1K1": "Z6091", "Z6091K1": "Q140402519" } ], "Z44346K4": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q11756" }, { "Z1K1": "Z6091", "Z6091K1": "Q134601727" }, { "Z1K1": "Z6091", "Z6091K1": "Q841337" } ], "Z44346K5": { "Z1K1": "Z6091", "Z6091K1": "Q192613" }, "Z44346K6": { "Z1K1": "Z40", "Z40K1": "Z41" }, "Z44346K7": { "Z1K1": "Z40", "Z40K1": "Z41" }, "Z44346K8": { "Z1K1": "Z40", "Z40K1": "Z42" }, "Z44346K9": [ "Z6091" ], "Z44346K10": [ "Z6091" ], "Z44346K11": "Z1002" }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z14392", "Z14392K2": { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "The Japanese archipelago has been inhabited by people since prehistory," } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "[en] first clause: the archipelago inhabited" }, { "Z1K1": "Z11", "Z11K1": "Z1830", "Z11K2": "[en] 文頭の節: The Japanese archipelago…," } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } nwyqk0yof8ybl3l8i7lvb01qo5u7igj Z44358 0 97437 334102 330401 2026-10-28T13:42:13Z 鈴音雨 101019 The passive now keeps its agent: inhabited by people since prehistory 334102 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z44358" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z44346", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z44346", "Z44346K1": { "Z1K1": "Z6091", "Z6091K1": "Q99472070" }, "Z44346K2": { "Z1K1": "Z6091", "Z6091K1": "Q140402519" }, "Z44346K3": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q141639475" }, { "Z1K1": "Z6091", "Z6091K1": "Q140402518" }, { "Z1K1": "Z6091", "Z6091K1": "Q140402519" } ], "Z44346K4": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q11756" }, { "Z1K1": "Z6091", "Z6091K1": "Q134601727" }, { "Z1K1": "Z6091", "Z6091K1": "Q841337" } ], "Z44346K5": { "Z1K1": "Z6091", "Z6091K1": "Q192613" }, "Z44346K6": { "Z1K1": "Z40", "Z40K1": "Z41" }, "Z44346K7": { "Z1K1": "Z40", "Z40K1": "Z41" }, "Z44346K8": { "Z1K1": "Z40", "Z40K1": "Z41" }, "Z44346K9": [ "Z6091" ], "Z44346K10": [ "Z6091" ], "Z44346K11": "Z1002" }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z14392", "Z14392K2": { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "The Japanese archipelago has been inhabited by people since prehistory." } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "[en] one clause as a whole sentence" }, { "Z1K1": "Z11", "Z11K1": "Z1830", "Z11K2": "[en] 節1つで完結した文章: The Japanese archipelago…." } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Rerun after a transient evaluator error." }, { "Z1K1": "Z11", "Z11K1": "Z1830", "Z11K2": "Rerun after a transient evaluator error." } ] } } jw9kiqoqmf7kojtae1ugaz1i0xvvu30 Z44479 0 97604 334090 331233 2026-10-28T13:29:38Z 鈴音雨 101019 Name a passive agent like a subject (Z44334: kinds in the plural), as objects already are 334090 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z44479" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z44477", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z22504", "Z22504K1": { "Z1K1": "Z7", "Z7K1": "Z872", "Z872K1": "Z24331", "Z872K2": [ "Z6", { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z10174", "Z10174K1": { "Z1K1": "Z7", "Z7K1": "Z10216", "Z10216K1": { "Z1K1": "Z18", "Z18K1": "Z44477K11" } }, "Z10174K2": { "Z1K1": "Z18", "Z18K1": "Z44477K12" } }, "Z802K2": "and", "Z802K3": "" }, { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z18", "Z18K1": "Z44477K11" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z10771", "Z10771K1": { "Z1K1": "Z7", "Z7K1": "Z18779", "Z18779K1": { "Z1K1": "Z7", "Z7K1": "Z42428", "Z42428K1": "Z44635", "Z42428K2": { "Z1K1": "Z7", "Z7K1": "Z44331", "Z44331K1": { "Z1K1": "Z18", "Z18K1": "Z44477K5" }, "Z44331K2": { "Z1K1": "Z18", "Z18K1": "Z44477K6" }, "Z44331K3": { "Z1K1": "Z18", "Z18K1": "Z44477K3" } }, "Z42428K3": "Z44334", "Z42428K4": { "Z1K1": "Z18", "Z18K1": "Z44477K13" }, "Z42428K5": { "Z1K1": "Z40", "Z40K1": "Z42" } } } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z18779", "Z18779K1": { "Z1K1": "Z7", "Z7K1": "Z42428", "Z42428K1": "Z44635", "Z42428K2": { "Z1K1": "Z7", "Z7K1": "Z44331", "Z44331K1": { "Z1K1": "Z18", "Z18K1": "Z44477K5" }, "Z44331K2": { "Z1K1": "Z18", "Z18K1": "Z44477K6" }, "Z44331K3": { "Z1K1": "Z18", "Z18K1": "Z44477K3" } }, "Z42428K3": "Z44334", "Z42428K4": { "Z1K1": "Z18", "Z18K1": "Z44477K13" }, "Z42428K5": { "Z1K1": "Z40", "Z40K1": "Z42" } } } }, { "Z1K1": "Z7", "Z7K1": "Z44322", "Z44322K1": { "Z1K1": "Z18", "Z18K1": "Z44477K1" }, "Z44322K2": { "Z1K1": "Z7", "Z7K1": "Z22193", "Z22193K1": { "Z1K1": "Z18", "Z18K1": "Z44477K3" }, "Z22193K2": { "Z1K1": "Z18", "Z18K1": "Z44477K5" }, "Z22193K3": { "Z1K1": "Z18", "Z18K1": "Z44477K2" } }, "Z44322K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z10184", "Z10184K1": { "Z1K1": "Z7", "Z7K1": "Z10216", "Z10216K1": { "Z1K1": "Z7", "Z7K1": "Z12755", "Z12755K1": { "Z1K1": "Z7", "Z7K1": "Z44331", "Z44331K1": { "Z1K1": "Z18", "Z18K1": "Z44477K5" }, "Z44331K2": { "Z1K1": "Z18", "Z18K1": "Z44477K6" }, "Z44331K3": { "Z1K1": "Z18", "Z18K1": "Z44477K3" } } } }, "Z10184K2": { "Z1K1": "Z7", "Z7K1": "Z10216", "Z10216K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z44334", "Z44334K1": { "Z1K1": "Z7", "Z7K1": "Z44688", "Z44688K1": { "Z1K1": "Z7", "Z7K1": "Z22193", "Z22193K1": { "Z1K1": "Z18", "Z18K1": "Z44477K3" }, "Z22193K2": { "Z1K1": "Z18", "Z18K1": "Z44477K5" }, "Z22193K3": { "Z1K1": "Z18", "Z18K1": "Z44477K6" } } }, "Z44334K2": { "Z1K1": "Z18", "Z18K1": "Z44477K13" } }, "Z866K2": { "Z1K1": "Z7", "Z7K1": "Z44035", "Z44035K1": { "Z1K1": "Z7", "Z7K1": "Z44688", "Z44688K1": { "Z1K1": "Z7", "Z7K1": "Z22193", "Z22193K1": { "Z1K1": "Z18", "Z18K1": "Z44477K3" }, "Z22193K2": { "Z1K1": "Z18", "Z18K1": "Z44477K5" }, "Z22193K3": { "Z1K1": "Z18", "Z18K1": "Z44477K6" } } }, "Z44035K2": { "Z1K1": "Z18", "Z18K1": "Z44477K13" } } } } }, "Z802K2": { "Z1K1": "Z6091", "Z6091K1": "Q146786" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z39531", "Z39531K1": { "Z1K1": "Z7", "Z7K1": "Z44688", "Z44688K1": { "Z1K1": "Z7", "Z7K1": "Z22193", "Z22193K1": { "Z1K1": "Z18", "Z18K1": "Z44477K3" }, "Z22193K2": { "Z1K1": "Z18", "Z18K1": "Z44477K5" }, "Z22193K3": { "Z1K1": "Z18", "Z18K1": "Z44477K6" } } }, "Z39531K2": { "Z1K1": "Z18", "Z18K1": "Z44477K13" } } }, "Z44322K4": { "Z1K1": "Z18", "Z18K1": "Z44477K8" }, "Z44322K5": { "Z1K1": "Z18", "Z18K1": "Z44477K9" }, "Z44322K6": { "Z1K1": "Z18", "Z18K1": "Z44477K10" }, "Z44322K7": { "Z1K1": "Z18", "Z18K1": "Z44477K13" } }, { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z813", "Z813K1": { "Z1K1": "Z18", "Z18K1": "Z44477K7" } }, "Z802K2": "", "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z813", "Z813K1": { "Z1K1": "Z7", "Z7K1": "Z28316", "Z28316K1": "Z43889", "Z28316K2": { "Z1K1": "Z7", "Z7K1": "Z30460", "Z30460K1": { "Z1K1": "Z7", "Z7K1": "Z811", "Z811K1": { "Z1K1": "Z18", "Z18K1": "Z44477K7" } }, "Z30460K2": { "Z1K1": "Z18", "Z18K1": "Z44477K13" } }, "Z28316K3": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q380057" } ] } }, "Z802K2": "", "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z21806", "Z21806K1": { "Z1K1": "Z7", "Z7K1": "Z6825", "Z6825K1": { "Z1K1": "Z7", "Z7K1": "Z811", "Z811K1": { "Z1K1": "Z7", "Z7K1": "Z28316", "Z28316K1": "Z43889", "Z28316K2": { "Z1K1": "Z7", "Z7K1": "Z30460", "Z30460K1": { "Z1K1": "Z7", "Z7K1": "Z811", "Z811K1": { "Z1K1": "Z18", "Z18K1": "Z44477K7" } }, "Z30460K2": { "Z1K1": "Z18", "Z18K1": "Z44477K13" } }, "Z28316K3": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q380057" } ] } } }, "Z21806K2": { "Z1K1": "Z18", "Z18K1": "Z44477K13" } } } }, { "Z1K1": "Z7", "Z7K1": "Z44299", "Z44299K1": { "Z1K1": "Z18", "Z18K1": "Z44477K5" }, "Z44299K2": { "Z1K1": "Z18", "Z18K1": "Z44477K2" }, "Z44299K3": { "Z1K1": "Z7", "Z7K1": "Z31098", "Z31098K1": "Z802", "Z31098K2": { "Z1K1": "Z7", "Z7K1": "Z13464", "Z13464K1": "Z13381", "Z13464K2": { "Z1K1": "Z18", "Z18K1": "Z44477K2" }, "Z13464K3": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q2990574" }, { "Z1K1": "Z6091", "Z6091K1": "Q164573" } ] }, "Z31098K3": { "Z1K1": "Z7", "Z7K1": "Z42428", "Z42428K1": "Z44635", "Z42428K2": { "Z1K1": "Z18", "Z18K1": "Z44477K6" }, "Z42428K3": "Z44334", "Z42428K4": { "Z1K1": "Z18", "Z18K1": "Z44477K13" }, "Z42428K5": { "Z1K1": "Z40", "Z40K1": "Z42" } }, "Z31098K4": { "Z1K1": "Z7", "Z7K1": "Z42428", "Z42428K1": "Z44635", "Z42428K2": { "Z1K1": "Z18", "Z18K1": "Z44477K6" }, "Z42428K3": "Z44035", "Z42428K4": { "Z1K1": "Z18", "Z18K1": "Z44477K13" }, "Z42428K5": { "Z1K1": "Z40", "Z40K1": "Z42" } } }, "Z44299K4": { "Z1K1": "Z7", "Z7K1": "Z44686", "Z44686K1": { "Z1K1": "Z18", "Z18K1": "Z44477K6" }, "Z44686K2": { "Z1K1": "Z7", "Z7K1": "Z873", "Z873K1": "Z39586", "Z873K2": { "Z1K1": "Z18", "Z18K1": "Z44477K5" } } }, "Z44299K5": { "Z1K1": "Z18", "Z18K1": "Z44477K3" }, "Z44299K6": { "Z1K1": "Z18", "Z18K1": "Z44477K4" }, "Z44299K7": { "Z1K1": "Z7", "Z7K1": "Z19316", "Z19316K1": { "Z1K1": "Z7", "Z7K1": "Z22193", "Z22193K1": { "Z1K1": "Z18", "Z18K1": "Z44477K3" }, "Z22193K2": { "Z1K1": "Z18", "Z18K1": "Z44477K5" }, "Z22193K3": { "Z1K1": "Z18", "Z18K1": "Z44477K2" } }, "Z19316K2": { "Z1K1": "Z6091", "Z6091K1": "Q2990574" } } } ] } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "English clause text, composition" }, { "Z1K1": "Z11", "Z11K1": "Z1830", "Z11K2": "英語の節の本文、合成" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } p848ib3osnvshhhizv12ynrqtcy8qta User:ReXLer/common.js 2 98027 334202 325218 2026-10-28T22:43:36Z ReXLer 39813 334202 javascript text/javascript mw.loader.load( "https://www.wikifunctions.org/w/index.php?title=User:鈴音雨/WFSpinner.js&action=raw&ctype=text/javascript", ); mw.loader.load( '//www.wikifunctions.org/w/index.php?title=User:Feeglgeef/wikilambda_editsource.js&action=raw&ctype=text/javascript' ); 5m3csu1en8xi20llg879swcp4pcx99x Z45751 0 99254 334133 328493 2026-10-28T20:08:35Z Jsamwrites 938 Added Z48048, Z48049, Z48050, Z48051 and Z48052 to the approved list of test cases 334133 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z45751" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6095", "Z17K2": "Z45751K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "selected determiner-like lexeme" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6091" }, "Z17K2": "Z45751K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "required form features" } ] } } ], "Z8K2": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6" }, "Z8K3": [ "Z20", "Z45753", "Z45754", "Z45755", "Z45756", "Z45757", "Z45758", "Z45759", "Z45760", "Z45761", "Z45762", "Z48048", "Z48049", "Z48050", "Z48051", "Z48052" ], "Z8K4": [ "Z14", "Z45752" ], "Z8K5": "Z45751" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Determiner strings from lexeme" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Returns distinct stored spellings of matching forms of a caller-selected determiner-like lexeme. No matches: typed empty list. Preserves alternatives and all scripts; no contextual selection." } ] } } 037f1vj26jai06dsbvsds8cj0m3xzht Z45763 0 99266 334134 328495 2026-10-28T20:09:05Z Jsamwrites 938 Added Z48053, Z48054, Z48055, Z48056 and Z48057 to the approved list of test cases 334134 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z45763" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6095", "Z17K2": "Z45763K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "selected determiner-like lexeme" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6091" }, "Z17K2": "Z45763K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "required form features" } ] } } ], "Z8K2": "Z6", "Z8K3": [ "Z20", "Z45765", "Z45766", "Z45767", "Z45768", "Z45769", "Z45770", "Z45771", "Z45772", "Z45773", "Z45774", "Z48053", "Z48054", "Z48055", "Z48056", "Z48057" ], "Z8K4": [ "Z14", "Z45764" ], "Z8K5": "Z45763" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Determiner string from lexeme" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Returns the sole distinct stored spelling of a caller-selected determiner-like lexeme. Missing or multiple spellings raise Z44924 errors. Features match explicit form tags only." } ] } } bab1w8bvzf4cb533g3ho55jhgln42nj Z46391 0 99923 334260 329667 2026-10-28T23:25:14Z Jsamwrites 938 Removed Z46396 from the approved list of implementations 334260 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z46391" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z39358", "Z17K2": "Z46391K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "verb phrase" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, "Z17K2": "Z46391K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "grammatical features" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, "Z17K2": "Z46391K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "subject agreement features" } ] } } ], "Z8K2": "Z39358", "Z8K3": [ "Z20", "Z46397", "Z46398", "Z46399", "Z46400", "Z46401", "Z46402", "Z46403", "Z46404" ], "Z8K4": [ "Z14" ], "Z8K5": "Z46391" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Verb phrase with grammatical features" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Constrains a deferred verb phrase with grammatical and subject-agreement features without inserting a subject or selecting a string." } ] } } b1m2bwve4gsk8l1timwxdz5sj05g9pe 334282 334260 2026-10-28T23:36:48Z Jsamwrites 938 Added Z46396 to the approved list of implementations 334282 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z46391" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z39358", "Z17K2": "Z46391K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "verb phrase" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, "Z17K2": "Z46391K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "grammatical features" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, "Z17K2": "Z46391K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "subject agreement features" } ] } } ], "Z8K2": "Z39358", "Z8K3": [ "Z20", "Z46397", "Z46398", "Z46399", "Z46400", "Z46401", "Z46402", "Z46403", "Z46404" ], "Z8K4": [ "Z14", "Z46396" ], "Z8K5": "Z46391" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Verb phrase with grammatical features" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Constrains a deferred verb phrase with grammatical and subject-agreement features without inserting a subject or selecting a string." } ] } } qxbi8s1ec066lxy6eoq89nd7pz71f7g Z46396 0 99928 334281 329663 2026-10-28T23:36:23Z Jsamwrites 938 Build the verb phrase without repeated feature lists 334281 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z46396" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z46391", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z39360", "Z39360K1": { "Z1K1": "Z7", "Z7K1": "Z39362", "Z39362K1": { "Z1K1": "Z18", "Z18K1": "Z46391K1" } }, "Z39360K2": { "Z1K1": "Z7", "Z7K1": "Z39368", "Z39368K1": { "Z1K1": "Z18", "Z18K1": "Z46391K1" } }, "Z39360K3": { "Z1K1": "Z7", "Z7K1": "Z39371", "Z39371K1": { "Z1K1": "Z7", "Z7K1": "Z42101", "Z42101K1": { "Z1K1": "Z7", "Z7K1": "Z42101", "Z42101K1": { "Z1K1": "Z18", "Z18K1": "Z46391K1" }, "Z42101K2": { "Z1K1": "Z18", "Z18K1": "Z46391K2" } }, "Z42101K2": { "Z1K1": "Z18", "Z18K1": "Z46391K3" } } }, "Z39360K4": { "Z1K1": "Z7", "Z7K1": "Z38860", "Z38860K1": { "Z1K1": "Z7", "Z7K1": "Z39375", "Z39375K1": { "Z1K1": "Z7", "Z7K1": "Z42101", "Z42101K1": { "Z1K1": "Z7", "Z7K1": "Z42101", "Z42101K1": { "Z1K1": "Z18", "Z18K1": "Z46391K1" }, "Z42101K2": { "Z1K1": "Z18", "Z18K1": "Z46391K2" } }, "Z42101K2": { "Z1K1": "Z18", "Z18K1": "Z46391K3" } } }, "Z38860K2": { "Z1K1": "Z6091", "Z6091K1": "Q4147654" }, "Z38860K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z813", "Z813K1": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z813", "Z813K1": { "Z1K1": "Z7", "Z7K1": "Z13078", "Z13078K1": { "Z1K1": "Z7", "Z7K1": "Z873", "Z873K1": "Z39346", "Z873K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z813", "Z813K1": { "Z1K1": "Z7", "Z7K1": "Z27665", "Z27665K1": [ "Z1", { "Z1K1": "Z18", "Z18K1": "Z46391K2" }, { "Z1K1": "Z18", "Z18K1": "Z46391K3" } ] } }, "Z802K2": [ "Z39328" ], "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z18475", "Z18475K1": { "Z1K1": "Z7", "Z7K1": "Z27665", "Z27665K1": [ "Z1", { "Z1K1": "Z18", "Z18K1": "Z46391K2" }, { "Z1K1": "Z18", "Z18K1": "Z46391K3" } ] } } } } } }, "Z802K2": [ "Z6091" ], "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z18475", "Z18475K1": { "Z1K1": "Z7", "Z7K1": "Z13078", "Z13078K1": { "Z1K1": "Z7", "Z7K1": "Z873", "Z873K1": "Z39346", "Z873K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z813", "Z813K1": { "Z1K1": "Z7", "Z7K1": "Z27665", "Z27665K1": [ "Z1", { "Z1K1": "Z18", "Z18K1": "Z46391K2" }, { "Z1K1": "Z18", "Z18K1": "Z46391K3" } ] } }, "Z802K2": [ "Z39328" ], "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z18475", "Z18475K1": { "Z1K1": "Z7", "Z7K1": "Z27665", "Z27665K1": [ "Z1", { "Z1K1": "Z18", "Z18K1": "Z46391K2" }, { "Z1K1": "Z18", "Z18K1": "Z46391K3" } ] } } } } } } } }, "Z802K2": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q109267112" } ], "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z813", "Z813K1": { "Z1K1": "Z7", "Z7K1": "Z13078", "Z13078K1": { "Z1K1": "Z7", "Z7K1": "Z873", "Z873K1": "Z39346", "Z873K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z813", "Z813K1": { "Z1K1": "Z7", "Z7K1": "Z27665", "Z27665K1": [ "Z1", { "Z1K1": "Z18", "Z18K1": "Z46391K2" }, { "Z1K1": "Z18", "Z18K1": "Z46391K3" } ] } }, "Z802K2": [ "Z39328" ], "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z18475", "Z18475K1": { "Z1K1": "Z7", "Z7K1": "Z27665", "Z27665K1": [ "Z1", { "Z1K1": "Z18", "Z18K1": "Z46391K2" }, { "Z1K1": "Z18", "Z18K1": "Z46391K3" } ] } } } } } }, "Z802K2": [ "Z6091" ], "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z18475", "Z18475K1": { "Z1K1": "Z7", "Z7K1": "Z13078", "Z13078K1": { "Z1K1": "Z7", "Z7K1": "Z873", "Z873K1": "Z39346", "Z873K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z813", "Z813K1": { "Z1K1": "Z7", "Z7K1": "Z27665", "Z27665K1": [ "Z1", { "Z1K1": "Z18", "Z18K1": "Z46391K2" }, { "Z1K1": "Z18", "Z18K1": "Z46391K3" } ] } }, "Z802K2": [ "Z39328" ], "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z18475", "Z18475K1": { "Z1K1": "Z7", "Z7K1": "Z27665", "Z27665K1": [ "Z1", { "Z1K1": "Z18", "Z18K1": "Z46391K2" }, { "Z1K1": "Z18", "Z18K1": "Z46391K3" } ] } } } } } } } } } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Verb phrase with grammatical features, composition" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Projects feature pairs to the verb's deferred requests; with no features it requests affirmative polarity, since phrase bodies cannot hold empty lists." } ] } } h6jgjfbff6uxey0v8txdhx0y5c0bvvz Z46504 0 100036 334073 330233 2026-10-28T13:23:50Z Artsiom91 2118 add ru 334073 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z46504" }, "Z2K2": { "Z1K1": "Z14294", "Z14294K1": [ "Z14293", { "Z1K1": "Z14293", "Z14293K1": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z60", "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6095" }, "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": "Z44812" } ], "Z8K5": "Z8" }, "Z14293K2": "Z33034" }, { "Z1K1": "Z14293", "Z14293K1": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z60", "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6095" }, "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": "Z44814" } ], "Z8K5": "Z8" }, "Z14293K2": [ "Z60", "Z1004" ] }, { "Z1K1": "Z14293", "Z14293K1": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z60", "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6095" }, "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": "Z44816" } ], "Z8K5": "Z8" }, "Z14293K2": [ "Z60", "Z1003" ] }, { "Z1K1": "Z14293", "Z14293K1": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z60", "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6095" }, "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": "Z44817" } ], "Z8K5": "Z8" }, "Z14293K2": [ "Z60", "Z1403" ] }, { "Z1K1": "Z14293", "Z14293K1": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z60", "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6095" }, "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": "Z44818" } ], "Z8K5": "Z8" }, "Z14293K2": [ "Z60", "Z1014" ] }, { "Z1K1": "Z14293", "Z14293K1": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z60", "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6095" }, "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": "Z44819" } ], "Z8K5": "Z8" }, "Z14293K2": [ "Z60", "Z1015" ] }, { "Z1K1": "Z14293", "Z14293K1": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z60", "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6095" }, "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": "Z44820" } ], "Z8K5": "Z8" }, "Z14293K2": [ "Z60", "Z1012" ] }, { "Z1K1": "Z14293", "Z14293K1": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z60", "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6095" }, "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": "Z48029" } ], "Z8K5": "Z8" }, "Z14293K2": [ "Z60", "Z1005" ] } ], "Z14294K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z60", "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6095" }, "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": [ "Z6095" ] } ], "Z8K5": "Z8" } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Personal pronoun inventory language options" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Pronoun lexeme inventory object of each language; other languages get an empty list." } ] } } f8dov86tg45nkgft1xtr2csu8zri3oa Z46616 0 100154 334165 331552 2026-10-28T21:08:00Z Jsamwrites 938 Removed Z46618 from the approved list of implementations 334165 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z46616" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6092", "Z17K2": "Z46616K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "property" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z60", "Z17K2": "Z46616K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "language" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, "Z17K2": "Z46616K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "context" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6", "Z17K2": "Z46616K4", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "value type" } ] } } ], "Z8K2": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" } }, "Z8K3": [ "Z20", "Z46619", "Z46620", "Z46621", "Z46622", "Z46623", "Z46624", "Z46625", "Z46627", "Z46628", "Z46626" ], "Z8K4": [ "Z14" ], "Z8K5": "Z46616" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Predicate construction candidates for property" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Grammatical constructions that can express statements of the property, in order of preference: language-neutral property map, then the language's preferences, then the value kind (Z6091 item, Z6064 time, Z6010 quantity; empty = any). Empty when the property or value kind is not supported." } ] } } 54imcnzokqu01tv3jwjv8lgudq7ms6t 334167 334165 2026-10-28T21:11:49Z Jsamwrites 938 Added Z46618 to the approved list of implementations 334167 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z46616" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6092", "Z17K2": "Z46616K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "property" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z60", "Z17K2": "Z46616K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "language" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, "Z17K2": "Z46616K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "context" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6", "Z17K2": "Z46616K4", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "value type" } ] } } ], "Z8K2": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" } }, "Z8K3": [ "Z20", "Z46619", "Z46620", "Z46621", "Z46622", "Z46623", "Z46624", "Z46625", "Z46627", "Z46628", "Z46626" ], "Z8K4": [ "Z14", "Z46618" ], "Z8K5": "Z46616" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Predicate construction candidates for property" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Grammatical constructions that can express statements of the property, in order of preference: language-neutral property map, then the language's preferences, then the value kind (Z6091 item, Z6064 time, Z6010 quantity; empty = any). Empty when the property or value kind is not supported." } ] } } gehs61dfb8jcsa24m0oyzvmbpge1vat 334299 334167 2026-10-29T00:24:49Z Jsamwrites 938 Removed Z46618 from the approved list of implementations 334299 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z46616" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6092", "Z17K2": "Z46616K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "property" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z60", "Z17K2": "Z46616K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "language" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, "Z17K2": "Z46616K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "context" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6", "Z17K2": "Z46616K4", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "value type" } ] } } ], "Z8K2": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" } }, "Z8K3": [ "Z20", "Z46619", "Z46620", "Z46621", "Z46622", "Z46623", "Z46624", "Z46625", "Z46627", "Z46628", "Z46626" ], "Z8K4": [ "Z14" ], "Z8K5": "Z46616" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Predicate construction candidates for property" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Grammatical constructions that can express statements of the property, in order of preference: language-neutral property map, then the language's preferences, then the value kind (Z6091 item, Z6064 time, Z6010 quantity; empty = any). Empty when the property or value kind is not supported." } ] } } 54imcnzokqu01tv3jwjv8lgudq7ms6t 334375 334299 2026-10-29T07:35:09Z Jsamwrites 938 Added Z46618 to the approved list of implementations 334375 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z46616" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6092", "Z17K2": "Z46616K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "property" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z60", "Z17K2": "Z46616K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "language" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, "Z17K2": "Z46616K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "context" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6", "Z17K2": "Z46616K4", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "value type" } ] } } ], "Z8K2": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" } }, "Z8K3": [ "Z20", "Z46619", "Z46620", "Z46621", "Z46622", "Z46623", "Z46624", "Z46625", "Z46627", "Z46628", "Z46626" ], "Z8K4": [ "Z14", "Z46618" ], "Z8K5": "Z46616" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Predicate construction candidates for property" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Grammatical constructions that can express statements of the property, in order of preference: language-neutral property map, then the language's preferences, then the value kind (Z6091 item, Z6064 time, Z6010 quantity; empty = any). Empty when the property or value kind is not supported." } ] } } gehs61dfb8jcsa24m0oyzvmbpge1vat 334377 334375 2026-10-29T07:41:07Z Jsamwrites 938 Removed Z46618 from the approved list of implementations 334377 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z46616" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6092", "Z17K2": "Z46616K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "property" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z60", "Z17K2": "Z46616K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "language" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, "Z17K2": "Z46616K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "context" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6", "Z17K2": "Z46616K4", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "value type" } ] } } ], "Z8K2": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" } }, "Z8K3": [ "Z20", "Z46619", "Z46620", "Z46621", "Z46622", "Z46623", "Z46624", "Z46625", "Z46627", "Z46628", "Z46626" ], "Z8K4": [ "Z14" ], "Z8K5": "Z46616" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Predicate construction candidates for property" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Grammatical constructions that can express statements of the property, in order of preference: language-neutral property map, then the language's preferences, then the value kind (Z6091 item, Z6064 time, Z6010 quantity; empty = any). Empty when the property or value kind is not supported." } ] } } 54imcnzokqu01tv3jwjv8lgudq7ms6t 334378 334377 2026-10-29T07:56:01Z Jsamwrites 938 Added Z46618 to the approved list of implementations 334378 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z46616" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6092", "Z17K2": "Z46616K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "property" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z60", "Z17K2": "Z46616K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "language" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, "Z17K2": "Z46616K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "context" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6", "Z17K2": "Z46616K4", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "value type" } ] } } ], "Z8K2": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" } }, "Z8K3": [ "Z20", "Z46619", "Z46620", "Z46621", "Z46622", "Z46623", "Z46624", "Z46625", "Z46627", "Z46628", "Z46626" ], "Z8K4": [ "Z14", "Z46618" ], "Z8K5": "Z46616" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Predicate construction candidates for property" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Grammatical constructions that can express statements of the property, in order of preference: language-neutral property map, then the language's preferences, then the value kind (Z6091 item, Z6064 time, Z6010 quantity; empty = any). Empty when the property or value kind is not supported." } ] } } gehs61dfb8jcsa24m0oyzvmbpge1vat Z46618 0 100156 334166 331549 2026-10-28T21:09:52Z Jsamwrites 938 Task 8: P155 uses its shared registered construction without expanding the full preference table 334166 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z46618" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z46616", "Z14K2": { "Z1K1": "Z7", "Z7K1": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" } }, "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" } }, "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z12767", "Z12767K1": { "Z1K1": "Z7", "Z7K1": "Z872", "Z872K1": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": "Z40", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z12846", "Z12846K1": { "Z1K1": "Z7", "Z7K1": "Z873", "Z873K1": "Z39346", "Z873K2": { "Z1K1": "Z18", "Z18K1": "Z8K1" } }, "Z12846K2": { "Z1K1": "Z7", "Z7K1": "Z873", "Z873K1": "Z39346", "Z873K2": { "Z1K1": "Z18", "Z18K1": "Z46616K3" } } } } ], "Z8K5": "Z8" }, "Z872K2": { "Z1K1": "Z18", "Z18K1": "Z8K1" } }, "Z12767K2": { "Z1K1": "Z7", "Z7K1": "Z872", "Z872K1": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": "Z40", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z10216", "Z10216K1": { "Z1K1": "Z7", "Z7K1": "Z12846", "Z12846K1": { "Z1K1": "Z7", "Z7K1": "Z873", "Z873K1": "Z39346", "Z873K2": { "Z1K1": "Z18", "Z18K1": "Z8K1" } }, "Z12846K2": { "Z1K1": "Z7", "Z7K1": "Z873", "Z873K1": "Z39346", "Z873K2": { "Z1K1": "Z18", "Z18K1": "Z46616K3" } } } } } ], "Z8K5": "Z8" }, "Z872K2": { "Z1K1": "Z18", "Z18K1": "Z8K1" } } } } ], "Z8K5": "Z8" }, "Z8K1": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z18", "Z18K1": "Z46616K4" }, "Z866K2": "" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P155" }, "Z802K2": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1774805" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q99632598" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q2990574" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1317831" } } ] ], "Z802K3": { "Z1K1": "Z7", "Z7K1": { "Z1K1": "Z7", "Z7K1": "Z14310", "Z14310K1": "Z46615", "Z14310K2": { "Z1K1": "Z18", "Z18K1": "Z46616K2" } }, "K1": { "Z1K1": "Z18", "Z18K1": "Z46616K1" }, "K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P31" }, "Z802K2": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q207509" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1084" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q20574495" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q20574495" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q20574495" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } } ] ], "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P17" }, "Z802K2": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q207509" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q109377685" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q109377685" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q109377685" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } } ] ], "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P131" }, "Z802K2": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q207509" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q109377685" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q109377685" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q109377685" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } } ] ], "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P61" }, "Z802K2": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1774805" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q12772819" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q2990574" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } } ] ], "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P462" }, "Z802K2": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q207509" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q34698" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q20574495" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q20574495" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q20574495" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } } ], [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1166153" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q20574495" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } } ], [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q207509" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1084" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q20574495" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q20574495" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q20574495" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } } ] ], "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P27" }, "Z802K2": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q207509" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q34698" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q217438" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q20574495" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q20574495" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q20574495" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } } ] ], "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P463" }, "Z802K2": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q207509" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1084" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q8191099" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1814980" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q20574495" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q20574495" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q20574495" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } } ] ], "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P69" }, "Z802K2": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1166153" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1782301" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q117795533" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q117795533" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q117795533" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } } ] ], "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P1082" }, "Z802K2": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q309314" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1613416" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q309314" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q309314" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q309314" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q309314" } } ] ], "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P178" }, "Z802K2": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1774805" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q7562091" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1194697" } } ], [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1774805" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q7562091" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q2990574" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1317831" } } ] ], "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P50" }, "Z802K2": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1774805" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q86647781" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1194697" } } ], [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1774805" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q86647781" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q2990574" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1317831" } } ] ], "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P170" }, "Z802K2": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1774805" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q11398090" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1194697" } } ], [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1774805" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q11398090" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q2990574" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1317831" } } ] ], "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P112" }, "Z802K2": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1774805" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q3075355" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1194697" } } ], [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1774805" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q3075355" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q2990574" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1317831" } } ] ], "Z802K3": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" } ] } } } } } } } } } } } } } } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z872", "Z872K1": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": "Z40", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z19316", "Z19316K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z39328K2" }, "Z803K2": { "Z1K1": "Z7", "Z7K1": "Z811", "Z811K1": { "Z1K1": "Z7", "Z7K1": "Z872", "Z872K1": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z39328", "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": "Z40", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6091K1" }, "Z803K2": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z39328K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z8K1" } } }, "Z866K2": "Q190087" } } ], "Z8K5": "Z8" }, "Z872K2": { "Z1K1": "Z18", "Z18K1": "Z8K1" } } } }, "Z19316K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z18", "Z18K1": "Z46616K4" }, "Z866K2": { "Z1K1": "Z6", "Z6K1": "Z6091" } }, "Z802K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z18", "Z18K1": "Z46616K4" }, "Z866K2": { "Z1K1": "Z6", "Z6K1": "Z6064" } }, "Z802K2": { "Z1K1": "Z6091", "Z6091K1": "Q186408" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z18", "Z18K1": "Z46616K4" }, "Z866K2": { "Z1K1": "Z6", "Z6K1": "Z6010" } }, "Z802K2": { "Z1K1": "Z6091", "Z6091K1": "Q309314" }, "Z802K3": { "Z1K1": "Z6091", "Z6091K1": "Q190087" } } } } } } ], "Z8K5": "Z8" }, "Z872K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P155" }, "Z802K2": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1774805" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q99632598" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q2990574" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1317831" } } ] ], "Z802K3": { "Z1K1": "Z7", "Z7K1": { "Z1K1": "Z7", "Z7K1": "Z14310", "Z14310K1": "Z46615", "Z14310K2": { "Z1K1": "Z18", "Z18K1": "Z46616K2" } }, "K1": { "Z1K1": "Z18", "Z18K1": "Z46616K1" }, "K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P31" }, "Z802K2": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q207509" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1084" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q20574495" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q20574495" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q20574495" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } } ] ], "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P17" }, "Z802K2": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q207509" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q109377685" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q109377685" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q109377685" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } } ] ], "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P131" }, "Z802K2": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q207509" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q109377685" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q109377685" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q109377685" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } } ] ], "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P61" }, "Z802K2": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1774805" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q12772819" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q2990574" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } } ] ], "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P462" }, "Z802K2": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q207509" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q34698" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q20574495" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q20574495" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q20574495" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } } ], [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1166153" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q20574495" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } } ], [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q207509" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1084" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q20574495" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q20574495" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q20574495" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } } ] ], "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P27" }, "Z802K2": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q207509" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q34698" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q217438" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q20574495" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q20574495" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q20574495" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } } ] ], "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P463" }, "Z802K2": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q207509" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1084" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q8191099" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1814980" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q20574495" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q20574495" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q20574495" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } } ] ], "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P69" }, "Z802K2": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1166153" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1782301" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q117795533" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q117795533" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q117795533" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } } ] ], "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P1082" }, "Z802K2": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q309314" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1613416" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q309314" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q309314" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q309314" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q309314" } } ] ], "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P178" }, "Z802K2": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1774805" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q7562091" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1194697" } } ], [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1774805" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q7562091" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q2990574" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1317831" } } ] ], "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P50" }, "Z802K2": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1774805" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q86647781" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1194697" } } ], [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1774805" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q86647781" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q2990574" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1317831" } } ] ], "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P170" }, "Z802K2": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1774805" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q11398090" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1194697" } } ], [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1774805" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q11398090" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q2990574" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1317831" } } ] ], "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P112" }, "Z802K2": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1774805" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q3075355" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1194697" } } ], [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1774805" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q3075355" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q2990574" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1317831" } } ] ], "Z802K3": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" } ] } } } } } } } } } } } } } } } } } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Predicate construction candidates for property, composition" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Grammatical constructions that can express statements of the property, in order of preference: language-neutral property map, then the language's preferences, then the value kind (Z6091 item, Z6064 time, Z6010 quantity; empty = any). Empty when the property or value kind is not supported." } ] } } e5h6vb43hil9sqjenrgohpcqscut2h7 334357 334166 2026-10-29T06:56:08Z Jsamwrites 938 Task 8: dispatch large predicate-candidate cases through lazy registered helpers 334357 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z46618" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z46616", "Z14K2": { "Z1K1": "Z7", "Z7K1": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" } }, "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" } }, "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z12767", "Z12767K1": { "Z1K1": "Z7", "Z7K1": "Z872", "Z872K1": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": "Z40", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z12846", "Z12846K1": { "Z1K1": "Z7", "Z7K1": "Z873", "Z873K1": "Z39346", "Z873K2": { "Z1K1": "Z18", "Z18K1": "Z8K1" } }, "Z12846K2": { "Z1K1": "Z7", "Z7K1": "Z873", "Z873K1": "Z39346", "Z873K2": { "Z1K1": "Z18", "Z18K1": "Z46616K3" } } } } ], "Z8K5": "Z8" }, "Z872K2": { "Z1K1": "Z18", "Z18K1": "Z8K1" } }, "Z12767K2": { "Z1K1": "Z7", "Z7K1": "Z872", "Z872K1": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": "Z40", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z10216", "Z10216K1": { "Z1K1": "Z7", "Z7K1": "Z12846", "Z12846K1": { "Z1K1": "Z7", "Z7K1": "Z873", "Z873K1": "Z39346", "Z873K2": { "Z1K1": "Z18", "Z18K1": "Z8K1" } }, "Z12846K2": { "Z1K1": "Z7", "Z7K1": "Z873", "Z873K1": "Z39346", "Z873K2": { "Z1K1": "Z18", "Z18K1": "Z46616K3" } } } } } ], "Z8K5": "Z8" }, "Z872K2": { "Z1K1": "Z18", "Z18K1": "Z8K1" } } } } ], "Z8K5": "Z8" }, "Z8K1": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z18", "Z18K1": "Z46616K4" }, "Z866K2": "" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P47" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48072", "Z48072K1": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P366" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48072", "Z48072K1": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P166" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48072", "Z48072K1": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P112" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48074", "Z48074K1": { "Z1K1": "Z18", "Z18K1": "Z46616K1" }, "Z48074K2": { "Z1K1": "Z18", "Z18K1": "Z46616K2" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P178" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48074", "Z48074K1": { "Z1K1": "Z18", "Z18K1": "Z46616K1" }, "Z48074K2": { "Z1K1": "Z18", "Z18K1": "Z46616K2" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P571" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48076", "Z48076K1": { "Z1K1": "Z18", "Z18K1": "Z46616K2" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P84" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48078", "Z48078K1": { "Z1K1": "Z18", "Z18K1": "Z46616K2" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P277" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48080", "Z48080K1": { "Z1K1": "Z18", "Z18K1": "Z46616K2" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z48086", "Z48086K1": { "Z1K1": "Z18", "Z18K1": "Z46616K1" }, "Z48086K2": { "Z1K1": "Z18", "Z18K1": "Z46616K2" } } } } } } } } } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z872", "Z872K1": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": "Z40", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z19316", "Z19316K1": { "Z1K1": "Z7", "Z7K1": "Z39346", "Z39346K1": { "Z1K1": "Z7", "Z7K1": "Z811", "Z811K1": { "Z1K1": "Z7", "Z7K1": "Z872", "Z872K1": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z39328", "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": "Z40", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z19316", "Z19316K1": { "Z1K1": "Z7", "Z7K1": "Z39342", "Z39342K1": { "Z1K1": "Z18", "Z18K1": "Z8K1" } }, "Z19316K2": { "Z1K1": "Z6091", "Z6091K1": "Q190087" } } } ], "Z8K5": "Z8" }, "Z872K2": { "Z1K1": "Z18", "Z18K1": "Z8K1" } } } }, "Z19316K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z18", "Z18K1": "Z46616K4" }, "Z866K2": { "Z1K1": "Z6", "Z6K1": "Z6091" } }, "Z802K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z18", "Z18K1": "Z46616K4" }, "Z866K2": { "Z1K1": "Z6", "Z6K1": "Z6064" } }, "Z802K2": { "Z1K1": "Z6091", "Z6091K1": "Q186408" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z18", "Z18K1": "Z46616K4" }, "Z866K2": { "Z1K1": "Z6", "Z6K1": "Z6010" } }, "Z802K2": { "Z1K1": "Z6091", "Z6091K1": "Q309314" }, "Z802K3": { "Z1K1": "Z6091", "Z6091K1": "Q190087" } } } } } } ], "Z8K5": "Z8" }, "Z872K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P47" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48072", "Z48072K1": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P366" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48072", "Z48072K1": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P166" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48072", "Z48072K1": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P112" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48074", "Z48074K1": { "Z1K1": "Z18", "Z18K1": "Z46616K1" }, "Z48074K2": { "Z1K1": "Z18", "Z18K1": "Z46616K2" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P178" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48074", "Z48074K1": { "Z1K1": "Z18", "Z18K1": "Z46616K1" }, "Z48074K2": { "Z1K1": "Z18", "Z18K1": "Z46616K2" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P571" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48076", "Z48076K1": { "Z1K1": "Z18", "Z18K1": "Z46616K2" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P84" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48078", "Z48078K1": { "Z1K1": "Z18", "Z18K1": "Z46616K2" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P277" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48080", "Z48080K1": { "Z1K1": "Z18", "Z18K1": "Z46616K2" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z48086", "Z48086K1": { "Z1K1": "Z18", "Z18K1": "Z46616K1" }, "Z48086K2": { "Z1K1": "Z18", "Z18K1": "Z46616K2" } } } } } } } } } } } } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Predicate construction candidates for property, composition" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Grammatical constructions that can express statements of the property, in order of preference: language-neutral property map, then the language's preferences, then the value kind (Z6091 item, Z6064 time, Z6010 quantity; empty = any). Empty when the property or value kind is not supported." } ] } } d5f5dox01yti5pq4a4jgzvxpgmwc8ld 334358 334357 2026-10-29T06:59:45Z Jsamwrites 938 Task 8: dispatch large predicate-candidate cases through lazy registered helpers 334358 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z46618" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z46616", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z813", "Z813K1": { "Z1K1": "Z18", "Z18K1": "Z46616K3" } }, "Z802K2": { "Z1K1": "Z7", "Z7K1": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" } }, "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" } }, "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z12767", "Z12767K1": { "Z1K1": "Z7", "Z7K1": "Z872", "Z872K1": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": "Z40", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z12846", "Z12846K1": { "Z1K1": "Z7", "Z7K1": "Z873", "Z873K1": "Z39346", "Z873K2": { "Z1K1": "Z18", "Z18K1": "Z8K1" } }, "Z12846K2": { "Z1K1": "Z7", "Z7K1": "Z873", "Z873K1": "Z39346", "Z873K2": { "Z1K1": "Z18", "Z18K1": "Z46616K3" } } } } ], "Z8K5": "Z8" }, "Z872K2": { "Z1K1": "Z18", "Z18K1": "Z8K1" } }, "Z12767K2": { "Z1K1": "Z7", "Z7K1": "Z872", "Z872K1": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": "Z40", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z10216", "Z10216K1": { "Z1K1": "Z7", "Z7K1": "Z12846", "Z12846K1": { "Z1K1": "Z7", "Z7K1": "Z873", "Z873K1": "Z39346", "Z873K2": { "Z1K1": "Z18", "Z18K1": "Z8K1" } }, "Z12846K2": { "Z1K1": "Z7", "Z7K1": "Z873", "Z873K1": "Z39346", "Z873K2": { "Z1K1": "Z18", "Z18K1": "Z46616K3" } } } } } ], "Z8K5": "Z8" }, "Z872K2": { "Z1K1": "Z18", "Z18K1": "Z8K1" } } } } ], "Z8K5": "Z8" }, "Z8K1": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z18", "Z18K1": "Z46616K4" }, "Z866K2": "" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P47" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48072", "Z48072K1": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P366" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48072", "Z48072K1": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P166" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48072", "Z48072K1": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P112" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48074", "Z48074K1": { "Z1K1": "Z18", "Z18K1": "Z46616K1" }, "Z48074K2": { "Z1K1": "Z18", "Z18K1": "Z46616K2" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P178" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48074", "Z48074K1": { "Z1K1": "Z18", "Z18K1": "Z46616K1" }, "Z48074K2": { "Z1K1": "Z18", "Z18K1": "Z46616K2" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P571" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48076", "Z48076K1": { "Z1K1": "Z18", "Z18K1": "Z46616K2" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P84" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48078", "Z48078K1": { "Z1K1": "Z18", "Z18K1": "Z46616K2" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P277" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48080", "Z48080K1": { "Z1K1": "Z18", "Z18K1": "Z46616K2" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z48086", "Z48086K1": { "Z1K1": "Z18", "Z18K1": "Z46616K1" }, "Z48086K2": { "Z1K1": "Z18", "Z18K1": "Z46616K2" } } } } } } } } } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z872", "Z872K1": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": "Z40", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z19316", "Z19316K1": { "Z1K1": "Z7", "Z7K1": "Z39346", "Z39346K1": { "Z1K1": "Z7", "Z7K1": "Z811", "Z811K1": { "Z1K1": "Z7", "Z7K1": "Z872", "Z872K1": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z39328", "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": "Z40", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z19316", "Z19316K1": { "Z1K1": "Z7", "Z7K1": "Z39342", "Z39342K1": { "Z1K1": "Z18", "Z18K1": "Z8K1" } }, "Z19316K2": { "Z1K1": "Z6091", "Z6091K1": "Q190087" } } } ], "Z8K5": "Z8" }, "Z872K2": { "Z1K1": "Z18", "Z18K1": "Z8K1" } } } }, "Z19316K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z18", "Z18K1": "Z46616K4" }, "Z866K2": { "Z1K1": "Z6", "Z6K1": "Z6091" } }, "Z802K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z18", "Z18K1": "Z46616K4" }, "Z866K2": { "Z1K1": "Z6", "Z6K1": "Z6064" } }, "Z802K2": { "Z1K1": "Z6091", "Z6091K1": "Q186408" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z18", "Z18K1": "Z46616K4" }, "Z866K2": { "Z1K1": "Z6", "Z6K1": "Z6010" } }, "Z802K2": { "Z1K1": "Z6091", "Z6091K1": "Q309314" }, "Z802K3": { "Z1K1": "Z6091", "Z6091K1": "Q190087" } } } } } } ], "Z8K5": "Z8" }, "Z872K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P47" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48072", "Z48072K1": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P366" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48072", "Z48072K1": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P166" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48072", "Z48072K1": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P112" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48074", "Z48074K1": { "Z1K1": "Z18", "Z18K1": "Z46616K1" }, "Z48074K2": { "Z1K1": "Z18", "Z18K1": "Z46616K2" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P178" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48074", "Z48074K1": { "Z1K1": "Z18", "Z18K1": "Z46616K1" }, "Z48074K2": { "Z1K1": "Z18", "Z18K1": "Z46616K2" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P571" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48076", "Z48076K1": { "Z1K1": "Z18", "Z18K1": "Z46616K2" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P84" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48078", "Z48078K1": { "Z1K1": "Z18", "Z18K1": "Z46616K2" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P277" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48080", "Z48080K1": { "Z1K1": "Z18", "Z18K1": "Z46616K2" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z48086", "Z48086K1": { "Z1K1": "Z18", "Z18K1": "Z46616K1" }, "Z48086K2": { "Z1K1": "Z18", "Z18K1": "Z46616K2" } } } } } } } } } } } } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z18", "Z18K1": "Z46616K4" }, "Z866K2": "" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P47" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48072", "Z48072K1": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P366" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48072", "Z48072K1": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P166" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48072", "Z48072K1": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P112" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48074", "Z48074K1": { "Z1K1": "Z18", "Z18K1": "Z46616K1" }, "Z48074K2": { "Z1K1": "Z18", "Z18K1": "Z46616K2" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P178" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48074", "Z48074K1": { "Z1K1": "Z18", "Z18K1": "Z46616K1" }, "Z48074K2": { "Z1K1": "Z18", "Z18K1": "Z46616K2" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P571" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48076", "Z48076K1": { "Z1K1": "Z18", "Z18K1": "Z46616K2" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P84" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48078", "Z48078K1": { "Z1K1": "Z18", "Z18K1": "Z46616K2" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P277" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48080", "Z48080K1": { "Z1K1": "Z18", "Z18K1": "Z46616K2" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z48086", "Z48086K1": { "Z1K1": "Z18", "Z18K1": "Z46616K1" }, "Z48086K2": { "Z1K1": "Z18", "Z18K1": "Z46616K2" } } } } } } } } } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z872", "Z872K1": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": "Z40", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z19316", "Z19316K1": { "Z1K1": "Z7", "Z7K1": "Z39346", "Z39346K1": { "Z1K1": "Z7", "Z7K1": "Z811", "Z811K1": { "Z1K1": "Z7", "Z7K1": "Z872", "Z872K1": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z39328", "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": "Z40", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z19316", "Z19316K1": { "Z1K1": "Z7", "Z7K1": "Z39342", "Z39342K1": { "Z1K1": "Z18", "Z18K1": "Z8K1" } }, "Z19316K2": { "Z1K1": "Z6091", "Z6091K1": "Q190087" } } } ], "Z8K5": "Z8" }, "Z872K2": { "Z1K1": "Z18", "Z18K1": "Z8K1" } } } }, "Z19316K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z18", "Z18K1": "Z46616K4" }, "Z866K2": { "Z1K1": "Z6", "Z6K1": "Z6091" } }, "Z802K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z18", "Z18K1": "Z46616K4" }, "Z866K2": { "Z1K1": "Z6", "Z6K1": "Z6064" } }, "Z802K2": { "Z1K1": "Z6091", "Z6091K1": "Q186408" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z18", "Z18K1": "Z46616K4" }, "Z866K2": { "Z1K1": "Z6", "Z6K1": "Z6010" } }, "Z802K2": { "Z1K1": "Z6091", "Z6091K1": "Q309314" }, "Z802K3": { "Z1K1": "Z6091", "Z6091K1": "Q190087" } } } } } } ], "Z8K5": "Z8" }, "Z872K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P47" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48072", "Z48072K1": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P366" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48072", "Z48072K1": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P166" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48072", "Z48072K1": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P112" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48074", "Z48074K1": { "Z1K1": "Z18", "Z18K1": "Z46616K1" }, "Z48074K2": { "Z1K1": "Z18", "Z18K1": "Z46616K2" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P178" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48074", "Z48074K1": { "Z1K1": "Z18", "Z18K1": "Z46616K1" }, "Z48074K2": { "Z1K1": "Z18", "Z18K1": "Z46616K2" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P571" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48076", "Z48076K1": { "Z1K1": "Z18", "Z18K1": "Z46616K2" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P84" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48078", "Z48078K1": { "Z1K1": "Z18", "Z18K1": "Z46616K2" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P277" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48080", "Z48080K1": { "Z1K1": "Z18", "Z18K1": "Z46616K2" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z48086", "Z48086K1": { "Z1K1": "Z18", "Z18K1": "Z46616K1" }, "Z48086K2": { "Z1K1": "Z18", "Z18K1": "Z46616K2" } } } } } } } } } } } } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Predicate construction candidates for property, composition" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Grammatical constructions that can express statements of the property, in order of preference: language-neutral property map, then the language's preferences, then the value kind (Z6091 item, Z6064 time, Z6010 quantity; empty = any). Empty when the property or value kind is not supported." } ] } } c9ssldop3v2c4e5no52qwbdvu29zznk 334359 334358 2026-10-29T07:00:32Z Jsamwrites 938 Task 8: dispatch large predicate-candidate cases through lazy registered helpers 334359 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z46618" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z46616", "Z14K2": { "Z1K1": "Z7", "Z7K1": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" } }, "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, "Z17K2": "Z8K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } }, { "Z1K1": "Z17", "Z17K1": "Z6", "Z17K2": "Z8K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" } }, "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z813", "Z813K1": { "Z1K1": "Z18", "Z18K1": "Z8K2" } }, "Z802K2": { "Z1K1": "Z7", "Z7K1": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" } }, "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" } }, "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z12767", "Z12767K1": { "Z1K1": "Z7", "Z7K1": "Z872", "Z872K1": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": "Z40", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z12846", "Z12846K1": { "Z1K1": "Z7", "Z7K1": "Z873", "Z873K1": "Z39346", "Z873K2": { "Z1K1": "Z18", "Z18K1": "Z8K1" } }, "Z12846K2": { "Z1K1": "Z7", "Z7K1": "Z873", "Z873K1": "Z39346", "Z873K2": { "Z1K1": "Z18", "Z18K1": "Z8K2" } } } } ], "Z8K5": "Z8" }, "Z872K2": { "Z1K1": "Z18", "Z18K1": "Z8K1" } }, "Z12767K2": { "Z1K1": "Z7", "Z7K1": "Z872", "Z872K1": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": "Z40", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z10216", "Z10216K1": { "Z1K1": "Z7", "Z7K1": "Z12846", "Z12846K1": { "Z1K1": "Z7", "Z7K1": "Z873", "Z873K1": "Z39346", "Z873K2": { "Z1K1": "Z18", "Z18K1": "Z8K1" } }, "Z12846K2": { "Z1K1": "Z7", "Z7K1": "Z873", "Z873K1": "Z39346", "Z873K2": { "Z1K1": "Z18", "Z18K1": "Z8K2" } } } } } ], "Z8K5": "Z8" }, "Z872K2": { "Z1K1": "Z18", "Z18K1": "Z8K1" } } } } ], "Z8K5": "Z8" }, "Z8K1": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z18", "Z18K1": "Z8K3" }, "Z866K2": "" }, "Z802K2": { "Z1K1": "Z18", "Z18K1": "Z8K1" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z872", "Z872K1": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": "Z40", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z19316", "Z19316K1": { "Z1K1": "Z7", "Z7K1": "Z39346", "Z39346K1": { "Z1K1": "Z7", "Z7K1": "Z811", "Z811K1": { "Z1K1": "Z7", "Z7K1": "Z872", "Z872K1": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z39328", "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": "Z40", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z19316", "Z19316K1": { "Z1K1": "Z7", "Z7K1": "Z39342", "Z39342K1": { "Z1K1": "Z18", "Z18K1": "Z8K1" } }, "Z19316K2": { "Z1K1": "Z6091", "Z6091K1": "Q190087" } } } ], "Z8K5": "Z8" }, "Z872K2": { "Z1K1": "Z18", "Z18K1": "Z8K1" } } } }, "Z19316K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z18", "Z18K1": "Z8K3" }, "Z866K2": { "Z1K1": "Z6", "Z6K1": "Z6091" } }, "Z802K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z18", "Z18K1": "Z8K3" }, "Z866K2": { "Z1K1": "Z6", "Z6K1": "Z6064" } }, "Z802K2": { "Z1K1": "Z6091", "Z6091K1": "Q186408" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z18", "Z18K1": "Z8K3" }, "Z866K2": { "Z1K1": "Z6", "Z6K1": "Z6010" } }, "Z802K2": { "Z1K1": "Z6091", "Z6091K1": "Q309314" }, "Z802K3": { "Z1K1": "Z6091", "Z6091K1": "Q190087" } } } } } } ], "Z8K5": "Z8" }, "Z872K2": { "Z1K1": "Z18", "Z18K1": "Z8K1" } } } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z18", "Z18K1": "Z8K3" }, "Z866K2": "" }, "Z802K2": { "Z1K1": "Z18", "Z18K1": "Z8K1" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z872", "Z872K1": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": "Z40", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z19316", "Z19316K1": { "Z1K1": "Z7", "Z7K1": "Z39346", "Z39346K1": { "Z1K1": "Z7", "Z7K1": "Z811", "Z811K1": { "Z1K1": "Z7", "Z7K1": "Z872", "Z872K1": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z39328", "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": "Z40", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z19316", "Z19316K1": { "Z1K1": "Z7", "Z7K1": "Z39342", "Z39342K1": { "Z1K1": "Z18", "Z18K1": "Z8K1" } }, "Z19316K2": { "Z1K1": "Z6091", "Z6091K1": "Q190087" } } } ], "Z8K5": "Z8" }, "Z872K2": { "Z1K1": "Z18", "Z18K1": "Z8K1" } } } }, "Z19316K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z18", "Z18K1": "Z8K3" }, "Z866K2": { "Z1K1": "Z6", "Z6K1": "Z6091" } }, "Z802K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z18", "Z18K1": "Z8K3" }, "Z866K2": { "Z1K1": "Z6", "Z6K1": "Z6064" } }, "Z802K2": { "Z1K1": "Z6091", "Z6091K1": "Q186408" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z18", "Z18K1": "Z8K3" }, "Z866K2": { "Z1K1": "Z6", "Z6K1": "Z6010" } }, "Z802K2": { "Z1K1": "Z6091", "Z6091K1": "Q309314" }, "Z802K3": { "Z1K1": "Z6091", "Z6091K1": "Q190087" } } } } } } ], "Z8K5": "Z8" }, "Z872K2": { "Z1K1": "Z18", "Z18K1": "Z8K1" } } } } } ], "Z8K5": "Z8" }, "Z8K1": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P47" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48072", "Z48072K1": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P366" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48072", "Z48072K1": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P166" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48072", "Z48072K1": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P112" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48074", "Z48074K1": { "Z1K1": "Z18", "Z18K1": "Z46616K1" }, "Z48074K2": { "Z1K1": "Z18", "Z18K1": "Z46616K2" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P178" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48074", "Z48074K1": { "Z1K1": "Z18", "Z18K1": "Z46616K1" }, "Z48074K2": { "Z1K1": "Z18", "Z18K1": "Z46616K2" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P571" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48076", "Z48076K1": { "Z1K1": "Z18", "Z18K1": "Z46616K2" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P84" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48078", "Z48078K1": { "Z1K1": "Z18", "Z18K1": "Z46616K2" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P277" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48080", "Z48080K1": { "Z1K1": "Z18", "Z18K1": "Z46616K2" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z48086", "Z48086K1": { "Z1K1": "Z18", "Z18K1": "Z46616K1" }, "Z48086K2": { "Z1K1": "Z18", "Z18K1": "Z46616K2" } } } } } } } } } }, "Z8K2": { "Z1K1": "Z18", "Z18K1": "Z46616K3" }, "Z8K3": { "Z1K1": "Z18", "Z18K1": "Z46616K4" } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Predicate construction candidates for property, composition" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Grammatical constructions that can express statements of the property, in order of preference: language-neutral property map, then the language's preferences, then the value kind (Z6091 item, Z6064 time, Z6010 quantity; empty = any). Empty when the property or value kind is not supported." } ] } } hr83ktlheqx478h7hdum6gxzkj92e2n 334367 334359 2026-10-29T07:08:03Z Jsamwrites 938 Task 8: dispatch large predicate-candidate cases through lazy registered helpers 334367 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z46618" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z46616", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z813", "Z813K1": { "Z1K1": "Z18", "Z18K1": "Z46616K3" } }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48094", "Z48094K1": { "Z1K1": "Z7", "Z7K1": "Z48092", "Z48092K1": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P47" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48072", "Z48072K1": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P366" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48072", "Z48072K1": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P166" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48072", "Z48072K1": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P112" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48074", "Z48074K1": { "Z1K1": "Z18", "Z18K1": "Z46616K1" }, "Z48074K2": { "Z1K1": "Z18", "Z18K1": "Z46616K2" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P178" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48074", "Z48074K1": { "Z1K1": "Z18", "Z18K1": "Z46616K1" }, "Z48074K2": { "Z1K1": "Z18", "Z18K1": "Z46616K2" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P571" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48076", "Z48076K1": { "Z1K1": "Z18", "Z18K1": "Z46616K2" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P84" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48078", "Z48078K1": { "Z1K1": "Z18", "Z18K1": "Z46616K2" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P277" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48080", "Z48080K1": { "Z1K1": "Z18", "Z18K1": "Z46616K2" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z48086", "Z48086K1": { "Z1K1": "Z18", "Z18K1": "Z46616K1" }, "Z48086K2": { "Z1K1": "Z18", "Z18K1": "Z46616K2" } } } } } } } } } }, "Z48092K2": { "Z1K1": "Z18", "Z18K1": "Z46616K3" }, "Z48092K3": { "Z1K1": "Z18", "Z18K1": "Z46616K4" } }, "Z48094K2": { "Z1K1": "Z18", "Z18K1": "Z46616K3" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z48092", "Z48092K1": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P47" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48072", "Z48072K1": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P366" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48072", "Z48072K1": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P166" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48072", "Z48072K1": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P112" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48074", "Z48074K1": { "Z1K1": "Z18", "Z18K1": "Z46616K1" }, "Z48074K2": { "Z1K1": "Z18", "Z18K1": "Z46616K2" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P178" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48074", "Z48074K1": { "Z1K1": "Z18", "Z18K1": "Z46616K1" }, "Z48074K2": { "Z1K1": "Z18", "Z18K1": "Z46616K2" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P571" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48076", "Z48076K1": { "Z1K1": "Z18", "Z18K1": "Z46616K2" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P84" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48078", "Z48078K1": { "Z1K1": "Z18", "Z18K1": "Z46616K2" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P277" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48080", "Z48080K1": { "Z1K1": "Z18", "Z18K1": "Z46616K2" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z48086", "Z48086K1": { "Z1K1": "Z18", "Z18K1": "Z46616K1" }, "Z48086K2": { "Z1K1": "Z18", "Z18K1": "Z46616K2" } } } } } } } } } }, "Z48092K2": { "Z1K1": "Z18", "Z18K1": "Z46616K3" }, "Z48092K3": { "Z1K1": "Z18", "Z18K1": "Z46616K4" } } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Predicate construction candidates for property, composition" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Grammatical constructions that can express statements of the property, in order of preference: language-neutral property map, then the language's preferences, then the value kind (Z6091 item, Z6064 time, Z6010 quantity; empty = any). Empty when the property or value kind is not supported." } ] } } atwpyj6jqmdeu7t2mrw3g4yqy259l1f 334374 334367 2026-10-29T07:22:29Z Jsamwrites 938 Task 8: dispatch large predicate-candidate cases through lazy registered helpers 334374 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z46618" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z46616", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z48096", "Z48096K1": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P47" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48072", "Z48072K1": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P366" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48072", "Z48072K1": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P166" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48072", "Z48072K1": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P112" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48074", "Z48074K1": { "Z1K1": "Z18", "Z18K1": "Z46616K1" }, "Z48074K2": { "Z1K1": "Z18", "Z18K1": "Z46616K2" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P178" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48074", "Z48074K1": { "Z1K1": "Z18", "Z18K1": "Z46616K1" }, "Z48074K2": { "Z1K1": "Z18", "Z18K1": "Z46616K2" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P571" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48076", "Z48076K1": { "Z1K1": "Z18", "Z18K1": "Z46616K2" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P84" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48078", "Z48078K1": { "Z1K1": "Z18", "Z18K1": "Z46616K2" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z46616K1" } }, "Z866K2": "P277" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48080", "Z48080K1": { "Z1K1": "Z18", "Z18K1": "Z46616K2" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z48086", "Z48086K1": { "Z1K1": "Z18", "Z18K1": "Z46616K1" }, "Z48086K2": { "Z1K1": "Z18", "Z18K1": "Z46616K2" } } } } } } } } } }, "Z48096K2": { "Z1K1": "Z18", "Z18K1": "Z46616K3" }, "Z48096K3": { "Z1K1": "Z18", "Z18K1": "Z46616K4" } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Predicate construction candidates for property, composition" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Grammatical constructions that can express statements of the property, in order of preference: language-neutral property map, then the language's preferences, then the value kind (Z6091 item, Z6064 time, Z6010 quantity; empty = any). Empty when the property or value kind is not supported." } ] } } j8f5zpzy2zdho3rn7vetaczz7gakcw3 Z46640 0 100178 334182 333726 2026-10-28T21:25:23Z Jsamwrites 938 Language options as saved functions: Z48058, Z48060, Z48062, Z48064 334182 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z46640" }, "Z2K2": { "Z1K1": "Z14294", "Z14294K1": [ "Z14293", { "Z1K1": "Z14293", "Z14293K1": "Z48058", "Z14293K2": "Z33034" }, { "Z1K1": "Z14293", "Z14293K1": "Z48060", "Z14293K2": [ "Z60", "Z1004" ] }, { "Z1K1": "Z14293", "Z14293K1": "Z48062", "Z14293K2": [ "Z60", "Z1003" ] } ], "Z14294K2": "Z48064" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Referring noun phrase article language options" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Article of a referring noun phrase: French and Spanish common nouns take the definite article; French countries and organizations, Spanish and English organizations, and universities and academic institutions in all three take it too. Other languages and cases: no article." } ] } } bfe09eerawvt6al8eb505xsvtc7jc3z Z46641 0 100179 334168 333274 2026-10-28T21:15:25Z Jsamwrites 938 Removed Z46642 from the approved list of implementations 334168 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z46641" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6091", "Z17K2": "Z46641K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "item" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z60", "Z17K2": "Z46641K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "language" } ] } } ], "Z8K2": "Z39358", "Z8K3": [ "Z20", "Z46643", "Z46644", "Z46645", "Z46646", "Z46647", "Z46648", "Z46649", "Z46650", "Z46651", "Z46652", "Z46808" ], "Z8K4": [ "Z14" ], "Z8K5": "Z46641" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Referring noun phrase for item" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Noun phrase referring to the item: a common noun lexeme linked through P5137, else a proper noun lexeme, else the label in the language or 'mul' (gender from P21); with the article the language uses for such a reference." } ] } } 32coimftip77ua5z0qdiqahu2p7uhri 334181 334168 2026-10-28T21:21:45Z Jsamwrites 938 Added Z46642 to the approved list of implementations 334181 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z46641" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6091", "Z17K2": "Z46641K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "item" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z60", "Z17K2": "Z46641K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "language" } ] } } ], "Z8K2": "Z39358", "Z8K3": [ "Z20", "Z46643", "Z46644", "Z46645", "Z46646", "Z46647", "Z46648", "Z46649", "Z46650", "Z46651", "Z46652", "Z46808" ], "Z8K4": [ "Z14", "Z46642" ], "Z8K5": "Z46641" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Referring noun phrase for item" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Noun phrase referring to the item: a common noun lexeme linked through P5137, else a proper noun lexeme, else the label in the language or 'mul' (gender from P21); with the article the language uses for such a reference." } ] } } itee233h72qupyf3g9oe7fhppy96fbg Z46673 0 100211 334163 333626 2026-10-28T21:03:52Z Jsamwrites 938 Removed Z46674 from the approved list of implementations 334163 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z46673" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z882", "Z882K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6091" }, "Z882K2": { "Z1K1": "Z7", "Z7K1": "Z882", "Z882K1": "Z6092", "Z882K2": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z1" } } }, "Z17K2": "Z46673K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "proposition" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6007" }, "Z17K2": "Z46673K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "qualifiers" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, "Z17K2": "Z46673K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "context" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z60", "Z17K2": "Z46673K4", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "language" } ] } } ], "Z8K2": { "Z1K1": "Z7", "Z7K1": "Z882", "Z882K1": "Z39358", "Z882K2": { "Z1K1": "Z7", "Z7K1": "Z882", "Z882K1": "Z39358", "Z882K2": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6007" } } }, "Z8K3": [ "Z20", "Z46675", "Z46676", "Z46677", "Z46678", "Z46680", "Z46682", "Z46683", "Z46684", "Z46679", "Z46681" ], "Z8K4": [ "Z14" ], "Z8K5": "Z46673" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Semantic predicate from Wikidata proposition" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Predicate phrase for a Wikidata proposition (one subject, one object) in the language, with the grammatical subject phrase chosen by the construction and the qualifiers unchanged: selection of one construction, then one realization." } ] } } snii2iyn5kw63q3ljq5ydf1fcexwhe2 334164 334163 2026-10-28T21:07:20Z Jsamwrites 938 Added Z46674 to the approved list of implementations 334164 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z46673" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z882", "Z882K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6091" }, "Z882K2": { "Z1K1": "Z7", "Z7K1": "Z882", "Z882K1": "Z6092", "Z882K2": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z1" } } }, "Z17K2": "Z46673K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "proposition" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6007" }, "Z17K2": "Z46673K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "qualifiers" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, "Z17K2": "Z46673K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "context" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z60", "Z17K2": "Z46673K4", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "language" } ] } } ], "Z8K2": { "Z1K1": "Z7", "Z7K1": "Z882", "Z882K1": "Z39358", "Z882K2": { "Z1K1": "Z7", "Z7K1": "Z882", "Z882K1": "Z39358", "Z882K2": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6007" } } }, "Z8K3": [ "Z20", "Z46675", "Z46676", "Z46677", "Z46678", "Z46680", "Z46682", "Z46683", "Z46684", "Z46679", "Z46681" ], "Z8K4": [ "Z14", "Z46674" ], "Z8K5": "Z46673" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Semantic predicate from Wikidata proposition" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Predicate phrase for a Wikidata proposition (one subject, one object) in the language, with the grammatical subject phrase chosen by the construction and the qualifiers unchanged: selection of one construction, then one realization." } ] } } pr3f9421azhwkmfr0802xeif5hm55cq Z46850 0 100435 334203 333785 2026-10-28T22:45:06Z Jsamwrites 938 Removed Z46851 from the approved list of implementations 334203 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z46850" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": { "Z1K1": "Z7", "Z7K1": "Z882", "Z882K1": "Z6091", "Z882K2": "Z1" } }, "Z17K2": "Z46850K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "roles" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z60", "Z17K2": "Z46850K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "language" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6091", "Z17K2": "Z46850K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "clause type" } ] } } ], "Z8K2": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": { "Z1K1": "Z7", "Z7K1": "Z882", "Z882K1": "Z6091", "Z882K2": "Z1" } }, "Z8K3": [ "Z20", "Z46852", "Z46853", "Z46854", "Z46855", "Z46856", "Z46857", "Z46858", "Z47879" ], "Z8K4": [ "Z14" ], "Z8K5": "Z46850" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Language-specific sentence ordering" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Roles of a sentence in the surface order of the language (order options); only declarative clauses so far." } ] } } 3ob1otmawmosirjfcwypsnr22ylu26k 334207 334203 2026-10-28T22:53:31Z Jsamwrites 938 Added Z46851 to the approved list of implementations 334207 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z46850" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": { "Z1K1": "Z7", "Z7K1": "Z882", "Z882K1": "Z6091", "Z882K2": "Z1" } }, "Z17K2": "Z46850K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "roles" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z60", "Z17K2": "Z46850K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "language" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6091", "Z17K2": "Z46850K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "clause type" } ] } } ], "Z8K2": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": { "Z1K1": "Z7", "Z7K1": "Z882", "Z882K1": "Z6091", "Z882K2": "Z1" } }, "Z8K3": [ "Z20", "Z46852", "Z46853", "Z46854", "Z46855", "Z46856", "Z46857", "Z46858", "Z47879" ], "Z8K4": [ "Z14", "Z46851" ], "Z8K5": "Z46850" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Language-specific sentence ordering" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Roles of a sentence in the surface order of the language (order options); only declarative clauses so far." } ] } } 6yrnbj3nxyl3v1y5kflspqlsno4tc5i Z46851 0 100436 334204 331017 2026-10-28T22:52:24Z Jsamwrites 938 Order sentence roles without code-backed list concatenation 334204 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z46851" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z46850", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z19316", "Z19316K1": { "Z1K1": "Z18", "Z18K1": "Z46850K3" }, "Z19316K2": { "Z1K1": "Z6091", "Z6091K1": "Q474328" } }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z873", "Z873K1": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z1" }, "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": "Z1", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z811", "Z811K1": { "Z1K1": "Z18", "Z18K1": "Z8K1" } } } ], "Z8K5": "Z8" }, "Z873K2": { "Z1K1": "Z7", "Z7K1": "Z28316", "Z28316K1": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z1" }, "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } }, { "Z1K1": "Z17", "Z17K1": "Z1", "Z17K2": "Z8K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": "Z40", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z813", "Z813K1": { "Z1K1": "Z18", "Z18K1": "Z8K1" } }, "Z802K2": "Z42", "Z802K3": "Z41" } } ], "Z8K5": "Z8" }, "Z28316K2": { "Z1K1": "Z7", "Z7K1": "Z873", "Z873K1": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6091", "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z1" }, "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z28316", "Z28316K1": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z882", "Z882K1": "Z6091", "Z882K2": "Z1" }, "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } }, { "Z1K1": "Z17", "Z17K1": "Z6091", "Z17K2": "Z8K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": "Z40", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z19316", "Z19316K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z8K1" } }, "Z19316K2": { "Z1K1": "Z18", "Z18K1": "Z8K2" } } } ], "Z8K5": "Z8" }, "Z28316K2": { "Z1K1": "Z18", "Z18K1": "Z46850K1" }, "Z28316K3": { "Z1K1": "Z18", "Z18K1": "Z8K1" } } } ], "Z8K5": "Z8" }, "Z873K2": { "Z1K1": "Z7", "Z7K1": { "Z1K1": "Z7", "Z7K1": "Z14310", "Z14310K1": "Z46848", "Z14310K2": { "Z1K1": "Z18", "Z18K1": "Z46850K2" } }, "K1": { "Z1K1": "Z18", "Z18K1": "Z46850K3" } } }, "Z28316K3": "Z41" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z851", "Z851K1": "Z501", "Z851K2": [ "Z1", "Only declarative sentences (Q474328) are supported so far", "Language-specific sentence ordering" ] } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Language-specific sentence ordering, composition" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Roles of a sentence in the surface order of the language (order options); only declarative clauses so far." } ] } } asflpexu7ehaust0sqd0dkyjkz75uso Z46870 0 100497 334069 331199 2026-10-28T13:11:36Z 鈴音雨 101019 Connect testers Z48027 and Z48028 334069 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z46870" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6091", "Z17K2": "Z46870K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "relation" }, { "Z1K1": "Z11", "Z11K1": "Z1830", "Z11K2": "関係" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6091" }, "Z17K2": "Z46870K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "semantic roles" }, { "Z1K1": "Z11", "Z11K1": "Z1830", "Z11K2": "意味役割" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z60", "Z17K2": "Z46870K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "language" }, { "Z1K1": "Z11", "Z11K1": "Z1830", "Z11K2": "言語" } ] } } ], "Z8K2": "Z6005", "Z8K3": [ "Z20", "Z46873", "Z46874", "Z46875", "Z48027", "Z48028" ], "Z8K4": [ "Z14", "Z46880" ], "Z8K5": "Z46870" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "verb lexeme for a relation" }, { "Z1K1": "Z11", "Z11K1": "Z1830", "Z11K2": "関係を表す動詞の語彙素" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Picks the verb lexeme for a relation with the given roles in a language, or the verb of a broader concept when there is no exact one. Example: falling from the sky is 降る in Japanese, fall in English." }, { "Z1K1": "Z11", "Z11K1": "Z1830", "Z11K2": "関係とその意味役割から、その言語でその関係を表す動詞の語彙素を選びます。ちょうど合う動詞がなければ、上位の概念を表す動詞を使います。例: 「空から降ること」は日本語では 降る、英語では fall です。" } ] } } 6h1qn8wgx8ai8l0ctex9wavn7xe3lvc Z46877 0 100504 334070 331267 2026-10-28T13:13:49Z 鈴音雨 101019 The cause role is now 原因 Q2574811 (was 作用 Q111931734) in the particle and preposition tables 334070 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z46877" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z44346", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z44346", "Z44346K1": { "Z1K1": "Z6091", "Z6091K1": "Q121673739" }, "Z44346K2": { "Z1K1": "Z6091", "Z6091K1": "Q141639481" }, "Z44346K3": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q141639481" }, { "Z1K1": "Z6091", "Z6091K1": "Q2574811" }, { "Z1K1": "Z6091", "Z6091K1": "Q140431839" }, { "Z1K1": "Z6091", "Z6091K1": "Q140431840" } ], "Z44346K4": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q1311" }, { "Z1K1": "Z6091", "Z6091K1": "Q42967" }, { "Z1K1": "Z6091", "Z6091K1": "Q586218" }, { "Z1K1": "Z6091", "Z6091K1": "Q7561" } ], "Z44346K5": { "Z1K1": "Z6091", "Z6091K1": "Q192613" }, "Z44346K6": { "Z1K1": "Z40", "Z40K1": "Z42" }, "Z44346K7": { "Z1K1": "Z40", "Z40K1": "Z41" }, "Z44346K8": { "Z1K1": "Z40", "Z40K1": "Z41" }, "Z44346K9": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q25556293" } ], "Z44346K10": [ "Z6091" ], "Z44346K11": "Z1002" }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z14392", "Z14392K2": { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Snow falls a lot due to the monsoon on the Sea of Japan side in winter." } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "[en] snow falling in winter" }, { "Z1K1": "Z11", "Z11K1": "Z1830", "Z11K2": "[en] 冬の降雪: snow falls" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 2mrajm4r34mlap4e51x0noh7w3cg7cq Z46878 0 100505 334071 331195 2026-10-28T13:14:01Z 鈴音雨 101019 The cause role is now 原因 Q2574811 (was 作用 Q111931734) in the particle and preposition tables 334071 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z46878" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z44337", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z44337", "Z44337K1": { "Z1K1": "Z6091", "Z6091K1": "Q121673739" }, "Z44337K2": { "Z1K1": "Z6091", "Z6091K1": "Q141639481" }, "Z44337K3": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q141639481" }, { "Z1K1": "Z6091", "Z6091K1": "Q2574811" }, { "Z1K1": "Z6091", "Z6091K1": "Q140431839" }, { "Z1K1": "Z6091", "Z6091K1": "Q140431840" } ], "Z44337K4": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q1311" }, { "Z1K1": "Z6091", "Z6091K1": "Q42967" }, { "Z1K1": "Z6091", "Z6091K1": "Q586218" }, { "Z1K1": "Z6091", "Z6091K1": "Q7561" } ], "Z44337K5": { "Z1K1": "Z6091", "Z6091K1": "Q192613" }, "Z44337K6": { "Z1K1": "Z40", "Z40K1": "Z42" }, "Z44337K7": { "Z1K1": "Z40", "Z40K1": "Z41" }, "Z44337K8": { "Z1K1": "Z40", "Z40K1": "Z41" }, "Z44337K9": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q25556293" } ], "Z44337K10": [ "Z6091" ], "Z44337K11": "Z1830" }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z14392", "Z14392K2": { "Z1K1": "Z11", "Z11K1": "Z1830", "Z11K2": "冬には季節風の影響で日本海側に雪が多く降る。" } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "[ja] snow falling in winter" }, { "Z1K1": "Z11", "Z11K1": "Z1830", "Z11K2": "[ja] 冬の降雪: 雪が多く降る" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 21ixhdacn73ci6cy512z0gyt5imo4c6 Z46880 0 100507 334068 331197 2026-10-28T13:11:24Z 鈴音雨 101019 When the language has no verb at all for the relation, go to the broader concept first (the best-lexeme call fails without lexemes) 334068 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z46880" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z46870", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z813", "Z813K1": { "Z1K1": "Z7", "Z7K1": "Z32599", "Z32599K1": { "Z1K1": "Z18", "Z18K1": "Z46870K1" }, "Z32599K2": { "Z1K1": "Z6092", "Z6092K1": "P9970" }, "Z32599K3": { "Z1K1": "Z18", "Z18K1": "Z46870K3" } } }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z813", "Z813K1": { "Z1K1": "Z7", "Z7K1": "Z42503", "Z42503K1": { "Z1K1": "Z18", "Z18K1": "Z46870K1" }, "Z42503K2": { "Z1K1": "Z6092", "Z6092K1": "P279" }, "Z42503K3": { "Z1K1": "Z40", "Z40K1": "Z41" } } }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z27327", "Z27327K1": { "Z1K1": "Z18", "Z18K1": "Z46870K1" }, "Z27327K2": { "Z1K1": "Z6092", "Z6092K1": "P9970" }, "Z27327K3": { "Z1K1": "Z18", "Z18K1": "Z46870K3" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z813", "Z813K1": { "Z1K1": "Z7", "Z7K1": "Z46869", "Z46869K1": { "Z1K1": "Z7", "Z7K1": "Z873", "Z873K1": "Z6825", "Z873K2": { "Z1K1": "Z7", "Z7K1": "Z32599", "Z32599K1": { "Z1K1": "Z7", "Z7K1": "Z811", "Z811K1": { "Z1K1": "Z7", "Z7K1": "Z42503", "Z42503K1": { "Z1K1": "Z18", "Z18K1": "Z46870K1" }, "Z42503K2": { "Z1K1": "Z6092", "Z6092K1": "P279" }, "Z42503K3": { "Z1K1": "Z40", "Z40K1": "Z41" } } }, "Z32599K2": { "Z1K1": "Z6092", "Z6092K1": "P9970" }, "Z32599K3": { "Z1K1": "Z18", "Z18K1": "Z46870K3" } } }, "Z46869K2": { "Z1K1": "Z7", "Z7K1": "Z42503", "Z42503K1": { "Z1K1": "Z18", "Z18K1": "Z46870K1" }, "Z42503K2": { "Z1K1": "Z6092", "Z6092K1": "P279" }, "Z42503K3": { "Z1K1": "Z40", "Z40K1": "Z41" } }, "Z46869K3": { "Z1K1": "Z18", "Z18K1": "Z46870K2" } } }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z27327", "Z27327K1": { "Z1K1": "Z18", "Z18K1": "Z46870K1" }, "Z27327K2": { "Z1K1": "Z6092", "Z6092K1": "P9970" }, "Z27327K3": { "Z1K1": "Z18", "Z18K1": "Z46870K3" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z811", "Z811K1": { "Z1K1": "Z7", "Z7K1": "Z46869", "Z46869K1": { "Z1K1": "Z7", "Z7K1": "Z873", "Z873K1": "Z6825", "Z873K2": { "Z1K1": "Z7", "Z7K1": "Z32599", "Z32599K1": { "Z1K1": "Z7", "Z7K1": "Z811", "Z811K1": { "Z1K1": "Z7", "Z7K1": "Z42503", "Z42503K1": { "Z1K1": "Z18", "Z18K1": "Z46870K1" }, "Z42503K2": { "Z1K1": "Z6092", "Z6092K1": "P279" }, "Z42503K3": { "Z1K1": "Z40", "Z40K1": "Z41" } } }, "Z32599K2": { "Z1K1": "Z6092", "Z6092K1": "P9970" }, "Z32599K3": { "Z1K1": "Z18", "Z18K1": "Z46870K3" } } }, "Z46869K2": { "Z1K1": "Z7", "Z7K1": "Z42503", "Z42503K1": { "Z1K1": "Z18", "Z18K1": "Z46870K1" }, "Z42503K2": { "Z1K1": "Z6092", "Z6092K1": "P279" }, "Z42503K3": { "Z1K1": "Z40", "Z40K1": "Z41" } }, "Z46869K3": { "Z1K1": "Z18", "Z18K1": "Z46870K2" } } } } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z813", "Z813K1": { "Z1K1": "Z7", "Z7K1": "Z46869", "Z46869K1": { "Z1K1": "Z7", "Z7K1": "Z810", "Z810K1": { "Z1K1": "Z7", "Z7K1": "Z27327", "Z27327K1": { "Z1K1": "Z18", "Z18K1": "Z46870K1" }, "Z27327K2": { "Z1K1": "Z6092", "Z6092K1": "P9970" }, "Z27327K3": { "Z1K1": "Z18", "Z18K1": "Z46870K3" } }, "Z810K2": [ "Z6005" ] }, "Z46869K2": { "Z1K1": "Z7", "Z7K1": "Z810", "Z810K1": { "Z1K1": "Z18", "Z18K1": "Z46870K1" }, "Z810K2": [ "Z6091" ] }, "Z46869K3": { "Z1K1": "Z18", "Z18K1": "Z46870K2" } } }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z813", "Z813K1": { "Z1K1": "Z7", "Z7K1": "Z46869", "Z46869K1": { "Z1K1": "Z7", "Z7K1": "Z873", "Z873K1": "Z6825", "Z873K2": { "Z1K1": "Z7", "Z7K1": "Z32599", "Z32599K1": { "Z1K1": "Z18", "Z18K1": "Z46870K1" }, "Z32599K2": { "Z1K1": "Z6092", "Z6092K1": "P9970" }, "Z32599K3": { "Z1K1": "Z18", "Z18K1": "Z46870K3" } } }, "Z46869K2": { "Z1K1": "Z7", "Z7K1": "Z810", "Z810K1": { "Z1K1": "Z18", "Z18K1": "Z46870K1" }, "Z810K2": [ "Z6091" ] }, "Z46869K3": { "Z1K1": "Z18", "Z18K1": "Z46870K2" } } }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z813", "Z813K1": { "Z1K1": "Z7", "Z7K1": "Z42503", "Z42503K1": { "Z1K1": "Z18", "Z18K1": "Z46870K1" }, "Z42503K2": { "Z1K1": "Z6092", "Z6092K1": "P279" }, "Z42503K3": { "Z1K1": "Z40", "Z40K1": "Z41" } } }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z27327", "Z27327K1": { "Z1K1": "Z18", "Z18K1": "Z46870K1" }, "Z27327K2": { "Z1K1": "Z6092", "Z6092K1": "P9970" }, "Z27327K3": { "Z1K1": "Z18", "Z18K1": "Z46870K3" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z813", "Z813K1": { "Z1K1": "Z7", "Z7K1": "Z46869", "Z46869K1": { "Z1K1": "Z7", "Z7K1": "Z873", "Z873K1": "Z6825", "Z873K2": { "Z1K1": "Z7", "Z7K1": "Z32599", "Z32599K1": { "Z1K1": "Z7", "Z7K1": "Z811", "Z811K1": { "Z1K1": "Z7", "Z7K1": "Z42503", "Z42503K1": { "Z1K1": "Z18", "Z18K1": "Z46870K1" }, "Z42503K2": { "Z1K1": "Z6092", "Z6092K1": "P279" }, "Z42503K3": { "Z1K1": "Z40", "Z40K1": "Z41" } } }, "Z32599K2": { "Z1K1": "Z6092", "Z6092K1": "P9970" }, "Z32599K3": { "Z1K1": "Z18", "Z18K1": "Z46870K3" } } }, "Z46869K2": { "Z1K1": "Z7", "Z7K1": "Z42503", "Z42503K1": { "Z1K1": "Z18", "Z18K1": "Z46870K1" }, "Z42503K2": { "Z1K1": "Z6092", "Z6092K1": "P279" }, "Z42503K3": { "Z1K1": "Z40", "Z40K1": "Z41" } }, "Z46869K3": { "Z1K1": "Z18", "Z18K1": "Z46870K2" } } }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z27327", "Z27327K1": { "Z1K1": "Z18", "Z18K1": "Z46870K1" }, "Z27327K2": { "Z1K1": "Z6092", "Z6092K1": "P9970" }, "Z27327K3": { "Z1K1": "Z18", "Z18K1": "Z46870K3" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z811", "Z811K1": { "Z1K1": "Z7", "Z7K1": "Z46869", "Z46869K1": { "Z1K1": "Z7", "Z7K1": "Z873", "Z873K1": "Z6825", "Z873K2": { "Z1K1": "Z7", "Z7K1": "Z32599", "Z32599K1": { "Z1K1": "Z7", "Z7K1": "Z811", "Z811K1": { "Z1K1": "Z7", "Z7K1": "Z42503", "Z42503K1": { "Z1K1": "Z18", "Z18K1": "Z46870K1" }, "Z42503K2": { "Z1K1": "Z6092", "Z6092K1": "P279" }, "Z42503K3": { "Z1K1": "Z40", "Z40K1": "Z41" } } }, "Z32599K2": { "Z1K1": "Z6092", "Z6092K1": "P9970" }, "Z32599K3": { "Z1K1": "Z18", "Z18K1": "Z46870K3" } } }, "Z46869K2": { "Z1K1": "Z7", "Z7K1": "Z42503", "Z42503K1": { "Z1K1": "Z18", "Z18K1": "Z46870K1" }, "Z42503K2": { "Z1K1": "Z6092", "Z6092K1": "P279" }, "Z42503K3": { "Z1K1": "Z40", "Z40K1": "Z41" } }, "Z46869K3": { "Z1K1": "Z18", "Z18K1": "Z46870K2" } } } } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z811", "Z811K1": { "Z1K1": "Z7", "Z7K1": "Z46869", "Z46869K1": { "Z1K1": "Z7", "Z7K1": "Z873", "Z873K1": "Z6825", "Z873K2": { "Z1K1": "Z7", "Z7K1": "Z32599", "Z32599K1": { "Z1K1": "Z18", "Z18K1": "Z46870K1" }, "Z32599K2": { "Z1K1": "Z6092", "Z6092K1": "P9970" }, "Z32599K3": { "Z1K1": "Z18", "Z18K1": "Z46870K3" } } }, "Z46869K2": { "Z1K1": "Z7", "Z7K1": "Z810", "Z810K1": { "Z1K1": "Z18", "Z18K1": "Z46870K1" }, "Z810K2": [ "Z6091" ] }, "Z46869K3": { "Z1K1": "Z18", "Z18K1": "Z46870K2" } } } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z27327", "Z27327K1": { "Z1K1": "Z18", "Z18K1": "Z46870K1" }, "Z27327K2": { "Z1K1": "Z6092", "Z6092K1": "P9970" }, "Z27327K3": { "Z1K1": "Z18", "Z18K1": "Z46870K3" } } } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "verb lexeme for a relation, composition" }, { "Z1K1": "Z11", "Z11K1": "Z1830", "Z11K2": "関係を表す動詞の語彙素、合成" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 1t0vxb5cezynwn3oaxw4k3pqye5d7gd Z46926 0 100557 334079 331369 2026-10-28T13:26:52Z Jsamwrites 938 Added Z48030 and Z48031 to the approved list of test cases 334079 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z46926" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6007", "Z17K2": "Z46926K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "start time qualifier" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6007", "Z17K2": "Z46926K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "end time qualifier" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z60", "Z17K2": "Z46926K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "language" } ] } } ], "Z8K2": { "Z1K1": "Z7", "Z7K1": "Z882", "Z882K1": "Z6", "Z882K2": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6091" } }, "Z8K3": [ "Z20", "Z46928", "Z46929", "Z46930", "Z46931", "Z46932", "Z46933", "Z48030", "Z48031" ], "Z8K4": [ "Z14", "Z46927" ], "Z8K5": "Z46926" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Temporal adverbial for a time range" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Adverbial for a start-time (P580) and an end-time (P582) qualifier together, from the temporal range language options: the text and the requests added to the predicate." } ] } } s3pndgze2lonqfu82spjiuox1jjs2q8 Z46964 0 100595 334081 333458 2026-10-28T13:27:22Z Jsamwrites 938 Added Z48032 to the approved list of test cases 334081 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z46964" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6091", "Z17K2": "Z46964K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "item" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6092", "Z17K2": "Z46964K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "property" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, "Z17K2": "Z46964K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "sentence features" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, "Z17K2": "Z46964K4", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "variant" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z60", "Z17K2": "Z46964K5", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "language" } ] } } ], "Z8K2": "Z11", "Z8K3": [ "Z20", "Z46966", "Z46967", "Z46968", "Z46969", "Z46970", "Z46971", "Z46972", "Z46973", "Z47045", "Z47046", "Z48032" ], "Z8K4": [ "Z14", "Z46965" ], "Z8K5": "Z46964" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Sentence for item and property" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Sentence for the item's statement of the property, in the language: statements with a value, never deprecated, preferred rank first, then normal; the first one is realized by the sentence layer. The sentence features give tense and polarity; the variant (feature pairs such as voice: active voice) puts the constructions carrying all its values first. Error when no statement fits." } ] } } engl2zap0t7bnn14q4qxcr6rkremgw1 334161 334081 2026-10-28T21:00:11Z Jsamwrites 938 Removed Z46965 from the approved list of implementations 334161 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z46964" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6091", "Z17K2": "Z46964K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "item" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6092", "Z17K2": "Z46964K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "property" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, "Z17K2": "Z46964K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "sentence features" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, "Z17K2": "Z46964K4", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "variant" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z60", "Z17K2": "Z46964K5", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "language" } ] } } ], "Z8K2": "Z11", "Z8K3": [ "Z20", "Z46966", "Z46967", "Z46968", "Z46969", "Z46970", "Z46971", "Z46972", "Z46973", "Z47045", "Z47046", "Z48032" ], "Z8K4": [ "Z14" ], "Z8K5": "Z46964" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Sentence for item and property" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Sentence for the item's statement of the property, in the language: statements with a value, never deprecated, preferred rank first, then normal; the first one is realized by the sentence layer. The sentence features give tense and polarity; the variant (feature pairs such as voice: active voice) puts the constructions carrying all its values first. Error when no statement fits." } ] } } hth989arbhccnj3gzyay48jauz2nz0v 334162 334161 2026-10-28T21:03:26Z Jsamwrites 938 Added Z46965 to the approved list of implementations 334162 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z46964" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6091", "Z17K2": "Z46964K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "item" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6092", "Z17K2": "Z46964K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "property" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, "Z17K2": "Z46964K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "sentence features" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, "Z17K2": "Z46964K4", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "variant" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z60", "Z17K2": "Z46964K5", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "language" } ] } } ], "Z8K2": "Z11", "Z8K3": [ "Z20", "Z46966", "Z46967", "Z46968", "Z46969", "Z46970", "Z46971", "Z46972", "Z46973", "Z47045", "Z47046", "Z48032" ], "Z8K4": [ "Z14", "Z46965" ], "Z8K5": "Z46964" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Sentence for item and property" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Sentence for the item's statement of the property, in the language: statements with a value, never deprecated, preferred rank first, then normal; the first one is realized by the sentence layer. The sentence features give tense and polarity; the variant (feature pairs such as voice: active voice) puts the constructions carrying all its values first. Error when no statement fits." } ] } } engl2zap0t7bnn14q4qxcr6rkremgw1 Z47282 0 100918 334159 334030 2026-10-28T20:57:18Z Jsamwrites 938 Removed Z47283 from the approved list of implementations 334159 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z47282" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6091", "Z17K2": "Z47282K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "item" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z60", "Z17K2": "Z47282K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "language" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, "Z17K2": "Z47282K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "variant" } ] } } ], "Z8K2": "Z11", "Z8K3": [ "Z20", "Z47952", "Z47953", "Z47954", "Z48006", "Z48007" ], "Z8K4": [ "Z14" ], "Z8K5": "Z47282" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Follows sentence" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Sentence about the item for the property P155: what the item follows: June follows May. Variant: a list of feature pairs (voice; referring expression → personal pronoun for It is …); empty for the default sentence." } ] } } eyvzp9tmsqnouqbsj1p6u87cr06sp4y 334160 334159 2026-10-28T20:59:49Z Jsamwrites 938 Added Z47283 to the approved list of implementations 334160 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z47282" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6091", "Z17K2": "Z47282K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "item" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z60", "Z17K2": "Z47282K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "language" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, "Z17K2": "Z47282K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "variant" } ] } } ], "Z8K2": "Z11", "Z8K3": [ "Z20", "Z47952", "Z47953", "Z47954", "Z48006", "Z48007" ], "Z8K4": [ "Z14", "Z47283" ], "Z8K5": "Z47282" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Follows sentence" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Sentence about the item for the property P155: what the item follows: June follows May. Variant: a list of feature pairs (voice; referring expression → personal pronoun for It is …); empty for the default sentence." } ] } } 9vfv2xu1kpcekf4z3619up2vbtp1t6w Z47603 0 101251 334082 333028 2026-10-28T13:27:32Z Jsamwrites 938 Added Z48033, Z48034 and Z48035 to the approved list of test cases 334082 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z47603" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6091", "Z17K2": "Z47603K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "item" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z60", "Z17K2": "Z47603K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "language" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, "Z17K2": "Z47603K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "variant" } ] } } ], "Z8K2": "Z89", "Z8K3": [ "Z20", "Z47605", "Z47606", "Z47622", "Z48033", "Z48034", "Z48035" ], "Z8K4": [ "Z14", "Z47604" ], "Z8K5": "Z47603" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "History of topic entry" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Entry pointing from the item to its history topic (P2184): the heading word, then the topic, linked (History: history of Paris). The variant is not used." } ] } } 0bp7wsxe836nm3aj218o94n302f0e4i 334122 334082 2026-10-28T15:51:41Z Jsamwrites 938 Added Z48047 to the approved list of test cases 334122 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z47603" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6091", "Z17K2": "Z47603K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "item" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z60", "Z17K2": "Z47603K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "language" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, "Z17K2": "Z47603K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "variant" } ] } } ], "Z8K2": "Z89", "Z8K3": [ "Z20", "Z47605", "Z47606", "Z47622", "Z48033", "Z48034", "Z48035", "Z48047" ], "Z8K4": [ "Z14", "Z47604" ], "Z8K5": "Z47603" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "History of topic entry" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Entry pointing from the item to its history topic (P2184): the heading word, then the topic, linked (History: history of Paris). The variant is not used." } ] } } 7av7glqgiu146e7k7kdwravdnpwnj0d Z47647 0 101301 334121 333913 2026-10-28T15:51:28Z Jsamwrites 938 Added Z48046 to the approved list of test cases 334121 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z47647" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6091", "Z17K2": "Z47647K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "item" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z60", "Z17K2": "Z47647K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "language" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, "Z17K2": "Z47647K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "variant" } ] } } ], "Z8K2": "Z89", "Z8K3": [ "Z20", "Z47736", "Z47838", "Z47839", "Z47840", "Z47984", "Z48046" ], "Z8K4": [ "Z14", "Z47648" ], "Z8K5": "Z47647" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Founder sentence (HTML)" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Generates HTML with links and a language marker for: Sentence saying who founded the item (P112, founder), in the past: passive by default (The Wikimedia Foundation was founded by Jimmy Wales), active with the variant voice: active voice." } ] } } 3731kx5pd2qqjg846556tg7s906zeth Z47655 0 101309 334120 333961 2026-10-28T15:51:12Z Jsamwrites 938 Added Z48044 and Z48045 to the approved list of test cases 334120 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z47655" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6091", "Z17K2": "Z47655K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "item" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z60", "Z17K2": "Z47655K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "language" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, "Z17K2": "Z47655K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "variant" } ] } } ], "Z8K2": "Z89", "Z8K3": [ "Z20", "Z47740", "Z47981", "Z47983", "Z47990", "Z48044", "Z48045" ], "Z8K4": [ "Z14", "Z47656" ], "Z8K5": "Z47655" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Operating system sentence (HTML)" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Generates HTML with links and a language marker for: Sentence about the item for the property P306: the operating systems the item runs on: Inkscape runs on Linux, Windows and others. Variant: a list of feature pairs (voice; referring expression → personal pronoun for It is …); empty for the default sentence." } ] } } pk6qp30ch620v18b10zc6722gkvcq1n Z47788 0 101442 334103 333344 2026-10-28T13:43:40Z Artsiom91 2118 Added Z47792 to the approved list of implementations 334103 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z47788" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6091", "Z17K2": "Z47788K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1005", "Z11K2": "сущность" }, { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "entity" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z40", "Z17K2": "Z47788K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1005", "Z11K2": "сущность повторяется?" }, { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "entity repeated?" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6092" }, "Z17K2": "Z47788K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1005", "Z11K2": "ссылки на свойства" }, { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "property references" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6092" }, "Z17K2": "Z47788K4", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "qualifier properties, may be empty" }, { "Z1K1": "Z11", "Z11K1": "Z1005", "Z11K2": "квалификаторы (может быть пусто)" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6091", "Z17K2": "Z47788K5", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1005", "Z11K2": "время" }, { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "tense" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z60", "Z17K2": "Z47788K6", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1005", "Z11K2": "язык" }, { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "language" } ] } } ], "Z8K2": "Z11", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", "Z47792" ], "Z8K5": "Z47788" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1005", "Z11K2": "предложение с многими свойствами и значениями, ру" }, { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "multiple property values-sentence, Russian" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "The first clause takes the possessive of the entity, or omitted when the entity is already known; the rest take omitted. Joined with Oxford punctuation wihout last comma." }, { "Z1K1": "Z11", "Z11K1": "Z1005", "Z11K2": "Первый раз сущность опускается, если задано \"сущнсоть повторяется\"; остальные разы сущность опускается всегда. Соединятеся запятыми, в последнем случае через \"и\"." } ] } } jc6aaaiqjy9yh4oeehi8a0odzx8yrr5 334110 334103 2026-10-28T13:54:27Z Artsiom91 2118 Added Z48043 to the approved list of test cases 334110 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z47788" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6091", "Z17K2": "Z47788K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1005", "Z11K2": "сущность" }, { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "entity" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z40", "Z17K2": "Z47788K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1005", "Z11K2": "сущность повторяется?" }, { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "entity repeated?" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6092" }, "Z17K2": "Z47788K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1005", "Z11K2": "ссылки на свойства" }, { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "property references" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6092" }, "Z17K2": "Z47788K4", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "qualifier properties, may be empty" }, { "Z1K1": "Z11", "Z11K1": "Z1005", "Z11K2": "квалификаторы (может быть пусто)" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6091", "Z17K2": "Z47788K5", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1005", "Z11K2": "время" }, { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "tense" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z60", "Z17K2": "Z47788K6", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1005", "Z11K2": "язык" }, { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "language" } ] } } ], "Z8K2": "Z11", "Z8K3": [ "Z20", "Z48043" ], "Z8K4": [ "Z14", "Z47792" ], "Z8K5": "Z47788" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1005", "Z11K2": "предложение с многими свойствами и значениями, ру" }, { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "multiple property values-sentence, Russian" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "The first clause takes the possessive of the entity, or omitted when the entity is already known; the rest take omitted. Joined with Oxford punctuation wihout last comma." }, { "Z1K1": "Z11", "Z11K1": "Z1005", "Z11K2": "Первый раз сущность опускается, если задано \"сущнсоть повторяется\"; остальные разы сущность опускается всегда. Соединятеся запятыми, в последнем случае через \"и\"." } ] } } g8p3zb96vtrve8d4szckwa6ckxond7m Z47790 0 101465 334061 333424 2026-10-28T12:40:27Z Artsiom91 2118 Added Z47791 to the approved list of implementations 334061 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z47790" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6092", "Z17K2": "Z47790K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "property" }, { "Z1K1": "Z11", "Z11K1": "Z1005", "Z11K2": "свойство" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6091", "Z17K2": "Z47790K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "entity" }, { "Z1K1": "Z11", "Z11K1": "Z1005", "Z11K2": "сущность" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6", "Z17K2": "Z47790K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "possessive" }, { "Z1K1": "Z11", "Z11K1": "Z1005", "Z11K2": "зависимость" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6091", "Z17K2": "Z47790K4", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "tense" }, { "Z1K1": "Z11", "Z11K1": "Z1005", "Z11K2": "время" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6092" }, "Z17K2": "Z47790K5", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1005", "Z11K2": "квалификаторы (может быть пусто)" }, { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "qualifier properties, may be empty" } ] } } ], "Z8K2": "Z6", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", "Z47791" ], "Z8K5": "Z47790" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1005", "Z11K2": "выражение значения свойства, на русском" }, { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "property-values clause, Russian" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } emrfqvyf15u9pk9lpyzbcu645q1wovw 334100 334061 2026-10-28T13:40:42Z Artsiom91 2118 Added Z48040 to the approved list of test cases 334100 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z47790" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6092", "Z17K2": "Z47790K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "property" }, { "Z1K1": "Z11", "Z11K1": "Z1005", "Z11K2": "свойство" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6091", "Z17K2": "Z47790K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "entity" }, { "Z1K1": "Z11", "Z11K1": "Z1005", "Z11K2": "сущность" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6", "Z17K2": "Z47790K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "possessive" }, { "Z1K1": "Z11", "Z11K1": "Z1005", "Z11K2": "зависимость" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6091", "Z17K2": "Z47790K4", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "tense" }, { "Z1K1": "Z11", "Z11K1": "Z1005", "Z11K2": "время" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6092" }, "Z17K2": "Z47790K5", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1005", "Z11K2": "квалификаторы (может быть пусто)" }, { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "qualifier properties, may be empty" } ] } } ], "Z8K2": "Z6", "Z8K3": [ "Z20", "Z48040" ], "Z8K4": [ "Z14", "Z47791" ], "Z8K5": "Z47790" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1005", "Z11K2": "выражение значения свойства, на русском" }, { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "property-values clause, Russian" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } teg4z5lrff6tooozxof7ll6lpggjjkm Z47791 0 101466 334098 333426 2026-10-28T13:37:43Z Artsiom91 2118 correct 334098 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z47791" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z47790", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z21394", "Z21394K1": [ "Z6", { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z813", "Z813K1": { "Z1K1": "Z7", "Z7K1": "Z812", "Z812K1": { "Z1K1": "Z7", "Z7K1": "Z29691", "Z29691K1": { "Z1K1": "Z7", "Z7K1": "Z30120", "Z30120K1": { "Z1K1": "Z18", "Z18K1": "Z47790K2" }, "Z30120K2": [ "Z6030", "Z6036" ], "Z30120K3": [ "Z60", "Z1360" ], "Z30120K4": { "Z1K1": "Z7", "Z7K1": "Z810", "Z810K1": { "Z1K1": "Z18", "Z18K1": "Z47790K1" }, "Z810K2": [ "Z6092" ] } }, "Z29691K2": { "Z1K1": "Z18", "Z18K1": "Z47790K1" } } } }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z14396", "Z14396K1": { "Z1K1": "Z7", "Z7K1": "Z29825", "Z29825K1": "Z1005", "Z29825K2": { "Z1K1": "Z18", "Z18K1": "Z47790K1" } } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z41766", "Z41766K1": { "Z1K1": "Z7", "Z7K1": "Z14396", "Z14396K1": { "Z1K1": "Z7", "Z7K1": "Z29825", "Z29825K1": "Z1005", "Z29825K2": { "Z1K1": "Z18", "Z18K1": "Z47790K1" } } } } }, { "Z1K1": "Z18", "Z18K1": "Z47790K3" }, " — ", { "Z1K1": "Z7", "Z7K1": "Z32308", "Z32308K1": { "Z1K1": "Z7", "Z7K1": "Z13464", "Z13464K1": "Z48025", "Z13464K2": { "Z1K1": "Z7", "Z7K1": "Z29691", "Z29691K1": { "Z1K1": "Z7", "Z7K1": "Z30120", "Z30120K1": { "Z1K1": "Z18", "Z18K1": "Z47790K2" }, "Z30120K2": [ "Z6030", "Z6036" ], "Z30120K3": [ "Z60", "Z1360" ], "Z30120K4": { "Z1K1": "Z7", "Z7K1": "Z810", "Z810K1": { "Z1K1": "Z18", "Z18K1": "Z47790K1" }, "Z810K2": [ "Z6092" ] } }, "Z29691K2": { "Z1K1": "Z18", "Z18K1": "Z47790K1" } }, "Z13464K3": { "Z1K1": "Z18", "Z18K1": "Z47790K5" } }, "Z32308K2": "Z1005" } ] } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1005", "Z11K2": "выражение значения свойства, ру комп" }, { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "property-values clause, ru comp" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } t9v1q31i5tp92y20u8unql5fqsfo58f Z47792 0 101467 334104 333429 2026-10-28T13:46:52Z Artsiom91 2118 correct 334104 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z47792" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z47788", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z26107", "Z26107K1": { "Z1K1": "Z18", "Z18K1": "Z47788K6" }, "Z26107K2": { "Z1K1": "Z7", "Z7K1": "Z22511", "Z22511K1": { "Z1K1": "Z7", "Z7K1": "Z32308", "Z32308K1": { "Z1K1": "Z7", "Z7K1": "Z810", "Z810K1": { "Z1K1": "Z7", "Z7K1": "Z47790", "Z47790K1": { "Z1K1": "Z7", "Z7K1": "Z811", "Z811K1": { "Z1K1": "Z18", "Z18K1": "Z47788K3" } }, "Z47790K2": { "Z1K1": "Z18", "Z18K1": "Z47788K1" }, "Z47790K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z18", "Z18K1": "Z47788K2" }, "Z802K2": "", "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z21394", "Z21394K1": [ "Z6", { "Z1K1": "Z7", "Z7K1": "Z43654", "Z43654K1": { "Z1K1": "Z18", "Z18K1": "Z47788K1" }, "Z43654K2": { "Z1K1": "Z6091", "Z6091K1": "Q146233" } }, " " ] } }, "Z47790K4": { "Z1K1": "Z18", "Z18K1": "Z47788K5" }, "Z47790K5": { "Z1K1": "Z18", "Z18K1": "Z47788K4" } }, "Z810K2": { "Z1K1": "Z7", "Z7K1": "Z38857", "Z38857K1": "Z47790", "Z38857K2": { "Z1K1": "Z7", "Z7K1": "Z812", "Z812K1": { "Z1K1": "Z18", "Z18K1": "Z47788K3" } }, "Z38857K3": { "Z1K1": "Z18", "Z18K1": "Z47788K1" }, "Z38857K4": "", "Z38857K5": { "Z1K1": "Z18", "Z18K1": "Z47788K5" }, "Z38857K6": { "Z1K1": "Z18", "Z18K1": "Z47788K4" } } }, "Z32308K2": "Z1005" } } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1005", "Z11K2": "предложение со свойствами и значениями, ру комп" }, { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "multiple property values-sentence, ru comp" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 9x0w2kzo1qcxplycrr9oyaoytzgosz0 334112 334104 2026-10-28T13:59:53Z Artsiom91 2118 correct 334112 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z47792" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z47788", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z26107", "Z26107K1": { "Z1K1": "Z18", "Z18K1": "Z47788K6" }, "Z26107K2": { "Z1K1": "Z7", "Z7K1": "Z22511", "Z22511K1": { "Z1K1": "Z7", "Z7K1": "Z32308", "Z32308K1": { "Z1K1": "Z7", "Z7K1": "Z810", "Z810K1": { "Z1K1": "Z7", "Z7K1": "Z47790", "Z47790K1": { "Z1K1": "Z7", "Z7K1": "Z811", "Z811K1": { "Z1K1": "Z18", "Z18K1": "Z47788K3" } }, "Z47790K2": { "Z1K1": "Z18", "Z18K1": "Z47788K1" }, "Z47790K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z18", "Z18K1": "Z47788K2" }, "Z802K2": "", "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z21394", "Z21394K1": [ "Z6", " ", { "Z1K1": "Z7", "Z7K1": "Z43654", "Z43654K1": { "Z1K1": "Z18", "Z18K1": "Z47788K1" }, "Z43654K2": { "Z1K1": "Z6091", "Z6091K1": "Q146233" } } ] } }, "Z47790K4": { "Z1K1": "Z18", "Z18K1": "Z47788K5" }, "Z47790K5": { "Z1K1": "Z18", "Z18K1": "Z47788K4" } }, "Z810K2": { "Z1K1": "Z7", "Z7K1": "Z38857", "Z38857K1": "Z47790", "Z38857K2": { "Z1K1": "Z7", "Z7K1": "Z812", "Z812K1": { "Z1K1": "Z18", "Z18K1": "Z47788K3" } }, "Z38857K3": { "Z1K1": "Z18", "Z18K1": "Z47788K1" }, "Z38857K4": "", "Z38857K5": { "Z1K1": "Z18", "Z18K1": "Z47788K5" }, "Z38857K6": { "Z1K1": "Z18", "Z18K1": "Z47788K4" } } }, "Z32308K2": "Z1005" } } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1005", "Z11K2": "предложение со свойствами и значениями, ру комп" }, { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "multiple property values-sentence, ru comp" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } peaumpybcyjoo7m2sxoqnd8eriz0ko6 Wikifunctions:Status updates/2026-10-25/de 4 101489 334136 333926 2026-10-28T20:19:07Z Ameisenigel 44 Created page with "Aufgrund der diese Woche bekannt gewordenen [[:de:PHP2Shell|PHP-Schwachstellen]] haben wir beschlossen, von weiteren Einführungen abzusehen, ausgenommen sicherheitskritische Änderungen." 334136 wikitext text/x-wiki <languages/> {{Wikifunctions updates | prevlabel = Vorheriges Update | prev = 2026-10-17 | nextlabel = Nächstes Update | next = }} <span id="Wikiabstrak_app"></span> === Wikiabstrak-App === [[File:Screenshot of Wikiabstrak App.png|thumb|Wikiabstrak App]] Eine neue App wurde von [[:meta:User:Affandy Murad|Affandy Murad]], einem Freiwilligen in der indonesischen Wikipedia und anderen Projekten, entwickelt: [https://wikiabstrak.web.app/ Wikiabstrak]. Die App selbst beschreibt sich wie folgt: ''“Wikiabstrak ist ein offenes Experiment, das strukturierte Daten aus Wikidata in lesbare Zusammenfassungen umwandelt, ganz ohne Sprachmodell (LLM). Sucht man nach einem Land, einem Ort, einer Person oder einem Gebäude, erstellt das System anhand fester Regeln einen Textabschnitt aus Wikidata-Aussagen, sodass sich jeder Satz auf seine Quelle zurückführen lässt.'' ''“Zudem werden wichtige Fakten, Fotos von Wikimedia Commons sowie Links zu sämtlichen Wikimedia-Projekten angezeigt und es gibt eine vorgefertigte Vorlage für den Einleitungsabsatz für die Abstrakte Wikipedia, die es dir ermöglicht, sprachunabhängige Artikel zu erstellen oder zu bearbeiten.”'' Viel Spaß bei der Nutzung der App! Falls du Vorschläge hast, kannst du Affandy im Telegram-/IRC-Chat des Projekts oder auf [[:meta:User talk:Affandy Murad|seiner Benutzerdiskussionsseite]] kontaktieren. Schau dir auch die weiteren Apps an, die Affandy entwickelt hat und die auf [[:meta:User:Affandy Murad|seiner Benutzerseite]] aufgelistet sind. <span id="No_changes_in_the_software_this_week"></span> === Keine Änderungen an der Software in dieser Woche === Aufgrund der diese Woche bekannt gewordenen [[:de:PHP2Shell|PHP-Schwachstellen]] haben wir beschlossen, von weiteren Einführungen abzusehen, ausgenommen sicherheitskritische Änderungen. <div lang="en" dir="ltr" class="mw-content-ltr"> === Recording of October Volunteer’s Corner === </div> <div lang="en" dir="ltr" class="mw-content-ltr"> This month’s volunteers’ corner meeting (12 October 2026) is [[:commons:File:Abstract Wikipedia Volunteer Corner 2026-10.webm|now available as a recording on Commons]]. Thank you for the lively discussion and new ideas! </div> <div lang="en" dir="ltr" class="mw-content-ltr"> === Next Volunteers’ Corner on November 9 at 11 UTC === </div> <div lang="en" dir="ltr" class="mw-content-ltr"> The next Volunteers’ Corner will be on [https://zonestamp.toolforge.org/1794222000 Monday, 9 November 2026 at 11:00 UTC]. Note the earlier time in the day, in order to make it easier for some folks to attend this one. We plan to have the following agenda: there will be time to ask questions and discuss all matters arising. If we have time, we will write a function together. Everyone is welcome to join us on [https://meet.google.com/xuy-njxh-rkw Google Meet]. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> === Fresh Functions weekly: 169 new Functions === </div> <div lang="en" dir="ltr" class="mw-content-ltr"> This week we had 169 new functions. Here is an incomplete list of functions with implementations and passing tests to get a taste of what functions have been created. Thanks everybody for contributing! </div> * {{Z|Z45336}} * {{Z|Z45338}} * {{Z|Z45343}} * {{Z|Z45347}} * {{Z|Z45350}} * {{Z|Z45353}} * {{Z|Z45356}} * {{Z|Z45370}} * {{Z|Z45381}} * {{Z|Z45387}} * {{Z|Z45390}} * {{Z|Z45392}} * {{Z|Z45400}} * {{Z|Z45402}} * {{Z|Z45406}} * {{Z|Z45408}} * {{Z|Z45410}} * {{Z|Z45413}} * {{Z|Z45415}} * {{Z|Z45417}} * {{Z|Z45420}} * {{Z|Z45422}} * {{Z|Z45424}} * {{Z|Z45429}} * {{Z|Z45431}} * {{Z|Z45434}} * {{Z|Z45456}} * {{Z|Z45457}} * {{Z|Z45481}} * {{Z|Z45485}} * {{Z|Z45491}} * {{Z|Z45495}} * {{Z|Z45510}} * {{Z|Z45515}} * {{Z|Z45517}} * {{Z|Z45527}} * {{Z|Z45549}} * {{Z|Z45575}} * {{Z|Z45588}} * {{Z|Z45590}} * {{Z|Z45605}} * {{Z|Z45612}} * {{Z|Z45617}} * {{Z|Z45644}} * {{Z|Z45648}} * {{Z|Z45663}} * {{Z|Z45702}} * {{Z|Z45723}} * {{Z|Z45739}} * {{Z|Z45751}} * {{Z|Z45763}} * {{Z|Z45775}} * {{Z|Z45776}} * {{Z|Z45777}} * {{Z|Z45778}} * {{Z|Z45779}} * {{Z|Z45780}} * {{Z|Z45781}} * {{Z|Z45782}} * {{Z|Z45783}} * {{Z|Z45784}} * {{Z|Z45785}} * {{Z|Z45786}} * {{Z|Z45787}} * {{Z|Z45788}} * {{Z|Z45790}} * {{Z|Z45792}} * {{Z|Z45793}} * {{Z|Z45795}} * {{Z|Z45796}} * {{Z|Z45798}} * {{Z|Z45799}} * {{Z|Z45836}} * {{Z|Z45943}} * {{Z|Z45955}} * {{Z|Z45981}} * {{Z|Z45982}} * {{Z|Z45983}} * {{Z|Z45984}} * {{Z|Z45985}} * {{Z|Z45986}} * {{Z|Z45987}} * {{Z|Z45988}} * {{Z|Z45990}} * {{Z|Z45992}} * {{Z|Z45994}} * {{Z|Z45995}} * {{Z|Z45996}} * {{Z|Z46058}} * {{Z|Z46069}} * {{Z|Z46070}} * {{Z|Z46071}} * {{Z|Z46072}} * {{Z|Z46073}} * {{Z|Z46074}} * {{Z|Z46075}} * {{Z|Z46076}} * {{Z|Z46077}} * {{Z|Z46078}} * {{Z|Z46079}} * {{Z|Z46096}} * {{Z|Z46118}} * {{Z|Z46130}} * {{Z|Z46140}} * {{Z|Z46150}} * {{Z|Z46162}} * {{Z|Z46171}} * {{Z|Z46205}} * {{Z|Z46243}} * {{Z|Z46291}} * {{Z|Z46292}} * {{Z|Z46311}} * {{Z|Z46322}} * {{Z|Z46323}} * {{Z|Z46324}} * {{Z|Z46325}} * {{Z|Z46365}} * {{Z|Z46391}} * {{Z|Z46392}} * {{Z|Z46393}} * {{Z|Z46394}} * {{Z|Z46395}} * {{Z|Z46420}} * {{Z|Z46432}} * {{Z|Z46448}} * {{Z|Z46460}} * {{Z|Z46499}} * {{Z|Z46508}} * {{Z|Z46509}} * {{Z|Z46532}} * {{Z|Z46535}} * {{Z|Z46536}} * {{Z|Z46558}} * {{Z|Z46561}} * {{Z|Z46568}} * {{Z|Z46569}} * {{Z|Z46570}} * {{Z|Z46602}} * {{Z|Z46616}} * {{Z|Z46617}} * {{Z|Z46641}} * {{Z|Z46657}} * {{Z|Z46658}} * {{Z|Z46659}} * {{Z|Z46673}} * {{Z|Z46685}} <span 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.</span> [[Category:Status updates{{#translation:}}|2026-10-25]] er33aoydb66ev8bx03vl9p4ubltqy4j 334138 334136 2026-10-28T20:19:24Z Ameisenigel 44 Created page with "=== Aufzeichnung des Freiwilligentreffens im Oktober ===" 334138 wikitext text/x-wiki <languages/> {{Wikifunctions updates | prevlabel = Vorheriges Update | prev = 2026-10-17 | nextlabel = Nächstes Update | next = }} <span id="Wikiabstrak_app"></span> === Wikiabstrak-App === [[File:Screenshot of Wikiabstrak App.png|thumb|Wikiabstrak App]] Eine neue App wurde von [[:meta:User:Affandy Murad|Affandy Murad]], einem Freiwilligen in der indonesischen Wikipedia und anderen Projekten, entwickelt: [https://wikiabstrak.web.app/ Wikiabstrak]. Die App selbst beschreibt sich wie folgt: ''“Wikiabstrak ist ein offenes Experiment, das strukturierte Daten aus Wikidata in lesbare Zusammenfassungen umwandelt, ganz ohne Sprachmodell (LLM). Sucht man nach einem Land, einem Ort, einer Person oder einem Gebäude, erstellt das System anhand fester Regeln einen Textabschnitt aus Wikidata-Aussagen, sodass sich jeder Satz auf seine Quelle zurückführen lässt.'' ''“Zudem werden wichtige Fakten, Fotos von Wikimedia Commons sowie Links zu sämtlichen Wikimedia-Projekten angezeigt und es gibt eine vorgefertigte Vorlage für den Einleitungsabsatz für die Abstrakte Wikipedia, die es dir ermöglicht, sprachunabhängige Artikel zu erstellen oder zu bearbeiten.”'' Viel Spaß bei der Nutzung der App! Falls du Vorschläge hast, kannst du Affandy im Telegram-/IRC-Chat des Projekts oder auf [[:meta:User talk:Affandy Murad|seiner Benutzerdiskussionsseite]] kontaktieren. Schau dir auch die weiteren Apps an, die Affandy entwickelt hat und die auf [[:meta:User:Affandy Murad|seiner Benutzerseite]] aufgelistet sind. <span id="No_changes_in_the_software_this_week"></span> === Keine Änderungen an der Software in dieser Woche === Aufgrund der diese Woche bekannt gewordenen [[:de:PHP2Shell|PHP-Schwachstellen]] haben wir beschlossen, von weiteren Einführungen abzusehen, ausgenommen sicherheitskritische Änderungen. <span id="Recording_of_October_Volunteer’s_Corner"></span> === Aufzeichnung des Freiwilligentreffens im Oktober === <div lang="en" dir="ltr" class="mw-content-ltr"> This month’s volunteers’ corner meeting (12 October 2026) is [[:commons:File:Abstract Wikipedia Volunteer Corner 2026-10.webm|now available as a recording on Commons]]. Thank you for the lively discussion and new ideas! </div> <div lang="en" dir="ltr" class="mw-content-ltr"> === Next Volunteers’ Corner on November 9 at 11 UTC === </div> <div lang="en" dir="ltr" class="mw-content-ltr"> The next Volunteers’ Corner will be on [https://zonestamp.toolforge.org/1794222000 Monday, 9 November 2026 at 11:00 UTC]. Note the earlier time in the day, in order to make it easier for some folks to attend this one. We plan to have the following agenda: there will be time to ask questions and discuss all matters arising. If we have time, we will write a function together. Everyone is welcome to join us on [https://meet.google.com/xuy-njxh-rkw Google Meet]. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> === Fresh Functions weekly: 169 new Functions === </div> <div lang="en" dir="ltr" class="mw-content-ltr"> This week we had 169 new functions. Here is an incomplete list of functions with implementations and passing tests to get a taste of what functions have been created. Thanks everybody for contributing! </div> * {{Z|Z45336}} * {{Z|Z45338}} * {{Z|Z45343}} * {{Z|Z45347}} * {{Z|Z45350}} * {{Z|Z45353}} * {{Z|Z45356}} * {{Z|Z45370}} * {{Z|Z45381}} * {{Z|Z45387}} * {{Z|Z45390}} * {{Z|Z45392}} * {{Z|Z45400}} * {{Z|Z45402}} * {{Z|Z45406}} * {{Z|Z45408}} * {{Z|Z45410}} * {{Z|Z45413}} * {{Z|Z45415}} * {{Z|Z45417}} * {{Z|Z45420}} * {{Z|Z45422}} * {{Z|Z45424}} * {{Z|Z45429}} * {{Z|Z45431}} * {{Z|Z45434}} * {{Z|Z45456}} * {{Z|Z45457}} * {{Z|Z45481}} * {{Z|Z45485}} * {{Z|Z45491}} * {{Z|Z45495}} * {{Z|Z45510}} * {{Z|Z45515}} * {{Z|Z45517}} * {{Z|Z45527}} * {{Z|Z45549}} * {{Z|Z45575}} * {{Z|Z45588}} * {{Z|Z45590}} * {{Z|Z45605}} * {{Z|Z45612}} * {{Z|Z45617}} * {{Z|Z45644}} * {{Z|Z45648}} * {{Z|Z45663}} * {{Z|Z45702}} * {{Z|Z45723}} * {{Z|Z45739}} * {{Z|Z45751}} * {{Z|Z45763}} * {{Z|Z45775}} * {{Z|Z45776}} * {{Z|Z45777}} * {{Z|Z45778}} * {{Z|Z45779}} * {{Z|Z45780}} * {{Z|Z45781}} * {{Z|Z45782}} * {{Z|Z45783}} * {{Z|Z45784}} * {{Z|Z45785}} * {{Z|Z45786}} * {{Z|Z45787}} * {{Z|Z45788}} * {{Z|Z45790}} * {{Z|Z45792}} * {{Z|Z45793}} * {{Z|Z45795}} * {{Z|Z45796}} * {{Z|Z45798}} * {{Z|Z45799}} * {{Z|Z45836}} * {{Z|Z45943}} * {{Z|Z45955}} * {{Z|Z45981}} * {{Z|Z45982}} * {{Z|Z45983}} * {{Z|Z45984}} * {{Z|Z45985}} * {{Z|Z45986}} * {{Z|Z45987}} * {{Z|Z45988}} * {{Z|Z45990}} * {{Z|Z45992}} * {{Z|Z45994}} * {{Z|Z45995}} * {{Z|Z45996}} * {{Z|Z46058}} * {{Z|Z46069}} * {{Z|Z46070}} * {{Z|Z46071}} * {{Z|Z46072}} * {{Z|Z46073}} * {{Z|Z46074}} * {{Z|Z46075}} * {{Z|Z46076}} * {{Z|Z46077}} * {{Z|Z46078}} * {{Z|Z46079}} * {{Z|Z46096}} * {{Z|Z46118}} * {{Z|Z46130}} * {{Z|Z46140}} * {{Z|Z46150}} * {{Z|Z46162}} * {{Z|Z46171}} * {{Z|Z46205}} * {{Z|Z46243}} * {{Z|Z46291}} * {{Z|Z46292}} * {{Z|Z46311}} * {{Z|Z46322}} * {{Z|Z46323}} * {{Z|Z46324}} * {{Z|Z46325}} * {{Z|Z46365}} * {{Z|Z46391}} * {{Z|Z46392}} * {{Z|Z46393}} * {{Z|Z46394}} * {{Z|Z46395}} * {{Z|Z46420}} * {{Z|Z46432}} * {{Z|Z46448}} * {{Z|Z46460}} * {{Z|Z46499}} * {{Z|Z46508}} * {{Z|Z46509}} * {{Z|Z46532}} * {{Z|Z46535}} * {{Z|Z46536}} * {{Z|Z46558}} * {{Z|Z46561}} * {{Z|Z46568}} * {{Z|Z46569}} * {{Z|Z46570}} * {{Z|Z46602}} * {{Z|Z46616}} * {{Z|Z46617}} * {{Z|Z46641}} * {{Z|Z46657}} * {{Z|Z46658}} * {{Z|Z46659}} * {{Z|Z46673}} * {{Z|Z46685}} <span 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.</span> [[Category:Status updates{{#translation:}}|2026-10-25]] czyuiepfzc68j9r3ju3eep3h3wvc4v8 Z48025 0 101737 334062 2026-10-28T12:51:51Z Artsiom91 2118 new function in Russian 334062 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48025" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6003", "Z17K2": "Z48025K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1005", "Z11K2": "утверждение" }, { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "statement" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6092" }, "Z17K2": "Z48025K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "qualifier properties, may be empty" }, { "Z1K1": "Z11", "Z11K1": "Z1005", "Z11K2": "свойства квалификаторов (может быть пусто)" } ] } } ], "Z8K2": "Z6", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14" ], "Z8K5": "Z48025" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1005", "Z11K2": "значение с квалификатором, на русском" }, { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "value with a qualifier, Russian" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1005", "Z11K2": "возвращает значение утверждения, после него даёт название и значение первого квалификатора" }, { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Shows a statement value in Russian, followed by the name and value of the first listed qualifier" } ] } } l10bpmjl0hvipsxm2l2l5hi2z3bu29c 334064 334062 2026-10-28T13:00:50Z Artsiom91 2118 Added Z48026 to the approved list of implementations 334064 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48025" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6003", "Z17K2": "Z48025K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1005", "Z11K2": "утверждение" }, { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "statement" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6092" }, "Z17K2": "Z48025K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "qualifier properties, may be empty" }, { "Z1K1": "Z11", "Z11K1": "Z1005", "Z11K2": "свойства квалификаторов (может быть пусто)" } ] } } ], "Z8K2": "Z6", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", "Z48026" ], "Z8K5": "Z48025" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1005", "Z11K2": "значение с квалификатором, на русском" }, { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "value with a qualifier, Russian" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1005", "Z11K2": "возвращает значение утверждения, после него даёт название и значение первого квалификатора" }, { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Shows a statement value in Russian, followed by the name and value of the first listed qualifier" } ] } } 7zufa64ucnz92gizm01lj0hr2mr34xu 334097 334064 2026-10-28T13:36:52Z Artsiom91 2118 Added Z48039 to the approved list of test cases 334097 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48025" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6003", "Z17K2": "Z48025K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1005", "Z11K2": "утверждение" }, { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "statement" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6092" }, "Z17K2": "Z48025K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "qualifier properties, may be empty" }, { "Z1K1": "Z11", "Z11K1": "Z1005", "Z11K2": "свойства квалификаторов (может быть пусто)" } ] } } ], "Z8K2": "Z6", "Z8K3": [ "Z20", "Z48039" ], "Z8K4": [ "Z14", "Z48026" ], "Z8K5": "Z48025" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1005", "Z11K2": "значение с квалификатором, на русском" }, { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "value with a qualifier, Russian" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1005", "Z11K2": "возвращает значение утверждения, после него даёт название и значение первого квалификатора" }, { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Shows a statement value in Russian, followed by the name and value of the first listed qualifier" } ] } } f6nn95njdpss123wp1x87hjiayrpxuz Z48026 0 101738 334063 2026-10-28T13:00:30Z Artsiom91 2118 new realization 334063 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48026" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z48025", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z21394", "Z21394K1": [ "Z6", { "Z1K1": "Z7", "Z7K1": "Z42712", "Z42712K1": { "Z1K1": "Z18", "Z18K1": "Z48025K1" }, "Z42712K2": "Z1005" }, { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z813", "Z813K1": { "Z1K1": "Z18", "Z18K1": "Z48025K2" } }, "Z802K2": { "Z1K1": "Z40", "Z40K1": "Z42" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z42175", "Z42175K1": { "Z1K1": "Z18", "Z18K1": "Z48025K1" }, "Z42175K2": { "Z1K1": "Z7", "Z7K1": "Z811", "Z811K1": { "Z1K1": "Z18", "Z18K1": "Z48025K2" } } } }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z21394", "Z21394K1": [ "Z6", ", с ", { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z19084", "Z19084K1": { "Z1K1": "Z7", "Z7K1": "Z16829", "Z16829K1": { "Z1K1": "Z7", "Z7K1": "Z19308", "Z19308K1": { "Z1K1": "Z18", "Z18K1": "Z48025K1" } } }, "Z19084K2": "Z6091" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z43654", "Z43654K1": { "Z1K1": "Z7", "Z7K1": "Z19308", "Z19308K1": { "Z1K1": "Z18", "Z18K1": "Z48025K1" } }, "Z43654K2": { "Z1K1": "Z6091", "Z6091K1": "Q192997" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z43651", "Z43651K1": { "Z1K1": "Z7", "Z7K1": "Z42712", "Z42712K1": { "Z1K1": "Z18", "Z18K1": "Z48025K1" }, "Z42712K2": "Z1005" }, "Z43651K2": { "Z1K1": "Z6091", "Z6091K1": "Q192997" } } }, " ", { "Z1K1": "Z7", "Z7K1": "Z42483", "Z42483K1": { "Z1K1": "Z7", "Z7K1": "Z33579", "Z33579K1": { "Z1K1": "Z18", "Z18K1": "Z48025K1" }, "Z33579K2": { "Z1K1": "Z7", "Z7K1": "Z811", "Z811K1": { "Z1K1": "Z18", "Z18K1": "Z48025K2" } } }, "Z42483K2": "Z1005" } ] }, "Z802K3": "" } ] } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1005", "Z11K2": "значение с квалификатором, ру комп" }, { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "value with a qualifier, ru comp" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } fqvbu5psgi8vf1m3xqnzerqskykq6ss 334065 334063 2026-10-28T13:04:04Z Artsiom91 2118 correct 334065 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48026" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z48025", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z21394", "Z21394K1": [ "Z6", { "Z1K1": "Z7", "Z7K1": "Z42712", "Z42712K1": { "Z1K1": "Z18", "Z18K1": "Z48025K1" }, "Z42712K2": "Z1005" }, { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z813", "Z813K1": { "Z1K1": "Z18", "Z18K1": "Z48025K2" } }, "Z802K2": { "Z1K1": "Z40", "Z40K1": "Z42" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z42175", "Z42175K1": { "Z1K1": "Z18", "Z18K1": "Z48025K1" }, "Z42175K2": { "Z1K1": "Z7", "Z7K1": "Z811", "Z811K1": { "Z1K1": "Z18", "Z18K1": "Z48025K2" } } } }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z21394", "Z21394K1": [ "Z6", ", с ", { "Z1K1": "Z7", "Z7K1": "Z43651", "Z43651K1": { "Z1K1": "Z7", "Z7K1": "Z14396", "Z14396K1": { "Z1K1": "Z7", "Z7K1": "Z29825", "Z29825K1": "Z1005", "Z29825K2": { "Z1K1": "Z7", "Z7K1": "Z811", "Z811K1": { "Z1K1": "Z18", "Z18K1": "Z48025K2" } } } }, "Z43651K2": { "Z1K1": "Z6091", "Z6091K1": "Q192997" } }, " ", { "Z1K1": "Z7", "Z7K1": "Z42483", "Z42483K1": { "Z1K1": "Z7", "Z7K1": "Z33579", "Z33579K1": { "Z1K1": "Z18", "Z18K1": "Z48025K1" }, "Z33579K2": { "Z1K1": "Z7", "Z7K1": "Z811", "Z811K1": { "Z1K1": "Z18", "Z18K1": "Z48025K2" } } }, "Z42483K2": "Z1005" } ] }, "Z802K3": "" } ] } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1005", "Z11K2": "значение с квалификатором, ру комп" }, { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "value with a qualifier, ru comp" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } bseje5bqss3f1gzi66hqfduekmfxu9f 334088 334065 2026-10-28T13:29:21Z Artsiom91 2118 correct 334088 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48026" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z48025", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z21394", "Z21394K1": [ "Z6", { "Z1K1": "Z7", "Z7K1": "Z42712", "Z42712K1": { "Z1K1": "Z18", "Z18K1": "Z48025K1" }, "Z42712K2": "Z1005" }, { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z813", "Z813K1": { "Z1K1": "Z18", "Z18K1": "Z48025K2" } }, "Z802K2": { "Z1K1": "Z40", "Z40K1": "Z42" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z42175", "Z42175K1": { "Z1K1": "Z18", "Z18K1": "Z48025K1" }, "Z42175K2": { "Z1K1": "Z7", "Z7K1": "Z811", "Z811K1": { "Z1K1": "Z18", "Z18K1": "Z48025K2" } } } }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z21394", "Z21394K1": [ "Z6", ", ", { "Z1K1": "Z7", "Z7K1": "Z22193", "Z22193K1": { "Z1K1": "Z7", "Z7K1": "Z46727", "Z46727K1": { "Z1K1": "Z18", "Z18K1": "Z48025K1" } }, "Z22193K2": [ "Z1", { "Z1K1": "Z6091", "Z6091K1": "Q499327" }, { "Z1K1": "Z6091", "Z6091K1": "Q1775415" }, { "Z1K1": "Z6091", "Z6091K1": "Q1775461" } ], "Z22193K3": [ "Z1", "его", "её", "его", "их" ] }, " ", { "Z1K1": "Z7", "Z7K1": "Z43651", "Z43651K1": { "Z1K1": "Z7", "Z7K1": "Z14396", "Z14396K1": { "Z1K1": "Z7", "Z7K1": "Z29825", "Z29825K1": "Z1005", "Z29825K2": { "Z1K1": "Z7", "Z7K1": "Z811", "Z811K1": { "Z1K1": "Z18", "Z18K1": "Z48025K2" } } } }, "Z43651K2": { "Z1K1": "Z6091", "Z6091K1": "Q131105" } }, "", { "Z1K1": "Z7", "Z7K1": "Z42483", "Z42483K1": { "Z1K1": "Z7", "Z7K1": "Z33579", "Z33579K1": { "Z1K1": "Z18", "Z18K1": "Z48025K1" }, "Z33579K2": { "Z1K1": "Z7", "Z7K1": "Z811", "Z811K1": { "Z1K1": "Z18", "Z18K1": "Z48025K2" } } }, "Z42483K2": "Z1005" } ] }, "Z802K3": "" } ] } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1005", "Z11K2": "значение с квалификатором, ру комп" }, { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "value with a qualifier, ru comp" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 9ihji5eol03mtlycjhwsk7h7d1yduxt 334094 334088 2026-10-28T13:33:06Z Artsiom91 2118 fix 334094 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48026" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z48025", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z21394", "Z21394K1": [ "Z6", { "Z1K1": "Z7", "Z7K1": "Z42712", "Z42712K1": { "Z1K1": "Z18", "Z18K1": "Z48025K1" }, "Z42712K2": "Z1005" }, { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z813", "Z813K1": { "Z1K1": "Z18", "Z18K1": "Z48025K2" } }, "Z802K2": { "Z1K1": "Z40", "Z40K1": "Z42" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z42175", "Z42175K1": { "Z1K1": "Z18", "Z18K1": "Z48025K1" }, "Z42175K2": { "Z1K1": "Z7", "Z7K1": "Z811", "Z811K1": { "Z1K1": "Z18", "Z18K1": "Z48025K2" } } } }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z21394", "Z21394K1": [ "Z6", ", ", { "Z1K1": "Z7", "Z7K1": "Z22193", "Z22193K1": { "Z1K1": "Z7", "Z7K1": "Z46720", "Z46720K1": { "Z1K1": "Z7", "Z7K1": "Z42712", "Z42712K1": { "Z1K1": "Z18", "Z18K1": "Z48025K1" }, "Z42712K2": "Z1005" } }, "Z22193K2": [ "Z1", { "Z1K1": "Z6091", "Z6091K1": "Q499327" }, { "Z1K1": "Z6091", "Z6091K1": "Q1775415" }, { "Z1K1": "Z6091", "Z6091K1": "Q1775461" } ], "Z22193K3": [ "Z1", "его", "её", "его", "их" ] }, " ", { "Z1K1": "Z7", "Z7K1": "Z43651", "Z43651K1": { "Z1K1": "Z7", "Z7K1": "Z14396", "Z14396K1": { "Z1K1": "Z7", "Z7K1": "Z29825", "Z29825K1": "Z1005", "Z29825K2": { "Z1K1": "Z7", "Z7K1": "Z811", "Z811K1": { "Z1K1": "Z18", "Z18K1": "Z48025K2" } } } }, "Z43651K2": { "Z1K1": "Z6091", "Z6091K1": "Q131105" } }, "", { "Z1K1": "Z7", "Z7K1": "Z42483", "Z42483K1": { "Z1K1": "Z7", "Z7K1": "Z33579", "Z33579K1": { "Z1K1": "Z18", "Z18K1": "Z48025K1" }, "Z33579K2": { "Z1K1": "Z7", "Z7K1": "Z811", "Z811K1": { "Z1K1": "Z18", "Z18K1": "Z48025K2" } } }, "Z42483K2": "Z1005" } ] }, "Z802K3": "" } ] } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1005", "Z11K2": "значение с квалификатором, ру комп" }, { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "value with a qualifier, ru comp" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 4p9yx4j99a0qtgwrreg16clgvr19t9e 334095 334094 2026-10-28T13:33:41Z Artsiom91 2118 fix 334095 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48026" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z48025", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z21394", "Z21394K1": [ "Z6", { "Z1K1": "Z7", "Z7K1": "Z42712", "Z42712K1": { "Z1K1": "Z18", "Z18K1": "Z48025K1" }, "Z42712K2": "Z1005" }, { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z813", "Z813K1": { "Z1K1": "Z18", "Z18K1": "Z48025K2" } }, "Z802K2": { "Z1K1": "Z40", "Z40K1": "Z42" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z42175", "Z42175K1": { "Z1K1": "Z18", "Z18K1": "Z48025K1" }, "Z42175K2": { "Z1K1": "Z7", "Z7K1": "Z811", "Z811K1": { "Z1K1": "Z18", "Z18K1": "Z48025K2" } } } }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z21394", "Z21394K1": [ "Z6", ", ", { "Z1K1": "Z7", "Z7K1": "Z22193", "Z22193K1": { "Z1K1": "Z7", "Z7K1": "Z46720", "Z46720K1": { "Z1K1": "Z7", "Z7K1": "Z42712", "Z42712K1": { "Z1K1": "Z18", "Z18K1": "Z48025K1" }, "Z42712K2": "Z1005" } }, "Z22193K2": [ "Z1", { "Z1K1": "Z6091", "Z6091K1": "Q499327" }, { "Z1K1": "Z6091", "Z6091K1": "Q1775415" }, { "Z1K1": "Z6091", "Z6091K1": "Q1775461" } ], "Z22193K3": [ "Z1", "его", "её", "его", "их" ] }, " ", { "Z1K1": "Z7", "Z7K1": "Z43651", "Z43651K1": { "Z1K1": "Z7", "Z7K1": "Z14396", "Z14396K1": { "Z1K1": "Z7", "Z7K1": "Z29825", "Z29825K1": "Z1005", "Z29825K2": { "Z1K1": "Z7", "Z7K1": "Z811", "Z811K1": { "Z1K1": "Z18", "Z18K1": "Z48025K2" } } } }, "Z43651K2": { "Z1K1": "Z6091", "Z6091K1": "Q131105" } }, " ", { "Z1K1": "Z7", "Z7K1": "Z42483", "Z42483K1": { "Z1K1": "Z7", "Z7K1": "Z33579", "Z33579K1": { "Z1K1": "Z18", "Z18K1": "Z48025K1" }, "Z33579K2": { "Z1K1": "Z7", "Z7K1": "Z811", "Z811K1": { "Z1K1": "Z18", "Z18K1": "Z48025K2" } } }, "Z42483K2": "Z1005" } ] }, "Z802K3": "" } ] } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1005", "Z11K2": "значение с квалификатором, ру комп" }, { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "value with a qualifier, ru comp" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } duog2d1zq37m2uxbb3487edcxj8mkx7 Z48027 0 101739 334066 2026-10-28T13:10:38Z 鈴音雨 101019 Tester: English has no verb for inhabitation by organisms at all, so the verb of the broader concept inhabitation is used 334066 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48027" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z46870", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z21806", "Z21806K1": { "Z1K1": "Z7", "Z7K1": "Z46870", "Z46870K1": { "Z1K1": "Z6091", "Z6091K1": "Q141900546" }, "Z46870K2": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q140402518" }, { "Z1K1": "Z6091", "Z6091K1": "Q140402519" } ], "Z46870K3": "Z1002" }, "Z21806K2": "Z1002" }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K2": "inhabit" } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "[en] inhabitation by organisms: inhabit" }, { "Z1K1": "Z11", "Z11K1": "Z1830", "Z11K2": "[en] 生息: inhabit" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } qe49cv23b2gyqsrw24ae8otmhytaw4e Z48028 0 101740 334067 2026-10-28T13:10:49Z 鈴音雨 101019 Tester: Japanese has its own verb for inhabitation by organisms 334067 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48028" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z46870", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z21806", "Z21806K1": { "Z1K1": "Z7", "Z7K1": "Z46870", "Z46870K1": { "Z1K1": "Z6091", "Z6091K1": "Q141900546" }, "Z46870K2": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q140402518" }, { "Z1K1": "Z6091", "Z6091K1": "Q140402519" } ], "Z46870K3": "Z1830" }, "Z21806K2": "Z1830" }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K2": "生息する" } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "[ja] inhabitation by organisms: 生息する" }, { "Z1K1": "Z11", "Z11K1": "Z1830", "Z11K2": "[ja] 生息: 生息する" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 9lx3xrj6t6mcj0l9tl24n4npjv8e2tw Z48029 0 101741 334072 2026-10-28T13:22:27Z Artsiom91 2118 new list for Russian 334072 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48029" }, "Z2K2": [ "Z6095", { "Z1K1": "Z6095", "Z6095K1": "L2027" }, { "Z1K1": "Z6095", "Z6095K1": "L448251" }, { "Z1K1": "Z6095", "Z6095K1": "L409467" }, { "Z1K1": "Z6095", "Z6095K1": "L582437" }, { "Z1K1": "Z6095", "Z6095K1": "L582524" } ], "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1005", "Z11K2": "русские личные местоимения" }, { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Russian personal pronouns" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "List of Russian personal pronoun lexemes." }, { "Z1K1": "Z11", "Z11K1": "Z1005", "Z11K2": "список лексем для русских личных местоимений." } ] } } q9fhnlbsfl465lh06qumnhzfcqzkgi2 Z48030 0 101742 334074 2026-10-28T13:26:21Z Jsamwrites 938 Create Temporal adverbial for a time range: Igbo from 1891 to 1893 334074 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48030" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z46926", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "K1" }, "Z803K2": { "Z1K1": "Z7", "Z7K1": "Z46926", "Z46926K1": { "Z1K1": "Z6007", "Z6007K1": { "Z1K1": "Z6092", "Z6092K1": "P580" }, "Z6007K2": { "Z1K1": "Z6064", "Z6064K1": { "Z1K1": "Z6061", "Z6061K1": { "Z1K1": "Z20420", "Z20420K1": { "Z1K1": "Z20159", "Z20159K1": "Z17814", "Z20159K2": { "Z1K1": "Z13518", "Z13518K1": "1891" } }, "Z20420K2": { "Z1K1": "Z20342", "Z20342K1": { "Z1K1": "Z16098", "Z16098K1": "Z16101" }, "Z20342K2": { "Z1K1": "Z13518", "Z13518K1": "1" } } }, "Z6061K2": { "Z1K1": "Z6060", "Z6060K1": { "Z1K1": "Z13518", "Z13518K1": "0" }, "Z6060K2": { "Z1K1": "Z13518", "Z13518K1": "0" }, "Z6060K3": { "Z1K1": "Z13518", "Z13518K1": "0" } } }, "Z6064K2": { "Z1K1": "Z6062", "Z6062K1": { "Z1K1": "Z6091", "Z6091K1": "Q577" } }, "Z6064K3": { "Z1K1": "Z13518", "Z13518K1": "0" }, "Z6064K4": { "Z1K1": "Z13518", "Z13518K1": "0" }, "Z6064K5": { "Z1K1": "Z16683", "Z16683K1": "Z16661", "Z16683K2": { "Z1K1": "Z13518", "Z13518K1": "0" } }, "Z6064K6": { "Z1K1": "Z6063", "Z6063K1": { "Z1K1": "Z6091", "Z6091K1": "Q1985727" } } }, "Z6007K3": { "Z1K1": "Z6020", "Z6020K1": "Z6021" } }, "Z46926K2": { "Z1K1": "Z6007", "Z6007K1": { "Z1K1": "Z6092", "Z6092K1": "P582" }, "Z6007K2": { "Z1K1": "Z6064", "Z6064K1": { "Z1K1": "Z6061", "Z6061K1": { "Z1K1": "Z20420", "Z20420K1": { "Z1K1": "Z20159", "Z20159K1": "Z17814", "Z20159K2": { "Z1K1": "Z13518", "Z13518K1": "1893" } }, "Z20420K2": { "Z1K1": "Z20342", "Z20342K1": { "Z1K1": "Z16098", "Z16098K1": "Z16101" }, "Z20342K2": { "Z1K1": "Z13518", "Z13518K1": "1" } } }, "Z6061K2": { "Z1K1": "Z6060", "Z6060K1": { "Z1K1": "Z13518", "Z13518K1": "0" }, "Z6060K2": { "Z1K1": "Z13518", "Z13518K1": "0" }, "Z6060K3": { "Z1K1": "Z13518", "Z13518K1": "0" } } }, "Z6064K2": { "Z1K1": "Z6062", "Z6062K1": { "Z1K1": "Z6091", "Z6091K1": "Q577" } }, "Z6064K3": { "Z1K1": "Z13518", "Z13518K1": "0" }, "Z6064K4": { "Z1K1": "Z13518", "Z13518K1": "0" }, "Z6064K5": { "Z1K1": "Z16683", "Z16683K1": "Z16661", "Z16683K2": { "Z1K1": "Z13518", "Z13518K1": "0" } }, "Z6064K6": { "Z1K1": "Z6063", "Z6063K1": { "Z1K1": "Z6091", "Z6091K1": "Q1985727" } } }, "Z6007K3": { "Z1K1": "Z6020", "Z6020K1": "Z6021" } }, "Z46926K3": { "Z1K1": "Z60", "Z60K1": "ig" } } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K2": "kemgbe 1891 ruo afọ 1893" } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Temporal adverbial for a time range: Igbo from 1891 to 1893" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } m2rxqa78kgjevx1za6kujg805g2zi39 Z48031 0 101743 334075 2026-10-28T13:26:24Z Jsamwrites 938 Create Temporal adverbial for a time range: Dagbani from 1891 to 1893 334075 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48031" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z46926", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "K1" }, "Z803K2": { "Z1K1": "Z7", "Z7K1": "Z46926", "Z46926K1": { "Z1K1": "Z6007", "Z6007K1": { "Z1K1": "Z6092", "Z6092K1": "P580" }, "Z6007K2": { "Z1K1": "Z6064", "Z6064K1": { "Z1K1": "Z6061", "Z6061K1": { "Z1K1": "Z20420", "Z20420K1": { "Z1K1": "Z20159", "Z20159K1": "Z17814", "Z20159K2": { "Z1K1": "Z13518", "Z13518K1": "1891" } }, "Z20420K2": { "Z1K1": "Z20342", "Z20342K1": { "Z1K1": "Z16098", "Z16098K1": "Z16101" }, "Z20342K2": { "Z1K1": "Z13518", "Z13518K1": "1" } } }, "Z6061K2": { "Z1K1": "Z6060", "Z6060K1": { "Z1K1": "Z13518", "Z13518K1": "0" }, "Z6060K2": { "Z1K1": "Z13518", "Z13518K1": "0" }, "Z6060K3": { "Z1K1": "Z13518", "Z13518K1": "0" } } }, "Z6064K2": { "Z1K1": "Z6062", "Z6062K1": { "Z1K1": "Z6091", "Z6091K1": "Q577" } }, "Z6064K3": { "Z1K1": "Z13518", "Z13518K1": "0" }, "Z6064K4": { "Z1K1": "Z13518", "Z13518K1": "0" }, "Z6064K5": { "Z1K1": "Z16683", "Z16683K1": "Z16661", "Z16683K2": { "Z1K1": "Z13518", "Z13518K1": "0" } }, "Z6064K6": { "Z1K1": "Z6063", "Z6063K1": { "Z1K1": "Z6091", "Z6091K1": "Q1985727" } } }, "Z6007K3": { "Z1K1": "Z6020", "Z6020K1": "Z6021" } }, "Z46926K2": { "Z1K1": "Z6007", "Z6007K1": { "Z1K1": "Z6092", "Z6092K1": "P582" }, "Z6007K2": { "Z1K1": "Z6064", "Z6064K1": { "Z1K1": "Z6061", "Z6061K1": { "Z1K1": "Z20420", "Z20420K1": { "Z1K1": "Z20159", "Z20159K1": "Z17814", "Z20159K2": { "Z1K1": "Z13518", "Z13518K1": "1893" } }, "Z20420K2": { "Z1K1": "Z20342", "Z20342K1": { "Z1K1": "Z16098", "Z16098K1": "Z16101" }, "Z20342K2": { "Z1K1": "Z13518", "Z13518K1": "1" } } }, "Z6061K2": { "Z1K1": "Z6060", "Z6060K1": { "Z1K1": "Z13518", "Z13518K1": "0" }, "Z6060K2": { "Z1K1": "Z13518", "Z13518K1": "0" }, "Z6060K3": { "Z1K1": "Z13518", "Z13518K1": "0" } } }, "Z6064K2": { "Z1K1": "Z6062", "Z6062K1": { "Z1K1": "Z6091", "Z6091K1": "Q577" } }, "Z6064K3": { "Z1K1": "Z13518", "Z13518K1": "0" }, "Z6064K4": { "Z1K1": "Z13518", "Z13518K1": "0" }, "Z6064K5": { "Z1K1": "Z16683", "Z16683K1": "Z16661", "Z16683K2": { "Z1K1": "Z13518", "Z13518K1": "0" } }, "Z6064K6": { "Z1K1": "Z6063", "Z6063K1": { "Z1K1": "Z6091", "Z6091K1": "Q1985727" } } }, "Z6007K3": { "Z1K1": "Z6020", "Z6020K1": "Z6021" } }, "Z46926K3": { "Z1K1": "Z60", "Z60K1": "dag" } } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K2": "piligu yuuni 1891 hal yuuni 1893" } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Temporal adverbial for a time range: Dagbani from 1891 to 1893" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 1jiqvlhwza9we4leeq91bs4m2wkxqmp Z48032 0 101744 334076 2026-10-28T13:26:26Z Jsamwrites 938 Create Sentence for item and property: Dagbani developer, passive 334076 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48032" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z46964", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z11K2" }, "Z803K2": { "Z1K1": "Z7", "Z7K1": "Z46964", "Z46964K1": { "Z1K1": "Z6091", "Z6091K1": "Q2407" }, "Z46964K2": { "Z1K1": "Z6092", "Z6092K1": "P178" }, "Z46964K3": [ "Z39328" ], "Z46964K4": [ "Z39328" ], "Z46964K5": { "Z1K1": "Z60", "Z60K1": "dag" } } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K2": "Bjarne Stroustrup mɛ C++." } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Sentence for item and property: Dagbani developer, passive" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 51x9lsk2raopw15we1k7pd9cszj3mwo Z48033 0 101745 334077 2026-10-28T13:26:28Z Jsamwrites 938 Create History of topic entry, Latin: Q90 334077 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48033" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z47603", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z89K1" }, "Z803K2": { "Z1K1": "Z7", "Z7K1": "Z47603", "Z47603K1": { "Z1K1": "Z6091", "Z6091K1": "Q90" }, "Z47603K2": { "Z1K1": "Z60", "Z60K1": "la" }, "Z47603K3": [ "Z39328" ] } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K2": "Historia: \u003Ca href=\"https://abstract.wikipedia.org/wiki/Q845625\"\u003Ehistoria Lutetiae\u003C/a\u003E" } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "History of topic entry, Latin: Q90" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 80g1ph02uo8rct18jrvg8wbjsjmkbp8 Z48034 0 101746 334078 2026-10-28T13:26:30Z Jsamwrites 938 Create History of topic entry, Malayalam: Q90 334078 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48034" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z47603", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z89K1" }, "Z803K2": { "Z1K1": "Z7", "Z7K1": "Z47603", "Z47603K1": { "Z1K1": "Z6091", "Z6091K1": "Q90" }, "Z47603K2": { "Z1K1": "Z60", "Z60K1": "ml" }, "Z47603K3": [ "Z39328" ] } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K2": "ചരിത്രം: \u003Ca href=\"https://abstract.wikipedia.org/wiki/Q845625\"\u003Eപാരിസിന്റെ ചരിത്രം\u003C/a\u003E" } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "History of topic entry, Malayalam: Q90" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } qybgk78hegmgr1kk16ntdxk22au11zj Z48035 0 101747 334080 2026-10-28T13:27:16Z Jsamwrites 938 Create History of topic entry, Igbo: Q90 334080 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48035" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z47603", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z89K1" }, "Z803K2": { "Z1K1": "Z7", "Z7K1": "Z47603", "Z47603K1": { "Z1K1": "Z6091", "Z6091K1": "Q90" }, "Z47603K2": { "Z1K1": "Z60", "Z60K1": "ig" }, "Z47603K3": [ "Z39328" ] } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K2": "Akụkọ ihe mere eme: \u003Ca href=\"https://abstract.wikipedia.org/wiki/Q845625\"\u003Eakụkọ ihe mere eme nke Paris\u003C/a\u003E" } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "History of topic entry, Igbo: Q90" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } b10nqgoktlj77kcsnnaxqzp5s214gal Z48036 0 101748 334083 2026-10-28T13:27:38Z 鈴音雨 101019 Tester: people meaning persons is already plural (plurale tantum) 334083 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48036" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z44312", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z44312", "Z44312K1": { "Z1K1": "Z7", "Z7K1": "Z6825", "Z6825K1": { "Z1K1": "Z6095", "Z6095K1": "L46325" } }, "Z44312K2": { "Z1K1": "Z6091", "Z6091K1": "Q134601727" } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K2": "people" } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "people for persons, plurale tantum: people" }, { "Z1K1": "Z11", "Z11K1": "Z1830", "Z11K2": "人々 (複数形のみ): people" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } hwarmem8zjz689h7cxd00khecsiowi4 Z48037 0 101749 334084 2026-10-28T13:27:50Z 鈴音雨 101019 Tester: a passive with the place as topic keeps its agent 334084 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48037" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z44346", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z44346", "Z44346K1": { "Z1K1": "Z6091", "Z6091K1": "Q141900546" }, "Z44346K2": { "Z1K1": "Z6091", "Z6091K1": "Q140402519" }, "Z44346K3": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q140402518" }, { "Z1K1": "Z6091", "Z6091K1": "Q140402519" } ], "Z44346K4": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q113828342" }, { "Z1K1": "Z6091", "Z6091K1": "Q841337" } ], "Z44346K5": { "Z1K1": "Z6091", "Z6091K1": "Q192613" }, "Z44346K6": { "Z1K1": "Z40", "Z40K1": "Z41" }, "Z44346K7": { "Z1K1": "Z40", "Z40K1": "Z41" }, "Z44346K8": { "Z1K1": "Z40", "Z40K1": "Z41" }, "Z44346K9": [ "Z6091" ], "Z44346K10": [ "Z6091" ], "Z44346K11": "Z1002" }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z14392", "Z14392K2": { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "The Japanese archipelago has been inhabited by endemic species." } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "[en] endemic species inhabiting the archipelago" }, { "Z1K1": "Z11", "Z11K1": "Z1830", "Z11K2": "[en] 固有種の生息: by endemic species" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } eo2zyrnfh5wb67pr98it5a6y1e8oq6f Z48038 0 101750 334085 2026-10-28T13:28:02Z 鈴音雨 101019 Tester: the Japanese clause picks 生息する and marks the place with に 334085 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48038" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z44337", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z44337", "Z44337K1": { "Z1K1": "Z6091", "Z6091K1": "Q141900546" }, "Z44337K2": { "Z1K1": "Z6091", "Z6091K1": "Q140402519" }, "Z44337K3": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q140402518" }, { "Z1K1": "Z6091", "Z6091K1": "Q140402519" } ], "Z44337K4": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q113828342" }, { "Z1K1": "Z6091", "Z6091K1": "Q841337" } ], "Z44337K5": { "Z1K1": "Z6091", "Z6091K1": "Q192613" }, "Z44337K6": { "Z1K1": "Z40", "Z40K1": "Z41" }, "Z44337K7": { "Z1K1": "Z40", "Z40K1": "Z41" }, "Z44337K8": { "Z1K1": "Z40", "Z40K1": "Z41" }, "Z44337K9": [ "Z6091" ], "Z44337K10": [ "Z6091" ], "Z44337K11": "Z1830" }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z14392", "Z14392K2": { "Z1K1": "Z11", "Z11K1": "Z1830", "Z11K2": "日本列島には固有種が生息している。" } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "[ja] endemic species inhabiting the archipelago" }, { "Z1K1": "Z11", "Z11K1": "Z1830", "Z11K2": "[ja] 固有種の生息: 日本列島には" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 38ra8ocex6wts2ll08kaf0e9u1urdzn Z48039 0 101751 334096 2026-10-28T13:34:07Z Artsiom91 2118 new testcase 334096 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48039" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z48025", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z48025", "Z48025K1": { "Z1K1": "Z7", "Z7K1": "Z811", "Z811K1": { "Z1K1": "Z7", "Z7K1": "Z29691", "Z29691K1": { "Z1K1": "Z7", "Z7K1": "Z30120", "Z30120K1": { "Z1K1": "Z6091", "Z6091K1": "Q17" }, "Z30120K2": [ "Z6030", "Z6036" ], "Z30120K3": [ "Z60" ], "Z30120K4": [ "Z6092", { "Z1K1": "Z6092", "Z6092K1": "P610" } ] }, "Z29691K2": { "Z1K1": "Z6092", "Z6092K1": "P610" } } }, "Z48025K2": [ "Z6092", { "Z1K1": "Z6092", "Z6092K1": "P2044" } ] }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K2": "Фудзияма, её высота над уровнем моря 3776 м" } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1005", "Z11K2": "[ru] её высота" }, { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "[ru] with elevation" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } kmyk4pwcvqh4x0yxjgli4napbufi9qc 334113 334096 2026-10-28T14:07:31Z Artsiom91 2118 non-breaking space 334113 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48039" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z48025", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z48025", "Z48025K1": { "Z1K1": "Z7", "Z7K1": "Z811", "Z811K1": { "Z1K1": "Z7", "Z7K1": "Z29691", "Z29691K1": { "Z1K1": "Z7", "Z7K1": "Z30120", "Z30120K1": { "Z1K1": "Z6091", "Z6091K1": "Q17" }, "Z30120K2": [ "Z6030", "Z6036" ], "Z30120K3": [ "Z60" ], "Z30120K4": [ "Z6092", { "Z1K1": "Z6092", "Z6092K1": "P610" } ] }, "Z29691K2": { "Z1K1": "Z6092", "Z6092K1": "P610" } } }, "Z48025K2": [ "Z6092", { "Z1K1": "Z6092", "Z6092K1": "P2044" } ] }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K2": "Фудзияма, её высота над уровнем моря 3776 м" } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1005", "Z11K2": "[ru] её высота" }, { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "[ru] with elevation" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 2wu5yeb11e2xysmmx22s2pny67v5awe Z48040 0 101752 334099 2026-10-28T13:39:35Z Artsiom91 2118 new testcase 334099 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48040" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z47790", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z47790", "Z47790K1": { "Z1K1": "Z6092", "Z6092K1": "P1589" }, "Z47790K2": { "Z1K1": "Z6091", "Z6091K1": "Q159" }, "Z47790K3": "", "Z47790K4": { "Z1K1": "Z6091", "Z6091K1": "Q192613" }, "Z47790K5": [ "Z6092" ] }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K2": "глубочайшая точка — Каспийское море" } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1005", "Z11K2": "глубочайшая точка — Каспийское море" }, { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "[en] глубочайшая точка — Каспийское море" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 5h9kjxp0ieuanbd6amogy5ob9eeppxc 334115 334099 2026-10-28T15:16:47Z ReXLer 39813 334115 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48040" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z47790", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z47790", "Z47790K1": { "Z1K1": "Z6092", "Z6092K1": "P1589" }, "Z47790K2": { "Z1K1": "Z6091", "Z6091K1": "Q159" }, "Z47790K3": "", "Z47790K4": { "Z1K1": "Z6091", "Z6091K1": "Q192613" }, "Z47790K5": [ "Z6092" ] }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K2": "глубочайшая точка — Каспийское море" } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1005", "Z11K2": "глубочайшая точка — Каспийское море" }, { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "[ru] глубочайшая точка — Каспийское море" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } e3opvabviqd4jr5zrrzz7krskgid048 Z48041 0 101753 334105 2026-10-28T13:49:25Z 鈴音雨 101019 Tester: a leading article is lowercased after a discourse adverb 334105 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48041" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z43184", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z43184", "Z43184K1": { "Z1K1": "Z89", "Z89K1": "\u003Cspan\u003EThe \u003Ca href=\"https://abstract.wikipedia.org/wiki/Q841337\"\u003EJapanese archipelago\u003C/a\u003E has been inhabited.\u003C/span\u003E" } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z877", "Z877K2": { "Z1K1": "Z89", "Z89K1": "\u003Cspan\u003Ethe \u003Ca href=\"https://abstract.wikipedia.org/wiki/Q841337\"\u003EJapanese archipelago\u003C/a\u003E has been inhabited.\u003C/span\u003E" } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "leading article: lowercased" }, { "Z1K1": "Z11", "Z11K1": "Z1830", "Z11K2": "先頭の冠詞: 小文字にする" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 2pvynxsbepx7wvu8x7wlqvoqkg9ne72 Z48042 0 101754 334106 2026-10-28T13:49:37Z 鈴音雨 101019 Tester: a name that merely starts with the letters of an article keeps its capital 334106 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48042" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z43184", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z43184", "Z43184K1": { "Z1K1": "Z89", "Z89K1": "\u003Cspan\u003ETheodore Roosevelt was here.\u003C/span\u003E" } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z877", "Z877K2": { "Z1K1": "Z89", "Z89K1": "\u003Cspan\u003ETheodore Roosevelt was here.\u003C/span\u003E" } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "name starting with The: kept" }, { "Z1K1": "Z11", "Z11K1": "Z1830", "Z11K2": "The で始まる名前: そのまま" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 34qw7i4kkrjc03jz6ygukeo75t6p2mw Z48043 0 101755 334107 2026-10-28T13:50:03Z Artsiom91 2118 new testcase 334107 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48043" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z47788", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z47788", "Z47788K1": { "Z1K1": "Z6091", "Z6091K1": "Q159" }, "Z47788K2": { "Z1K1": "Z40", "Z40K1": "Z42" }, "Z47788K3": [ "Z6092", { "Z1K1": "Z6092", "Z6092K1": "P1589" } ], "Z47788K4": [ "Z6092", { "Z1K1": "Z6092", "Z6092K1": "P2044" } ], "Z47788K5": { "Z1K1": "Z6091", "Z6091K1": "Q192613" }, "Z47788K6": "Z1005" }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z14392", "Z14392K2": { "Z1K1": "Z11", "Z11K1": "Z1005", "Z11K2": "Глубочайшая точка России — Каспийское море, его высота над уровнем моря -28 м." } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1005", "Z11K2": "[ru] глубочайшая точка России" }, { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "[ru] глубочайшая точка России" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } kz2d6o5hmcn5cjk8wr3f2ghupy5r44m 334114 334107 2026-10-28T14:07:58Z Artsiom91 2118 non-breaking space 334114 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48043" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z47788", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z47788", "Z47788K1": { "Z1K1": "Z6091", "Z6091K1": "Q159" }, "Z47788K2": { "Z1K1": "Z40", "Z40K1": "Z42" }, "Z47788K3": [ "Z6092", { "Z1K1": "Z6092", "Z6092K1": "P1589" } ], "Z47788K4": [ "Z6092", { "Z1K1": "Z6092", "Z6092K1": "P2044" } ], "Z47788K5": { "Z1K1": "Z6091", "Z6091K1": "Q192613" }, "Z47788K6": "Z1005" }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z14392", "Z14392K2": { "Z1K1": "Z11", "Z11K1": "Z1005", "Z11K2": "Глубочайшая точка России — Каспийское море, его высота над уровнем моря -28 м." } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1005", "Z11K2": "[ru] глубочайшая точка России" }, { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "[ru] глубочайшая точка России" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } iuc2l1ar862nls1zd7vyqjsgqajz2tp Z48044 0 101756 334116 2026-10-28T15:46:20Z Jsamwrites 938 Create Operating system sentence (HTML), Latin: Inkscape 334116 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48044" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z47655", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z89K1" }, "Z803K2": { "Z1K1": "Z7", "Z7K1": "Z47655", "Z47655K1": { "Z1K1": "Z6091", "Z6091K1": "Q8041" }, "Z47655K2": { "Z1K1": "Z60", "Z60K1": "la" }, "Z47655K3": [ "Z39328" ] } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K2": "\u003Ca href=\"https://abstract.wikipedia.org/wiki/Q8041\"\u003EInkscape\u003C/a\u003E in \u003Ca href=\"https://abstract.wikipedia.org/wiki/Q388\"\u003ELinux\u003C/a\u003E, \u003Ca href=\"https://abstract.wikipedia.org/wiki/Q1406\"\u003EMicrosoft Windows\u003C/a\u003E et alia currit." } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Operating system sentence (HTML), Latin: Inkscape" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 5baouepvsqzg5i44r3kb358x6qwza8h Z48045 0 101757 334117 2026-10-28T15:46:26Z Jsamwrites 938 Create Operating system sentence (HTML), Dagbani: Inkscape 334117 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48045" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z47655", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z89K1" }, "Z803K2": { "Z1K1": "Z7", "Z7K1": "Z47655", "Z47655K1": { "Z1K1": "Z6091", "Z6091K1": "Q8041" }, "Z47655K2": { "Z1K1": "Z60", "Z60K1": "dag" }, "Z47655K3": [ "Z39328" ] } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K2": "\u003Ca href=\"https://abstract.wikipedia.org/wiki/Q8041\"\u003EInkscape\u003C/a\u003E tumda \u003Ca href=\"https://abstract.wikipedia.org/wiki/Q388\"\u003ELinux\u003C/a\u003E, \u003Ca href=\"https://abstract.wikipedia.org/wiki/Q1406\"\u003EMicrosoft Windows\u003C/a\u003E mini shɛba zuɣu." } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Operating system sentence (HTML), Dagbani: Inkscape" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } qbwm4584pzi1h9g8kg2m4104os3bi6m Z48046 0 101758 334118 2026-10-28T15:46:31Z Jsamwrites 938 Create Founder sentence (HTML), Dagbani: Google 334118 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48046" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z47647", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z89K1" }, "Z803K2": { "Z1K1": "Z7", "Z7K1": "Z47647", "Z47647K1": { "Z1K1": "Z6091", "Z6091K1": "Q95" }, "Z47647K2": { "Z1K1": "Z60", "Z60K1": "dag" }, "Z47647K3": [ "Z39328" ] } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K2": "\u003Ca href=\"https://abstract.wikipedia.org/wiki/Q92764\"\u003ESergey Brin\u003C/a\u003E mini \u003Ca href=\"https://abstract.wikipedia.org/wiki/Q4934\"\u003ELarry Page\u003C/a\u003E daa kpaɣi \u003Ca href=\"https://abstract.wikipedia.org/wiki/Q95\"\u003EGoogle\u003C/a\u003E." } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Founder sentence (HTML), Dagbani: Google" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 1ncve5quvdf21nb6ob70le20dq7a72w Z48047 0 101759 334119 2026-10-28T15:46:42Z Jsamwrites 938 Create History of topic entry, Dagbani: Q90 334119 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48047" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z47603", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z89K1" }, "Z803K2": { "Z1K1": "Z7", "Z7K1": "Z47603", "Z47603K1": { "Z1K1": "Z6091", "Z6091K1": "Q90" }, "Z47603K2": { "Z1K1": "Z60", "Z60K1": "dag" }, "Z47603K3": [ "Z39328" ] } }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K2": "Taarihi: \u003Ca href=\"https://abstract.wikipedia.org/wiki/Q845625\"\u003EParis taarihi\u003C/a\u003E" } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "History of topic entry, Dagbani: Q90" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ehbkv90czoywgdwl9f5urn0uvzne8cs Z48048 0 101760 334123 2026-10-28T20:04:14Z Jsamwrites 938 Create Determiner strings from lexeme, French: feminine singular la 334123 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48048" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z45751", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z45751", "Z45751K1": { "Z1K1": "Z6095", "Z6095K1": "L2770" }, "Z45751K2": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q110786" }, { "Z1K1": "Z6091", "Z6091K1": "Q1775415" } ] }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z889", "Z889K2": [ "Z6", "la" ], "Z889K3": "Z18683" } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Determiner strings from lexeme, French: feminine singular la" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } kyifbsln4wn8qftbb0ymuw9l9lzb7g1 Z48049 0 101761 334124 2026-10-28T20:04:19Z Jsamwrites 938 Create Determiner strings from lexeme, Latin: nominative masculine singular hic 334124 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48049" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z45751", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z45751", "Z45751K1": { "Z1K1": "Z6095", "Z6095K1": "L275231" }, "Z45751K2": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q110786" }, { "Z1K1": "Z6091", "Z6091K1": "Q131105" }, { "Z1K1": "Z6091", "Z6091K1": "Q499327" } ] }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z889", "Z889K2": [ "Z6", "hic" ], "Z889K3": "Z18683" } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Determiner strings from lexeme, Latin: nominative masculine singular hic" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } salm5t6hsxnlryosssnbmbt88bdghzn Z48050 0 101762 334125 2026-10-28T20:04:23Z Jsamwrites 938 Create Determiner strings from lexeme, Malayalam: demonstrative ഈ 334125 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48050" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z45751", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z45751", "Z45751K1": { "Z1K1": "Z6095", "Z6095K1": "L300678" }, "Z45751K2": [ "Z6091" ] }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z889", "Z889K2": [ "Z6", "ഈ" ], "Z889K3": "Z18683" } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Determiner strings from lexeme, Malayalam: demonstrative ഈ" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } cmqqis76ddlpln8lra6atj01c5h4ntm Z48051 0 101763 334126 2026-10-28T20:04:28Z Jsamwrites 938 Create Determiner strings from lexeme, Igbo: quantifier ụfọdụ 334126 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48051" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z45751", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z45751", "Z45751K1": { "Z1K1": "Z6095", "Z6095K1": "L624258" }, "Z45751K2": [ "Z6091" ] }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z889", "Z889K2": [ "Z6", "ụfọdụ" ], "Z889K3": "Z18683" } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Determiner strings from lexeme, Igbo: quantifier ụfọdụ" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 66lzj6su69vqanob3qpaf6xvnr55cha Z48052 0 101764 334127 2026-10-28T20:04:32Z Jsamwrites 938 Create Determiner strings from lexeme, Dagbani: singular demonstrative ŋɔ 334127 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48052" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z45751", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z45751", "Z45751K1": { "Z1K1": "Z6095", "Z6095K1": "L1216827" }, "Z45751K2": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q110786" } ] }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z889", "Z889K2": [ "Z6", "ŋɔ" ], "Z889K3": "Z18683" } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Determiner strings from lexeme, Dagbani: singular demonstrative ŋɔ" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } js3axn3mh9d3lagx3ggeapcuti1x2ny Z48053 0 101765 334128 2026-10-28T20:04:37Z Jsamwrites 938 Create Determiner string from lexeme, French: feminine singular la 334128 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48053" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z45763", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z45763", "Z45763K1": { "Z1K1": "Z6095", "Z6095K1": "L2770" }, "Z45763K2": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q110786" }, { "Z1K1": "Z6091", "Z6091K1": "Q1775415" } ] }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K2": "la" } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Determiner string from lexeme, French: feminine singular la" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } p6il5oeoeuydlprdcdb9i0mb2crnh8b Z48054 0 101766 334129 2026-10-28T20:04:42Z Jsamwrites 938 Create Determiner string from lexeme, Latin: nominative masculine singular hic 334129 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48054" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z45763", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z45763", "Z45763K1": { "Z1K1": "Z6095", "Z6095K1": "L275231" }, "Z45763K2": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q110786" }, { "Z1K1": "Z6091", "Z6091K1": "Q131105" }, { "Z1K1": "Z6091", "Z6091K1": "Q499327" } ] }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K2": "hic" } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Determiner string from lexeme, Latin: nominative masculine singular hic" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } c2uc03l131pa3qed1wtzr58p9n5vs7r Z48055 0 101767 334130 2026-10-28T20:04:46Z Jsamwrites 938 Create Determiner string from lexeme, Malayalam: demonstrative ഈ 334130 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48055" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z45763", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z45763", "Z45763K1": { "Z1K1": "Z6095", "Z6095K1": "L300678" }, "Z45763K2": [ "Z6091" ] }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K2": "ഈ" } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Determiner string from lexeme, Malayalam: demonstrative ഈ" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 8idvxishgx7houa26ts8n501zaz9qd4 Z48056 0 101768 334131 2026-10-28T20:04:50Z Jsamwrites 938 Create Determiner string from lexeme, Igbo: quantifier ụfọdụ 334131 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48056" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z45763", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z45763", "Z45763K1": { "Z1K1": "Z6095", "Z6095K1": "L624258" }, "Z45763K2": [ "Z6091" ] }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K2": "ụfọdụ" } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Determiner string from lexeme, Igbo: quantifier ụfọdụ" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } p88qn5ij83vk8oqt6wxazkzkgevi7ov Z48057 0 101769 334132 2026-10-28T20:04:55Z Jsamwrites 938 Create Determiner string from lexeme, Dagbani: singular demonstrative ŋɔ 334132 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48057" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z45763", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z45763", "Z45763K1": { "Z1K1": "Z6095", "Z6095K1": "L1216827" }, "Z45763K2": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q110786" } ] }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K2": "ŋɔ" } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Determiner string from lexeme, Dagbani: singular demonstrative ŋɔ" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } lpgwl6lw14y0r56510xfznr144zolo8 Translations:Wikifunctions:Status updates/2026-10-25/10/de 1198 101770 334135 2026-10-28T20:19:02Z Ameisenigel 44 Created page with "Aufgrund der diese Woche bekannt gewordenen [[:de:PHP2Shell|PHP-Schwachstellen]] haben wir beschlossen, von weiteren Einführungen abzusehen, ausgenommen sicherheitskritische Änderungen." 334135 wikitext text/x-wiki Aufgrund der diese Woche bekannt gewordenen [[:de:PHP2Shell|PHP-Schwachstellen]] haben wir beschlossen, von weiteren Einführungen abzusehen, ausgenommen sicherheitskritische Änderungen. oaszmpgexx5akwi2xc6xe3opho1bud8 Translations:Wikifunctions:Status updates/2026-10-25/11/de 1198 101771 334137 2026-10-28T20:19:20Z Ameisenigel 44 Created page with "=== Aufzeichnung des Freiwilligentreffens im Oktober ===" 334137 wikitext text/x-wiki === Aufzeichnung des Freiwilligentreffens im Oktober === f6idevzbpixmc60gb0inkf74lwo0o2n Translations:Wikifunctions:How to create implementations/337/de 1198 101772 334139 2026-10-28T20:25:42Z Ameisenigel 44 Created page with "Die Funktion $1 gibt die erste Lexem-Referenz zurück, basierend auf einer Wikidata-Datenobjekt-Referenz und einer Sprache. Falls für diese Kombination aus Datenobjekt und Sprache kein Lexem existiert, löst sie einen Fehler vom Typ $2 aus, der drei Schlüssel hat:" 334139 wikitext text/x-wiki Die Funktion $1 gibt die erste Lexem-Referenz zurück, basierend auf einer Wikidata-Datenobjekt-Referenz und einer Sprache. Falls für diese Kombination aus Datenobjekt und Sprache kein Lexem existiert, löst sie einen Fehler vom Typ $2 aus, der drei Schlüssel hat: 4ft525xym3afjn6r5l3dto7f8cir3e9 Translations:Wikifunctions:How to create implementations/338/de 1198 101773 334141 2026-10-28T20:26:24Z Ameisenigel 44 Created page with "'''$1''' ist die QID des angegebenen Wikidata-Datenobjekts" 334141 wikitext text/x-wiki '''$1''' ist die QID des angegebenen Wikidata-Datenobjekts dnmolgb2iklpiv3ac6wzip2tvvlz6lm Translations:Wikifunctions:How to create implementations/339/de 1198 101774 334143 2026-10-28T20:27:22Z Ameisenigel 44 Created page with "'''$1''' ist die verbindende Eigenschaft, in diesem Fall <code>P5137/Objekt für diesen Sinn</code>" 334143 wikitext text/x-wiki '''$1''' ist die verbindende Eigenschaft, in diesem Fall <code>P5137/Objekt für diesen Sinn</code> cbgbl7k0yb95otu1uj62eqatj4auo67 Translations:Wikifunctions:How to create implementations/340/de 1198 101775 334145 2026-10-28T20:27:36Z Ameisenigel 44 Created page with "'''$1''' ist der Sprachcode" 334145 wikitext text/x-wiki '''$1''' ist der Sprachcode r50ynj998jved0aweage95f4vha7qpz Translations:Wikifunctions:How to create implementations/341/de 1198 101776 334147 2026-10-28T20:28:09Z Ameisenigel 44 Created page with "Wenn diese Funktion für ein Wikidata-Lexem aufgerufen wird, das nicht existiert, löst der Aufruf eine Fehlerinstanz wie die folgende aus:" 334147 wikitext text/x-wiki Wenn diese Funktion für ein Wikidata-Lexem aufgerufen wird, das nicht existiert, löst der Aufruf eine Fehlerinstanz wie die folgende aus: hqupwox26y4xcsx0wvgp0g5jmrphl7o Z48058 0 101777 334169 2026-10-28T21:18:35Z Jsamwrites 938 Create Referring noun phrase article language options, English 334169 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48058" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z40", "Z17K2": "Z48058K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "common noun" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6091" }, "Z17K2": "Z48058K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "item and class IDs" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z39358", "Z17K2": "Z48058K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "noun phrase" } ] } } ], "Z8K2": "Z39358", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14" ], "Z8K5": "Z48058" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Referring noun phrase article language options, English" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Language option of Z46640 (English): the article and registered name features for a referring noun phrase, given whether it is a common noun and the item and class IDs." } ] } } 33w3km5nxl4bel85vdbjnt44fe8q766 334177 334169 2026-10-28T21:20:35Z Jsamwrites 938 Added Z48059 to the approved list of implementations 334177 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48058" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z40", "Z17K2": "Z48058K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "common noun" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6091" }, "Z17K2": "Z48058K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "item and class IDs" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z39358", "Z17K2": "Z48058K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "noun phrase" } ] } } ], "Z8K2": "Z39358", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", "Z48059" ], "Z8K5": "Z48058" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Referring noun phrase article language options, English" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Language option of Z46640 (English): the article and registered name features for a referring noun phrase, given whether it is a common noun and the item and class IDs." } ] } } r1krawrk25eejldszabhzy3311ukkdk Z48059 0 101778 334170 2026-10-28T21:18:39Z Jsamwrites 938 Create the implementation of Referring noun phrase article language options, English 334170 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48059" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z48058", "Z14K2": { "Z1K1": "Z7", "Z7K1": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z40", "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6091" }, "Z17K2": "Z8K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } }, { "Z1K1": "Z17", "Z17K1": "Z39358", "Z17K2": "Z8K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": "Z39358", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": { "Z1K1": "Z7", "Z7K1": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z8", "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } }, { "Z1K1": "Z17", "Z17K1": "Z40", "Z17K2": "Z8K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6091" }, "Z17K2": "Z8K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } }, { "Z1K1": "Z17", "Z17K1": "Z39358", "Z17K2": "Z8K4", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": "Z39358", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z13752", "Z13752K1": { "Z1K1": "Z18", "Z18K1": "Z8K3" }, "Z13752K2": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q135976384" } ] }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z21216", "Z21216K1": { "Z1K1": "Z18", "Z18K1": "Z8K1" }, "Z21216K2": { "Z1K1": "Z18", "Z18K1": "Z8K2" }, "Z21216K3": { "Z1K1": "Z18", "Z18K1": "Z8K3" }, "Z21216K4": { "Z1K1": "Z39358", "Z39358K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z39358K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z8K4" } }, "Z39358K2": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z39358K2" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z8K4" } }, "Z39358K3": { "Z1K1": "Z7", "Z7K1": "Z810", "Z810K1": { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q104083" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q146786" } }, "Z810K2": { "Z1K1": "Z7", "Z7K1": "Z872", "Z872K1": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z39328", "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": "Z40", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z10216", "Z10216K1": { "Z1K1": "Z7", "Z7K1": "Z19316", "Z19316K1": { "Z1K1": "Z7", "Z7K1": "Z39342", "Z39342K1": { "Z1K1": "Z18", "Z18K1": "Z8K1" } }, "Z19316K2": { "Z1K1": "Z6091", "Z6091K1": "Q104083" } } } } ], "Z8K5": "Z8" }, "Z872K2": { "Z1K1": "Z7", "Z7K1": "Z39371", "Z39371K1": { "Z1K1": "Z18", "Z18K1": "Z8K4" } } } }, "Z39358K4": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z39358K4" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z8K4" } } } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z21216", "Z21216K1": { "Z1K1": "Z18", "Z18K1": "Z8K1" }, "Z21216K2": { "Z1K1": "Z18", "Z18K1": "Z8K2" }, "Z21216K3": { "Z1K1": "Z18", "Z18K1": "Z8K3" }, "Z21216K4": { "Z1K1": "Z18", "Z18K1": "Z8K4" } } } } ], "Z8K5": "Z8" }, "Z8K1": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z40", "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6091" }, "Z17K2": "Z8K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } }, { "Z1K1": "Z17", "Z17K1": "Z39358", "Z17K2": "Z8K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": "Z39358", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": { "Z1K1": "Z7", "Z7K1": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z8", "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } }, { "Z1K1": "Z17", "Z17K1": "Z40", "Z17K2": "Z8K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6091" }, "Z17K2": "Z8K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } }, { "Z1K1": "Z17", "Z17K1": "Z39358", "Z17K2": "Z8K4", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": "Z39358", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z13752", "Z13752K1": { "Z1K1": "Z18", "Z18K1": "Z8K3" }, "Z13752K2": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q47018901" }, { "Z1K1": "Z6091", "Z6091K1": "Q1747944" } ] }, "Z802K2": { "Z1K1": "Z18", "Z18K1": "Z8K4" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z21216", "Z21216K1": { "Z1K1": "Z18", "Z18K1": "Z8K1" }, "Z21216K2": { "Z1K1": "Z18", "Z18K1": "Z8K2" }, "Z21216K3": { "Z1K1": "Z18", "Z18K1": "Z8K3" }, "Z21216K4": { "Z1K1": "Z18", "Z18K1": "Z8K4" } } } } ], "Z8K5": "Z8" }, "Z8K1": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z40", "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6091" }, "Z17K2": "Z8K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } }, { "Z1K1": "Z17", "Z17K1": "Z39358", "Z17K2": "Z8K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": "Z39358", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z18", "Z18K1": "Z8K1" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z13752", "Z13752K1": { "Z1K1": "Z18", "Z18K1": "Z8K2" }, "Z13752K2": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q43229" }, { "Z1K1": "Z6091", "Z6091K1": "Q484652" }, { "Z1K1": "Z6091", "Z6091K1": "Q3918" }, { "Z1K1": "Z6091", "Z6091K1": "Q3551775" }, { "Z1K1": "Z6091", "Z6091K1": "Q4671277" }, { "Z1K1": "Z6091", "Z6091K1": "Q157031" }, { "Z1K1": "Z6091", "Z6091K1": "Q163740" }, { "Z1K1": "Z6091", "Z6091K1": "Q708676" }, { "Z1K1": "Z6091", "Z6091K1": "Q46831" }, { "Z1K1": "Z6091", "Z6091K1": "Q4022" }, { "Z1K1": "Z6091", "Z6091K1": "Q36784" }, { "Z1K1": "Z6091", "Z6091K1": "Q133311" }, { "Z1K1": "Z6091", "Z6091K1": "Q41710" }, { "Z1K1": "Z6091", "Z6091K1": "Q1440476" }, { "Z1K1": "Z6091", "Z6091K1": "Q1440300" }, { "Z1K1": "Z6091", "Z6091K1": "Q143912" }, { "Z1K1": "Z6091", "Z6091K1": "Q702842" }, { "Z1K1": "Z6091", "Z6091K1": "Q33506" }, { "Z1K1": "Z6091", "Z6091K1": "Q48349" }, { "Z1K1": "Z6091", "Z6091K1": "Q7191" }, { "Z1K1": "Z6091", "Z6091K1": "Q386208" }, { "Z1K1": "Z6091", "Z6091K1": "Q86860" }, { "Z1K1": "Z6091", "Z6091K1": "Q12973014" }, { "Z1K1": "Z6091", "Z6091K1": "Q13027888" }, { "Z1K1": "Z6091", "Z6091K1": "Q13393265" }, { "Z1K1": "Z6091", "Z6091K1": "Q17156793" }, { "Z1K1": "Z6091", "Z6091K1": "Q4498974" }, { "Z1K1": "Z6091", "Z6091K1": "Q476028" }, { "Z1K1": "Z6091", "Z6091K1": "Q12418" }, { "Z1K1": "Z6091", "Z6091K1": "Q8275" }, { "Z1K1": "Z6091", "Z6091K1": "Q158075" }, { "Z1K1": "Z6091", "Z6091K1": "Q8767" }, { "Z1K1": "Z6091", "Z6091K1": "Q5503" }, { "Z1K1": "Z6091", "Z6091K1": "Q135976384" } ] }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z13752", "Z13752K1": { "Z1K1": "Z18", "Z18K1": "Z8K2" }, "Z13752K2": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q43229" }, { "Z1K1": "Z6091", "Z6091K1": "Q484652" }, { "Z1K1": "Z6091", "Z6091K1": "Q3918" }, { "Z1K1": "Z6091", "Z6091K1": "Q3551775" }, { "Z1K1": "Z6091", "Z6091K1": "Q4671277" }, { "Z1K1": "Z6091", "Z6091K1": "Q157031" }, { "Z1K1": "Z6091", "Z6091K1": "Q163740" }, { "Z1K1": "Z6091", "Z6091K1": "Q708676" }, { "Z1K1": "Z6091", "Z6091K1": "Q46831" }, { "Z1K1": "Z6091", "Z6091K1": "Q4022" }, { "Z1K1": "Z6091", "Z6091K1": "Q36784" }, { "Z1K1": "Z6091", "Z6091K1": "Q133311" }, { "Z1K1": "Z6091", "Z6091K1": "Q41710" }, { "Z1K1": "Z6091", "Z6091K1": "Q1440476" }, { "Z1K1": "Z6091", "Z6091K1": "Q1440300" }, { "Z1K1": "Z6091", "Z6091K1": "Q143912" }, { "Z1K1": "Z6091", "Z6091K1": "Q702842" }, { "Z1K1": "Z6091", "Z6091K1": "Q33506" }, { "Z1K1": "Z6091", "Z6091K1": "Q48349" }, { "Z1K1": "Z6091", "Z6091K1": "Q7191" }, { "Z1K1": "Z6091", "Z6091K1": "Q386208" }, { "Z1K1": "Z6091", "Z6091K1": "Q86860" }, { "Z1K1": "Z6091", "Z6091K1": "Q12973014" }, { "Z1K1": "Z6091", "Z6091K1": "Q13027888" }, { "Z1K1": "Z6091", "Z6091K1": "Q13393265" }, { "Z1K1": "Z6091", "Z6091K1": "Q17156793" }, { "Z1K1": "Z6091", "Z6091K1": "Q4498974" }, { "Z1K1": "Z6091", "Z6091K1": "Q476028" }, { "Z1K1": "Z6091", "Z6091K1": "Q12418" }, { "Z1K1": "Z6091", "Z6091K1": "Q8275" }, { "Z1K1": "Z6091", "Z6091K1": "Q158075" }, { "Z1K1": "Z6091", "Z6091K1": "Q8767" }, { "Z1K1": "Z6091", "Z6091K1": "Q5503" }, { "Z1K1": "Z6091", "Z6091K1": "Q135976384" } ] } }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z46075", "Z46075K1": { "Z1K1": "Z7", "Z7K1": "Z46205", "Z46205K1": { "Z1K1": "Z6095", "Z6095K1": "L2768" }, "Z46205K2": { "Z1K1": "Z60", "Z60K1": "en" } }, "Z46075K2": { "Z1K1": "Z18", "Z18K1": "Z8K3" }, "Z46075K3": { "Z1K1": "Z6096", "Z6096K1": "L2768-S1" } }, "Z802K3": { "Z1K1": "Z18", "Z18K1": "Z8K3" } } } ], "Z8K5": "Z8" }, "Z8K2": { "Z1K1": "Z18", "Z18K1": "Z8K1" }, "Z8K3": { "Z1K1": "Z18", "Z18K1": "Z8K2" }, "Z8K4": { "Z1K1": "Z18", "Z18K1": "Z8K3" } } } ], "Z8K5": "Z8" }, "Z8K2": { "Z1K1": "Z18", "Z18K1": "Z8K1" }, "Z8K3": { "Z1K1": "Z18", "Z18K1": "Z8K2" }, "Z8K4": { "Z1K1": "Z18", "Z18K1": "Z8K3" } } } ], "Z8K5": "Z8" }, "Z8K1": { "Z1K1": "Z18", "Z18K1": "Z48058K1" }, "Z8K2": { "Z1K1": "Z18", "Z18K1": "Z48058K2" }, "Z8K3": { "Z1K1": "Z18", "Z18K1": "Z48058K3" } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Referring noun phrase article language options, English, composition" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 7fldxm4us3dqbgc0g8julwmfhg2nz1d Z48060 0 101779 334171 2026-10-28T21:18:43Z Jsamwrites 938 Create Referring noun phrase article language options, French 334171 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48060" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z40", "Z17K2": "Z48060K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "common noun" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6091" }, "Z17K2": "Z48060K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "item and class IDs" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z39358", "Z17K2": "Z48060K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "noun phrase" } ] } } ], "Z8K2": "Z39358", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14" ], "Z8K5": "Z48060" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Referring noun phrase article language options, French" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Language option of Z46640 (French): the article and registered name features for a referring noun phrase, given whether it is a common noun and the item and class IDs." } ] } } 0osabl03w7k1scgenvo8ztsk3km15y7 334178 334171 2026-10-28T21:20:48Z Jsamwrites 938 Added Z48061 to the approved list of implementations 334178 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48060" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z40", "Z17K2": "Z48060K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "common noun" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6091" }, "Z17K2": "Z48060K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "item and class IDs" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z39358", "Z17K2": "Z48060K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "noun phrase" } ] } } ], "Z8K2": "Z39358", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", "Z48061" ], "Z8K5": "Z48060" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Referring noun phrase article language options, French" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Language option of Z46640 (French): the article and registered name features for a referring noun phrase, given whether it is a common noun and the item and class IDs." } ] } } avjjfzbj14credq21wiob4lub7174lw Z48061 0 101780 334172 2026-10-28T21:18:47Z Jsamwrites 938 Create the implementation of Referring noun phrase article language options, French 334172 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48061" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z48060", "Z14K2": { "Z1K1": "Z7", "Z7K1": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z40", "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6091" }, "Z17K2": "Z8K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } }, { "Z1K1": "Z17", "Z17K1": "Z39358", "Z17K2": "Z8K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": "Z39358", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": { "Z1K1": "Z7", "Z7K1": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z8", "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } }, { "Z1K1": "Z17", "Z17K1": "Z40", "Z17K2": "Z8K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6091" }, "Z17K2": "Z8K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } }, { "Z1K1": "Z17", "Z17K1": "Z39358", "Z17K2": "Z8K4", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": "Z39358", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z13752", "Z13752K1": { "Z1K1": "Z18", "Z18K1": "Z8K3" }, "Z13752K2": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q5503" } ] }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z21216", "Z21216K1": { "Z1K1": "Z18", "Z18K1": "Z8K1" }, "Z21216K2": { "Z1K1": "Z18", "Z18K1": "Z8K2" }, "Z21216K3": { "Z1K1": "Z18", "Z18K1": "Z8K3" }, "Z21216K4": { "Z1K1": "Z39358", "Z39358K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z39358K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z8K4" } }, "Z39358K2": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z39358K2" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z8K4" } }, "Z39358K3": { "Z1K1": "Z7", "Z7K1": "Z810", "Z810K1": { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q162378" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q499327" } }, "Z810K2": { "Z1K1": "Z7", "Z7K1": "Z872", "Z872K1": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z39328", "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": "Z40", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z10216", "Z10216K1": { "Z1K1": "Z7", "Z7K1": "Z19316", "Z19316K1": { "Z1K1": "Z7", "Z7K1": "Z39342", "Z39342K1": { "Z1K1": "Z18", "Z18K1": "Z8K1" } }, "Z19316K2": { "Z1K1": "Z6091", "Z6091K1": "Q162378" } } } } ], "Z8K5": "Z8" }, "Z872K2": { "Z1K1": "Z7", "Z7K1": "Z39371", "Z39371K1": { "Z1K1": "Z18", "Z18K1": "Z8K4" } } } }, "Z39358K4": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z39358K4" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z8K4" } } } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z13752", "Z13752K1": { "Z1K1": "Z18", "Z18K1": "Z8K3" }, "Z13752K2": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q135976384" } ] }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z21216", "Z21216K1": { "Z1K1": "Z18", "Z18K1": "Z8K1" }, "Z21216K2": { "Z1K1": "Z18", "Z18K1": "Z8K2" }, "Z21216K3": { "Z1K1": "Z18", "Z18K1": "Z8K3" }, "Z21216K4": { "Z1K1": "Z39358", "Z39358K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z39358K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z8K4" } }, "Z39358K2": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z39358K2" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z8K4" } }, "Z39358K3": { "Z1K1": "Z7", "Z7K1": "Z810", "Z810K1": { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q162378" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q499327" } }, "Z810K2": { "Z1K1": "Z7", "Z7K1": "Z810", "Z810K1": { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q104083" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q146786" } }, "Z810K2": { "Z1K1": "Z7", "Z7K1": "Z872", "Z872K1": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z39328", "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": "Z40", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z10216", "Z10216K1": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z19316", "Z19316K1": { "Z1K1": "Z7", "Z7K1": "Z39342", "Z39342K1": { "Z1K1": "Z18", "Z18K1": "Z8K1" } }, "Z19316K2": { "Z1K1": "Z6091", "Z6091K1": "Q104083" } }, "Z802K2": { "Z1K1": "Z40", "Z40K1": "Z41" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z19316", "Z19316K1": { "Z1K1": "Z7", "Z7K1": "Z39342", "Z39342K1": { "Z1K1": "Z18", "Z18K1": "Z8K1" } }, "Z19316K2": { "Z1K1": "Z6091", "Z6091K1": "Q162378" } } } } } ], "Z8K5": "Z8" }, "Z872K2": { "Z1K1": "Z7", "Z7K1": "Z39371", "Z39371K1": { "Z1K1": "Z18", "Z18K1": "Z8K4" } } } } }, "Z39358K4": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z39358K4" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z8K4" } } } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z21216", "Z21216K1": { "Z1K1": "Z18", "Z18K1": "Z8K1" }, "Z21216K2": { "Z1K1": "Z18", "Z18K1": "Z8K2" }, "Z21216K3": { "Z1K1": "Z18", "Z18K1": "Z8K3" }, "Z21216K4": { "Z1K1": "Z18", "Z18K1": "Z8K4" } } } } } ], "Z8K5": "Z8" }, "Z8K1": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z40", "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6091" }, "Z17K2": "Z8K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } }, { "Z1K1": "Z17", "Z17K1": "Z39358", "Z17K2": "Z8K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": "Z39358", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": { "Z1K1": "Z7", "Z7K1": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z8", "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } }, { "Z1K1": "Z17", "Z17K1": "Z40", "Z17K2": "Z8K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6091" }, "Z17K2": "Z8K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } }, { "Z1K1": "Z17", "Z17K1": "Z39358", "Z17K2": "Z8K4", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": "Z39358", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z13752", "Z13752K1": { "Z1K1": "Z18", "Z18K1": "Z8K3" }, "Z13752K2": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q47018901" } ] }, "Z802K2": { "Z1K1": "Z18", "Z18K1": "Z8K4" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z21216", "Z21216K1": { "Z1K1": "Z18", "Z18K1": "Z8K1" }, "Z21216K2": { "Z1K1": "Z18", "Z18K1": "Z8K2" }, "Z21216K3": { "Z1K1": "Z18", "Z18K1": "Z8K3" }, "Z21216K4": { "Z1K1": "Z18", "Z18K1": "Z8K4" } } } } ], "Z8K5": "Z8" }, "Z8K1": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z40", "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6091" }, "Z17K2": "Z8K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } }, { "Z1K1": "Z17", "Z17K1": "Z39358", "Z17K2": "Z8K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": "Z39358", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z18", "Z18K1": "Z8K1" }, "Z802K2": { "Z1K1": "Z40", "Z40K1": "Z41" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z13752", "Z13752K1": { "Z1K1": "Z18", "Z18K1": "Z8K2" }, "Z13752K2": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q6256" }, { "Z1K1": "Z6091", "Z6091K1": "Q3624078" }, { "Z1K1": "Z6091", "Z6091K1": "Q43229" }, { "Z1K1": "Z6091", "Z6091K1": "Q484652" }, { "Z1K1": "Z6091", "Z6091K1": "Q3918" }, { "Z1K1": "Z6091", "Z6091K1": "Q3551775" }, { "Z1K1": "Z6091", "Z6091K1": "Q4671277" }, { "Z1K1": "Z6091", "Z6091K1": "Q157031" }, { "Z1K1": "Z6091", "Z6091K1": "Q163740" }, { "Z1K1": "Z6091", "Z6091K1": "Q708676" }, { "Z1K1": "Z6091", "Z6091K1": "Q46831" }, { "Z1K1": "Z6091", "Z6091K1": "Q4022" }, { "Z1K1": "Z6091", "Z6091K1": "Q36784" }, { "Z1K1": "Z6091", "Z6091K1": "Q1440476" }, { "Z1K1": "Z6091", "Z6091K1": "Q1440300" }, { "Z1K1": "Z6091", "Z6091K1": "Q143912" }, { "Z1K1": "Z6091", "Z6091K1": "Q702842" }, { "Z1K1": "Z6091", "Z6091K1": "Q33506" }, { "Z1K1": "Z6091", "Z6091K1": "Q56242215" }, { "Z1K1": "Z6091", "Z6091K1": "Q48349" }, { "Z1K1": "Z6091", "Z6091K1": "Q7191" }, { "Z1K1": "Z6091", "Z6091K1": "Q386208" }, { "Z1K1": "Z6091", "Z6091K1": "Q86860" }, { "Z1K1": "Z6091", "Z6091K1": "Q12973014" }, { "Z1K1": "Z6091", "Z6091K1": "Q13027888" }, { "Z1K1": "Z6091", "Z6091K1": "Q13393265" }, { "Z1K1": "Z6091", "Z6091K1": "Q17156793" }, { "Z1K1": "Z6091", "Z6091K1": "Q4498974" }, { "Z1K1": "Z6091", "Z6091K1": "Q476028" }, { "Z1K1": "Z6091", "Z6091K1": "Q12418" }, { "Z1K1": "Z6091", "Z6091K1": "Q8275" }, { "Z1K1": "Z6091", "Z6091K1": "Q158075" }, { "Z1K1": "Z6091", "Z6091K1": "Q8767" }, { "Z1K1": "Z6091", "Z6091K1": "Q5503" }, { "Z1K1": "Z6091", "Z6091K1": "Q135976384" } ] } }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z10216", "Z10216K1": { "Z1K1": "Z7", "Z7K1": "Z813", "Z813K1": { "Z1K1": "Z7", "Z7K1": "Z872", "Z872K1": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z39328", "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": "Z40", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z19316", "Z19316K1": { "Z1K1": "Z7", "Z7K1": "Z39342", "Z39342K1": { "Z1K1": "Z18", "Z18K1": "Z8K1" } }, "Z19316K2": { "Z1K1": "Z6091", "Z6091K1": "Q162378" } } } ], "Z8K5": "Z8" }, "Z872K2": { "Z1K1": "Z7", "Z7K1": "Z39371", "Z39371K1": { "Z1K1": "Z18", "Z18K1": "Z8K3" } } } } }, "Z802K3": { "Z1K1": "Z40", "Z40K1": "Z42" } }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z46075", "Z46075K1": { "Z1K1": "Z7", "Z7K1": "Z46205", "Z46205K1": { "Z1K1": "Z6095", "Z6095K1": "L2770" }, "Z46205K2": { "Z1K1": "Z60", "Z60K1": "fr" } }, "Z46075K2": { "Z1K1": "Z18", "Z18K1": "Z8K3" }, "Z46075K3": { "Z1K1": "Z6096", "Z6096K1": "L2770-S1" } }, "Z802K3": { "Z1K1": "Z18", "Z18K1": "Z8K3" } } } ], "Z8K5": "Z8" }, "Z8K2": { "Z1K1": "Z18", "Z18K1": "Z8K1" }, "Z8K3": { "Z1K1": "Z18", "Z18K1": "Z8K2" }, "Z8K4": { "Z1K1": "Z18", "Z18K1": "Z8K3" } } } ], "Z8K5": "Z8" }, "Z8K2": { "Z1K1": "Z18", "Z18K1": "Z8K1" }, "Z8K3": { "Z1K1": "Z18", "Z18K1": "Z8K2" }, "Z8K4": { "Z1K1": "Z18", "Z18K1": "Z8K3" } } } ], "Z8K5": "Z8" }, "Z8K1": { "Z1K1": "Z18", "Z18K1": "Z48060K1" }, "Z8K2": { "Z1K1": "Z18", "Z18K1": "Z48060K2" }, "Z8K3": { "Z1K1": "Z18", "Z18K1": "Z48060K3" } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Referring noun phrase article language options, French, composition" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } etag7522erpjj91buq1j0gk0bdh1fc7 Z48062 0 101781 334173 2026-10-28T21:18:50Z Jsamwrites 938 Create Referring noun phrase article language options, Spanish 334173 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48062" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z40", "Z17K2": "Z48062K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "common noun" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6091" }, "Z17K2": "Z48062K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "item and class IDs" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z39358", "Z17K2": "Z48062K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "noun phrase" } ] } } ], "Z8K2": "Z39358", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14" ], "Z8K5": "Z48062" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Referring noun phrase article language options, Spanish" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Language option of Z46640 (Spanish): the article and registered name features for a referring noun phrase, given whether it is a common noun and the item and class IDs." } ] } } spcpe4mnamxpny4dl1qn1p3hxjmib0x 334179 334173 2026-10-28T21:21:03Z Jsamwrites 938 Added Z48063 to the approved list of implementations 334179 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48062" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z40", "Z17K2": "Z48062K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "common noun" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6091" }, "Z17K2": "Z48062K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "item and class IDs" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z39358", "Z17K2": "Z48062K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "noun phrase" } ] } } ], "Z8K2": "Z39358", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", "Z48063" ], "Z8K5": "Z48062" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Referring noun phrase article language options, Spanish" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Language option of Z46640 (Spanish): the article and registered name features for a referring noun phrase, given whether it is a common noun and the item and class IDs." } ] } } qye3o4k2lah3zysnialqwcfxt0eoms4 Z48063 0 101782 334174 2026-10-28T21:18:54Z Jsamwrites 938 Create the implementation of Referring noun phrase article language options, Spanish 334174 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48063" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z48062", "Z14K2": { "Z1K1": "Z7", "Z7K1": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z40", "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6091" }, "Z17K2": "Z8K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } }, { "Z1K1": "Z17", "Z17K1": "Z39358", "Z17K2": "Z8K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": "Z39358", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": { "Z1K1": "Z7", "Z7K1": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z8", "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } }, { "Z1K1": "Z17", "Z17K1": "Z40", "Z17K2": "Z8K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6091" }, "Z17K2": "Z8K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } }, { "Z1K1": "Z17", "Z17K1": "Z39358", "Z17K2": "Z8K4", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": "Z39358", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z13752", "Z13752K1": { "Z1K1": "Z18", "Z18K1": "Z8K3" }, "Z13752K2": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q5503" } ] }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z21216", "Z21216K1": { "Z1K1": "Z18", "Z18K1": "Z8K1" }, "Z21216K2": { "Z1K1": "Z18", "Z18K1": "Z8K2" }, "Z21216K3": { "Z1K1": "Z18", "Z18K1": "Z8K3" }, "Z21216K4": { "Z1K1": "Z39358", "Z39358K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z39358K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z8K4" } }, "Z39358K2": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z39358K2" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z8K4" } }, "Z39358K3": { "Z1K1": "Z7", "Z7K1": "Z810", "Z810K1": { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q162378" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q499327" } }, "Z810K2": { "Z1K1": "Z7", "Z7K1": "Z872", "Z872K1": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z39328", "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": "Z40", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z10216", "Z10216K1": { "Z1K1": "Z7", "Z7K1": "Z19316", "Z19316K1": { "Z1K1": "Z7", "Z7K1": "Z39342", "Z39342K1": { "Z1K1": "Z18", "Z18K1": "Z8K1" } }, "Z19316K2": { "Z1K1": "Z6091", "Z6091K1": "Q162378" } } } } ], "Z8K5": "Z8" }, "Z872K2": { "Z1K1": "Z7", "Z7K1": "Z39371", "Z39371K1": { "Z1K1": "Z18", "Z18K1": "Z8K4" } } } }, "Z39358K4": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z39358K4" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z8K4" } } } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z13752", "Z13752K1": { "Z1K1": "Z18", "Z18K1": "Z8K3" }, "Z13752K2": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q135976384" } ] }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z21216", "Z21216K1": { "Z1K1": "Z18", "Z18K1": "Z8K1" }, "Z21216K2": { "Z1K1": "Z18", "Z18K1": "Z8K2" }, "Z21216K3": { "Z1K1": "Z18", "Z18K1": "Z8K3" }, "Z21216K4": { "Z1K1": "Z39358", "Z39358K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z39358K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z8K4" } }, "Z39358K2": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z39358K2" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z8K4" } }, "Z39358K3": { "Z1K1": "Z7", "Z7K1": "Z810", "Z810K1": { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q162378" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q499327" } }, "Z810K2": { "Z1K1": "Z7", "Z7K1": "Z810", "Z810K1": { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q104083" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q146786" } }, "Z810K2": { "Z1K1": "Z7", "Z7K1": "Z872", "Z872K1": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z39328", "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": "Z40", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z10216", "Z10216K1": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z19316", "Z19316K1": { "Z1K1": "Z7", "Z7K1": "Z39342", "Z39342K1": { "Z1K1": "Z18", "Z18K1": "Z8K1" } }, "Z19316K2": { "Z1K1": "Z6091", "Z6091K1": "Q104083" } }, "Z802K2": { "Z1K1": "Z40", "Z40K1": "Z41" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z19316", "Z19316K1": { "Z1K1": "Z7", "Z7K1": "Z39342", "Z39342K1": { "Z1K1": "Z18", "Z18K1": "Z8K1" } }, "Z19316K2": { "Z1K1": "Z6091", "Z6091K1": "Q162378" } } } } } ], "Z8K5": "Z8" }, "Z872K2": { "Z1K1": "Z7", "Z7K1": "Z39371", "Z39371K1": { "Z1K1": "Z18", "Z18K1": "Z8K4" } } } } }, "Z39358K4": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z39358K4" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z8K4" } } } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z21216", "Z21216K1": { "Z1K1": "Z18", "Z18K1": "Z8K1" }, "Z21216K2": { "Z1K1": "Z18", "Z18K1": "Z8K2" }, "Z21216K3": { "Z1K1": "Z18", "Z18K1": "Z8K3" }, "Z21216K4": { "Z1K1": "Z18", "Z18K1": "Z8K4" } } } } } ], "Z8K5": "Z8" }, "Z8K1": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z40", "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6091" }, "Z17K2": "Z8K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } }, { "Z1K1": "Z17", "Z17K1": "Z39358", "Z17K2": "Z8K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": "Z39358", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": { "Z1K1": "Z7", "Z7K1": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z8", "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } }, { "Z1K1": "Z17", "Z17K1": "Z40", "Z17K2": "Z8K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6091" }, "Z17K2": "Z8K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } }, { "Z1K1": "Z17", "Z17K1": "Z39358", "Z17K2": "Z8K4", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": "Z39358", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z13752", "Z13752K1": { "Z1K1": "Z18", "Z18K1": "Z8K3" }, "Z13752K2": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q47018901" } ] }, "Z802K2": { "Z1K1": "Z18", "Z18K1": "Z8K4" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z21216", "Z21216K1": { "Z1K1": "Z18", "Z18K1": "Z8K1" }, "Z21216K2": { "Z1K1": "Z18", "Z18K1": "Z8K2" }, "Z21216K3": { "Z1K1": "Z18", "Z18K1": "Z8K3" }, "Z21216K4": { "Z1K1": "Z18", "Z18K1": "Z8K4" } } } } ], "Z8K5": "Z8" }, "Z8K1": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z40", "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6091" }, "Z17K2": "Z8K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } }, { "Z1K1": "Z17", "Z17K1": "Z39358", "Z17K2": "Z8K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": "Z39358", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z18", "Z18K1": "Z8K1" }, "Z802K2": { "Z1K1": "Z40", "Z40K1": "Z41" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z13752", "Z13752K1": { "Z1K1": "Z18", "Z18K1": "Z8K2" }, "Z13752K2": [ "Z6091", { "Z1K1": "Z6091", "Z6091K1": "Q43229" }, { "Z1K1": "Z6091", "Z6091K1": "Q484652" }, { "Z1K1": "Z6091", "Z6091K1": "Q3918" }, { "Z1K1": "Z6091", "Z6091K1": "Q3551775" }, { "Z1K1": "Z6091", "Z6091K1": "Q4671277" }, { "Z1K1": "Z6091", "Z6091K1": "Q157031" }, { "Z1K1": "Z6091", "Z6091K1": "Q163740" }, { "Z1K1": "Z6091", "Z6091K1": "Q708676" }, { "Z1K1": "Z6091", "Z6091K1": "Q46831" }, { "Z1K1": "Z6091", "Z6091K1": "Q4022" }, { "Z1K1": "Z6091", "Z6091K1": "Q36784" }, { "Z1K1": "Z6091", "Z6091K1": "Q1440476" }, { "Z1K1": "Z6091", "Z6091K1": "Q1440300" }, { "Z1K1": "Z6091", "Z6091K1": "Q143912" }, { "Z1K1": "Z6091", "Z6091K1": "Q702842" }, { "Z1K1": "Z6091", "Z6091K1": "Q33506" }, { "Z1K1": "Z6091", "Z6091K1": "Q56242215" }, { "Z1K1": "Z6091", "Z6091K1": "Q48349" }, { "Z1K1": "Z6091", "Z6091K1": "Q7191" }, { "Z1K1": "Z6091", "Z6091K1": "Q386208" }, { "Z1K1": "Z6091", "Z6091K1": "Q86860" }, { "Z1K1": "Z6091", "Z6091K1": "Q12973014" }, { "Z1K1": "Z6091", "Z6091K1": "Q13027888" }, { "Z1K1": "Z6091", "Z6091K1": "Q13393265" }, { "Z1K1": "Z6091", "Z6091K1": "Q17156793" }, { "Z1K1": "Z6091", "Z6091K1": "Q4498974" }, { "Z1K1": "Z6091", "Z6091K1": "Q476028" }, { "Z1K1": "Z6091", "Z6091K1": "Q12418" }, { "Z1K1": "Z6091", "Z6091K1": "Q8275" }, { "Z1K1": "Z6091", "Z6091K1": "Q158075" }, { "Z1K1": "Z6091", "Z6091K1": "Q8767" }, { "Z1K1": "Z6091", "Z6091K1": "Q5503" }, { "Z1K1": "Z6091", "Z6091K1": "Q135976384" } ] } }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z10216", "Z10216K1": { "Z1K1": "Z7", "Z7K1": "Z813", "Z813K1": { "Z1K1": "Z7", "Z7K1": "Z872", "Z872K1": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z39328", "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": "Z40", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z19316", "Z19316K1": { "Z1K1": "Z7", "Z7K1": "Z39342", "Z39342K1": { "Z1K1": "Z18", "Z18K1": "Z8K1" } }, "Z19316K2": { "Z1K1": "Z6091", "Z6091K1": "Q162378" } } } ], "Z8K5": "Z8" }, "Z872K2": { "Z1K1": "Z7", "Z7K1": "Z39371", "Z39371K1": { "Z1K1": "Z18", "Z18K1": "Z8K3" } } } } }, "Z802K3": { "Z1K1": "Z40", "Z40K1": "Z42" } }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z46075", "Z46075K1": { "Z1K1": "Z7", "Z7K1": "Z46205", "Z46205K1": { "Z1K1": "Z6095", "Z6095K1": "L11719" }, "Z46205K2": { "Z1K1": "Z60", "Z60K1": "es" } }, "Z46075K2": { "Z1K1": "Z18", "Z18K1": "Z8K3" }, "Z46075K3": { "Z1K1": "Z6096", "Z6096K1": "L11719-S1" } }, "Z802K3": { "Z1K1": "Z18", "Z18K1": "Z8K3" } } } ], "Z8K5": "Z8" }, "Z8K2": { "Z1K1": "Z18", "Z18K1": "Z8K1" }, "Z8K3": { "Z1K1": "Z18", "Z18K1": "Z8K2" }, "Z8K4": { "Z1K1": "Z18", "Z18K1": "Z8K3" } } } ], "Z8K5": "Z8" }, "Z8K2": { "Z1K1": "Z18", "Z18K1": "Z8K1" }, "Z8K3": { "Z1K1": "Z18", "Z18K1": "Z8K2" }, "Z8K4": { "Z1K1": "Z18", "Z18K1": "Z8K3" } } } ], "Z8K5": "Z8" }, "Z8K1": { "Z1K1": "Z18", "Z18K1": "Z48062K1" }, "Z8K2": { "Z1K1": "Z18", "Z18K1": "Z48062K2" }, "Z8K3": { "Z1K1": "Z18", "Z18K1": "Z48062K3" } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Referring noun phrase article language options, Spanish, composition" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } lg4sge05jn8luuqiiuwxlv2ag5nwf1b Z48064 0 101783 334175 2026-10-28T21:18:58Z Jsamwrites 938 Create Referring noun phrase article language options, other languages 334175 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48064" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z40", "Z17K2": "Z48064K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "common noun" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6091" }, "Z17K2": "Z48064K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "item and class IDs" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z39358", "Z17K2": "Z48064K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "noun phrase" } ] } } ], "Z8K2": "Z39358", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14" ], "Z8K5": "Z48064" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Referring noun phrase article language options, other languages" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Language option of Z46640 (other languages): the article and registered name features for a referring noun phrase, given whether it is a common noun and the item and class IDs." } ] } } dfm8c55zeajfjgi0htot92qeibt0d4d 334180 334175 2026-10-28T21:21:18Z Jsamwrites 938 Added Z48065 to the approved list of implementations 334180 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48064" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z40", "Z17K2": "Z48064K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "common noun" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z6091" }, "Z17K2": "Z48064K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "item and class IDs" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z39358", "Z17K2": "Z48064K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "noun phrase" } ] } } ], "Z8K2": "Z39358", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", "Z48065" ], "Z8K5": "Z48064" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Referring noun phrase article language options, other languages" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Language option of Z46640 (other languages): the article and registered name features for a referring noun phrase, given whether it is a common noun and the item and class IDs." } ] } } jnmwqvh8f9y2nhtw6kwgwdtcdi9pwhj Z48065 0 101784 334176 2026-10-28T21:19:01Z Jsamwrites 938 Create the implementation of Referring noun phrase article language options, other languages 334176 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48065" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z48064", "Z14K2": { "Z1K1": "Z18", "Z18K1": "Z48064K3" } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Referring noun phrase article language options, other languages, composition" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } a7bug9owmd7iue57cdvbmvygcu8ckyx Z48066 0 101785 334183 2026-10-28T21:48:40Z Jdforrester (WMF) 4 334183 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48066" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z16273", "Z14K3": { "Z1K1": "Z16", "Z16K1": "Z600", "Z16K2": "function Z16273( Z16273K1, Z16273K2 ) {\n return Z16273K1.Z12K1.find( ( m ) =\u003E m.Z11K1.Z60K1 === Z16273K2.Z60K1 ) ??\n { Z1K1: { Z1K1: 'Z9', Z9K1: 'Z11' }, Z11K1: Z16273K2, Z11K2: '' };\n}" } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "JS quick filter wrap for Z16273" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } aywzexxxk1d361dbshnv01g73nim7ew Z48067 0 101786 334186 2026-10-28T21:50:50Z Jdforrester (WMF) 4 334186 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48067" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z32757", "Z14K3": { "Z1K1": "Z16", "Z16K1": "Z600", "Z16K2": "function Z32757( Z32757K1, Z32757K2 ) {\n return Z32757K1.find( ( s ) =\u003E s.Z31K1.Z60K1 === Z32757K2.Z60K1 ) ??\n { Z1K1: { Z1K1: 'Z9', Z9K1: 'Z31' }, Z31K1: Z32757K2, Z31K2: [] };\n}" } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "JS quick filter implementation of Z32757" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } i6fec3cgxrzu4q3fk3t1zacgv1oymzu Z48068 0 101787 334189 2026-10-28T21:53:40Z Jdforrester (WMF) 4 334189 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48068" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z32757", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z32757", "Z32757K1": [ "Z31" ], "Z32757K2": "Z1001" }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z832", "Z832K2": { "Z1K1": "Z31", "Z31K1": "Z1001", "Z31K2": [ "Z6" ] } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Asking for 1st of an empty list returns empty list" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Note: Typed to Arabic so it's a valid Object." } ] } } spst9t3i4kdfbtk8lsas1smwns3nhmv Z48069 0 101788 334191 2026-10-28T22:01:11Z Jdforrester (WMF) 4 Lengthy Test case for Z32757 334191 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48069" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z32757", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z32757", "Z32757K1": [ "Z31", { "Z1K1": "Z31", "Z31K1": "Z1001", "Z31K2": [ "Z6", "first in ar", "second in ar" ] }, { "Z1K1": "Z31", "Z31K1": "Z1003", "Z31K2": [ "Z6", "first in es", "second in es" ] }, { "Z1K1": "Z31", "Z31K1": "Z1004", "Z31K2": [ "Z6", "first in fr", "second in fr" ] }, { "Z1K1": "Z31", "Z31K1": "Z1005", "Z31K2": [ "Z6", "first in ru", "second in ru" ] }, { "Z1K1": "Z31", "Z31K1": "Z1006", "Z31K2": [ "Z6", "first in zh", "second in zh" ] }, { "Z1K1": "Z31", "Z31K1": "Z1011", "Z31K2": [ "Z6", "first in bn", "second in bn" ] }, { "Z1K1": "Z31", "Z31K1": "Z1012", "Z31K2": [ "Z6", "first in ml", "second in ml" ] }, { "Z1K1": "Z31", "Z31K1": "Z1013", "Z31K2": [ "Z6", "first in ha", "second in ha" ] }, { "Z1K1": "Z31", "Z31K1": "Z1014", "Z31K2": [ "Z6", "first in ig", "second in ig" ] }, { "Z1K1": "Z31", "Z31K1": "Z1015", "Z31K2": [ "Z6", "first in dag", "second in dag" ] }, { "Z1K1": "Z31", "Z31K1": "Z1016", "Z31K2": [ "Z6", "first in bci", "second in bci" ] }, { "Z1K1": "Z31", "Z31K1": "Z1017", "Z31K2": [ "Z6", "first in bom", "second in bom" ] }, { "Z1K1": "Z31", "Z31K1": "Z1018", "Z31K2": [ "Z6", "first in blk", "second in blk" ] }, { "Z1K1": "Z31", "Z31K1": "Z1019", "Z31K2": [ "Z6", "first in guw", "second in guw" ] }, { "Z1K1": "Z31", "Z31K1": "Z1020", "Z31K2": [ "Z6", "first in ksw", "second in ksw" ] }, { "Z1K1": "Z31", "Z31K1": "Z1021", "Z31K2": [ "Z6", "first in no", "second in no" ] }, { "Z1K1": "Z31", "Z31K1": "Z1022", "Z31K2": [ "Z6", "first in saq", "second in saq" ] }, { "Z1K1": "Z31", "Z31K1": "Z1023", "Z31K2": [ "Z6", "first in mak", "second in mak" ] }, { "Z1K1": "Z31", "Z31K1": "Z1024", "Z31K2": [ "Z6", "first in cy", "second in cy" ] }, { "Z1K1": "Z31", "Z31K1": "Z1025", "Z31K2": [ "Z6", "first in pl", "second in pl" ] }, { "Z1K1": "Z31", "Z31K1": "Z1026", "Z31K2": [ "Z6", "first in shy", "second in shy" ] }, { "Z1K1": "Z31", "Z31K1": "Z1027", "Z31K2": [ "Z6", "first in cak", "second in cak" ] }, { "Z1K1": "Z31", "Z31K1": "Z1028", "Z31K2": [ "Z6", "first in snk", "second in snk" ] }, { "Z1K1": "Z31", "Z31K1": "Z1029", "Z31K2": [ "Z6", "first in mwr", "second in mwr" ] }, { "Z1K1": "Z31", "Z31K1": "Z1030", "Z31K2": [ "Z6", "first in vai", "second in vai" ] }, { "Z1K1": "Z31", "Z31K1": "Z1031", "Z31K2": [ "Z6", "first in chn", "second in chn" ] }, { "Z1K1": "Z31", "Z31K1": "Z1032", "Z31K2": [ "Z6", "first in ng", "second in ng" ] }, { "Z1K1": "Z31", "Z31K1": "Z1033", "Z31K2": [ "Z6", "first in ksf", "second in ksf" ] }, { "Z1K1": "Z31", "Z31K1": "Z1034", "Z31K2": [ "Z6", "first in to", "second in to" ] }, { "Z1K1": "Z31", "Z31K1": "Z1035", "Z31K2": [ "Z6", "first in knn", "second in knn" ] }, { "Z1K1": "Z31", "Z31K1": "Z1036", "Z31K2": [ "Z6", "first in gez", "second in gez" ] }, { "Z1K1": "Z31", "Z31K1": "Z1037", "Z31K2": [ "Z6", "first in pt", "second in pt" ] }, { "Z1K1": "Z31", "Z31K1": "Z1038", "Z31K2": [ "Z6", "first in mgh", "second in mgh" ] }, { "Z1K1": "Z31", "Z31K1": "Z1039", "Z31K2": [ "Z6", "first in sw", "second in sw" ] }, { "Z1K1": "Z31", "Z31K1": "Z1040", "Z31K2": [ "Z6", "first in tkr", "second in tkr" ] }, { "Z1K1": "Z31", "Z31K1": "Z1041", "Z31K2": [ "Z6", "first in ken", "second in ken" ] }, { "Z1K1": "Z31", "Z31K1": "Z1042", "Z31K2": [ "Z6", "first in sjd", "second in sjd" ] }, { "Z1K1": "Z31", "Z31K1": "Z1043", "Z31K2": [ "Z6", "first in rof", "second in rof" ] }, { "Z1K1": "Z31", "Z31K1": "Z1044", "Z31K2": [ "Z6", "first in dty", "second in dty" ] }, { "Z1K1": "Z31", "Z31K1": "Z1045", "Z31K2": [ "Z6", "first in ary", "second in ary" ] }, { "Z1K1": "Z31", "Z31K1": "Z1046", "Z31K2": [ "Z6", "first in crh", "second in crh" ] }, { "Z1K1": "Z31", "Z31K1": "Z1047", "Z31K2": [ "Z6", "first in mdr", "second in mdr" ] }, { "Z1K1": "Z31", "Z31K1": "Z1048", "Z31K2": [ "Z6", "first in vi", "second in vi" ] }, { "Z1K1": "Z31", "Z31K1": "Z1049", "Z31K2": [ "Z6", "first in egy", "second in egy" ] }, { "Z1K1": "Z31", "Z31K1": "Z1050", "Z31K2": [ "Z6", "first in nge", "second in nge" ] }, { "Z1K1": "Z31", "Z31K1": "Z1051", "Z31K2": [ "Z6", "first in fi", "second in fi" ] }, { "Z1K1": "Z31", "Z31K1": "Z1052", "Z31K2": [ "Z6", "first in grc", "second in grc" ] }, { "Z1K1": "Z31", "Z31K1": "Z1053", "Z31K2": [ "Z6", "first in si", "second in si" ] }, { "Z1K1": "Z31", "Z31K1": "Z1054", "Z31K2": [ "Z6", "first in ach", "second in ach" ] }, { "Z1K1": "Z31", "Z31K1": "Z1055", "Z31K2": [ "Z6", "first in my", "second in my" ] }, { "Z1K1": "Z31", "Z31K1": "Z1056", "Z31K2": [ "Z6", "first in shy-tfng", "second in shy-tfng" ] }, { "Z1K1": "Z31", "Z31K1": "Z1057", "Z31K2": [ "Z6", "first in pdt", "second in pdt" ] }, { "Z1K1": "Z31", "Z31K1": "Z1058", "Z31K2": [ "Z6", "first in sus", "second in sus" ] }, { "Z1K1": "Z31", "Z31K1": "Z1059", "Z31K2": [ "Z6", "first in oc", "second in oc" ] }, { "Z1K1": "Z31", "Z31K1": "Z1060", "Z31K2": [ "Z6", "first in ia", "second in ia" ] }, { "Z1K1": "Z31", "Z31K1": "Z1061", "Z31K2": [ "Z6", "first in da", "second in da" ] }, { "Z1K1": "Z31", "Z31K1": "Z1062", "Z31K2": [ "Z6", "first in cs", "second in cs" ] }, { "Z1K1": "Z31", "Z31K1": "Z1063", "Z31K2": [ "Z6", "first in gay", "second in gay" ] }, { "Z1K1": "Z31", "Z31K1": "Z1064", "Z31K2": [ "Z6", "first in pro", "second in pro" ] }, { "Z1K1": "Z31", "Z31K1": "Z1065", "Z31K2": [ "Z6", "first in pal", "second in pal" ] }, { "Z1K1": "Z31", "Z31K1": "Z1066", "Z31K2": [ "Z6", "first in kiu", "second in kiu" ] }, { "Z1K1": "Z31", "Z31K1": "Z1067", "Z31K2": [ "Z6", "first in tpi", "second in tpi" ] }, { "Z1K1": "Z31", "Z31K1": "Z1068", "Z31K2": [ "Z6", "first in jut", "second in jut" ] }, { "Z1K1": "Z31", "Z31K1": "Z1069", "Z31K2": [ "Z6", "first in skr-arab", "second in skr-arab" ] }, { "Z1K1": "Z31", "Z31K1": "Z1070", "Z31K2": [ "Z6", "first in kk-tr", "second in kk-tr" ] }, { "Z1K1": "Z31", "Z31K1": "Z1071", "Z31K2": [ "Z6", "first in esu", "second in esu" ] }, { "Z1K1": "Z31", "Z31K1": "Z1072", "Z31K2": [ "Z6", "first in luz", "second in luz" ] }, { "Z1K1": "Z31", "Z31K1": "Z1073", "Z31K2": [ "Z6", "first in wes", "second in wes" ] }, { "Z1K1": "Z31", "Z31K1": "Z1074", "Z31K2": [ "Z6", "first in ny", "second in ny" ] }, { "Z1K1": "Z31", "Z31K1": "Z1075", "Z31K2": [ "Z6", "first in crb", "second in crb" ] }, { "Z1K1": "Z31", "Z31K1": "Z1076", "Z31K2": [ "Z6", "first in syr", "second in syr" ] }, { "Z1K1": "Z31", "Z31K1": "Z1077", "Z31K2": [ "Z6", "first in mde", "second in mde" ] }, { "Z1K1": "Z31", "Z31K1": "Z1078", "Z31K2": [ "Z6", "first in id", "second in id" ] }, { "Z1K1": "Z31", "Z31K1": "Z1079", "Z31K2": [ "Z6", "first in bjn", "second in bjn" ] }, { "Z1K1": "Z31", "Z31K1": "Z1080", "Z31K2": [ "Z6", "first in cnh", "second in cnh" ] }, { "Z1K1": "Z31", "Z31K1": "Z1081", "Z31K2": [ "Z6", "first in agq", "second in agq" ] }, { "Z1K1": "Z31", "Z31K1": "Z1082", "Z31K2": [ "Z6", "first in sdc", "second in sdc" ] }, { "Z1K1": "Z31", "Z31K1": "Z1083", "Z31K2": [ "Z6", "first in pnb", "second in pnb" ] }, { "Z1K1": "Z31", "Z31K1": "Z1084", "Z31K2": [ "Z6", "first in aln", "second in aln" ] }, { "Z1K1": "Z31", "Z31K1": "Z1085", "Z31K2": [ "Z6", "first in tn", "second in tn" ] }, { "Z1K1": "Z31", "Z31K1": "Z1086", "Z31K2": [ "Z6", "first in nxm", "second in nxm" ] }, { "Z1K1": "Z31", "Z31K1": "Z1087", "Z31K2": [ "Z6", "first in om", "second in om" ] }, { "Z1K1": "Z31", "Z31K1": "Z1088", "Z31K2": [ "Z6", "first in dtp", "second in dtp" ] }, { "Z1K1": "Z31", "Z31K1": "Z1089", "Z31K2": [ "Z6", "first in ebu", "second in ebu" ] }, { "Z1K1": "Z31", "Z31K1": "Z1090", "Z31K2": [ "Z6", "first in rap", "second in rap" ] }, { "Z1K1": "Z31", "Z31K1": "Z1091", "Z31K2": [ "Z6", "first in oj", "second in oj" ] }, { "Z1K1": "Z31", "Z31K1": "Z1092", "Z31K2": [ "Z6", "first in rmy", "second in rmy" ] }, { "Z1K1": "Z31", "Z31K1": "Z1093", "Z31K2": [ "Z6", "first in dum", "second in dum" ] }, { "Z1K1": "Z31", "Z31K1": "Z1094", "Z31K2": [ "Z6", "first in lus", "second in lus" ] }, { "Z1K1": "Z31", "Z31K1": "Z1095", "Z31K2": [ "Z6", "first in ht", "second in ht" ] }, { "Z1K1": "Z31", "Z31K1": "Z1096", "Z31K2": [ "Z6", "first in zen", "second in zen" ] }, { "Z1K1": "Z31", "Z31K1": "Z1097", "Z31K2": [ "Z6", "first in rup", "second in rup" ] }, { "Z1K1": "Z31", "Z31K1": "Z1098", "Z31K2": [ "Z6", "first in ks-arab", "second in ks-arab" ] }, { "Z1K1": "Z31", "Z31K1": "Z1099", "Z31K2": [ "Z6", "first in lb", "second in lb" ] }, { "Z1K1": "Z31", "Z31K1": "Z1100", "Z31K2": [ "Z6", "first in xal", "second in xal" ] }, { "Z1K1": "Z31", "Z31K1": "Z1101", "Z31K2": [ "Z6", "first in gcr", "second in gcr" ] }, { "Z1K1": "Z31", "Z31K1": "Z1102", "Z31K2": [ "Z6", "first in tay", "second in tay" ] }, { "Z1K1": "Z31", "Z31K1": "Z1103", "Z31K2": [ "Z6", "first in lou", "second in lou" ] }, { "Z1K1": "Z31", "Z31K1": "Z1104", "Z31K2": [ "Z6", "first in sju", "second in sju" ] }, { "Z1K1": "Z31", "Z31K1": "Z1105", "Z31K2": [ "Z6", "first in cu", "second in cu" ] }, { "Z1K1": "Z31", "Z31K1": "Z1106", "Z31K2": [ "Z6", "first in is", "second in is" ] }, { "Z1K1": "Z31", "Z31K1": "Z1107", "Z31K2": [ "Z6", "first in zh-tw", "second in zh-tw" ] }, { "Z1K1": "Z31", "Z31K1": "Z1108", "Z31K2": [ "Z6", "first in ti", "second in ti" ] }, { "Z1K1": "Z31", "Z31K1": "Z1109", "Z31K2": [ "Z6", "first in qug", "second in qug" ] }, { "Z1K1": "Z31", "Z31K1": "Z1110", "Z31K2": [ "Z6", "first in et", "second in et" ] }, { "Z1K1": "Z31", "Z31K1": "Z1111", "Z31K2": [ "Z6", "first in enm", "second in enm" ] }, { "Z1K1": "Z31", "Z31K1": "Z1112", "Z31K2": [ "Z6", "first in bqz", "second in bqz" ] }, { "Z1K1": "Z31", "Z31K1": "Z1113", "Z31K2": [ "Z6", "first in en-au", "second in en-au" ] }, { "Z1K1": "Z31", "Z31K1": "Z1114", "Z31K2": [ "Z6", "first in arz", "second in arz" ] }, { "Z1K1": "Z31", "Z31K1": "Z1115", "Z31K2": [ "Z6", "first in cr", "second in cr" ] }, { "Z1K1": "Z31", "Z31K1": "Z1116", "Z31K2": [ "Z6", "first in pwn", "second in pwn" ] }, { "Z1K1": "Z31", "Z31K1": "Z1117", "Z31K2": [ "Z6", "first in alc", "second in alc" ] }, { "Z1K1": "Z31", "Z31K1": "Z1118", "Z31K2": [ "Z6", "first in hif", "second in hif" ] }, { "Z1K1": "Z31", "Z31K1": "Z1119", "Z31K2": [ "Z6", "first in efi", "second in efi" ] }, { "Z1K1": "Z31", "Z31K1": "Z1120", "Z31K2": [ "Z6", "first in uz", "second in uz" ] }, { "Z1K1": "Z31", "Z31K1": "Z1121", "Z31K2": [ "Z6", "first in ve", "second in ve" ] }, { "Z1K1": "Z31", "Z31K1": "Z1122", "Z31K2": [ "Z6", "first in inh", "second in inh" ] }, { "Z1K1": "Z31", "Z31K1": "Z1123", "Z31K2": [ "Z6", "first in rw", "second in rw" ] }, { "Z1K1": "Z31", "Z31K1": "Z1124", "Z31K2": [ "Z6", "first in en-simple", "second in en-simple" ] }, { "Z1K1": "Z31", "Z31K1": "Z1002", "Z31K2": [ "Z6", "first in en", "second in en" ] } ], "Z32757K2": "Z1002" }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z32758", "Z32758K2": { "Z1K1": "Z31", "Z31K1": "Z1002", "Z31K2": [ "Z6", "first in en", "second in en" ] } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "English found last in list of 120 languages (long-list performance)" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Long input with the match at the end, to show how run time grows with list length." } ] } } fp2tjjpf3mkh2gnv004bnrah3mqac9p Z48070 0 101789 334193 2026-10-28T22:05:55Z Jdforrester (WMF) 4 Lengthy Test case for Z16273 334193 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48070" }, "Z2K2": { "Z1K1": "Z20", "Z20K1": "Z16273", "Z20K2": { "Z1K1": "Z7", "Z7K1": "Z16273", "Z16273K1": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1001", "Z11K2": "text in ar" }, { "Z1K1": "Z11", "Z11K1": "Z1003", "Z11K2": "text in es" }, { "Z1K1": "Z11", "Z11K1": "Z1004", "Z11K2": "text in fr" }, { "Z1K1": "Z11", "Z11K1": "Z1005", "Z11K2": "text in ru" }, { "Z1K1": "Z11", "Z11K1": "Z1006", "Z11K2": "text in zh" }, { "Z1K1": "Z11", "Z11K1": "Z1011", "Z11K2": "text in bn" }, { "Z1K1": "Z11", "Z11K1": "Z1012", "Z11K2": "text in ml" }, { "Z1K1": "Z11", "Z11K1": "Z1013", "Z11K2": "text in ha" }, { "Z1K1": "Z11", "Z11K1": "Z1014", "Z11K2": "text in ig" }, { "Z1K1": "Z11", "Z11K1": "Z1015", "Z11K2": "text in dag" }, { "Z1K1": "Z11", "Z11K1": "Z1016", "Z11K2": "text in bci" }, { "Z1K1": "Z11", "Z11K1": "Z1017", "Z11K2": "text in bom" }, { "Z1K1": "Z11", "Z11K1": "Z1018", "Z11K2": "text in blk" }, { "Z1K1": "Z11", "Z11K1": "Z1019", "Z11K2": "text in guw" }, { "Z1K1": "Z11", "Z11K1": "Z1020", "Z11K2": "text in ksw" }, { "Z1K1": "Z11", "Z11K1": "Z1021", "Z11K2": "text in no" }, { "Z1K1": "Z11", "Z11K1": "Z1022", "Z11K2": "text in saq" }, { "Z1K1": "Z11", "Z11K1": "Z1023", "Z11K2": "text in mak" }, { "Z1K1": "Z11", "Z11K1": "Z1024", "Z11K2": "text in cy" }, { "Z1K1": "Z11", "Z11K1": "Z1025", "Z11K2": "text in pl" }, { "Z1K1": "Z11", "Z11K1": "Z1026", "Z11K2": "text in shy" }, { "Z1K1": "Z11", "Z11K1": "Z1027", "Z11K2": "text in cak" }, { "Z1K1": "Z11", "Z11K1": "Z1028", "Z11K2": "text in snk" }, { "Z1K1": "Z11", "Z11K1": "Z1029", "Z11K2": "text in mwr" }, { "Z1K1": "Z11", "Z11K1": "Z1030", "Z11K2": "text in vai" }, { "Z1K1": "Z11", "Z11K1": "Z1031", "Z11K2": "text in chn" }, { "Z1K1": "Z11", "Z11K1": "Z1032", "Z11K2": "text in ng" }, { "Z1K1": "Z11", "Z11K1": "Z1033", "Z11K2": "text in ksf" }, { "Z1K1": "Z11", "Z11K1": "Z1034", "Z11K2": "text in to" }, { "Z1K1": "Z11", "Z11K1": "Z1035", "Z11K2": "text in knn" }, { "Z1K1": "Z11", "Z11K1": "Z1036", "Z11K2": "text in gez" }, { "Z1K1": "Z11", "Z11K1": "Z1037", "Z11K2": "text in pt" }, { "Z1K1": "Z11", "Z11K1": "Z1038", "Z11K2": "text in mgh" }, { "Z1K1": "Z11", "Z11K1": "Z1039", "Z11K2": "text in sw" }, { "Z1K1": "Z11", "Z11K1": "Z1040", "Z11K2": "text in tkr" }, { "Z1K1": "Z11", "Z11K1": "Z1041", "Z11K2": "text in ken" }, { "Z1K1": "Z11", "Z11K1": "Z1042", "Z11K2": "text in sjd" }, { "Z1K1": "Z11", "Z11K1": "Z1043", "Z11K2": "text in rof" }, { "Z1K1": "Z11", "Z11K1": "Z1044", "Z11K2": "text in dty" }, { "Z1K1": "Z11", "Z11K1": "Z1045", "Z11K2": "text in ary" }, { "Z1K1": "Z11", "Z11K1": "Z1046", "Z11K2": "text in crh" }, { "Z1K1": "Z11", "Z11K1": "Z1047", "Z11K2": "text in mdr" }, { "Z1K1": "Z11", "Z11K1": "Z1048", "Z11K2": "text in vi" }, { "Z1K1": "Z11", "Z11K1": "Z1049", "Z11K2": "text in egy" }, { "Z1K1": "Z11", "Z11K1": "Z1050", "Z11K2": "text in nge" }, { "Z1K1": "Z11", "Z11K1": "Z1051", "Z11K2": "text in fi" }, { "Z1K1": "Z11", "Z11K1": "Z1052", "Z11K2": "text in grc" }, { "Z1K1": "Z11", "Z11K1": "Z1053", "Z11K2": "text in si" }, { "Z1K1": "Z11", "Z11K1": "Z1054", "Z11K2": "text in ach" }, { "Z1K1": "Z11", "Z11K1": "Z1055", "Z11K2": "text in my" }, { "Z1K1": "Z11", "Z11K1": "Z1056", "Z11K2": "text in shy-tfng" }, { "Z1K1": "Z11", "Z11K1": "Z1057", "Z11K2": "text in pdt" }, { "Z1K1": "Z11", "Z11K1": "Z1058", "Z11K2": "text in sus" }, { "Z1K1": "Z11", "Z11K1": "Z1059", "Z11K2": "text in oc" }, { "Z1K1": "Z11", "Z11K1": "Z1060", "Z11K2": "text in ia" }, { "Z1K1": "Z11", "Z11K1": "Z1061", "Z11K2": "text in da" }, { "Z1K1": "Z11", "Z11K1": "Z1062", "Z11K2": "text in cs" }, { "Z1K1": "Z11", "Z11K1": "Z1063", "Z11K2": "text in gay" }, { "Z1K1": "Z11", "Z11K1": "Z1064", "Z11K2": "text in pro" }, { "Z1K1": "Z11", "Z11K1": "Z1065", "Z11K2": "text in pal" }, { "Z1K1": "Z11", "Z11K1": "Z1066", "Z11K2": "text in kiu" }, { "Z1K1": "Z11", "Z11K1": "Z1067", "Z11K2": "text in tpi" }, { "Z1K1": "Z11", "Z11K1": "Z1068", "Z11K2": "text in jut" }, { "Z1K1": "Z11", "Z11K1": "Z1069", "Z11K2": "text in skr-arab" }, { "Z1K1": "Z11", "Z11K1": "Z1070", "Z11K2": "text in kk-tr" }, { "Z1K1": "Z11", "Z11K1": "Z1071", "Z11K2": "text in esu" }, { "Z1K1": "Z11", "Z11K1": "Z1072", "Z11K2": "text in luz" }, { "Z1K1": "Z11", "Z11K1": "Z1073", "Z11K2": "text in wes" }, { "Z1K1": "Z11", "Z11K1": "Z1074", "Z11K2": "text in ny" }, { "Z1K1": "Z11", "Z11K1": "Z1075", "Z11K2": "text in crb" }, { "Z1K1": "Z11", "Z11K1": "Z1076", "Z11K2": "text in syr" }, { "Z1K1": "Z11", "Z11K1": "Z1077", "Z11K2": "text in mde" }, { "Z1K1": "Z11", "Z11K1": "Z1078", "Z11K2": "text in id" }, { "Z1K1": "Z11", "Z11K1": "Z1079", "Z11K2": "text in bjn" }, { "Z1K1": "Z11", "Z11K1": "Z1080", "Z11K2": "text in cnh" }, { "Z1K1": "Z11", "Z11K1": "Z1081", "Z11K2": "text in agq" }, { "Z1K1": "Z11", "Z11K1": "Z1082", "Z11K2": "text in sdc" }, { "Z1K1": "Z11", "Z11K1": "Z1083", "Z11K2": "text in pnb" }, { "Z1K1": "Z11", "Z11K1": "Z1084", "Z11K2": "text in aln" }, { "Z1K1": "Z11", "Z11K1": "Z1085", "Z11K2": "text in tn" }, { "Z1K1": "Z11", "Z11K1": "Z1086", "Z11K2": "text in nxm" }, { "Z1K1": "Z11", "Z11K1": "Z1087", "Z11K2": "text in om" }, { "Z1K1": "Z11", "Z11K1": "Z1088", "Z11K2": "text in dtp" }, { "Z1K1": "Z11", "Z11K1": "Z1089", "Z11K2": "text in ebu" }, { "Z1K1": "Z11", "Z11K1": "Z1090", "Z11K2": "text in rap" }, { "Z1K1": "Z11", "Z11K1": "Z1091", "Z11K2": "text in oj" }, { "Z1K1": "Z11", "Z11K1": "Z1092", "Z11K2": "text in rmy" }, { "Z1K1": "Z11", "Z11K1": "Z1093", "Z11K2": "text in dum" }, { "Z1K1": "Z11", "Z11K1": "Z1094", "Z11K2": "text in lus" }, { "Z1K1": "Z11", "Z11K1": "Z1095", "Z11K2": "text in ht" }, { "Z1K1": "Z11", "Z11K1": "Z1096", "Z11K2": "text in zen" }, { "Z1K1": "Z11", "Z11K1": "Z1097", "Z11K2": "text in rup" }, { "Z1K1": "Z11", "Z11K1": "Z1098", "Z11K2": "text in ks-arab" }, { "Z1K1": "Z11", "Z11K1": "Z1099", "Z11K2": "text in lb" }, { "Z1K1": "Z11", "Z11K1": "Z1100", "Z11K2": "text in xal" }, { "Z1K1": "Z11", "Z11K1": "Z1101", "Z11K2": "text in gcr" }, { "Z1K1": "Z11", "Z11K1": "Z1102", "Z11K2": "text in tay" }, { "Z1K1": "Z11", "Z11K1": "Z1103", "Z11K2": "text in lou" }, { "Z1K1": "Z11", "Z11K1": "Z1104", "Z11K2": "text in sju" }, { "Z1K1": "Z11", "Z11K1": "Z1105", "Z11K2": "text in cu" }, { "Z1K1": "Z11", "Z11K1": "Z1106", "Z11K2": "text in is" }, { "Z1K1": "Z11", "Z11K1": "Z1107", "Z11K2": "text in zh-tw" }, { "Z1K1": "Z11", "Z11K1": "Z1108", "Z11K2": "text in ti" }, { "Z1K1": "Z11", "Z11K1": "Z1109", "Z11K2": "text in qug" }, { "Z1K1": "Z11", "Z11K1": "Z1110", "Z11K2": "text in et" }, { "Z1K1": "Z11", "Z11K1": "Z1111", "Z11K2": "text in enm" }, { "Z1K1": "Z11", "Z11K1": "Z1112", "Z11K2": "text in bqz" }, { "Z1K1": "Z11", "Z11K1": "Z1113", "Z11K2": "text in en-au" }, { "Z1K1": "Z11", "Z11K1": "Z1114", "Z11K2": "text in arz" }, { "Z1K1": "Z11", "Z11K1": "Z1115", "Z11K2": "text in cr" }, { "Z1K1": "Z11", "Z11K1": "Z1116", "Z11K2": "text in pwn" }, { "Z1K1": "Z11", "Z11K1": "Z1117", "Z11K2": "text in alc" }, { "Z1K1": "Z11", "Z11K1": "Z1118", "Z11K2": "text in hif" }, { "Z1K1": "Z11", "Z11K1": "Z1119", "Z11K2": "text in efi" }, { "Z1K1": "Z11", "Z11K1": "Z1120", "Z11K2": "text in uz" }, { "Z1K1": "Z11", "Z11K1": "Z1121", "Z11K2": "text in ve" }, { "Z1K1": "Z11", "Z11K1": "Z1122", "Z11K2": "text in inh" }, { "Z1K1": "Z11", "Z11K1": "Z1123", "Z11K2": "text in rw" }, { "Z1K1": "Z11", "Z11K1": "Z1124", "Z11K2": "text in en-simple" }, { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "text in en" } ] }, "Z16273K2": "Z1002" }, "Z20K3": { "Z1K1": "Z7", "Z7K1": "Z14392", "Z14392K2": { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "text in en" } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "English found last in list of 120 languages (long-list perf)" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Long input with the match at the end, to show how run time grows with list length." } ] } } 9yzynxhq6f9jiu7u9hwivfk4ni9pdtw Z48071 0 101790 334199 2026-10-28T22:34:18Z Jdforrester (WMF) 4 334199 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48071" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z26882", "Z14K3": { "Z1K1": "Z16", "Z16K1": "Z600", "Z16K2": "// Copy of each Wikidata enum's values (Z6884K2), for when the type arrives unresolved.\n// FIXME: When we can use Wikifunctions.Call on Z6896, stop hard-coding these and use that instead!\nconst ENUM_VALUES = {\n\tZ6062: 'Q524410 Q24004467 Q24004469 Q20764 Q24004476 Q24004477 Q36507 Q578 Q39911 Q577 Q5151 Q573 Q25235 Q7727 Q11574',\n\tZ6063: 'Q1985727 Q1985786',\n\tZ25340: 'Q499327 Q1775415',\n\tZ25501: 'Q499327 Q1775415 Q1775461',\n\tZ25502: 'Q1305037 Q1775461',\n\tZ26582: 'Q1952053 Q489557 Q474167 Q273815 Q852002 Q822218 Q194210 Q220914 Q8867089 Q685440 Q150853 Q186022',\n\tZ26934: 'Q110786 Q146786',\n\tZ26935: 'Q51927507 Q51927539',\n\tZ27951: 'Q556 Q560 Q568 Q569 Q618 Q623 Q627 Q629 Q650 Q654 Q658 Q660 Q663 Q670 Q674 Q682 Q688 Q696 Q703 Q706 Q713 Q716 Q722 Q725 Q731 Q677 Q740 Q744 Q753 Q758 Q861 Q867 Q871 Q876 Q879 Q888 Q895 Q938 Q941 Q1038 Q1046 Q1053 Q1054 Q1086 Q1087 Q1089 Q1090 Q1091 Q1094 Q1096 Q1099 Q1100 Q1103 Q1106 Q1108 Q1112 Q1801 Q1385 Q1386 Q1388 Q1809 Q1819 Q1396 Q1832 Q1838 Q1843 Q1846 Q1849 Q1853 Q1855 Q1857 Q1119 Q1123 Q743 Q737 Q751 Q877 Q880 Q897 Q925 Q932 Q708 Q942 Q979 Q999 Q1133 Q671 Q1128 Q1121 Q1115 Q1109 Q1098 Q1105 Q1102 Q1872 Q1876 Q1882 Q1888 Q1892 Q1896 Q1898 Q1901 Q1905 Q1226 Q1232 Q1234 Q1249 Q1252 Q1258 Q1266 Q1272 Q1278 Q1301 Q1302 Q1303 Q1304 Q1306 Q1307 Q1139 Q1146 Q1466 Q7425 Q428758 Q428741 Q428685 Q54377 Q428692 Q428703 Q428640 Q428648 Q428629 Q428635 Q3552041 Q3552040 Q3552038 Q868375 Q1366419 Q869681 Q548592 Q3029913 Q3551935 Q3551927 Q3551933 Q3551931 Q3551930 Q3551926 Q3551929 Q3551928 Q2399140 Q3551919 Q3551921 Q3551918 Q3551924 Q22313918 Q22314315 Q91655950 Q91655961 Q91655977 Q92113383 Q91655999 Q113084035 Q113084037 Q113084040 Q30929350 Q16307178 Q113084043 Q16307173 Q16307168 Q19599218 Q113084046 Q113084048 Q16307164 Q11289368 Q116976565',\n\tZ27970: 'Q21714344 Q51929049 Q51929074',\n\tZ27971: 'Q101252532 Q56648699 Q97130345 Q56648701 Q56648700',\n\tZ28215: 'Q110786 Q110022 Q146786',\n\tZ28515: 'Q110786 Q489410 Q113890342',\n\tZ28516: 'Q53997851 Q53997857',\n\tZ28517: 'Q1317831 Q1194697',\n\tZ28518: 'Q109267112 Q1478451',\n\tZ28519: 'Q131105 Q146233 Q145599 Q146078',\n\tZ28520: 'Q3482678 Q14169499 Q1817208',\n\tZ32789: 'Q1317831 Q21014240 Q1194697',\n\tZ32792: 'Q1317831 Q1601545',\n\tZ33568: 'Q539808 Q651641 Q166097 Q568140 Q989463 Q1417850 Q33129605',\n\tZ33827: 'Q1311 Q1312 Q1313 Q1314'\n};\n\nfunction Z26882( Z26882K1 ) {\n\tconst str = ( x ) =\u003E typeof x === 'string' ? x : x?.Z9K1 ?? x?.Z6K1;\n\tconst qid = ( ref ) =\u003E typeof ref === 'string' ? ref : ref.Z6091K1;\n\tconst type = Z26882K1.Z1K1;\n\tconst typeZid = str( type ) ?? str( type.Z6884K3 );\n\tconst values = type.Z6884K2 ?? ENUM_VALUES[ typeZid ]?.split( ' ' );\n\tif ( !values ) {\n\t\treturn Wikifunctions.Error( 'Z516', [ 'Z26882K1', typeZid, 'not a known Wikidata enum' ] );\n\t}\n\tconst target = qid( Z26882K1[ typeZid + 'K1' ] );\n\treturn values.findIndex( ( v ) =\u003E qid( v ) === target ) + 1;\n}\n" } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "JS hard-coded Enum lookup for speed" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } jxcqpx8rnkxbe5dww1rzt484g724445 Translations:Template:Main page/News/10/pl 1198 101791 334205 2026-10-28T22:52:47Z Chrumps 3889 Created page with "Więcej wiadomości" 334205 wikitext text/x-wiki Więcej wiadomości ekn265hp3r9xwk6wl7aehcp3hgblfc2 Template:Main page/News/pl 10 101792 334206 2026-10-28T22:52:51Z Chrumps 3889 Created page with "Więcej wiadomości" 334206 wikitext text/x-wiki <noinclude><languages /></noinclude> ; <span lang="en" dir="ltr" class="mw-content-ltr">Volunteer's Corners</span> * <span lang="en" dir="ltr" class="mw-content-ltr">The next Volunteers' Corner will be at <bdi lang="en" dir="ltr">[https://zonestamp.toolforge.org/1794222000 11:00 UTC on 2026-11-09]</bdi> on <bdi lang="en" dir="ltr">Google Meet</bdi> at <bdi lang="en" dir="ltr">[https://meet.google.com/xuy-njxh-rkw meet.google.com/xuy-njxh-rkw]</bdi>.</span> * <span lang="en" dir="ltr" class="mw-content-ltr">The [[:c:File:Abstract Wikipedia Volunteer Corner 2026-10.webm|most recent Volunteer's Corner]] is available on Commons</span> ; <span lang="en" dir="ltr" class="mw-content-ltr">Recent status updates about Wikifunctions</span> <!--Keep this to the most recent 5 entries--> * <span lang="en" dir="ltr" class="mw-content-ltr">{{Status updates|2026-10-25}}: Wikiabstrak app</span> * <span lang="en" dir="ltr" class="mw-content-ltr">{{Status updates|2026-10-17}}: Changes in evaluator representations</span> * <span lang="en" dir="ltr" class="mw-content-ltr">{{Status updates|2026-10-09}}: Quarterly planning</span> * <span lang="en" dir="ltr" class="mw-content-ltr">{{Status updates|2026-10-02}}: Refreshing results</span> * <span lang="en" dir="ltr" class="mw-content-ltr">{{Status updates|2026-09-25}}: Memoization and the Mayor of Paris</span> [[Special:MyLanguage/Wikifunctions:Status updates|<span class="mw-ui-button mw-ui-constructive mw-ui-small">Więcej wiadomości</span>]] tp3rit89ce149omklqegks1houiwmbs Translations:Wikifunctions:OpenFunctions/80/pl 1198 101793 334208 2026-10-28T22:54:33Z Chrumps 3889 Created page with "=== baza danych ===" 334208 wikitext text/x-wiki === baza danych === erlfii9yoscikcvzebmyhof2m0or4p1 Translations:Wikifunctions:OpenFunctions/84/pl 1198 101794 334210 2026-10-28T22:54:49Z Chrumps 3889 Created page with "=== informacje ===" 334210 wikitext text/x-wiki === informacje === q2fu180262h6dpx1d22yuol807cy6yu Translations:Wikifunctions:OpenFunctions/91/pl 1198 101795 334212 2026-10-28T22:54:59Z Chrumps 3889 Created page with "=== tekst ===" 334212 wikitext text/x-wiki === tekst === 6lojfbvdebmebo0pumafmellonixxjy Translations:Wikifunctions:Blocking policy/35/pl 1198 101796 334214 2026-10-28T23:03:07Z Chrumps 3889 Created page with "== Odwołanie od blokady ==" 334214 wikitext text/x-wiki == Odwołanie od blokady == 05dahwjsx01q91jsz5srsvwcyqwepu9 Translations:Wikifunctions:Blocking policy/37/pl 1198 101797 334216 2026-10-28T23:04:03Z Chrumps 3889 Created page with "'''Odpowiednie uzasadnienie''' niemal zawsze zawiera jeden z następujących elementów:" 334216 wikitext text/x-wiki '''Odpowiednie uzasadnienie''' niemal zawsze zawiera jeden z następujących elementów: 00lj81hrwu8q0qe0zki4eft8ny3v0lw Translations:Wikifunctions:Blocking policy/38/pl 1198 101798 334218 2026-10-28T23:05:08Z Chrumps 3889 Created page with "'''Przyznanie się''', że blokada była uzasadniona, oraz '''wiarygodne zapewnienie''', że zachowanie, które do niej doprowadziło, nie powtórzy się" 334218 wikitext text/x-wiki '''Przyznanie się''', że blokada była uzasadniona, oraz '''wiarygodne zapewnienie''', że zachowanie, które do niej doprowadziło, nie powtórzy się f92b2m7cp1aiopcifz39g426mh13zkr Translations:Wikifunctions:Blocking policy/39/pl 1198 101799 334220 2026-10-28T23:05:54Z Chrumps 3889 Created page with "Wyjaśnienie, dlaczego blokada jest '''nieuzasadniona''' w świetle niniejszych oraz innych odpowiednich zasad i wytycznych albo dlaczego '''prawdopodobnie nałożono ją omyłkowo lub stanowi ona niezamierzony skutek uboczny'''." 334220 wikitext text/x-wiki Wyjaśnienie, dlaczego blokada jest '''nieuzasadniona''' w świetle niniejszych oraz innych odpowiednich zasad i wytycznych albo dlaczego '''prawdopodobnie nałożono ją omyłkowo lub stanowi ona niezamierzony skutek uboczny'''. jb8pq9fk3efs5c3b2a9cpj5a3h30bux Translations:Wikifunctions:Blocking policy/40/pl 1198 101800 334222 2026-10-28T23:08:42Z Chrumps 3889 Created page with "Wniosek o odblokowanie może zostać '''[[$1|zaakceptowany]]''' albo '''[[$2|odrzucony]]]'''. Przed zaakceptowaniem wniosku dotyczącego blokady nałożonej przez innego administratora administrator rozpatrujący wniosek powinien '''skonsultować się z administratorem, który nałożył blokadę''', z wyjątkiem oczywistych i niebudzących kontrowersji przypadków. [[$3|Wnioski składane na stronach dyskusji]] mogą być odrzucane wyłącznie przez '''administratora nie..." 334222 wikitext text/x-wiki Wniosek o odblokowanie może zostać '''[[$1|zaakceptowany]]''' albo '''[[$2|odrzucony]]]'''. Przed zaakceptowaniem wniosku dotyczącego blokady nałożonej przez innego administratora administrator rozpatrujący wniosek powinien '''skonsultować się z administratorem, który nałożył blokadę''', z wyjątkiem oczywistych i niebudzących kontrowersji przypadków. [[$3|Wnioski składane na stronach dyskusji]] mogą być odrzucane wyłącznie przez '''administratora niezaangażowanego w sprawę'''. 3hqnf6vlh85b2an33nze9rwraqyrh34 Translations:Wikifunctions:Blocking policy/41/pl 1198 101801 334224 2026-10-28T23:09:35Z Chrumps 3889 Created page with "Wielokrotne składanie wniosków o odblokowanie bez odpowiedniego uzasadnienia może zostać uznane za nadużycie. Jak wskazano powyżej, użytkownikom, którzy nadużywają lub prawdopodobnie będą nadużywać możliwości edytowania własnej strony dyskusji bądź wysyłania wiadomości e-mail, można odebrać jedno albo oba te uprawnienia. Uniemożliwi to również korzystanie z nich w celu składania kolejnych wniosków o odblokowanie." 334224 wikitext text/x-wiki Wielokrotne składanie wniosków o odblokowanie bez odpowiedniego uzasadnienia może zostać uznane za nadużycie. Jak wskazano powyżej, użytkownikom, którzy nadużywają lub prawdopodobnie będą nadużywać możliwości edytowania własnej strony dyskusji bądź wysyłania wiadomości e-mail, można odebrać jedno albo oba te uprawnienia. Uniemożliwi to również korzystanie z nich w celu składania kolejnych wniosków o odblokowanie. 5gofjllbklemele00y3448m4vui96b3 Translations:Wikifunctions:Blocking policy/33/pl 1198 101802 334226 2026-10-28T23:11:25Z Chrumps 3889 Created page with "Blokady nałożone z powodu destrukcyjnego zachowania powinny zostać '''zniesione''', jeśli istnieją podstawy, by sądzić, że zachowanie to się nie powtórzy." 334226 wikitext text/x-wiki Blokady nałożone z powodu destrukcyjnego zachowania powinny zostać '''zniesione''', jeśli istnieją podstawy, by sądzić, że zachowanie to się nie powtórzy. el1slin4j5vclau3ug5lzphc4jprlu2 Translations:Wikifunctions:Blocking policy/31/pl 1198 101803 334228 2026-10-28T23:12:22Z Chrumps 3889 Created page with "Należy '''powiadomić''' zablokowanego użytkownika, najlepiej za pomocą [[:$1|szablonu informacji o blokadzie]]." 334228 wikitext text/x-wiki Należy '''powiadomić''' zablokowanego użytkownika, najlepiej za pomocą [[:$1|szablonu informacji o blokadzie]]. 7qdcanije0eowz2scihuq3rnjuo5cut Translations:Wikifunctions:Blocking policy/32/pl 1198 101804 334230 2026-10-28T23:13:02Z Chrumps 3889 Created page with "Należy '''obserwować''' stronę dyskusji zablokowanego użytkownika i dopilnować, aby '''[[$1|wnioski o odblokowanie]]''' były rozpatrywane." 334230 wikitext text/x-wiki Należy '''obserwować''' stronę dyskusji zablokowanego użytkownika i dopilnować, aby '''[[$1|wnioski o odblokowanie]]''' były rozpatrywane. 89ecdajlqff72dcbpl04v4d9bmlat3d Translations:Wikifunctions:Blocking policy/34/pl 1198 101805 334232 2026-10-28T23:14:22Z Chrumps 3889 Created page with "'''Kontrowersyjne blokady''' można omawiać na [[$1|tablicy ogłoszeń dotyczącej blokad i zabezpieczeń]] również po ich nałożeniu. Aby uniknąć „wojny administratorów”, inny administrator powinien znieść blokadę tylko wtedy, gdy istnieje co do tego konsensus, nawet jeżeli nie ma wyraźnego konsensusu popierającego pierwotną blokadę." 334232 wikitext text/x-wiki '''Kontrowersyjne blokady''' można omawiać na [[$1|tablicy ogłoszeń dotyczącej blokad i zabezpieczeń]] również po ich nałożeniu. Aby uniknąć „wojny administratorów”, inny administrator powinien znieść blokadę tylko wtedy, gdy istnieje co do tego konsensus, nawet jeżeli nie ma wyraźnego konsensusu popierającego pierwotną blokadę. trefdssw1tafkj0sa5oixumz1ppyzg3 Translations:Wikifunctions:Blocking policy/24/pl 1198 101806 334234 2026-10-28T23:15:18Z Chrumps 3889 Created page with "Blokady mogą być nakładane na '''zarejestrowanych użytkowników, adresy IP oraz zakresy adresów IP.'''" 334234 wikitext text/x-wiki Blokady mogą być nakładane na '''zarejestrowanych użytkowników, adresy IP oraz zakresy adresów IP.''' 6et7gad0k6llxsp862voqu10uuqwivr Translations:Wikifunctions:Blocking policy/25/pl 1198 101807 334236 2026-10-28T23:16:26Z Chrumps 3889 Created page with "Ponieważ blokady mają charakter zapobiegawczy, a nie karny, należy ustalić '''czas trwania''' blokady proporcjonalny do okresu, którego użytkownik prawdopodobnie potrzebuje, aby zapoznać się z odpowiednimi zasadami i zmienić swoje postępowanie. Należy również uwzględnić wcześniejsze zachowanie użytkownika oraz wagę spowodowanych zakłóceń. Przy blokowaniu adresów IP trzeba pamiętać, że blokada może dotknąć niewinne osoby trzecie korzystające z..." 334236 wikitext text/x-wiki Ponieważ blokady mają charakter zapobiegawczy, a nie karny, należy ustalić '''czas trwania''' blokady proporcjonalny do okresu, którego użytkownik prawdopodobnie potrzebuje, aby zapoznać się z odpowiednimi zasadami i zmienić swoje postępowanie. Należy również uwzględnić wcześniejsze zachowanie użytkownika oraz wagę spowodowanych zakłóceń. Przy blokowaniu adresów IP trzeba pamiętać, że blokada może dotknąć niewinne osoby trzecie korzystające z tych samych adresów. 35t0mv3u30rla6r9nmnlrxzoj35t7ue Translations:Wikifunctions:Blocking policy/26/pl 1198 101808 334238 2026-10-28T23:17:07Z Chrumps 3889 Created page with "Należy podać '''powód''' blokady. Uzasadnienie powinno w miarę możliwości zawierać odnośniki do odpowiednich zasad, aby pomóc zablokowanemu użytkownikowi zrozumieć przyczynę blokady. W stosownych przypadkach pomocne są również porównania wersji lub [[w:Help:Permanent link|stałe linki]] dokumentujące przyczynę blokady." 334238 wikitext text/x-wiki Należy podać '''powód''' blokady. Uzasadnienie powinno w miarę możliwości zawierać odnośniki do odpowiednich zasad, aby pomóc zablokowanemu użytkownikowi zrozumieć przyczynę blokady. W stosownych przypadkach pomocne są również porównania wersji lub [[w:Help:Permanent link|stałe linki]] dokumentujące przyczynę blokady. ibe5e4be5xcq3f01o9l2na5k23bcu1z Translations:Wikifunctions:Blocking policy/27/pl 1198 101809 334240 2026-10-28T23:18:06Z Chrumps 3889 Created page with "Możliwość '''tworzenia kont''' powinna być w większości przypadków wyłączona. Można ją jednak pozostawić włączoną w przypadku blokady za nieodpowiednią nazwę użytkownika, aby umożliwić utworzenie konta pod inną nazwą." 334240 wikitext text/x-wiki Możliwość '''tworzenia kont''' powinna być w większości przypadków wyłączona. Można ją jednak pozostawić włączoną w przypadku blokady za nieodpowiednią nazwę użytkownika, aby umożliwić utworzenie konta pod inną nazwą. ossfdmyjov915vwj7xp0q9bpgouy3z5 Translations:Wikifunctions:Blocking policy/28/pl 1198 101810 334242 2026-10-28T23:19:07Z Chrumps 3889 Created page with "'''Automatyczne blokowanie''' adresów IP używanych przez zablokowanego użytkownika powinno być zazwyczaj włączone w przypadku użytkowników zablokowanych za destrukcyjne zachowanie. W większości pozostałych przypadków należy je wyłączyć, na przykład podczas blokowania nieprawidłowo działających botów oraz nazw użytkowników niezgodnych z {{pg|WF:Username policy|zasadami dotyczącymi nazw użytkowników}}." 334242 wikitext text/x-wiki '''Automatyczne blokowanie''' adresów IP używanych przez zablokowanego użytkownika powinno być zazwyczaj włączone w przypadku użytkowników zablokowanych za destrukcyjne zachowanie. W większości pozostałych przypadków należy je wyłączyć, na przykład podczas blokowania nieprawidłowo działających botów oraz nazw użytkowników niezgodnych z {{pg|WF:Username policy|zasadami dotyczącymi nazw użytkowników}}. awpbtiphcdvzrwyfvr1w6rickdkyuyv Translations:Wikifunctions:Blocking policy/29/pl 1198 101811 334244 2026-10-28T23:20:01Z Chrumps 3889 Created page with "Możliwość korzystania ze strony '''dyskusji użytkownika'' lub wysyłania '''wiadomości e-mail''' należy zablokować tylko wtedy, gdy istnieje prawdopodobieństwo nadużywania tych uprawnień." 334244 wikitext text/x-wiki Możliwość korzystania ze strony '''dyskusji użytkownika'' lub wysyłania '''wiadomości e-mail''' należy zablokować tylko wtedy, gdy istnieje prawdopodobieństwo nadużywania tych uprawnień. i4s4ylr70m8b0ap2tjw2ysxoshlqwy0 334246 334244 2026-10-28T23:20:11Z Chrumps 3889 334246 wikitext text/x-wiki Możliwość korzystania ze strony '''dyskusji użytkownika''' lub wysyłania '''wiadomości e-mail''' należy zablokować tylko wtedy, gdy istnieje prawdopodobieństwo nadużywania tych uprawnień. otjtrsoqp5q8oy7ynvzxlj1pyu0goky Translations:Wikifunctions:Blocking policy/3/pl 1198 101812 334248 2026-10-28T23:21:35Z Chrumps 3889 Created page with "Blokady mogą być nakładane z wielu powodów. Najczęstsze z nich opisano poniżej:" 334248 wikitext text/x-wiki Blokady mogą być nakładane z wielu powodów. Najczęstsze z nich opisano poniżej: g1vv0n0r464q20ezxw9k6e44oidx8wm Translations:Wikifunctions:Blocking policy/4/pl 1198 101813 334250 2026-10-28T23:22:04Z Chrumps 3889 Created page with "'''[[$1|Wandalizm]]]'''. Destrukcyjne edycje mogą skutkować blokadą. Przykłady:" 334250 wikitext text/x-wiki '''[[$1|Wandalizm]]]'''. Destrukcyjne edycje mogą skutkować blokadą. Przykłady: 35n8kd66hehqtdvapzhf4qv3k3dvsxb 334277 334250 2026-10-28T23:32:01Z Chrumps 3889 334277 wikitext text/x-wiki '''[[$1|Wandalizm]]'''. Destrukcyjne edycje mogą skutkować blokadą. Przykłady: daw6wdvfcgu8vt0oqju17ydsys9whx1 Translations:Wikifunctions:Blocking policy/5/pl 1198 101814 334252 2026-10-28T23:22:18Z Chrumps 3889 Created page with "Wprowadzanie nieuzasadnionych wulgaryzmów" 334252 wikitext text/x-wiki Wprowadzanie nieuzasadnionych wulgaryzmów 86jc5r0rgkf02p59pzumvylhz1pp6yp Translations:Wikifunctions:Blocking policy/6/pl 1198 101815 334254 2026-10-28T23:22:27Z Chrumps 3889 Created page with "Dodawanie bezsensownego tekstu" 334254 wikitext text/x-wiki Dodawanie bezsensownego tekstu 9ufgxvgobozg9msn5x0oz6wi71nzh13 Translations:Wikifunctions:Blocking policy/11/pl 1198 101816 334256 2026-10-28T23:23:30Z Chrumps 3889 Created page with "'''Ataki osobiste''' lub '''nękanie'''. Konta i adresy IP wykorzystywane przede wszystkim do tworzenia wrogiej atmosfery wobec innego użytkownika mogą zostać zablokowane. Spory prowadzone w dobrej wierze należy jednak przedstawiać w [[WF:Project chat|dyskusji projektu]], aby umożliwić udział osobom postronnym. Monitorowanie wkładu użytkownika pod kątem naruszeń zasad nie jest nękaniem." 334256 wikitext text/x-wiki '''Ataki osobiste''' lub '''nękanie'''. Konta i adresy IP wykorzystywane przede wszystkim do tworzenia wrogiej atmosfery wobec innego użytkownika mogą zostać zablokowane. Spory prowadzone w dobrej wierze należy jednak przedstawiać w [[WF:Project chat|dyskusji projektu]], aby umożliwić udział osobom postronnym. Monitorowanie wkładu użytkownika pod kątem naruszeń zasad nie jest nękaniem. m3lxoyhtkq3e2hmuxpq5syetjkgoiei Translations:Wikifunctions:Blocking policy/12/pl 1198 101817 334258 2026-10-28T23:24:42Z Chrumps 3889 Created page with "'''Nieautoryzowane lub niereagujące konta [[$1|botów]]. Konta botów muszą zostać zatwierdzone przez społeczność Wikifunkcji. Budzące wątpliwości edycje przypominające działanie bota, których użytkownik nie potrafi wyjaśnić, powinny skutkować blokadą do czasu przeprowadzenia dyskusji. Propozycje dotyczące botów można omawiać na stronie [[WF:Bots]] albo w [[WF:Project chat|dyskusji projektu]]. O zatwierdzenie bota można wystąpić na stronie WF:Bo..." 334258 wikitext text/x-wiki '''Nieautoryzowane lub niereagujące konta [[$1|botów]]. Konta botów muszą zostać zatwierdzone przez społeczność Wikifunkcji. Budzące wątpliwości edycje przypominające działanie bota, których użytkownik nie potrafi wyjaśnić, powinny skutkować blokadą do czasu przeprowadzenia dyskusji. Propozycje dotyczące botów można omawiać na stronie [[WF:Bots]] albo w [[WF:Project chat|dyskusji projektu]]. O zatwierdzenie bota można wystąpić na stronie [[WF:Bots/Requests]]. b72ulmv4b90swp92sivqlzeg7q7vgk4 334261 334258 2026-10-28T23:25:33Z Chrumps 3889 334261 wikitext text/x-wiki '''Nieautoryzowane lub niereagujące konta [[$1|botów]]. Konta botów muszą zostać zatwierdzone przez społeczność Wikifunkcji. Budzące wątpliwości edycje przypominające działanie bota, których użytkownik nie potrafi wyjaśnić, powinny skutkować blokadą do czasu przeprowadzenia dyskusji. Propozycje dotyczące botów można omawiać na stronie [[WF:Bots]] albo w [[WF:Project chat|dyskusji projektu]]. O zatwierdzenie bota można wystąpić na stronie [[WF:Bots]]. dyfo0b7f274f11ymew4tgp4vg3cppgi 334279 334261 2026-10-28T23:33:33Z Chrumps 3889 334279 wikitext text/x-wiki '''Nieautoryzowane lub niereagujące konta [[$1|botów]]'''. Konta botów muszą zostać zatwierdzone przez społeczność Wikifunkcji. Budzące wątpliwości edycje przypominające działanie bota, których użytkownik nie potrafi wyjaśnić, powinny skutkować blokadą do czasu przeprowadzenia dyskusji. Propozycje dotyczące botów można omawiać na stronie [[WF:Bots]] albo w [[WF:Project chat|dyskusji projektu]]. O zatwierdzenie bota można wystąpić na stronie [[WF:Bots]]. smxn1tolwiiy9udiey3fihmmcc3bzac Translations:Wikifunctions:Blocking policy/13/pl 1198 101818 334263 2026-10-28T23:26:05Z Chrumps 3889 Created page with "'''Zatwierdzone konta botów, które czasowo działają nieprawidłowo'''. Blokada ma zapobiec dalszym szkodom do czasu rozwiązania problemu przez właściciela bota." 334263 wikitext text/x-wiki '''Zatwierdzone konta botów, które czasowo działają nieprawidłowo'''. Blokada ma zapobiec dalszym szkodom do czasu rozwiązania problemu przez właściciela bota. clqwt9lbari0wmfgy12mzc9ulrxnnit Translations:Wikifunctions:Blocking policy/15/pl 1198 101819 334265 2026-10-28T23:26:59Z Chrumps 3889 Created page with "'''Obchodzenie blokad'''. Administrator może ponownie nałożyć blokadę na użytkownika, który umyślnie ją omija (oraz wycofać jego edycje). Może również przedłużyć czas trwania blokady, jeżeli podczas jej obchodzenia użytkownik dopuszcza się kolejnych zachowań uzasadniających blokadę. Konta użytkowników i adresy IP wykorzystywane do obchodzenia blokady również mogą i powinny zostać zablokowane." 334265 wikitext text/x-wiki '''Obchodzenie blokad'''. Administrator może ponownie nałożyć blokadę na użytkownika, który umyślnie ją omija (oraz wycofać jego edycje). Może również przedłużyć czas trwania blokady, jeżeli podczas jej obchodzenia użytkownik dopuszcza się kolejnych zachowań uzasadniających blokadę. Konta użytkowników i adresy IP wykorzystywane do obchodzenia blokady również mogą i powinny zostać zablokowane. pwtuafrew4dmw3me914j12reqluaatc Translations:Wikifunctions:Blocking policy/16/pl 1198 101820 334267 2026-10-28T23:27:29Z Chrumps 3889 Created page with "'''Nadużywanie wielu kont''' w celu wprowadzania w błąd, oszukiwania, zakłócania działania projektu, zniekształcania konsensusu albo obchodzenia blokad lub innych sankcji. Konta dodatkowe są zazwyczaj blokowane bezterminowo. W zależności od okoliczności na konto główne może zostać nałożona nowa blokada albo dotychczasowa blokada może zostać przedłużona." 334267 wikitext text/x-wiki '''Nadużywanie wielu kont''' w celu wprowadzania w błąd, oszukiwania, zakłócania działania projektu, zniekształcania konsensusu albo obchodzenia blokad lub innych sankcji. Konta dodatkowe są zazwyczaj blokowane bezterminowo. W zależności od okoliczności na konto główne może zostać nałożona nowa blokada albo dotychczasowa blokada może zostać przedłużona. o4wlv0yevhyvcy1gamht0mrk3739kkf Translations:Wikifunctions:Blocking policy/17/pl 1198 101821 334269 2026-10-28T23:28:08Z Chrumps 3889 Created page with "'''Otwarte lub anonimizujące serwery proxy''' są zazwyczaj blokowane po wykryciu, zgodnie z [[$2|ogólnymi zasadami Wikimedia]]. Standardowy czas trwania takiej blokady wynosi jeden rok." 334269 wikitext text/x-wiki '''Otwarte lub anonimizujące serwery proxy''' są zazwyczaj blokowane po wykryciu, zgodnie z [[$2|ogólnymi zasadami Wikimedia]]. Standardowy czas trwania takiej blokady wynosi jeden rok. 2gnhuaxtuq9nmxb5t6eeo5axu2fwmil Translations:Wikifunctions:Blocking policy/20/pl 1198 101822 334271 2026-10-28T23:29:17Z Chrumps 3889 Created page with "W przypadku blokad związanych z destrukcyjnym zachowaniem, takim jak wandalizm, powtarzające się naruszenia praw autorskich lub ręcznie prowadzone działania promocyjne, należy upewnić się, że użytkownik został odpowiednio '''ostrzeżony''', najlepiej za pomocą [[$1|szablonu ostrzeżenia o blokadzie]]. Ostrzeżenie nie jest konieczne w przypadku blokowania otwartych serwerów proxy oraz użytkowników posługujących się nieodpowiednimi lub obraźliwymi nazwa..." 334271 wikitext text/x-wiki W przypadku blokad związanych z destrukcyjnym zachowaniem, takim jak wandalizm, powtarzające się naruszenia praw autorskich lub ręcznie prowadzone działania promocyjne, należy upewnić się, że użytkownik został odpowiednio '''ostrzeżony''', najlepiej za pomocą [[$1|szablonu ostrzeżenia o blokadzie]]. Ostrzeżenie nie jest konieczne w przypadku blokowania otwartych serwerów proxy oraz użytkowników posługujących się nieodpowiednimi lub obraźliwymi nazwami. Konta i adresy IP wykorzystywane wyłącznie do szczególnie destrukcyjnych działań, takich jak automatyczne spamowanie, poważny wandalizm lub nękanie, również mogą zostać zablokowane bez wcześniejszego ostrzeżenia. 9fpuybxyu7cvrn9ds02w93toceyjyqe Translations:Wikifunctions:Blocking policy/21/pl 1198 101823 334273 2026-10-28T23:29:47Z Chrumps 3889 Created page with "'''Kontrowersyjne blokady''' można omawiać na [[$1|tablicy ogłoszeń dotyczącej blokad i zabezpieczeń]], najlepiej przed ich nałożeniem, o ile jest to możliwe. Ogólna zasada brzmi: w razie wątpliwości nie należy blokować." 334273 wikitext text/x-wiki '''Kontrowersyjne blokady''' można omawiać na [[$1|tablicy ogłoszeń dotyczącej blokad i zabezpieczeń]], najlepiej przed ich nałożeniem, o ile jest to możliwe. Ogólna zasada brzmi: w razie wątpliwości nie należy blokować. qmtghqclph8jbn5yky428ssfttluh8o Translations:Wikifunctions:Blocking policy/22/pl 1198 101824 334275 2026-10-28T23:30:41Z Chrumps 3889 Created page with "'''[[$1|Blokady zakresów adresów IP]]''' są szczególnie rozległym narzędziem, dlatego zdecydowanie zaleca się ich wcześniejsze omówienie. Blokady zakresów trwające dłużej niż 24 godziny powinny zostać omówione z użytkownikiem posiadającym uprawnienia {{pg|$2|CheckUsera}}, aby ocenić ich prawdopodobne skutki." 334275 wikitext text/x-wiki '''[[$1|Blokady zakresów adresów IP]]''' są szczególnie rozległym narzędziem, dlatego zdecydowanie zaleca się ich wcześniejsze omówienie. Blokady zakresów trwające dłużej niż 24 godziny powinny zostać omówione z użytkownikiem posiadającym uprawnienia {{pg|$2|CheckUsera}}, aby ocenić ich prawdopodobne skutki. phqp1bn2jnj8yfpfjyhtjhth0jgvs6t Translations:Wikifunctions:Users/5/pl 1198 101825 334283 2026-10-28T23:37:49Z Chrumps 3889 Created page with "Zarejestrowani użytkownicy to użytkownicy należący do grupy $1." 334283 wikitext text/x-wiki Zarejestrowani użytkownicy to użytkownicy należący do grupy $1. jjxqd54hjlc9ipgjzkhxgxihetdfoq2 Translations:Wikifunctions:Users/7/pl 1198 101826 334285 2026-10-28T23:38:42Z Chrumps 3889 Created page with "'''Zarejestrowani użytkownicy''' to tacy, którzy utworzyli konto i zalogowali się do Wikifunkcji lub innego projektu Wikimedia." 334285 wikitext text/x-wiki '''Zarejestrowani użytkownicy''' to tacy, którzy utworzyli konto i zalogowali się do Wikifunkcji lub innego projektu Wikimedia. lmx5trdsoiukwgobmea1hddyntht9xx User:Mens Universi 2 101827 334290 2026-10-28T23:42:32Z Mens Universi 103281 Created page with "{{#babel:ca-N|oc-N|an-N}} [[ca:Usuari:Mens Universi]] [[oc:Utilizaire:Mens Universi]] [[an:Usuario:Mens Universi]]" 334290 wikitext text/x-wiki {{#babel:ca-N|oc-N|an-N}} [[ca:Usuari:Mens Universi]] [[oc:Utilizaire:Mens Universi]] [[an:Usuario:Mens Universi]] 67ni62a13rv9bfllb2a6bub99x2xepu Translations:Wikifunctions:Translation administrators/12/pl 1198 101828 334291 2026-10-28T23:43:12Z Chrumps 3889 Created page with "Poczekać tydzień na dyskusję." 334291 wikitext text/x-wiki Poczekać tydzień na dyskusję. 2w4yv7i3yz002gtr9zhiy77cm8458ky Translations:Wikifunctions:User groups/56/pl 1198 101829 334296 2026-10-28T23:45:48Z Chrumps 3889 Created page with "Przegląd grup użytkowników i uprawnień w Wikifunkcjach" 334296 wikitext text/x-wiki Przegląd grup użytkowników i uprawnień w Wikifunkcjach mf4b2iels0wv3anw8hjj2tsrue6h7k1 Template:Cmbox/sandbox 10 101830 334306 2026-10-29T06:03:38Z Axolitl 85298 Create sandbox version of [[Template:Cmbox]] 334306 wikitext text/x-wiki <templatestyles src="Cmbox/styles.css"/><table class="layouttemplate plainlinks" style="direction:{{dir|{{{lang}}}}}; margin:2px 0; border-collapse:collapse;border:1px solid #aaa; {{#switch:{{{type}}} | stop = border:2px solid #f00;background:#ffe8e8; | warning = border:1px solid #b22222;background:#ffdbdb; | serious = border:1px solid #b22222; | issue = background:#ffe7ce; | query = background:#fff9db; | move = background:#f1D0ff; | diffuse = background:#ecfcdc; | protection = background:#efefe1; | message = background:#f9f9f9; | notice | #default = background:#e9f0f8; }} {{{style|}}}"> <tr> {{#ifeq:{{{image|}}}|none | <!-- No image. Cell with some width or padding necessary for text cell to have 100% width. --><td style="border:none; padding:1px;"></td> | <td style="border:none; padding:2px .9em {{#if:{{{langlinks|}}}|0|2px}} .9em; text-align:center;"> {{#if:{{{image|}}} | {{{image}}} | {{#switch:{{{type|}}} | stop = [[File:Stop hand icon.svg|48px|alt=]] | warning = [[File:Gnome-emblem-urgent.svg|50px|alt=]] | serious = [[File:Gnome-emblem-important.svg|50px|alt=]] | issue = [[File:Commons-emblem-issue.svg|50px|alt=]] | query = [[File:Commons-emblem-query.svg|50px|alt=]] | move = [[File:Merge-split-transwiki default.svg|50px|alt=]] | diffuse = [[File:Sub-arrows 2.svg|44px|alt=|{{#if:{{{main|}}}|link={{{main}}}}}]] | protection = [[File:Gnome-security-medium.svg|50px|alt=]] | message | notice | #default = [[File:Commons-emblem-notice.svg|50px|alt=]] }} }}</td> }} <td style="border:none; padding:5px .2em {{#if:{{{langlinks|}}}|0|5px}} .2em; width:100%; text-align:{{{textalign|inherit}}}; {{{textstyle|}}}">{{{text}}}</td> {{#if:{{{imageright|}}} | <td style="border:none; padding:2px .9em {{#if:{{{langlinks|}}}|0|2px}} .9em; text-align:center;">{{{imageright}}}</td> }} </tr> {{#if:{{{langlinks|}}} | <tr><td colspan="0" style="padding:0 .6em; text-align:{{{textalign|inherit}}}; border-style:none;"><hr/>{{{langlinks}}}</td></tr> }} </table><noinclude> {{documentation}} </noinclude> 7nwz3qtyheps4k7ikgx8q96k37no6ny 334307 334306 2026-10-29T06:04:34Z Axolitl 85298 Replaced content with "{{#invoke:Message box|cmbox}<noinclude> {{documentation}} </noinclude>" 334307 wikitext text/x-wiki {{#invoke:Message box|cmbox}<noinclude> {{documentation}} </noinclude> b4ecayiqtyx58xxm07slq9idqzbi3vx 334308 334307 2026-10-29T06:04:47Z Axolitl 85298 334308 wikitext text/x-wiki {{#invoke:Message box|cmbox}}<noinclude> {{documentation}} </noinclude> m9eeu6apq84ptkbfjtgkx52poq0k1k8 Module:Message box/cmbox.css 828 101831 334309 2026-10-29T06:06:50Z Axolitl 85298 Importing from [[w:en:Module:Message box/cmbox.css]]. See that page's history for attribution. 334309 sanitized-css text/css .cmbox { margin: 3px 0; border: 1px solid var(--border-color-base, #a2a9b1); background-color: #dfe8ff; /* Default "notice" blue */ box-sizing: border-box; overflow-x: hidden; /* necessary when embedded in other templates like [[:Category:Pending_AfC_submissions]] */ color: var(--color-base, #202122); } .cmbox-speedy { border: 4px solid #b32424; /* Red */ background-color: #ffdbdb; /* Pink */ } .cmbox-delete { background-color: #ffdbdb; /* Pink */ } .cmbox-content { background-color: #ffe7ce; /* Orange */ } .cmbox-style { background-color: #fff9db; /* Yellow */ } .cmbox-move { background-color: #e4d8ff; /* Purple */ } .cmbox-protection { background-color: #efefe1; /* Gray-gold */ } .cmbox .mbox-text { padding: 0.35em 1em; flex: 1 1 100%; } .cmbox .mbox-image, .cmbox .mbox-imageright { padding: 4px 2px; text-align: center; flex: none; } /* keep synced with each other type of message box as this isn't qualified */ .mbox-invalid-type { text-align: center; } @media (min-width: 480px) { .cmbox { display: flex; align-items: center; } .cmbox .mbox-image { /* @noflip */ padding-left: 1em; } .cmbox .mbox-imageright { /* @noflip */ padding-right: 1em; } } @media (min-width: 640px) { .cmbox { margin: 3px 10%; } } /* flipped lightness in hsl space except the main cmbox is the main page blue */ @media screen { html.skin-theme-clientpref-night .cmbox { background-color: #0d1a27; /* Default "notice" blue */ } html.skin-theme-clientpref-night .cmbox-speedy, html.skin-theme-clientpref-night .cmbox-delete { background-color: #300; /* Pink */ } html.skin-theme-clientpref-night .cmbox-content { background-color: #331a00; /* Orange */ } html.skin-theme-clientpref-night .cmbox-style { background-color: #332b00; /* Yellow */ } html.skin-theme-clientpref-night .cmbox-move { background-color: #08001a; /* Purple */ } html.skin-theme-clientpref-night .cmbox-protection { background-color: #212112; /* Gray-gold */ } } @media screen and ( prefers-color-scheme: dark) { html.skin-theme-clientpref-os .cmbox { background-color: #0d1a27; /* Default "notice" blue */ } html.skin-theme-clientpref-os .cmbox-speedy, html.skin-theme-clientpref-os .cmbox-delete { background-color: #300; /* Pink */ } html.skin-theme-clientpref-os .cmbox-content { background-color: #331a00; /* Orange */ } html.skin-theme-clientpref-os .cmbox-style { background-color: #332b00; /* Yellow */ } html.skin-theme-clientpref-os .cmbox-move { background-color: #08001a; /* Purple */ } html.skin-theme-clientpref-os .cmbox-protection { background-color: #212112; /* Gray-gold */ } } 7snavz8dxdjtnp9rj9r6o7a497f6abd Z48072 0 101832 334313 2026-10-29T06:24:37Z Jsamwrites 938 Create Predicate candidates for uniform registered properties 334313 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48072" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6092", "Z17K2": "Z48072K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "property" } ] } } ], "Z8K2": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" } }, "Z8K3": [ "Z20" ], "Z8K4": [ "Z14" ], "Z8K5": "Z48072" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Predicate candidates for uniform registered properties" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Returns the measured preferred construction candidates without expanding the shared configuration." } ] } } cegkf0c4gz3zbgwmxr754336xm0n0ci 334346 334313 2026-10-29T06:52:30Z Jsamwrites 938 Added Z48073 to the approved list of implementations 334346 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48072" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6092", "Z17K2": "Z48072K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "property" } ] } } ], "Z8K2": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" } }, "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", "Z48073" ], "Z8K5": "Z48072" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Predicate candidates for uniform registered properties" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Returns the measured preferred construction candidates without expanding the shared configuration." } ] } } ip0nk0tlk32ge7fgah4vjdv2i0afrea Z48073 0 101833 334314 2026-10-29T06:24:43Z Jsamwrites 938 Create the implementation of Predicate candidates for uniform registered properties 334314 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48073" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z48072", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48072K1" } }, "Z866K2": "P47" }, "Z802K2": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1774805" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q133346" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q2990574" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1317831" } } ] ], "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48072K1" } }, "Z866K2": "P366" }, "Z802K2": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1166153" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1724915" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q117795533" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q117795533" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q117795533" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1194697" } } ] ], "Z802K3": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1774805" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q618779" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q2990574" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1317831" } } ] ] } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Predicate candidates for uniform registered properties, composition" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 7ik0zn7eswnk5aavcf950g0wgqpup9w Z48074 0 101834 334315 2026-10-29T06:24:48Z Jsamwrites 938 Create Predicate candidates for registered agentive properties 334315 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48074" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6092", "Z17K2": "Z48074K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "property" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z60", "Z17K2": "Z48074K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "language" } ] } } ], "Z8K2": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" } }, "Z8K3": [ "Z20" ], "Z8K4": [ "Z14" ], "Z8K5": "Z48074" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Predicate candidates for registered agentive properties" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Returns the measured preferred construction candidates without expanding the shared configuration." } ] } } fe86e7x860d436y80caha01j2zhyilm 334347 334315 2026-10-29T06:52:49Z Jsamwrites 938 Added Z48075 to the approved list of implementations 334347 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48074" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6092", "Z17K2": "Z48074K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "property" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z60", "Z17K2": "Z48074K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "language" } ] } } ], "Z8K2": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" } }, "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", "Z48075" ], "Z8K5": "Z48074" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Predicate candidates for registered agentive properties" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Returns the measured preferred construction candidates without expanding the shared configuration." } ] } } pun7ikp6glulthupbeab3k0jkvooq62 Z48075 0 101835 334316 2026-10-29T06:24:54Z Jsamwrites 938 Create the implementation of Predicate candidates for registered agentive properties 334316 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48075" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z48074", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48074K1" } }, "Z866K2": "P112" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z813", "Z813K1": { "Z1K1": "Z7", "Z7K1": "Z872", "Z872K1": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6", "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": "Z40", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z18", "Z18K1": "Z8K1" }, "Z866K2": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z60K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48074K2" } } } } ], "Z8K5": "Z8" }, "Z872K2": [ "Z6", "en", "fr", "es" ] } }, "Z802K2": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1774805" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q3075355" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1194697" } } ], [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1774805" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q3075355" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q2990574" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1317831" } } ] ], "Z802K3": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1774805" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q3075355" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q2990574" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1317831" } } ] ] }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z813", "Z813K1": { "Z1K1": "Z7", "Z7K1": "Z872", "Z872K1": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6", "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": "Z40", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z18", "Z18K1": "Z8K1" }, "Z866K2": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z60K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48074K2" } } } } ], "Z8K5": "Z8" }, "Z872K2": [ "Z6", "en", "fr", "es" ] } }, "Z802K2": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1774805" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q7562091" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1194697" } } ], [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1774805" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q7562091" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q2990574" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1317831" } } ] ], "Z802K3": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1774805" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q7562091" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q2990574" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1317831" } } ] ] } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Predicate candidates for registered agentive properties, composition" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 4nh3c8curixb2oe40z0auazfcx8vb0m 334326 334316 2026-10-29T06:46:54Z Jsamwrites 938 Use compact nested-if language branches 334326 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48075" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z48074", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48074K1" } }, "Z866K2": "P112" }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z60K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48074K2" } }, "Z866K2": "en" }, "Z802K2": { "Z1K1": "Z40", "Z40K1": "Z41" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z60K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48074K2" } }, "Z866K2": "fr" }, "Z802K2": { "Z1K1": "Z40", "Z40K1": "Z41" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z60K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48074K2" } }, "Z866K2": "es" }, "Z802K2": { "Z1K1": "Z40", "Z40K1": "Z41" }, "Z802K3": { "Z1K1": "Z40", "Z40K1": "Z42" } } } }, "Z802K2": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1774805" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q3075355" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1194697" } } ], [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1774805" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q3075355" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q2990574" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1317831" } } ] ], "Z802K3": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1774805" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q3075355" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q2990574" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1317831" } } ] ] }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z60K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48074K2" } }, "Z866K2": "en" }, "Z802K2": { "Z1K1": "Z40", "Z40K1": "Z41" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z60K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48074K2" } }, "Z866K2": "fr" }, "Z802K2": { "Z1K1": "Z40", "Z40K1": "Z41" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z60K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48074K2" } }, "Z866K2": "es" }, "Z802K2": { "Z1K1": "Z40", "Z40K1": "Z41" }, "Z802K3": { "Z1K1": "Z40", "Z40K1": "Z42" } } } }, "Z802K2": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1774805" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q7562091" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1194697" } } ], [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1774805" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q7562091" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q2990574" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1317831" } } ] ], "Z802K3": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1774805" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q7562091" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q2990574" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1317831" } } ] ] } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Predicate candidates for registered agentive properties, composition" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } qz6ucmaujlqjyt2sfnejc4wmylu9gcw Z48076 0 101836 334317 2026-10-29T06:24:59Z Jsamwrites 938 Create Predicate candidates for inception 334317 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48076" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z60", "Z17K2": "Z48076K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "language" } ] } } ], "Z8K2": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" } }, "Z8K3": [ "Z20" ], "Z8K4": [ "Z14" ], "Z8K5": "Z48076" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Predicate candidates for inception" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Returns the measured preferred construction candidates without expanding the shared configuration." } ] } } 99l8urpn8eed4ayxywjpqwvztboyxra 334348 334317 2026-10-29T06:53:22Z Jsamwrites 938 Added Z48077 to the approved list of implementations 334348 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48076" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z60", "Z17K2": "Z48076K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "language" } ] } } ], "Z8K2": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" } }, "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", "Z48077" ], "Z8K5": "Z48076" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Predicate candidates for inception" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Returns the measured preferred construction candidates without expanding the shared configuration." } ] } } 7zoay2yzvna5ucr6iumbr052v7muri6 Z48077 0 101837 334318 2026-10-29T06:25:05Z Jsamwrites 938 Create the implementation of Predicate candidates for inception 334318 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48077" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z48076", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z813", "Z813K1": { "Z1K1": "Z7", "Z7K1": "Z872", "Z872K1": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6", "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": "Z40", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z18", "Z18K1": "Z8K1" }, "Z866K2": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z60K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48076K1" } } } } ], "Z8K5": "Z8" }, "Z872K2": [ "Z6", "la", "ig", "dag" ] } }, "Z802K2": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1774805" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q3075355" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q117795533" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q67372837" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q2990574" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q186408" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1317831" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q117795533" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q117795533" } } ], [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1774805" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q25555886" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q117795533" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q67372837" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q2990574" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q186408" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1317831" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q117795533" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q117795533" } } ], [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1774805" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q11398090" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q117795533" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q67372837" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q2990574" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q186408" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1317831" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q117795533" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q117795533" } } ] ], "Z802K3": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1166153" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q3075355" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q117795533" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q117795533" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q117795533" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q186408" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1194697" } } ], [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1166153" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q25555886" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q117795533" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q117795533" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q117795533" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q186408" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1194697" } } ], [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1166153" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q11398090" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q117795533" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q117795533" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q117795533" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q186408" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1194697" } } ] ] } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Predicate candidates for inception, composition" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } jvyfl67uusd663tup9j0evwojt6uw7h 334327 334318 2026-10-29T06:47:01Z Jsamwrites 938 Use compact nested-if language branches 334327 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48077" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z48076", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z60K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48076K1" } }, "Z866K2": "la" }, "Z802K2": { "Z1K1": "Z40", "Z40K1": "Z41" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z60K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48076K1" } }, "Z866K2": "ig" }, "Z802K2": { "Z1K1": "Z40", "Z40K1": "Z41" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z60K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48076K1" } }, "Z866K2": "dag" }, "Z802K2": { "Z1K1": "Z40", "Z40K1": "Z41" }, "Z802K3": { "Z1K1": "Z40", "Z40K1": "Z42" } } } }, "Z802K2": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1774805" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q3075355" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q117795533" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q67372837" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q2990574" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q186408" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1317831" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q117795533" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q117795533" } } ], [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1774805" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q25555886" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q117795533" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q67372837" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q2990574" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q186408" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1317831" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q117795533" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q117795533" } } ], [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1774805" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q11398090" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q117795533" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q67372837" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q2990574" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q186408" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1317831" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q117795533" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q117795533" } } ] ], "Z802K3": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1166153" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q3075355" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q117795533" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q117795533" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q117795533" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q186408" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1194697" } } ], [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1166153" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q25555886" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q117795533" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q117795533" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q117795533" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q186408" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1194697" } } ], [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1166153" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q11398090" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q117795533" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q117795533" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q117795533" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q186408" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1194697" } } ] ] } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Predicate candidates for inception, composition" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 0wz53e1dh5suy0p4d4n26j5pjzu7xp4 Z48078 0 101838 334319 2026-10-29T06:25:11Z Jsamwrites 938 Create Predicate candidates for architect 334319 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48078" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z60", "Z17K2": "Z48078K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "language" } ] } } ], "Z8K2": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" } }, "Z8K3": [ "Z20" ], "Z8K4": [ "Z14" ], "Z8K5": "Z48078" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Predicate candidates for architect" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Returns the measured preferred construction candidates without expanding the shared configuration." } ] } } rxlnuusbblso2474n9qyt4y3dxtk8hf 334349 334319 2026-10-29T06:53:31Z Jsamwrites 938 Added Z48079 to the approved list of implementations 334349 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48078" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z60", "Z17K2": "Z48078K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "language" } ] } } ], "Z8K2": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" } }, "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", "Z48079" ], "Z8K5": "Z48078" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Predicate candidates for architect" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Returns the measured preferred construction candidates without expanding the shared configuration." } ] } } 3ss218ydq0fesnu9obwlwoxuhehxxy4 Z48079 0 101839 334320 2026-10-29T06:25:16Z Jsamwrites 938 Create the implementation of Predicate candidates for architect 334320 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48079" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z48078", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z813", "Z813K1": { "Z1K1": "Z7", "Z7K1": "Z872", "Z872K1": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6", "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": "Z40", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z18", "Z18K1": "Z8K1" }, "Z866K2": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z60K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48078K1" } } } } ], "Z8K5": "Z8" }, "Z872K2": [ "Z6", "en", "fr", "es" ] } }, "Z802K2": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1774805" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q82604" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1194697" } } ], [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1774805" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q82604" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q2990574" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1317831" } } ] ], "Z802K3": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1774805" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q82604" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q2990574" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1317831" } } ] ] } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Predicate candidates for architect, composition" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 9mf38k2d3pjb7l06dj5e1xmqa1flo9k 334328 334320 2026-10-29T06:47:08Z Jsamwrites 938 Use compact nested-if language branches 334328 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48079" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z48078", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z60K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48078K1" } }, "Z866K2": "en" }, "Z802K2": { "Z1K1": "Z40", "Z40K1": "Z41" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z60K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48078K1" } }, "Z866K2": "fr" }, "Z802K2": { "Z1K1": "Z40", "Z40K1": "Z41" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z60K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48078K1" } }, "Z866K2": "es" }, "Z802K2": { "Z1K1": "Z40", "Z40K1": "Z41" }, "Z802K3": { "Z1K1": "Z40", "Z40K1": "Z42" } } } }, "Z802K2": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1774805" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q82604" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1194697" } } ], [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1774805" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q82604" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q2990574" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1317831" } } ] ], "Z802K3": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1774805" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q82604" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q2990574" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1317831" } } ] ] } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Predicate candidates for architect, composition" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 6nrqfnscpnn5ebwb4wilu7to1p8i7e4 Z48080 0 101840 334321 2026-10-29T06:25:22Z Jsamwrites 938 Create Predicate candidates for programming language 334321 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48080" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z60", "Z17K2": "Z48080K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "language" } ] } } ], "Z8K2": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" } }, "Z8K3": [ "Z20" ], "Z8K4": [ "Z14" ], "Z8K5": "Z48080" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Predicate candidates for programming language" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Returns the measured preferred construction candidates without expanding the shared configuration." } ] } } j7yopjn3xttjoahnjs1yex9b5qcad11 334350 334321 2026-10-29T06:53:39Z Jsamwrites 938 Added Z48081 to the approved list of implementations 334350 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48080" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z60", "Z17K2": "Z48080K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "language" } ] } } ], "Z8K2": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" } }, "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", "Z48081" ], "Z8K5": "Z48080" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Predicate candidates for programming language" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Returns the measured preferred construction candidates without expanding the shared configuration." } ] } } 8yxnvduyfeiml20nrranj3pqhw0ohh2 Z48081 0 101841 334322 2026-10-29T06:25:27Z Jsamwrites 938 Create the implementation of Predicate candidates for programming language 334322 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48081" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z48080", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z813", "Z813K1": { "Z1K1": "Z7", "Z7K1": "Z872", "Z872K1": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6", "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": "Z40", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z18", "Z18K1": "Z8K1" }, "Z866K2": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z60K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48080K1" } } } } ], "Z8K5": "Z8" }, "Z872K2": [ "Z6", "ig", "dag" ] } }, "Z802K2": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1774805" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q86647781" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q117795533" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q67372837" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q2990574" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1317831" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q117795533" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q117795533" } } ] ], "Z802K3": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1166153" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q86647781" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q117795533" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q117795533" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q117795533" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1194697" } } ] ] } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Predicate candidates for programming language, composition" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } amam4hojgsdkdugp4iway34i6aad3le 334329 334322 2026-10-29T06:47:14Z Jsamwrites 938 Use compact nested-if language branches 334329 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48081" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z48080", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z60K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48080K1" } }, "Z866K2": "ig" }, "Z802K2": { "Z1K1": "Z40", "Z40K1": "Z41" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z60K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48080K1" } }, "Z866K2": "dag" }, "Z802K2": { "Z1K1": "Z40", "Z40K1": "Z41" }, "Z802K3": { "Z1K1": "Z40", "Z40K1": "Z42" } } }, "Z802K2": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1774805" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q86647781" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q117795533" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q67372837" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q2990574" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1317831" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q117795533" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q117795533" } } ] ], "Z802K3": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1166153" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q86647781" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q117795533" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q117795533" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q117795533" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1194697" } } ] ] } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Predicate candidates for programming language, composition" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 11u9es69s37i88f37vktgu38sov3g8c Z48082 0 101842 334330 2026-10-29T06:48:02Z Jsamwrites 938 Create Default predicate candidates, first partition 334330 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48082" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6092", "Z17K2": "Z48082K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "property" } ] } } ], "Z8K2": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" } }, "Z8K3": [ "Z20" ], "Z8K4": [ "Z14" ], "Z8K5": "Z48082" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Default predicate candidates, first partition" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Returns the measured preferred construction candidates without expanding the shared configuration." } ] } } nq7al0cgi78k02ss3p2ydnu15oc2w2z 334351 334330 2026-10-29T06:53:47Z Jsamwrites 938 Added Z48083 to the approved list of implementations 334351 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48082" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6092", "Z17K2": "Z48082K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "property" } ] } } ], "Z8K2": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" } }, "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", "Z48083" ], "Z8K5": "Z48082" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Default predicate candidates, first partition" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Returns the measured preferred construction candidates without expanding the shared configuration." } ] } } mdb3lxztn1ee6ytaph0i5znclc1zh7f Z48083 0 101844 334332 2026-10-29T06:48:59Z Jsamwrites 938 Create the implementation of Default predicate candidates, first partition 334332 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48083" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z48082", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48082K1" } }, "Z866K2": "P31" }, "Z802K2": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q207509" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1084" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q20574495" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q20574495" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q20574495" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } } ] ], "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48082K1" } }, "Z866K2": "P17" }, "Z802K2": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q207509" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q109377685" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q109377685" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q109377685" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } } ] ], "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48082K1" } }, "Z866K2": "P131" }, "Z802K2": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q207509" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q109377685" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q109377685" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q109377685" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } } ] ], "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48082K1" } }, "Z866K2": "P61" }, "Z802K2": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1774805" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q12772819" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q2990574" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } } ] ], "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48082K1" } }, "Z866K2": "P462" }, "Z802K2": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q207509" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q34698" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q20574495" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q20574495" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q20574495" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } } ], [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1166153" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q20574495" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } } ], [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q207509" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1084" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q20574495" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q20574495" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q20574495" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } } ] ], "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48082K1" } }, "Z866K2": "P27" }, "Z802K2": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q207509" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q34698" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q217438" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q20574495" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q20574495" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q20574495" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } } ] ], "Z802K3": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" } ] } } } } } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Default predicate candidates, first partition, composition" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 6lueamw7g9ewq3selkhh0d0dtsy4zpp 334337 334332 2026-10-29T06:49:56Z Jsamwrites 938 Use compact nested-if language branches 334337 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48083" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z48082", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48082K1" } }, "Z866K2": "P31" }, "Z802K2": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q207509" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1084" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q20574495" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q20574495" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q20574495" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } } ] ], "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48082K1" } }, "Z866K2": "P17" }, "Z802K2": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q207509" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q109377685" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q109377685" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q109377685" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } } ] ], "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48082K1" } }, "Z866K2": "P131" }, "Z802K2": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q207509" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q109377685" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q109377685" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q109377685" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } } ] ], "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48082K1" } }, "Z866K2": "P61" }, "Z802K2": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1774805" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q12772819" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q2990574" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } } ] ], "Z802K3": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" } ] } } } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Default predicate candidates, first partition, composition" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 1qx92a194nk2sq2tzslhaqma5g4eno5 Z48084 0 101845 334333 2026-10-29T06:49:05Z Jsamwrites 938 Create Default predicate candidates, second partition 334333 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48084" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6092", "Z17K2": "Z48084K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "property" } ] } } ], "Z8K2": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" } }, "Z8K3": [ "Z20" ], "Z8K4": [ "Z14" ], "Z8K5": "Z48084" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Default predicate candidates, second partition" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Returns the measured preferred construction candidates without expanding the shared configuration." } ] } } ko5oy6rlsx6aahkydua1o4yz9ahaz46 334352 334333 2026-10-29T06:53:55Z Jsamwrites 938 Added Z48085 to the approved list of implementations 334352 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48084" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6092", "Z17K2": "Z48084K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "property" } ] } } ], "Z8K2": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" } }, "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", "Z48085" ], "Z8K5": "Z48084" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Default predicate candidates, second partition" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Returns the measured preferred construction candidates without expanding the shared configuration." } ] } } lwsrffmrdh5g41cixkviku7qddj36lb Z48085 0 101846 334334 2026-10-29T06:49:11Z Jsamwrites 938 Create the implementation of Default predicate candidates, second partition 334334 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48085" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z48084", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48084K1" } }, "Z866K2": "P463" }, "Z802K2": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q207509" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1084" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q8191099" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1814980" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q20574495" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q20574495" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q20574495" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } } ] ], "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48084K1" } }, "Z866K2": "P69" }, "Z802K2": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1166153" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1782301" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q117795533" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q117795533" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q117795533" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } } ] ], "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48084K1" } }, "Z866K2": "P1082" }, "Z802K2": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q309314" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1613416" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q309314" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q309314" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q309314" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q309314" } } ] ], "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48084K1" } }, "Z866K2": "P178" }, "Z802K2": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1774805" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q7562091" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1194697" } } ], [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1774805" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q7562091" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q2990574" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1317831" } } ] ], "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48084K1" } }, "Z866K2": "P50" }, "Z802K2": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1774805" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q86647781" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1194697" } } ], [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1774805" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q86647781" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q2990574" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1317831" } } ] ], "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48084K1" } }, "Z866K2": "P170" }, "Z802K2": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1774805" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q11398090" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1194697" } } ], [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1774805" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q11398090" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q2990574" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1317831" } } ] ], "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48084K1" } }, "Z866K2": "P112" }, "Z802K2": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1774805" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q3075355" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1194697" } } ], [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1774805" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q3075355" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q2990574" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1317831" } } ] ], "Z802K3": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" } ] } } } } } } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Default predicate candidates, second partition, composition" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } iswocazj9aevupogo26t5hllc2x7k9v 334338 334334 2026-10-29T06:50:03Z Jsamwrites 938 Use compact nested-if language branches 334338 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48085" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z48084", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48084K1" } }, "Z866K2": "P462" }, "Z802K2": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q207509" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q34698" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q20574495" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q20574495" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q20574495" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } } ], [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1166153" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q20574495" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } } ], [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q207509" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1084" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q20574495" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q20574495" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q20574495" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } } ] ], "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48084K1" } }, "Z866K2": "P27" }, "Z802K2": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q207509" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q34698" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q217438" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q20574495" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q20574495" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q20574495" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } } ] ], "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48084K1" } }, "Z866K2": "P463" }, "Z802K2": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q207509" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1084" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q8191099" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1814980" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q20574495" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q20574495" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q20574495" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } } ] ], "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48084K1" } }, "Z866K2": "P69" }, "Z802K2": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1166153" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1782301" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q117795533" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q117795533" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q117795533" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } } ] ], "Z802K3": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" } ] } } } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Default predicate candidates, second partition, composition" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } hobi3povgb0do36klx2nb6z4zrteio4 Z48086 0 101847 334335 2026-10-29T06:49:20Z Jsamwrites 938 Create Predicate candidates from language preferences 334335 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48086" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6092", "Z17K2": "Z48086K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "property" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z60", "Z17K2": "Z48086K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "language" } ] } } ], "Z8K2": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" } }, "Z8K3": [ "Z20" ], "Z8K4": [ "Z14" ], "Z8K5": "Z48086" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Predicate candidates from language preferences" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Returns the measured preferred construction candidates without expanding the shared configuration." } ] } } k5sicitnuxilufiqms9uovi0u7hsba9 334353 334335 2026-10-29T06:54:03Z Jsamwrites 938 Added Z48087 to the approved list of implementations 334353 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48086" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6092", "Z17K2": "Z48086K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "property" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z60", "Z17K2": "Z48086K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "language" } ] } } ], "Z8K2": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" } }, "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", "Z48087" ], "Z8K5": "Z48086" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Predicate candidates from language preferences" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Returns the measured preferred construction candidates without expanding the shared configuration." } ] } } jm2jlrwu12kqdm45ow0zywqyltzkmub Z48087 0 101848 334336 2026-10-29T06:49:25Z Jsamwrites 938 Create the implementation of Predicate candidates from language preferences 334336 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48087" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z48086", "Z14K2": { "Z1K1": "Z7", "Z7K1": { "Z1K1": "Z7", "Z7K1": "Z14310", "Z14310K1": "Z46615", "Z14310K2": { "Z1K1": "Z18", "Z18K1": "Z48086K2" } }, "K1": { "Z1K1": "Z18", "Z18K1": "Z48086K1" }, "K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48086K1" } }, "Z866K2": "P31" }, "Z802K2": { "Z1K1": "Z40", "Z40K1": "Z41" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48086K1" } }, "Z866K2": "P17" }, "Z802K2": { "Z1K1": "Z40", "Z40K1": "Z41" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48086K1" } }, "Z866K2": "P131" }, "Z802K2": { "Z1K1": "Z40", "Z40K1": "Z41" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48086K1" } }, "Z866K2": "P61" }, "Z802K2": { "Z1K1": "Z40", "Z40K1": "Z41" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48086K1" } }, "Z866K2": "P462" }, "Z802K2": { "Z1K1": "Z40", "Z40K1": "Z41" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48086K1" } }, "Z866K2": "P27" }, "Z802K2": { "Z1K1": "Z40", "Z40K1": "Z41" }, "Z802K3": { "Z1K1": "Z40", "Z40K1": "Z42" } } } } } } }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48082", "Z48082K1": { "Z1K1": "Z18", "Z18K1": "Z48086K1" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z48084", "Z48084K1": { "Z1K1": "Z18", "Z18K1": "Z48086K1" } } } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Predicate candidates from language preferences, composition" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } erwwcqqltdyj09urj3a49iykgr32bcx 334341 334336 2026-10-29T06:50:21Z Jsamwrites 938 Use compact nested-if language branches 334341 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48087" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z48086", "Z14K2": { "Z1K1": "Z7", "Z7K1": { "Z1K1": "Z7", "Z7K1": "Z14310", "Z14310K1": "Z46615", "Z14310K2": { "Z1K1": "Z18", "Z18K1": "Z48086K2" } }, "K1": { "Z1K1": "Z18", "Z18K1": "Z48086K1" }, "K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48086K1" } }, "Z866K2": "P31" }, "Z802K2": { "Z1K1": "Z40", "Z40K1": "Z41" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48086K1" } }, "Z866K2": "P17" }, "Z802K2": { "Z1K1": "Z40", "Z40K1": "Z41" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48086K1" } }, "Z866K2": "P131" }, "Z802K2": { "Z1K1": "Z40", "Z40K1": "Z41" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48086K1" } }, "Z866K2": "P61" }, "Z802K2": { "Z1K1": "Z40", "Z40K1": "Z41" }, "Z802K3": { "Z1K1": "Z40", "Z40K1": "Z42" } } } } }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48082", "Z48082K1": { "Z1K1": "Z18", "Z18K1": "Z48086K1" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48086K1" } }, "Z866K2": "P462" }, "Z802K2": { "Z1K1": "Z40", "Z40K1": "Z41" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48086K1" } }, "Z866K2": "P27" }, "Z802K2": { "Z1K1": "Z40", "Z40K1": "Z41" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48086K1" } }, "Z866K2": "P463" }, "Z802K2": { "Z1K1": "Z40", "Z40K1": "Z41" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48086K1" } }, "Z866K2": "P69" }, "Z802K2": { "Z1K1": "Z40", "Z40K1": "Z41" }, "Z802K3": { "Z1K1": "Z40", "Z40K1": "Z42" } } } } }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48084", "Z48084K1": { "Z1K1": "Z18", "Z18K1": "Z48086K1" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z48088", "Z48088K1": { "Z1K1": "Z18", "Z18K1": "Z48086K1" } } } } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Predicate candidates from language preferences, composition" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } pbh4o12hpl0fvqntncbhkmowan7psr3 334345 334341 2026-10-29T06:51:08Z Jsamwrites 938 Use compact nested-if language branches 334345 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48087" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z48086", "Z14K2": { "Z1K1": "Z7", "Z7K1": { "Z1K1": "Z7", "Z7K1": "Z14310", "Z14310K1": "Z46615", "Z14310K2": { "Z1K1": "Z18", "Z18K1": "Z48086K2" } }, "K1": { "Z1K1": "Z18", "Z18K1": "Z48086K1" }, "K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48086K1" } }, "Z866K2": "P31" }, "Z802K2": { "Z1K1": "Z40", "Z40K1": "Z41" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48086K1" } }, "Z866K2": "P17" }, "Z802K2": { "Z1K1": "Z40", "Z40K1": "Z41" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48086K1" } }, "Z866K2": "P131" }, "Z802K2": { "Z1K1": "Z40", "Z40K1": "Z41" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48086K1" } }, "Z866K2": "P61" }, "Z802K2": { "Z1K1": "Z40", "Z40K1": "Z41" }, "Z802K3": { "Z1K1": "Z40", "Z40K1": "Z42" } } } } }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48082", "Z48082K1": { "Z1K1": "Z18", "Z18K1": "Z48086K1" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48086K1" } }, "Z866K2": "P462" }, "Z802K2": { "Z1K1": "Z40", "Z40K1": "Z41" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48086K1" } }, "Z866K2": "P27" }, "Z802K2": { "Z1K1": "Z40", "Z40K1": "Z41" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48086K1" } }, "Z866K2": "P463" }, "Z802K2": { "Z1K1": "Z40", "Z40K1": "Z41" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48086K1" } }, "Z866K2": "P69" }, "Z802K2": { "Z1K1": "Z40", "Z40K1": "Z41" }, "Z802K3": { "Z1K1": "Z40", "Z40K1": "Z42" } } } } }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48084", "Z48084K1": { "Z1K1": "Z18", "Z18K1": "Z48086K1" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48086K1" } }, "Z866K2": "P1082" }, "Z802K2": { "Z1K1": "Z40", "Z40K1": "Z41" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48086K1" } }, "Z866K2": "P178" }, "Z802K2": { "Z1K1": "Z40", "Z40K1": "Z41" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48086K1" } }, "Z866K2": "P50" }, "Z802K2": { "Z1K1": "Z40", "Z40K1": "Z41" }, "Z802K3": { "Z1K1": "Z40", "Z40K1": "Z42" } } } }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48088", "Z48088K1": { "Z1K1": "Z18", "Z18K1": "Z48086K1" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z48090", "Z48090K1": { "Z1K1": "Z18", "Z18K1": "Z48086K1" } } } } } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Predicate candidates from language preferences, composition" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 2q1mcuwzqnluu6ml0nsrnkb7my65lga Z48088 0 101849 334339 2026-10-29T06:50:08Z Jsamwrites 938 Create Default predicate candidates, third partition 334339 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48088" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6092", "Z17K2": "Z48088K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "property" } ] } } ], "Z8K2": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" } }, "Z8K3": [ "Z20" ], "Z8K4": [ "Z14" ], "Z8K5": "Z48088" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Default predicate candidates, third partition" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Returns the measured preferred construction candidates without expanding the shared configuration." } ] } } kul7imm9pa6dtdadk7prnudch4xfq3v 334355 334339 2026-10-29T06:54:19Z Jsamwrites 938 Added Z48089 to the approved list of implementations 334355 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48088" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6092", "Z17K2": "Z48088K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "property" } ] } } ], "Z8K2": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" } }, "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", "Z48089" ], "Z8K5": "Z48088" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Default predicate candidates, third partition" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Returns the measured preferred construction candidates without expanding the shared configuration." } ] } } dp0aflgbdpik3x7f9lmzm6pcwp43rls Z48089 0 101850 334340 2026-10-29T06:50:14Z Jsamwrites 938 Create the implementation of Default predicate candidates, third partition 334340 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48089" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z48088", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48088K1" } }, "Z866K2": "P1082" }, "Z802K2": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q309314" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1613416" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q309314" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q309314" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q309314" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q309314" } } ] ], "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48088K1" } }, "Z866K2": "P178" }, "Z802K2": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1774805" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q7562091" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1194697" } } ], [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1774805" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q7562091" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q2990574" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1317831" } } ] ], "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48088K1" } }, "Z866K2": "P50" }, "Z802K2": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1774805" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q86647781" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1194697" } } ], [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1774805" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q86647781" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q2990574" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1317831" } } ] ], "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48088K1" } }, "Z866K2": "P170" }, "Z802K2": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1774805" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q11398090" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1194697" } } ], [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1774805" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q11398090" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q2990574" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1317831" } } ] ], "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48088K1" } }, "Z866K2": "P112" }, "Z802K2": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1774805" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q3075355" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1194697" } } ], [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1774805" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q3075355" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q2990574" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1317831" } } ] ], "Z802K3": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" } ] } } } } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Default predicate candidates, third partition, composition" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } iy3rvrgl8m3bwrdq9atr4j743jwwded 334342 334340 2026-10-29T06:50:51Z Jsamwrites 938 Use compact nested-if language branches 334342 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48089" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z48088", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48088K1" } }, "Z866K2": "P1082" }, "Z802K2": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q309314" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1613416" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q309314" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q309314" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q309314" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q309314" } } ] ], "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48088K1" } }, "Z866K2": "P178" }, "Z802K2": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1774805" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q7562091" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1194697" } } ], [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1774805" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q7562091" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q2990574" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1317831" } } ] ], "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48088K1" } }, "Z866K2": "P50" }, "Z802K2": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1774805" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q86647781" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1194697" } } ], [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1774805" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q86647781" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q2990574" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1317831" } } ] ], "Z802K3": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" } ] } } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Default predicate candidates, third partition, composition" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 1ve8i549unf6kdie0avbg5iortk4ckm Z48090 0 101851 334343 2026-10-29T06:50:57Z Jsamwrites 938 Create Default predicate candidates, fourth partition 334343 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48090" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6092", "Z17K2": "Z48090K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "property" } ] } } ], "Z8K2": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" } }, "Z8K3": [ "Z20" ], "Z8K4": [ "Z14" ], "Z8K5": "Z48090" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Default predicate candidates, fourth partition" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Returns the measured preferred construction candidates without expanding the shared configuration." } ] } } qte5m7b319soj1adqs62kmp2wfh4dwb 334354 334343 2026-10-29T06:54:11Z Jsamwrites 938 Added Z48091 to the approved list of implementations 334354 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48090" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z6092", "Z17K2": "Z48090K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "property" } ] } } ], "Z8K2": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" } }, "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", "Z48091" ], "Z8K5": "Z48090" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Default predicate candidates, fourth partition" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Returns the measured preferred construction candidates without expanding the shared configuration." } ] } } fqbil3m9t4wiixufx4fu5cu2xfym0fu Z48091 0 101852 334344 2026-10-29T06:51:02Z Jsamwrites 938 Create the implementation of Default predicate candidates, fourth partition 334344 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48091" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z48090", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48090K1" } }, "Z866K2": "P170" }, "Z802K2": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1774805" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q11398090" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1194697" } } ], [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1774805" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q11398090" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q2990574" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1317831" } } ] ], "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z7", "Z7K1": "Z803", "Z803K1": { "Z1K1": "Z39", "Z39K1": "Z6092K1" }, "Z803K2": { "Z1K1": "Z18", "Z18K1": "Z48090K1" } }, "Z866K2": "P112" }, "Z802K2": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1774805" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q3075355" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1194697" } } ], [ "Z39328", { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q1474213" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1774805" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q82042" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q24905" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q179080" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q3075355" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263353" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q110263362" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q164573" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134480019" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q2990574" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q134506144" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q190087" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" } }, { "Z1K1": "Z39328", "Z39328K1": { "Z1K1": "Z6091", "Z6091K1": "Q211101" }, "Z39328K2": { "Z1K1": "Z6091", "Z6091K1": "Q1317831" } } ] ], "Z802K3": [ { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" } ] } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Default predicate candidates, fourth partition, composition" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 1naj07wqdlwsv04fvyn6113rrfckpw6 Z48092 0 101853 334360 2026-10-29T07:01:34Z Jsamwrites 938 Create Filter and order predicate candidates 334360 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48092" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" } }, "Z17K2": "Z48092K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "candidates" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, "Z17K2": "Z48092K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "context" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6", "Z17K2": "Z48092K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "value type" } ] } } ], "Z8K2": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" } }, "Z8K3": [ "Z20" ], "Z8K4": [ "Z14" ], "Z8K5": "Z48092" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Filter and order predicate candidates" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Returns the measured preferred construction candidates without expanding the shared configuration." } ] } } cmz6l1bqvb787c1jtvbdbewelmfd9qd 334365 334360 2026-10-29T07:07:30Z Jsamwrites 938 Added Z48093 to the approved list of implementations 334365 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48092" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" } }, "Z17K2": "Z48092K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "candidates" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, "Z17K2": "Z48092K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "context" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6", "Z17K2": "Z48092K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "value type" } ] } } ], "Z8K2": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" } }, "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", "Z48093" ], "Z8K5": "Z48092" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Filter and order predicate candidates" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Returns the measured preferred construction candidates without expanding the shared configuration." } ] } } 2cc3rty6l1n6p5gvsy5axwgvt8yg8g0 334368 334365 2026-10-29T07:19:09Z Jsamwrites 938 Removed Z48093 from the approved list of implementations 334368 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48092" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" } }, "Z17K2": "Z48092K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "candidates" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, "Z17K2": "Z48092K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "context" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6", "Z17K2": "Z48092K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "value type" } ] } } ], "Z8K2": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" } }, "Z8K3": [ "Z20" ], "Z8K4": [ "Z14" ], "Z8K5": "Z48092" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Filter and order predicate candidates" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Returns the measured preferred construction candidates without expanding the shared configuration." } ] } } cmz6l1bqvb787c1jtvbdbewelmfd9qd 334372 334368 2026-10-29T07:21:56Z Jsamwrites 938 Added Z48093 to the approved list of implementations 334372 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48092" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" } }, "Z17K2": "Z48092K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "candidates" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, "Z17K2": "Z48092K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "context" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6", "Z17K2": "Z48092K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "value type" } ] } } ], "Z8K2": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" } }, "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", "Z48093" ], "Z8K5": "Z48092" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Filter and order predicate candidates" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Returns the measured preferred construction candidates without expanding the shared configuration." } ] } } 2cc3rty6l1n6p5gvsy5axwgvt8yg8g0 Z48093 0 101854 334361 2026-10-29T07:01:39Z Jsamwrites 938 Create the implementation of Filter and order predicate candidates 334361 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48093" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z48092", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z813", "Z813K1": { "Z1K1": "Z18", "Z18K1": "Z48092K2" } }, "Z802K2": { "Z1K1": "Z7", "Z7K1": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" } }, "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" } }, "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z12767", "Z12767K1": { "Z1K1": "Z7", "Z7K1": "Z872", "Z872K1": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": "Z40", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z12846", "Z12846K1": { "Z1K1": "Z7", "Z7K1": "Z873", "Z873K1": "Z39346", "Z873K2": { "Z1K1": "Z18", "Z18K1": "Z8K1" } }, "Z12846K2": { "Z1K1": "Z7", "Z7K1": "Z873", "Z873K1": "Z39346", "Z873K2": { "Z1K1": "Z18", "Z18K1": "Z48092K2" } } } } ], "Z8K5": "Z8" }, "Z872K2": { "Z1K1": "Z18", "Z18K1": "Z8K1" } }, "Z12767K2": { "Z1K1": "Z7", "Z7K1": "Z872", "Z872K1": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": "Z40", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z10216", "Z10216K1": { "Z1K1": "Z7", "Z7K1": "Z12846", "Z12846K1": { "Z1K1": "Z7", "Z7K1": "Z873", "Z873K1": "Z39346", "Z873K2": { "Z1K1": "Z18", "Z18K1": "Z8K1" } }, "Z12846K2": { "Z1K1": "Z7", "Z7K1": "Z873", "Z873K1": "Z39346", "Z873K2": { "Z1K1": "Z18", "Z18K1": "Z48092K2" } } } } } ], "Z8K5": "Z8" }, "Z872K2": { "Z1K1": "Z18", "Z18K1": "Z8K1" } } } } ], "Z8K5": "Z8" }, "Z8K1": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z18", "Z18K1": "Z48092K3" }, "Z866K2": "" }, "Z802K2": { "Z1K1": "Z18", "Z18K1": "Z48092K1" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z872", "Z872K1": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": "Z40", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z19316", "Z19316K1": { "Z1K1": "Z7", "Z7K1": "Z39346", "Z39346K1": { "Z1K1": "Z7", "Z7K1": "Z811", "Z811K1": { "Z1K1": "Z7", "Z7K1": "Z872", "Z872K1": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z39328", "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": "Z40", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z19316", "Z19316K1": { "Z1K1": "Z7", "Z7K1": "Z39342", "Z39342K1": { "Z1K1": "Z18", "Z18K1": "Z8K1" } }, "Z19316K2": { "Z1K1": "Z6091", "Z6091K1": "Q190087" } } } ], "Z8K5": "Z8" }, "Z872K2": { "Z1K1": "Z18", "Z18K1": "Z8K1" } } } }, "Z19316K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z18", "Z18K1": "Z48092K3" }, "Z866K2": { "Z1K1": "Z6", "Z6K1": "Z6091" } }, "Z802K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z18", "Z18K1": "Z48092K3" }, "Z866K2": { "Z1K1": "Z6", "Z6K1": "Z6064" } }, "Z802K2": { "Z1K1": "Z6091", "Z6091K1": "Q186408" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z18", "Z18K1": "Z48092K3" }, "Z866K2": { "Z1K1": "Z6", "Z6K1": "Z6010" } }, "Z802K2": { "Z1K1": "Z6091", "Z6091K1": "Q309314" }, "Z802K3": { "Z1K1": "Z6091", "Z6091K1": "Q190087" } } } } } } ], "Z8K5": "Z8" }, "Z872K2": { "Z1K1": "Z18", "Z18K1": "Z48092K1" } } } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z18", "Z18K1": "Z48092K3" }, "Z866K2": "" }, "Z802K2": { "Z1K1": "Z18", "Z18K1": "Z48092K1" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z872", "Z872K1": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": "Z40", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z19316", "Z19316K1": { "Z1K1": "Z7", "Z7K1": "Z39346", "Z39346K1": { "Z1K1": "Z7", "Z7K1": "Z811", "Z811K1": { "Z1K1": "Z7", "Z7K1": "Z872", "Z872K1": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z39328", "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": "Z40", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z19316", "Z19316K1": { "Z1K1": "Z7", "Z7K1": "Z39342", "Z39342K1": { "Z1K1": "Z18", "Z18K1": "Z8K1" } }, "Z19316K2": { "Z1K1": "Z6091", "Z6091K1": "Q190087" } } } ], "Z8K5": "Z8" }, "Z872K2": { "Z1K1": "Z18", "Z18K1": "Z8K1" } } } }, "Z19316K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z18", "Z18K1": "Z48092K3" }, "Z866K2": { "Z1K1": "Z6", "Z6K1": "Z6091" } }, "Z802K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z18", "Z18K1": "Z48092K3" }, "Z866K2": { "Z1K1": "Z6", "Z6K1": "Z6064" } }, "Z802K2": { "Z1K1": "Z6091", "Z6091K1": "Q186408" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z18", "Z18K1": "Z48092K3" }, "Z866K2": { "Z1K1": "Z6", "Z6K1": "Z6010" } }, "Z802K2": { "Z1K1": "Z6091", "Z6091K1": "Q309314" }, "Z802K3": { "Z1K1": "Z6091", "Z6091K1": "Q190087" } } } } } } ], "Z8K5": "Z8" }, "Z872K2": { "Z1K1": "Z18", "Z18K1": "Z48092K1" } } } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Filter and order predicate candidates, composition" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ckgradr8rcsccy1peq6nn2217e5tu12 334362 334361 2026-10-29T07:03:54Z Jsamwrites 938 Use compact nested-if language branches 334362 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48093" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z48092", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z18", "Z18K1": "Z48092K3" }, "Z866K2": "" }, "Z802K2": { "Z1K1": "Z18", "Z18K1": "Z48092K1" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z872", "Z872K1": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": "Z40", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z19316", "Z19316K1": { "Z1K1": "Z7", "Z7K1": "Z39346", "Z39346K1": { "Z1K1": "Z7", "Z7K1": "Z811", "Z811K1": { "Z1K1": "Z7", "Z7K1": "Z872", "Z872K1": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z39328", "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": "Z40", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z19316", "Z19316K1": { "Z1K1": "Z7", "Z7K1": "Z39342", "Z39342K1": { "Z1K1": "Z18", "Z18K1": "Z8K1" } }, "Z19316K2": { "Z1K1": "Z6091", "Z6091K1": "Q190087" } } } ], "Z8K5": "Z8" }, "Z872K2": { "Z1K1": "Z18", "Z18K1": "Z8K1" } } } }, "Z19316K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z18", "Z18K1": "Z48092K3" }, "Z866K2": { "Z1K1": "Z6", "Z6K1": "Z6091" } }, "Z802K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z18", "Z18K1": "Z48092K3" }, "Z866K2": { "Z1K1": "Z6", "Z6K1": "Z6064" } }, "Z802K2": { "Z1K1": "Z6091", "Z6091K1": "Q186408" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z18", "Z18K1": "Z48092K3" }, "Z866K2": { "Z1K1": "Z6", "Z6K1": "Z6010" } }, "Z802K2": { "Z1K1": "Z6091", "Z6091K1": "Q309314" }, "Z802K3": { "Z1K1": "Z6091", "Z6091K1": "Q190087" } } } } } } ], "Z8K5": "Z8" }, "Z872K2": { "Z1K1": "Z18", "Z18K1": "Z48092K1" } } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Filter and order predicate candidates, composition" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } re7oenvgmtbpgeg5jzfp4i1mj94jirr 334369 334362 2026-10-29T07:19:48Z Jsamwrites 938 Use compact nested-if language branches 334369 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48093" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z48092", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z872", "Z872K1": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": "Z40", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z19316", "Z19316K1": { "Z1K1": "Z7", "Z7K1": "Z39346", "Z39346K1": { "Z1K1": "Z7", "Z7K1": "Z811", "Z811K1": { "Z1K1": "Z7", "Z7K1": "Z872", "Z872K1": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": "Z39328", "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": "Z40", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z19316", "Z19316K1": { "Z1K1": "Z7", "Z7K1": "Z39342", "Z39342K1": { "Z1K1": "Z18", "Z18K1": "Z8K1" } }, "Z19316K2": { "Z1K1": "Z6091", "Z6091K1": "Q190087" } } } ], "Z8K5": "Z8" }, "Z872K2": { "Z1K1": "Z18", "Z18K1": "Z8K1" } } } }, "Z19316K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z18", "Z18K1": "Z48092K3" }, "Z866K2": { "Z1K1": "Z6", "Z6K1": "Z6091" } }, "Z802K2": { "Z1K1": "Z6091", "Z6091K1": "Q16222597" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z18", "Z18K1": "Z48092K3" }, "Z866K2": { "Z1K1": "Z6", "Z6K1": "Z6064" } }, "Z802K2": { "Z1K1": "Z6091", "Z6091K1": "Q186408" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z18", "Z18K1": "Z48092K3" }, "Z866K2": { "Z1K1": "Z6", "Z6K1": "Z6010" } }, "Z802K2": { "Z1K1": "Z6091", "Z6091K1": "Q309314" }, "Z802K3": { "Z1K1": "Z6091", "Z6091K1": "Q190087" } } } } } } ], "Z8K5": "Z8" }, "Z872K2": { "Z1K1": "Z18", "Z18K1": "Z48092K1" } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Filter and order predicate candidates, composition" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } b3q998ouojr40aq2q502b7gw5cl4g9s Z48094 0 101855 334363 2026-10-29T07:03:59Z Jsamwrites 938 Create Order predicate candidates for sentence context 334363 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48094" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" } }, "Z17K2": "Z48094K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "candidates" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, "Z17K2": "Z48094K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "context" } ] } } ], "Z8K2": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" } }, "Z8K3": [ "Z20" ], "Z8K4": [ "Z14" ], "Z8K5": "Z48094" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Order predicate candidates for sentence context" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Returns the measured preferred construction candidates without expanding the shared configuration." } ] } } du4n5axmdiy242716vwpsb2r6qqy7b0 334366 334363 2026-10-29T07:07:35Z Jsamwrites 938 Added Z48095 to the approved list of implementations 334366 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48094" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" } }, "Z17K2": "Z48094K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "candidates" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, "Z17K2": "Z48094K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "context" } ] } } ], "Z8K2": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" } }, "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", "Z48095" ], "Z8K5": "Z48094" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Order predicate candidates for sentence context" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Returns the measured preferred construction candidates without expanding the shared configuration." } ] } } 3zpx9ds6jaa28mhr2t4plg0h138zc3u Z48095 0 101856 334364 2026-10-29T07:04:05Z Jsamwrites 938 Create the implementation of Order predicate candidates for sentence context 334364 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48095" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z48094", "Z14K2": { "Z1K1": "Z7", "Z7K1": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" } }, "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" } }, "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z12767", "Z12767K1": { "Z1K1": "Z7", "Z7K1": "Z872", "Z872K1": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": "Z40", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z12846", "Z12846K1": { "Z1K1": "Z7", "Z7K1": "Z873", "Z873K1": "Z39346", "Z873K2": { "Z1K1": "Z18", "Z18K1": "Z8K1" } }, "Z12846K2": { "Z1K1": "Z7", "Z7K1": "Z873", "Z873K1": "Z39346", "Z873K2": { "Z1K1": "Z18", "Z18K1": "Z48094K2" } } } } ], "Z8K5": "Z8" }, "Z872K2": { "Z1K1": "Z18", "Z18K1": "Z8K1" } }, "Z12767K2": { "Z1K1": "Z7", "Z7K1": "Z872", "Z872K1": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, "Z17K2": "Z8K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } ], "Z8K2": "Z40", "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", { "Z1K1": "Z14", "Z14K1": "Z8", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z10216", "Z10216K1": { "Z1K1": "Z7", "Z7K1": "Z12846", "Z12846K1": { "Z1K1": "Z7", "Z7K1": "Z873", "Z873K1": "Z39346", "Z873K2": { "Z1K1": "Z18", "Z18K1": "Z8K1" } }, "Z12846K2": { "Z1K1": "Z7", "Z7K1": "Z873", "Z873K1": "Z39346", "Z873K2": { "Z1K1": "Z18", "Z18K1": "Z48094K2" } } } } } ], "Z8K5": "Z8" }, "Z872K2": { "Z1K1": "Z18", "Z18K1": "Z8K1" } } } } ], "Z8K5": "Z8" }, "Z8K1": { "Z1K1": "Z18", "Z18K1": "Z48094K1" } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Order predicate candidates for sentence context, composition" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } sctybjgdjl2j9lib6qzetn66hbca1iq Z48096 0 101857 334370 2026-10-29T07:21:08Z Jsamwrites 938 Create Finalize predicate candidates 334370 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48096" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" } }, "Z17K2": "Z48096K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "candidates" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, "Z17K2": "Z48096K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "context" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6", "Z17K2": "Z48096K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "value type" } ] } } ], "Z8K2": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" } }, "Z8K3": [ "Z20" ], "Z8K4": [ "Z14" ], "Z8K5": "Z48096" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Finalize predicate candidates" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Returns the measured preferred construction candidates without expanding the shared configuration." } ] } } hw5e6j5hc4hfpd9dyr9zucrgg12h615 334373 334370 2026-10-29T07:22:06Z Jsamwrites 938 Added Z48097 to the approved list of implementations 334373 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48096" }, "Z2K2": { "Z1K1": "Z8", "Z8K1": [ "Z17", { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" } }, "Z17K2": "Z48096K1", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "candidates" } ] } }, { "Z1K1": "Z17", "Z17K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" }, "Z17K2": "Z48096K2", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "context" } ] } }, { "Z1K1": "Z17", "Z17K1": "Z6", "Z17K2": "Z48096K3", "Z17K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "value type" } ] } } ], "Z8K2": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": { "Z1K1": "Z7", "Z7K1": "Z881", "Z881K1": "Z39328" } }, "Z8K3": [ "Z20" ], "Z8K4": [ "Z14", "Z48097" ], "Z8K5": "Z48096" }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Finalize predicate candidates" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Returns the measured preferred construction candidates without expanding the shared configuration." } ] } } jneuaxqdtul676odriapxrkwnu08srd Z48097 0 101858 334371 2026-10-29T07:21:14Z Jsamwrites 938 Create the implementation of Finalize predicate candidates 334371 zobject text/plain { "Z1K1": "Z2", "Z2K1": { "Z1K1": "Z6", "Z6K1": "Z48097" }, "Z2K2": { "Z1K1": "Z14", "Z14K1": "Z48096", "Z14K2": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z813", "Z813K1": { "Z1K1": "Z18", "Z18K1": "Z48096K2" } }, "Z802K2": { "Z1K1": "Z7", "Z7K1": "Z48094", "Z48094K1": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z18", "Z18K1": "Z48096K3" }, "Z866K2": "" }, "Z802K2": { "Z1K1": "Z18", "Z18K1": "Z48096K1" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z48092", "Z48092K1": { "Z1K1": "Z18", "Z18K1": "Z48096K1" }, "Z48092K2": { "Z1K1": "Z18", "Z18K1": "Z48096K2" }, "Z48092K3": { "Z1K1": "Z18", "Z18K1": "Z48096K3" } } }, "Z48094K2": { "Z1K1": "Z18", "Z18K1": "Z48096K2" } }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z802", "Z802K1": { "Z1K1": "Z7", "Z7K1": "Z866", "Z866K1": { "Z1K1": "Z18", "Z18K1": "Z48096K3" }, "Z866K2": "" }, "Z802K2": { "Z1K1": "Z18", "Z18K1": "Z48096K1" }, "Z802K3": { "Z1K1": "Z7", "Z7K1": "Z48092", "Z48092K1": { "Z1K1": "Z18", "Z18K1": "Z48096K1" }, "Z48092K2": { "Z1K1": "Z18", "Z18K1": "Z48096K2" }, "Z48092K3": { "Z1K1": "Z18", "Z18K1": "Z48096K3" } } } } }, "Z2K3": { "Z1K1": "Z12", "Z12K1": [ "Z11", { "Z1K1": "Z11", "Z11K1": "Z1002", "Z11K2": "Finalize predicate candidates, composition" } ] }, "Z2K4": { "Z1K1": "Z32", "Z32K1": [ "Z31" ] }, "Z2K5": { "Z1K1": "Z12", "Z12K1": [ "Z11" ] } } 2p7yg0wb2a2rfe3vbpuat9ai1lt0jrw