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